diff --git a/apps/main/admin.py b/apps/main/admin.py index 858da18..18496f8 100644 --- a/apps/main/admin.py +++ b/apps/main/admin.py @@ -1,8 +1,10 @@ from django.contrib import admin -from .models import Device, DeviceType, Experiment, Campaign +from .models import Device, DeviceType, Experiment, Campaign, Location, Radar # Register your models here. admin.site.register(Campaign) admin.site.register(Experiment) admin.site.register(Device) -admin.site.register(DeviceType) \ No newline at end of file +admin.site.register(DeviceType) +admin.site.register(Location) +admin.site.register(Radar) \ No newline at end of file diff --git a/apps/main/forms.py b/apps/main/forms.py index 27a493e..c8276cb 100644 --- a/apps/main/forms.py +++ b/apps/main/forms.py @@ -1,5 +1,9 @@ from django import forms from django.utils.safestring import mark_safe +from datetime import datetime + +from apps.main.widgets import Filtering_ComboBox_Widget, Datepicker, HTMLrender,Filtering_ComboBox_Widget2 + from .models import DeviceType, Device, Experiment, Campaign, Configuration, Location @@ -62,3 +66,9 @@ class ConfigurationForm(forms.ModelForm): class DeviceTypeForm(forms.Form): device_type = forms.ChoiceField(choices=add_empty_choice(DeviceType.objects.all().order_by('name').values_list('id', 'name'))) + +class OperationForm(forms.Form): + today = datetime.today() + # -----Campaigns from this month------ + campaign = forms.ChoiceField(choices=Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date').values_list('id', 'name'), label="Campaign") + \ No newline at end of file diff --git a/apps/main/templates/operation.html b/apps/main/templates/operation.html new file mode 100644 index 0000000..043eb67 --- /dev/null +++ b/apps/main/templates/operation.html @@ -0,0 +1,95 @@ +{% extends "base.html" %} +{% load bootstrap3 %} +{% load static %} +{% load main_tags %} +{% block extra-head %} + +{% endblock %} + +{% block camp-active %}active{% endblock %} + +{% block content-title %}{{title}}{% endblock %} +{% block content-suptitle %}{{suptitle}}{% endblock %} + +{% block content %} + +
+ {% csrf_token %} + {% bootstrap_form form layout='horizontal' size='medium' %} +
+
+ +
+
+
+
+
+ +
+ + {% for radar in radars %} + +
+ + +
+
+ + + + {% for header in experiment_keys %} + + {% endfor%} + + {% for item in experiments %} + {% for exs in item %} + + + {% for key in experiment_keys %} + {% if radar.name in exs.radar.name %} + + {% endif %} + {% endfor %} + {% endfor %} + + {% endfor %} +
{{ header|title }}
{{ exs|attr:key }}
+
+
+
+ {% endfor %} +
+ +{% endblock %} + + + +{% block extra-js%} + +{% endblock %} \ No newline at end of file diff --git a/apps/main/urls.py b/apps/main/urls.py index f9b3cf0..7b10d23 100644 --- a/apps/main/urls.py +++ b/apps/main/urls.py @@ -31,4 +31,7 @@ urlpatterns = ( url(r'^dev_conf/(?P-?\d+)/edit/$', 'apps.main.views.dev_conf_edit', name='url_edit_dev_conf'), url(r'^dev_conf/(?P-?\d+)/delete/$', 'apps.main.views.dev_conf_delete', name='url_delete_dev_conf'), + url(r'^operation/$', 'apps.main.views.operation', name='url_operation'), + url(r'^operation/(?P-?\d+)/$', 'apps.main.views.operation', name='url_operation'), + ) diff --git a/apps/main/views.py b/apps/main/views.py index 07e08ce..51d5b9c 100644 --- a/apps/main/views.py +++ b/apps/main/views.py @@ -1,7 +1,9 @@ from django.shortcuts import render, redirect, get_object_or_404, HttpResponse from django.contrib import messages -from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm +from datetime import datetime + +from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm, OperationForm from apps.cgs.forms import CGSConfigurationForm from apps.jars.forms import JARSConfigurationForm from apps.usrp.forms import USRPConfigurationForm @@ -9,7 +11,7 @@ from apps.abs.forms import ABSConfigurationForm from apps.rc.forms import RCConfigurationForm from apps.dds.forms import DDSConfigurationForm -from .models import Campaign, Experiment, Device, Configuration, Location +from .models import Campaign, Experiment, Device, Configuration, Location, Radar from apps.cgs.models import CGSConfiguration from apps.jars.models import JARSConfiguration from apps.usrp.models import USRPConfiguration @@ -235,8 +237,7 @@ def campaigns(request): def campaign(request, id_camp): campaign = get_object_or_404(Campaign, pk=id_camp) - experiments = Experiment.objects.filter(campaign=campaign) - + #experiments = Experiment.objects.filter(campaign=campaign) form = CampaignForm(instance=campaign) kwargs = {} @@ -246,7 +247,7 @@ def campaign(request, id_camp): keys = ['id', 'name', 'start_time', 'end_time'] kwargs['experiment_keys'] = keys[1:] - kwargs['experiments'] = experiments.values(*keys) + #kwargs['experiments'] = experiments.values(*keys) kwargs['title'] = 'Campaign' kwargs['suptitle'] = 'Details' @@ -589,7 +590,42 @@ def sidebar(conf): return kwargs -def operation(request): - pass - - +def operation(request, id_camp=None): + + today = datetime.today() + + if id_camp==None: + id_camp = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date')[0].id + + if request.method=='GET': + campaign = get_object_or_404(Campaign, pk = id_camp) + campaigns = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date') + form = OperationForm(initial={'campaign': id_camp}) + + if request.method=='POST': + campaign = get_object_or_404(Campaign, pk=request.POST['campaign']) + #id_camp = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date')[1].id + form = OperationForm(request.POST, initial={'campaign':campaign.name}) + if form.is_valid(): + return redirect('url_operation', id_camp=campaign.id) + + radars = Radar.objects.filter(campaign = campaign) + experiments = [Experiment.objects.filter(radar=radar) for radar in radars] #zip(radars, [Experiment.objects.filter(radar=radar) for radar in radars]) + + kwargs = {} + #---Campaign + kwargs['campaign'] = campaign + kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description'] + #---Experimet + keys = ['id', 'name', 'start_time', 'end_time', 'radar'] + kwargs['experiment_keys'] = keys[1:] + kwargs['experiments'] = experiments + #---Radar + kwargs['radars'] = radars + #---Else + kwargs['title'] = 'Operation' + kwargs['suptitle'] = campaign.name + kwargs['form'] = form + kwargs['button'] = '...' + + return render(request, 'operation.html', kwargs) \ No newline at end of file diff --git a/radarsys/settings.py b/radarsys/settings.py index 106c4e7..e4157d5 100644 --- a/radarsys/settings.py +++ b/radarsys/settings.py @@ -98,13 +98,13 @@ DATABASES = { LANGUAGE_CODE = 'en-us' -TIME_ZONE = 'UTC' +TIME_ZONE = None USE_I18N = True USE_L10N = True -USE_TZ = True +USE_TZ = False # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.8/howto/static-files/ diff --git a/radarsys/urls.py b/radarsys/urls.py index 37ff63a..550a6d6 100644 --- a/radarsys/urls.py +++ b/radarsys/urls.py @@ -17,8 +17,7 @@ from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ - url(r'^$', 'apps.main.views.index', name='index'), - url(r'^operation/', 'apps.main.views.operation', name='url_operation'), + url(r'^$', 'apps.main.views.index', name='index'), url(r'^admin/', include(admin.site.urls)), url(r'^accounts/', include('apps.accounts.urls')), url(r'^', include('apps.main.urls')),