@@ -0,0 +1,95 | |||||
|
1 | {% extends "base.html" %} | |||
|
2 | {% load bootstrap3 %} | |||
|
3 | {% load static %} | |||
|
4 | {% load main_tags %} | |||
|
5 | {% block extra-head %} | |||
|
6 | <link href="{% static 'css/bootstrap-datetimepicker.min.css' %}" media="screen" rel="stylesheet"> | |||
|
7 | {% endblock %} | |||
|
8 | ||||
|
9 | {% block camp-active %}active{% endblock %} | |||
|
10 | ||||
|
11 | {% block content-title %}{{title}}{% endblock %} | |||
|
12 | {% block content-suptitle %}{{suptitle}}{% endblock %} | |||
|
13 | ||||
|
14 | {% block content %} | |||
|
15 | ||||
|
16 | <form class="form" method="post" action=""> | |||
|
17 | {% csrf_token %} | |||
|
18 | {% bootstrap_form form layout='horizontal' size='medium' %} | |||
|
19 | <div style="clear: both;"></div> | |||
|
20 | <br> | |||
|
21 | <button type="submit" class="btn btn-primary pull-right">{{button}}</button> | |||
|
22 | <br> | |||
|
23 | <br> | |||
|
24 | </form> | |||
|
25 | <br> | |||
|
26 | <br> | |||
|
27 | ||||
|
28 | <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true" > | |||
|
29 | ||||
|
30 | {% for radar in radars %} | |||
|
31 | ||||
|
32 | <div class="panel panel-default"> | |||
|
33 | <div class="panel-heading" role="tab" id="headingTwo"> | |||
|
34 | <h4 class="panel-title"> | |||
|
35 | <a class="collapsed" role="button" data-toggle="collapse" href="#collapseTwo-{{ radar.id }}" aria-expanded="false" aria-controls="collapseTwo"> | |||
|
36 | {{radar.name}}: Experiment List | |||
|
37 | </a> | |||
|
38 | </h4> | |||
|
39 | </div> | |||
|
40 | ||||
|
41 | <div id="collapseTwo-{{ radar.id }}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingTwo"> | |||
|
42 | <div class="panel-body"> | |||
|
43 | <table class="table table-hover"> | |||
|
44 | <tr> | |||
|
45 | ||||
|
46 | {% for header in experiment_keys %} | |||
|
47 | <th>{{ header|title }}</th> | |||
|
48 | {% endfor%} | |||
|
49 | </tr> | |||
|
50 | {% for item in experiments %} | |||
|
51 | {% for exs in item %} | |||
|
52 | <tr class="clickable-row" data-href="{% url 'url_experiment' exs.id %}" > | |||
|
53 | ||||
|
54 | {% for key in experiment_keys %} | |||
|
55 | {% if radar.name in exs.radar.name %} | |||
|
56 | <td>{{ exs|attr:key }}</td> | |||
|
57 | {% endif %} | |||
|
58 | {% endfor %} | |||
|
59 | {% endfor %} | |||
|
60 | </tr> | |||
|
61 | {% endfor %} | |||
|
62 | </table> | |||
|
63 | </div> | |||
|
64 | </div> | |||
|
65 | </div> | |||
|
66 | {% endfor %} | |||
|
67 | </div> | |||
|
68 | ||||
|
69 | {% endblock %} | |||
|
70 | ||||
|
71 | ||||
|
72 | ||||
|
73 | {% block extra-js%} | |||
|
74 | <script type="text/javascript"> | |||
|
75 | ||||
|
76 | //$("#bt_add").click(function() { | |||
|
77 | //alert("sometext"); | |||
|
78 | // document.location = "{% url 'url_operation' campaign.id %}"; | |||
|
79 | //}); | |||
|
80 | ||||
|
81 | $(".clickable-row").click(function() { | |||
|
82 | document.location = $(this).data("href"); | |||
|
83 | }); | |||
|
84 | ||||
|
85 | $(document).ready(function() { | |||
|
86 | $("#id_campaign").change(function() { | |||
|
87 | var id_camp = document.getElementById("id_campaign").value; | |||
|
88 | //alert(id_camp); | |||
|
89 | document.location = "{% url 'url_operation'%}"+String(id_camp); | |||
|
90 | }); | |||
|
91 | }); | |||
|
92 | ||||
|
93 | ||||
|
94 | </script> | |||
|
95 | {% endblock %} No newline at end of file |
@@ -1,8 +1,10 | |||||
1 | from django.contrib import admin |
|
1 | from django.contrib import admin | |
2 | from .models import Device, DeviceType, Experiment, Campaign |
|
2 | from .models import Device, DeviceType, Experiment, Campaign, Location, Radar | |
3 |
|
3 | |||
4 | # Register your models here. |
|
4 | # Register your models here. | |
5 | admin.site.register(Campaign) |
|
5 | admin.site.register(Campaign) | |
6 | admin.site.register(Experiment) |
|
6 | admin.site.register(Experiment) | |
7 | admin.site.register(Device) |
|
7 | admin.site.register(Device) | |
8 | admin.site.register(DeviceType) No newline at end of file |
|
8 | admin.site.register(DeviceType) | |
|
9 | admin.site.register(Location) | |||
|
10 | admin.site.register(Radar) No newline at end of file |
@@ -1,5 +1,9 | |||||
1 | from django import forms |
|
1 | from django import forms | |
2 | from django.utils.safestring import mark_safe |
|
2 | from django.utils.safestring import mark_safe | |
|
3 | from datetime import datetime | |||
|
4 | ||||
|
5 | from apps.main.widgets import Filtering_ComboBox_Widget, Datepicker, HTMLrender,Filtering_ComboBox_Widget2 | |||
|
6 | ||||
3 |
|
7 | |||
4 | from .models import DeviceType, Device, Experiment, Campaign, Configuration, Location |
|
8 | from .models import DeviceType, Device, Experiment, Campaign, Configuration, Location | |
5 |
|
9 | |||
@@ -62,3 +66,9 class ConfigurationForm(forms.ModelForm): | |||||
62 |
|
66 | |||
63 | class DeviceTypeForm(forms.Form): |
|
67 | class DeviceTypeForm(forms.Form): | |
64 | device_type = forms.ChoiceField(choices=add_empty_choice(DeviceType.objects.all().order_by('name').values_list('id', 'name'))) |
|
68 | device_type = forms.ChoiceField(choices=add_empty_choice(DeviceType.objects.all().order_by('name').values_list('id', 'name'))) | |
|
69 | ||||
|
70 | class OperationForm(forms.Form): | |||
|
71 | today = datetime.today() | |||
|
72 | # -----Campaigns from this month------ | |||
|
73 | 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") | |||
|
74 | No newline at end of file |
@@ -31,4 +31,7 urlpatterns = ( | |||||
31 | url(r'^dev_conf/(?P<id_conf>-?\d+)/edit/$', 'apps.main.views.dev_conf_edit', name='url_edit_dev_conf'), |
|
31 | url(r'^dev_conf/(?P<id_conf>-?\d+)/edit/$', 'apps.main.views.dev_conf_edit', name='url_edit_dev_conf'), | |
32 | url(r'^dev_conf/(?P<id_conf>-?\d+)/delete/$', 'apps.main.views.dev_conf_delete', name='url_delete_dev_conf'), |
|
32 | url(r'^dev_conf/(?P<id_conf>-?\d+)/delete/$', 'apps.main.views.dev_conf_delete', name='url_delete_dev_conf'), | |
33 |
|
33 | |||
|
34 | url(r'^operation/$', 'apps.main.views.operation', name='url_operation'), | |||
|
35 | url(r'^operation/(?P<id_camp>-?\d+)/$', 'apps.main.views.operation', name='url_operation'), | |||
|
36 | ||||
34 | ) |
|
37 | ) |
@@ -1,7 +1,9 | |||||
1 | from django.shortcuts import render, redirect, get_object_or_404, HttpResponse |
|
1 | from django.shortcuts import render, redirect, get_object_or_404, HttpResponse | |
2 | from django.contrib import messages |
|
2 | from django.contrib import messages | |
3 |
|
3 | |||
4 | from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm |
|
4 | from datetime import datetime | |
|
5 | ||||
|
6 | from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm, OperationForm | |||
5 | from apps.cgs.forms import CGSConfigurationForm |
|
7 | from apps.cgs.forms import CGSConfigurationForm | |
6 | from apps.jars.forms import JARSConfigurationForm |
|
8 | from apps.jars.forms import JARSConfigurationForm | |
7 | from apps.usrp.forms import USRPConfigurationForm |
|
9 | from apps.usrp.forms import USRPConfigurationForm | |
@@ -9,7 +11,7 from apps.abs.forms import ABSConfigurationForm | |||||
9 | from apps.rc.forms import RCConfigurationForm |
|
11 | from apps.rc.forms import RCConfigurationForm | |
10 | from apps.dds.forms import DDSConfigurationForm |
|
12 | from apps.dds.forms import DDSConfigurationForm | |
11 |
|
13 | |||
12 | from .models import Campaign, Experiment, Device, Configuration, Location |
|
14 | from .models import Campaign, Experiment, Device, Configuration, Location, Radar | |
13 | from apps.cgs.models import CGSConfiguration |
|
15 | from apps.cgs.models import CGSConfiguration | |
14 | from apps.jars.models import JARSConfiguration |
|
16 | from apps.jars.models import JARSConfiguration | |
15 | from apps.usrp.models import USRPConfiguration |
|
17 | from apps.usrp.models import USRPConfiguration | |
@@ -235,8 +237,7 def campaigns(request): | |||||
235 | def campaign(request, id_camp): |
|
237 | def campaign(request, id_camp): | |
236 |
|
238 | |||
237 | campaign = get_object_or_404(Campaign, pk=id_camp) |
|
239 | campaign = get_object_or_404(Campaign, pk=id_camp) | |
238 | experiments = Experiment.objects.filter(campaign=campaign) |
|
240 | #experiments = Experiment.objects.filter(campaign=campaign) | |
239 |
|
||||
240 | form = CampaignForm(instance=campaign) |
|
241 | form = CampaignForm(instance=campaign) | |
241 |
|
242 | |||
242 | kwargs = {} |
|
243 | kwargs = {} | |
@@ -246,7 +247,7 def campaign(request, id_camp): | |||||
246 | keys = ['id', 'name', 'start_time', 'end_time'] |
|
247 | keys = ['id', 'name', 'start_time', 'end_time'] | |
247 |
|
248 | |||
248 | kwargs['experiment_keys'] = keys[1:] |
|
249 | kwargs['experiment_keys'] = keys[1:] | |
249 | kwargs['experiments'] = experiments.values(*keys) |
|
250 | #kwargs['experiments'] = experiments.values(*keys) | |
250 |
|
251 | |||
251 | kwargs['title'] = 'Campaign' |
|
252 | kwargs['title'] = 'Campaign' | |
252 | kwargs['suptitle'] = 'Details' |
|
253 | kwargs['suptitle'] = 'Details' | |
@@ -589,7 +590,42 def sidebar(conf): | |||||
589 | return kwargs |
|
590 | return kwargs | |
590 |
|
591 | |||
591 |
|
592 | |||
592 | def operation(request): |
|
593 | def operation(request, id_camp=None): | |
593 |
|
|
594 | ||
594 |
|
595 | today = datetime.today() | ||
595 |
|
596 | |||
|
597 | if id_camp==None: | |||
|
598 | id_camp = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date')[0].id | |||
|
599 | ||||
|
600 | if request.method=='GET': | |||
|
601 | campaign = get_object_or_404(Campaign, pk = id_camp) | |||
|
602 | campaigns = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date') | |||
|
603 | form = OperationForm(initial={'campaign': id_camp}) | |||
|
604 | ||||
|
605 | if request.method=='POST': | |||
|
606 | campaign = get_object_or_404(Campaign, pk=request.POST['campaign']) | |||
|
607 | #id_camp = Campaign.objects.filter(start_date__month=today.month).filter(start_date__year=today.year).order_by('-start_date')[1].id | |||
|
608 | form = OperationForm(request.POST, initial={'campaign':campaign.name}) | |||
|
609 | if form.is_valid(): | |||
|
610 | return redirect('url_operation', id_camp=campaign.id) | |||
|
611 | ||||
|
612 | radars = Radar.objects.filter(campaign = campaign) | |||
|
613 | experiments = [Experiment.objects.filter(radar=radar) for radar in radars] #zip(radars, [Experiment.objects.filter(radar=radar) for radar in radars]) | |||
|
614 | ||||
|
615 | kwargs = {} | |||
|
616 | #---Campaign | |||
|
617 | kwargs['campaign'] = campaign | |||
|
618 | kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description'] | |||
|
619 | #---Experimet | |||
|
620 | keys = ['id', 'name', 'start_time', 'end_time', 'radar'] | |||
|
621 | kwargs['experiment_keys'] = keys[1:] | |||
|
622 | kwargs['experiments'] = experiments | |||
|
623 | #---Radar | |||
|
624 | kwargs['radars'] = radars | |||
|
625 | #---Else | |||
|
626 | kwargs['title'] = 'Operation' | |||
|
627 | kwargs['suptitle'] = campaign.name | |||
|
628 | kwargs['form'] = form | |||
|
629 | kwargs['button'] = '...' | |||
|
630 | ||||
|
631 | return render(request, 'operation.html', kwargs) No newline at end of file |
@@ -98,13 +98,13 DATABASES = { | |||||
98 |
|
98 | |||
99 | LANGUAGE_CODE = 'en-us' |
|
99 | LANGUAGE_CODE = 'en-us' | |
100 |
|
100 | |||
101 |
TIME_ZONE = |
|
101 | TIME_ZONE = None | |
102 |
|
102 | |||
103 | USE_I18N = True |
|
103 | USE_I18N = True | |
104 |
|
104 | |||
105 | USE_L10N = True |
|
105 | USE_L10N = True | |
106 |
|
106 | |||
107 |
USE_TZ = |
|
107 | USE_TZ = False | |
108 |
|
108 | |||
109 | # Static files (CSS, JavaScript, Images) |
|
109 | # Static files (CSS, JavaScript, Images) | |
110 | # https://docs.djangoproject.com/en/1.8/howto/static-files/ |
|
110 | # https://docs.djangoproject.com/en/1.8/howto/static-files/ |
@@ -17,8 +17,7 from django.conf.urls import include, url | |||||
17 | from django.contrib import admin |
|
17 | from django.contrib import admin | |
18 |
|
18 | |||
19 | urlpatterns = [ |
|
19 | urlpatterns = [ | |
20 | url(r'^$', 'apps.main.views.index', name='index'), |
|
20 | url(r'^$', 'apps.main.views.index', name='index'), | |
21 | url(r'^operation/', 'apps.main.views.operation', name='url_operation'), |
|
|||
22 | url(r'^admin/', include(admin.site.urls)), |
|
21 | url(r'^admin/', include(admin.site.urls)), | |
23 | url(r'^accounts/', include('apps.accounts.urls')), |
|
22 | url(r'^accounts/', include('apps.accounts.urls')), | |
24 | url(r'^', include('apps.main.urls')), |
|
23 | url(r'^', include('apps.main.urls')), |
General Comments 0
You need to be logged in to leave comments.
Login now