##// END OF EJS Templates
Update base template: main menu...
Juan C. Espinoza -
r46:1678176d32cd
parent child
Show More
@@ -1,125 +1,141
1 <!DOCTYPE html>
1 <!DOCTYPE html>
2 {% load static %}
2 {% load static %}
3 <html lang="en">
3 <html lang="en">
4 <head>
4 <head>
5 <meta charset="utf-8">
5 <meta charset="utf-8">
6 <title>{% block title %}Jicamarca Integrated Radar System:::::{% endblock %}</title>
6 <title>{% block title %}Jicamarca Integrated Radar System:::::{% endblock %}</title>
7 <meta name="description" content="">
7 <meta name="description" content="">
8 <meta name="author" content="">
8 <meta name="author" content="">
9 <meta name="viewport" content="width=device-width, initial-scale=1">
9 <meta name="viewport" content="width=device-width, initial-scale=1">
10 {# bootstrap_css #}
10 {# bootstrap_css #}
11 <link href="{% static 'css/bootstrap-flatly.min.css' %}" media="all" rel="stylesheet">
11 <link href="{% static 'css/bootstrap-flatly.min.css' %}" media="all" rel="stylesheet">
12 <style type="text/css">
12 <style type="text/css">
13 body {padding-top: 60px}
13 body {padding-top: 60px}
14 .logo {padding-top: 5px; height: 50px}
14 .logo {padding-top: 5px; height: 50px}
15 .clickable-row {cursor: pointer;}
15 .clickable-row {cursor: pointer;}
16 .col-no-padding { padding-left:0; }
16 </style>
17 </style>
17 <!--[if lt IE 9]>
18 <!--[if lt IE 9]>
18 <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
19 <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
19 <![endif]-->
20 <![endif]-->
20 {% block extra-head %}
21 {% block extra-head %}
21 {% endblock %}
22 {% endblock %}
22 </head>
23 </head>
23
24
24 <body>
25 <body>
25
26
26 {% block main_menu %}
27 {% block main_menu %}
27 <nav class="navbar navbar-default navbar-fixed-top" role="banner">
28 <nav class="navbar navbar-default navbar-fixed-top" role="banner">
28 <div class="container-fluid">
29 <div class="container-fluid">
29 <div class="navbar-header">
30 <div class="navbar-header">
30 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigationbar">
31 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigationbar">
31 <span class="sr-only">Toggle navigation</span>
32 <span class="sr-only">Toggle navigation</span>
32 <span class="icon-bar"></span>
33 <span class="icon-bar"></span>
33 <span class="icon-bar"></span>
34 <span class="icon-bar"></span>
34 <span class="icon-bar"></span>
35 <span class="icon-bar"></span>
35 </button>
36 </button>
36 <a class="navbar-brand" href="{% url 'index' %}" style="padding-top:1px"><img class="logo" alt="JRO" src="{% static "images/logo-jro-white-trans.png" %}"></a>
37 <a class="navbar-brand" href="{% url 'index' %}" style="padding-top:1px"><img class="logo" alt="JRO" src="{% static "images/logo-jro-white-trans.png" %}"></a>
37 </div>
38 </div>
38 <div class="collapse navbar-collapse" id="navigationbar">
39 <div class="collapse navbar-collapse" id="navigationbar">
39 <ul class="nav navbar-nav">
40 <ul class="nav navbar-nav">
40 <li class=" dropdown {% block camp-active %}{% endblock %}"><a href="{% url 'url_campaigns'%}">Campaigns</a>
41 <li class=" dropdown {% block operation-active %}{% endblock %}"><a href="{% url 'url_operation'%}">Operation</a>
41 </li>
42 </li>
42 <li class=" dropdown {% block exp-active %}{% endblock %}"><a href="{% url 'url_experiments'%}">Experiments</a>
43 <li class=" dropdown {% block conf-active %}{% endblock %}">
43 </li>
44 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration<span class="caret"></span></a>
44 <li class=" dropdown {% block conf-active %}{% endblock %}"><a href="{% url 'url_dev_confs'%}">Configurations</a>
45 <ul class="dropdown-menu" role="menu">
46 <li><a href="#">Campaigns</a></li>
47 <li><a href="#">Radars</a></li>
48 <li><a href="#">Devices</a></li>
49 </ul>
45 </li>
50 </li>
46 <li class=" dropdown {% block dev-active %}{% endblock %}"><a href="{% url 'url_devices'%}">Devices</a>
51 <li class=" dropdown {% block test-active %}{% endblock %}">
52 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Test<span class="caret"></span></a>
53 <ul class="dropdown-menu" role="menu">
54 <li><a href="{% url 'url_experiments' %}">Experiments</a></li>
55 <li><a href="{% url 'url_devices' %}">Devices</a></li>
56 </ul>
47 </li>
57 </li>
48 <li class=" dropdown {% block loc-active %}{% endblock %}"><a href="{% url 'url_locations'%}">Locations</a>
58 <li class=" dropdown {% block search-active %}{% endblock %}">
59 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Search<span class="caret"></span></a>
60 <ul class="dropdown-menu" role="menu">
61 <li><a href="{% url 'url_campaigns' %}">Campaigns</a></li>
62 <li><a href="{% url 'url_experiments' %}">Experiments</a></li>
63 <li><a href="{% url 'url_dev_confs' %}">Configurations</a></li>
64 </ul>
49 </li>
65 </li>
50 </ul>
66 </ul>
51 <ul class="nav navbar-nav navbar-right">
67 <ul class="nav navbar-nav navbar-right">
52 <li class="nav-divider"></li>
68 <li class="nav-divider"></li>
53 {% if user.is_authenticated %}
69 {% if user.is_authenticated %}
54 <li class="dropdown">
70 <li class="dropdown">
55 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hi {{ user.username }}<span class="caret"></span></a>
71 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hi {{ user.username }}<span class="caret"></span></a>
56 <ul class="dropdown-menu" role="menu">
72 <ul class="dropdown-menu" role="menu">
57 <li><a href="#">Control Panel</a></li>
73 <li><a href="#">Control Panel</a></li>
58 <li><a href="{% url 'django.contrib.auth.views.logout' %}">Logout</a></li>
74 <li><a href="{% url 'django.contrib.auth.views.logout' %}">Logout</a></li>
59 </ul>
75 </ul>
60 </li>
76 </li>
61 {% else %}
77 {% else %}
62 <li><a href="{% url 'django.contrib.auth.views.login' %}?next={{request.get_full_path}}">Login</a></li>
78 <li><a href="{% url 'django.contrib.auth.views.login' %}?next={{request.get_full_path}}">Login</a></li>
63 {% endif %}
79 {% endif %}
64 </ul>
80 </ul>
65 </div>
81 </div>
66 </div>
82 </div>
67 </nav>
83 </nav>
68 <div style="clear: both;"></div>
84 <div style="clear: both;"></div>
69 {% endblock %}
85 {% endblock %}
70
86
71 <div class="container">
87 <div class="container">
72 <div id="page" class="row" style="min-height:600px">
88 <div id="page" class="row" style="min-height:600px">
73
89
74 <div class="col-md-3 hidden-xs hidden-sm" role="complementary">
90 <div class="col-md-3 hidden-xs hidden-sm" role="complementary">
75 <br><br>
91 <br><br>
76 <div id="sidebar">
92 <div id="sidebar">
77 {% block sidebar%}
93 {% block sidebar%}
78 {% endblock %}
94 {% endblock %}
79 </div>
95 </div>
80 </div>
96 </div>
81
97
82 <div class="col-md-9 col-xs-12" role="main">
98 <div class="col-md-9 col-xs-12" role="main">
83 <div class="page-header">
99 <div class="page-header">
84 <h1>{% block content-title %}{% endblock %} <small>{% block content-suptitle %}{% endblock %}</small></h1>
100 <h1>{% block content-title %}{% endblock %} <small>{% block content-suptitle %}{% endblock %}</small></h1>
85 </div>
101 </div>
86 {% block messages %}
102 {% block messages %}
87 {% if messages %}
103 {% if messages %}
88 {% for message in messages %}
104 {% for message in messages %}
89 <div class="alert alert-{% if message.tags %}{% if 'error' in message.tags %}danger{% else %}{{ message.tags }}{% endif %}{% else %}info{% endif %} alert-dismissible" role="alert">
105 <div class="alert alert-{% if message.tags %}{% if 'error' in message.tags %}danger{% else %}{{ message.tags }}{% endif %}{% else %}info{% endif %} alert-dismissible" role="alert">
90 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
106 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
91 <strong>{{message.tags|title}}!</strong> {{ message }}
107 <strong>{{message.tags|title}}!</strong> {{ message }}
92 </div>
108 </div>
93 {% endfor %}
109 {% endfor %}
94 {% endif %}
110 {% endif %}
95 {% endblock %}
111 {% endblock %}
96
112
97 {% block content %}
113 {% block content %}
98 {% endblock %}
114 {% endblock %}
99
115
100 </div>
116 </div>
101
117
102 </div><!--/row-->
118 </div><!--/row-->
103 </div> <!-- container -->
119 </div> <!-- container -->
104
120
105 <div id="debug">{{debug}}</div>
121 <div id="debug">{{debug}}</div>
106
122
107 {% block footer %}
123 {% block footer %}
108 <footer class="footer">
124 <footer class="footer">
109 <div class="container">
125 <div class="container">
110 <p><hr></p>
126 <p><hr></p>
111 <p>
127 <p>
112 &copy; <a href="http://jro.igp.gob.pe">Jicamarca Radio Observatory</a> - {% now "Y" %}
128 &copy; <a href="http://jro.igp.gob.pe">Jicamarca Radio Observatory</a> - {% now "Y" %}
113 </p>
129 </p>
114 </div>
130 </div>
115 </footer>
131 </footer>
116 {% endblock %}
132 {% endblock %}
117
133
118 {# bootstrap_javascript jquery=True #}
134 {# bootstrap_javascript jquery=True #}
119 <script src="{% static 'js/jquery.min.js' %}"></script>
135 <script src="{% static 'js/jquery.min.js' %}"></script>
120 <script src="{% static 'js/bootstrap.min.js' %}"></script>
136 <script src="{% static 'js/bootstrap.min.js' %}"></script>
121 {% block extra-js %}
137 {% block extra-js %}
122 {% endblock%}
138 {% endblock%}
123 </body>
139 </body>
124 </html>
140 </html>
125
141
@@ -1,594 +1,600
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 .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm
5 from apps.cgs.forms import CGSConfigurationForm
5 from apps.cgs.forms import CGSConfigurationForm
6 from apps.jars.forms import JARSConfigurationForm
6 from apps.jars.forms import JARSConfigurationForm
7 from apps.usrp.forms import USRPConfigurationForm
7 from apps.usrp.forms import USRPConfigurationForm
8 from apps.abs.forms import ABSConfigurationForm
8 from apps.abs.forms import ABSConfigurationForm
9 from apps.rc.forms import RCConfigurationForm
9 from apps.rc.forms import RCConfigurationForm
10 from apps.dds.forms import DDSConfigurationForm
10 from apps.dds.forms import DDSConfigurationForm
11
11
12 from .models import Campaign, Experiment, Device, Configuration, Location
12 from .models import Campaign, Experiment, Device, Configuration, Location
13 from apps.cgs.models import CGSConfiguration
13 from apps.cgs.models import CGSConfiguration
14 from apps.jars.models import JARSConfiguration
14 from apps.jars.models import JARSConfiguration
15 from apps.usrp.models import USRPConfiguration
15 from apps.usrp.models import USRPConfiguration
16 from apps.abs.models import ABSConfiguration
16 from apps.abs.models import ABSConfiguration
17 from apps.rc.models import RCConfiguration
17 from apps.rc.models import RCConfiguration
18 from apps.dds.models import DDSConfiguration
18 from apps.dds.models import DDSConfiguration
19
19
20 # Create your views here.
20 # Create your views here.
21
21
22 CONF_FORMS = {
22 CONF_FORMS = {
23 'rc': RCConfigurationForm,
23 'rc': RCConfigurationForm,
24 'dds': DDSConfigurationForm,
24 'dds': DDSConfigurationForm,
25 'jars': JARSConfigurationForm,
25 'jars': JARSConfigurationForm,
26 'cgs': CGSConfigurationForm,
26 'cgs': CGSConfigurationForm,
27 'abs': ABSConfigurationForm,
27 'abs': ABSConfigurationForm,
28 'usrp': USRPConfigurationForm,
28 'usrp': USRPConfigurationForm,
29 }
29 }
30
30
31 CONF_MODELS = {
31 CONF_MODELS = {
32 'rc': RCConfiguration,
32 'rc': RCConfiguration,
33 'dds': DDSConfiguration,
33 'dds': DDSConfiguration,
34 'jars': JARSConfiguration,
34 'jars': JARSConfiguration,
35 'cgs': CGSConfiguration,
35 'cgs': CGSConfiguration,
36 'abs': ABSConfiguration,
36 'abs': ABSConfiguration,
37 'usrp': USRPConfiguration,
37 'usrp': USRPConfiguration,
38 }
38 }
39
39
40 def index(request):
40 def index(request):
41 kwargs = {}
41 kwargs = {}
42
42
43 return render(request, 'index.html', kwargs)
43 return render(request, 'index.html', kwargs)
44
44
45 def locations(request):
45 def locations(request):
46
46
47 locations = Location.objects.all().order_by('name')
47 locations = Location.objects.all().order_by('name')
48
48
49 keys = ['id', 'name', 'description']
49 keys = ['id', 'name', 'description']
50
50
51 kwargs = {}
51 kwargs = {}
52 kwargs['location_keys'] = keys[1:]
52 kwargs['location_keys'] = keys[1:]
53 kwargs['locations'] = locations
53 kwargs['locations'] = locations
54 kwargs['title'] = 'Location'
54 kwargs['title'] = 'Location'
55 kwargs['suptitle'] = 'List'
55 kwargs['suptitle'] = 'List'
56 kwargs['button'] = 'New Location'
56 kwargs['button'] = 'New Location'
57
57
58 return render(request, 'locations.html', kwargs)
58 return render(request, 'locations.html', kwargs)
59
59
60 def location(request, id_loc):
60 def location(request, id_loc):
61
61
62 location = get_object_or_404(Location, pk=id_loc)
62 location = get_object_or_404(Location, pk=id_loc)
63
63
64 kwargs = {}
64 kwargs = {}
65 kwargs['location'] = location
65 kwargs['location'] = location
66 kwargs['location_keys'] = ['name', 'description']
66 kwargs['location_keys'] = ['name', 'description']
67
67
68 kwargs['title'] = 'Location'
68 kwargs['title'] = 'Location'
69 kwargs['suptitle'] = 'Details'
69 kwargs['suptitle'] = 'Details'
70
70
71 return render(request, 'location.html', kwargs)
71 return render(request, 'location.html', kwargs)
72
72
73 def location_new(request):
73 def location_new(request):
74
74
75 if request.method == 'GET':
75 if request.method == 'GET':
76 form = LocationForm()
76 form = LocationForm()
77
77
78 if request.method == 'POST':
78 if request.method == 'POST':
79 form = LocationForm(request.POST)
79 form = LocationForm(request.POST)
80
80
81 if form.is_valid():
81 if form.is_valid():
82 form.save()
82 form.save()
83 return redirect('url_locations')
83 return redirect('url_locations')
84
84
85 kwargs = {}
85 kwargs = {}
86 kwargs['form'] = form
86 kwargs['form'] = form
87 kwargs['title'] = 'Location'
87 kwargs['title'] = 'Location'
88 kwargs['suptitle'] = 'New'
88 kwargs['suptitle'] = 'New'
89 kwargs['button'] = 'Create'
89 kwargs['button'] = 'Create'
90
90
91 return render(request, 'location_edit.html', kwargs)
91 return render(request, 'location_edit.html', kwargs)
92
92
93 def location_edit(request, id_loc):
93 def location_edit(request, id_loc):
94
94
95 location = get_object_or_404(Location, pk=id_loc)
95 location = get_object_or_404(Location, pk=id_loc)
96
96
97 if request.method=='GET':
97 if request.method=='GET':
98 form = LocationForm(instance=location)
98 form = LocationForm(instance=location)
99
99
100 if request.method=='POST':
100 if request.method=='POST':
101 form = LocationForm(request.POST, instance=location)
101 form = LocationForm(request.POST, instance=location)
102
102
103 if form.is_valid():
103 if form.is_valid():
104 form.save()
104 form.save()
105 return redirect('url_locations')
105 return redirect('url_locations')
106
106
107 kwargs = {}
107 kwargs = {}
108 kwargs['form'] = form
108 kwargs['form'] = form
109 kwargs['title'] = 'Location'
109 kwargs['title'] = 'Location'
110 kwargs['suptitle'] = 'Edit'
110 kwargs['suptitle'] = 'Edit'
111 kwargs['button'] = 'Update'
111 kwargs['button'] = 'Update'
112
112
113 return render(request, 'location_edit.html', kwargs)
113 return render(request, 'location_edit.html', kwargs)
114
114
115 def location_delete(request, id_loc):
115 def location_delete(request, id_loc):
116
116
117 location = get_object_or_404(Location, pk=id_loc)
117 location = get_object_or_404(Location, pk=id_loc)
118
118
119 if request.method=='POST':
119 if request.method=='POST':
120
120
121 if request.user.is_staff:
121 if request.user.is_staff:
122 location.delete()
122 location.delete()
123 return redirect('url_locations')
123 return redirect('url_locations')
124
124
125 return HttpResponse("Not enough permission to delete this object")
125 return HttpResponse("Not enough permission to delete this object")
126
126
127 kwargs = {'object':location, 'loc_active':'active',
127 kwargs = {'object':location, 'loc_active':'active',
128 'url_cancel':'url_location', 'id_item':id_loc}
128 'url_cancel':'url_location', 'id_item':id_loc}
129
129
130 return render(request, 'item_delete.html', kwargs)
130 return render(request, 'item_delete.html', kwargs)
131
131
132 def devices(request):
132 def devices(request):
133
133
134 devices = Device.objects.all().order_by('device_type__name')
134 devices = Device.objects.all().order_by('device_type__name')
135
135
136 # keys = ['id', 'device_type__name', 'name', 'ip_address']
136 # keys = ['id', 'device_type__name', 'name', 'ip_address']
137 keys = ['id', 'name', 'ip_address', 'port_address', 'device_type']
137 keys = ['id', 'name', 'ip_address', 'port_address', 'device_type']
138
138
139 kwargs = {}
139 kwargs = {}
140 kwargs['device_keys'] = keys[1:]
140 kwargs['device_keys'] = keys[1:]
141 kwargs['devices'] = devices#.values(*keys)
141 kwargs['devices'] = devices#.values(*keys)
142 kwargs['title'] = 'Device'
142 kwargs['title'] = 'Device'
143 kwargs['suptitle'] = 'List'
143 kwargs['suptitle'] = 'List'
144 kwargs['button'] = 'New Device'
144 kwargs['button'] = 'New Device'
145
145
146 return render(request, 'devices.html', kwargs)
146 return render(request, 'devices.html', kwargs)
147
147
148 def device(request, id_dev):
148 def device(request, id_dev):
149
149
150 device = get_object_or_404(Device, pk=id_dev)
150 device = get_object_or_404(Device, pk=id_dev)
151
151
152 kwargs = {}
152 kwargs = {}
153 kwargs['device'] = device
153 kwargs['device'] = device
154 kwargs['device_keys'] = ['device_type', 'name', 'ip_address', 'port_address', 'description']
154 kwargs['device_keys'] = ['device_type', 'name', 'ip_address', 'port_address', 'description']
155
155
156 kwargs['title'] = 'Device'
156 kwargs['title'] = 'Device'
157 kwargs['suptitle'] = 'Details'
157 kwargs['suptitle'] = 'Details'
158
158
159 return render(request, 'device.html', kwargs)
159 return render(request, 'device.html', kwargs)
160
160
161 def device_new(request):
161 def device_new(request):
162
162
163 if request.method == 'GET':
163 if request.method == 'GET':
164 form = DeviceForm()
164 form = DeviceForm()
165
165
166 if request.method == 'POST':
166 if request.method == 'POST':
167 form = DeviceForm(request.POST)
167 form = DeviceForm(request.POST)
168
168
169 if form.is_valid():
169 if form.is_valid():
170 form.save()
170 form.save()
171 return redirect('url_devices')
171 return redirect('url_devices')
172
172
173 kwargs = {}
173 kwargs = {}
174 kwargs['form'] = form
174 kwargs['form'] = form
175 kwargs['title'] = 'Device'
175 kwargs['title'] = 'Device'
176 kwargs['suptitle'] = 'New'
176 kwargs['suptitle'] = 'New'
177 kwargs['button'] = 'Create'
177 kwargs['button'] = 'Create'
178
178
179 return render(request, 'device_edit.html', kwargs)
179 return render(request, 'device_edit.html', kwargs)
180
180
181 def device_edit(request, id_dev):
181 def device_edit(request, id_dev):
182
182
183 device = get_object_or_404(Device, pk=id_dev)
183 device = get_object_or_404(Device, pk=id_dev)
184
184
185 if request.method=='GET':
185 if request.method=='GET':
186 form = DeviceForm(instance=device)
186 form = DeviceForm(instance=device)
187
187
188 if request.method=='POST':
188 if request.method=='POST':
189 form = DeviceForm(request.POST, instance=device)
189 form = DeviceForm(request.POST, instance=device)
190
190
191 if form.is_valid():
191 if form.is_valid():
192 form.save()
192 form.save()
193 return redirect('url_devices')
193 return redirect('url_devices')
194
194
195 kwargs = {}
195 kwargs = {}
196 kwargs['form'] = form
196 kwargs['form'] = form
197 kwargs['title'] = 'Device'
197 kwargs['title'] = 'Device'
198 kwargs['suptitle'] = 'Edit'
198 kwargs['suptitle'] = 'Edit'
199 kwargs['button'] = 'Update'
199 kwargs['button'] = 'Update'
200
200
201 return render(request, 'device_edit.html', kwargs)
201 return render(request, 'device_edit.html', kwargs)
202
202
203 def device_delete(request, id_dev):
203 def device_delete(request, id_dev):
204
204
205 device = get_object_or_404(Device, pk=id_dev)
205 device = get_object_or_404(Device, pk=id_dev)
206
206
207 if request.method=='POST':
207 if request.method=='POST':
208
208
209 if request.user.is_staff:
209 if request.user.is_staff:
210 device.delete()
210 device.delete()
211 return redirect('url_devices')
211 return redirect('url_devices')
212
212
213 return HttpResponse("Not enough permission to delete this object")
213 return HttpResponse("Not enough permission to delete this object")
214
214
215 kwargs = {'object':device, 'dev_active':'active',
215 kwargs = {'object':device, 'dev_active':'active',
216 'url_cancel':'url_device', 'id_item':id_dev}
216 'url_cancel':'url_device', 'id_item':id_dev}
217
217
218 return render(request, 'item_delete.html', kwargs)
218 return render(request, 'item_delete.html', kwargs)
219
219
220 def campaigns(request):
220 def campaigns(request):
221
221
222 campaigns = Campaign.objects.all().order_by('start_date')
222 campaigns = Campaign.objects.all().order_by('start_date')
223
223
224 keys = ['id', 'name', 'start_date', 'end_date']
224 keys = ['id', 'name', 'start_date', 'end_date']
225
225
226 kwargs = {}
226 kwargs = {}
227 kwargs['campaign_keys'] = keys[1:]
227 kwargs['campaign_keys'] = keys[1:]
228 kwargs['campaigns'] = campaigns#.values(*keys)
228 kwargs['campaigns'] = campaigns#.values(*keys)
229 kwargs['title'] = 'Campaign'
229 kwargs['title'] = 'Campaign'
230 kwargs['suptitle'] = 'List'
230 kwargs['suptitle'] = 'List'
231 kwargs['button'] = 'New Campaign'
231 kwargs['button'] = 'New Campaign'
232
232
233 return render(request, 'campaigns.html', kwargs)
233 return render(request, 'campaigns.html', kwargs)
234
234
235 def campaign(request, id_camp):
235 def campaign(request, id_camp):
236
236
237 campaign = get_object_or_404(Campaign, pk=id_camp)
237 campaign = get_object_or_404(Campaign, pk=id_camp)
238 experiments = Experiment.objects.filter(campaign=campaign)
238 experiments = Experiment.objects.filter(campaign=campaign)
239
239
240 form = CampaignForm(instance=campaign)
240 form = CampaignForm(instance=campaign)
241
241
242 kwargs = {}
242 kwargs = {}
243 kwargs['campaign'] = campaign
243 kwargs['campaign'] = campaign
244 kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
244 kwargs['campaign_keys'] = ['name', 'start_date', 'end_date', 'tags', 'description']
245
245
246 keys = ['id', 'name', 'start_time', 'end_time']
246 keys = ['id', 'name', 'start_time', 'end_time']
247
247
248 kwargs['experiment_keys'] = keys[1:]
248 kwargs['experiment_keys'] = keys[1:]
249 kwargs['experiments'] = experiments.values(*keys)
249 kwargs['experiments'] = experiments.values(*keys)
250
250
251 kwargs['title'] = 'Campaign'
251 kwargs['title'] = 'Campaign'
252 kwargs['suptitle'] = 'Details'
252 kwargs['suptitle'] = 'Details'
253
253
254 kwargs['form'] = form
254 kwargs['form'] = form
255 kwargs['button'] = 'Add Experiment'
255 kwargs['button'] = 'Add Experiment'
256
256
257 return render(request, 'campaign.html', kwargs)
257 return render(request, 'campaign.html', kwargs)
258
258
259 def campaign_new(request):
259 def campaign_new(request):
260
260
261 if request.method == 'GET':
261 if request.method == 'GET':
262 form = CampaignForm()
262 form = CampaignForm()
263
263
264 if request.method == 'POST':
264 if request.method == 'POST':
265 form = CampaignForm(request.POST)
265 form = CampaignForm(request.POST)
266
266
267 if form.is_valid():
267 if form.is_valid():
268 campaign = form.save()
268 campaign = form.save()
269 return redirect('url_campaign', id_camp=campaign.id)
269 return redirect('url_campaign', id_camp=campaign.id)
270
270
271 kwargs = {}
271 kwargs = {}
272 kwargs['form'] = form
272 kwargs['form'] = form
273 kwargs['title'] = 'Campaign'
273 kwargs['title'] = 'Campaign'
274 kwargs['suptitle'] = 'New'
274 kwargs['suptitle'] = 'New'
275 kwargs['button'] = 'Create'
275 kwargs['button'] = 'Create'
276
276
277 return render(request, 'campaign_edit.html', kwargs)
277 return render(request, 'campaign_edit.html', kwargs)
278
278
279 def campaign_edit(request, id_camp):
279 def campaign_edit(request, id_camp):
280
280
281 campaign = get_object_or_404(Campaign, pk=id_camp)
281 campaign = get_object_or_404(Campaign, pk=id_camp)
282
282
283 if request.method=='GET':
283 if request.method=='GET':
284 form = CampaignForm(instance=campaign)
284 form = CampaignForm(instance=campaign)
285
285
286 if request.method=='POST':
286 if request.method=='POST':
287 form = CampaignForm(request.POST, instance=campaign)
287 form = CampaignForm(request.POST, instance=campaign)
288
288
289 if form.is_valid():
289 if form.is_valid():
290 form.save()
290 form.save()
291 return redirect('url_campaign', id_camp=id_camp)
291 return redirect('url_campaign', id_camp=id_camp)
292
292
293 kwargs = {}
293 kwargs = {}
294 kwargs['form'] = form
294 kwargs['form'] = form
295 kwargs['title'] = 'Campaign'
295 kwargs['title'] = 'Campaign'
296 kwargs['suptitle'] = 'Edit'
296 kwargs['suptitle'] = 'Edit'
297 kwargs['button'] = 'Update'
297 kwargs['button'] = 'Update'
298
298
299 return render(request, 'campaign_edit.html', kwargs)
299 return render(request, 'campaign_edit.html', kwargs)
300
300
301 def campaign_delete(request, id_camp):
301 def campaign_delete(request, id_camp):
302
302
303 campaign = get_object_or_404(Campaign, pk=id_camp)
303 campaign = get_object_or_404(Campaign, pk=id_camp)
304
304
305 if request.method=='POST':
305 if request.method=='POST':
306 if request.user.is_staff:
306 if request.user.is_staff:
307 campaign.delete()
307 campaign.delete()
308 return redirect('url_campaigns')
308 return redirect('url_campaigns')
309
309
310 return HttpResponse("Not enough permission to delete this object")
310 return HttpResponse("Not enough permission to delete this object")
311
311
312 kwargs = {'object':campaign, 'camp_active':'active',
312 kwargs = {'object':campaign, 'camp_active':'active',
313 'url_cancel':'url_campaign', 'id_item':id_camp}
313 'url_cancel':'url_campaign', 'id_item':id_camp}
314
314
315 return render(request, 'item_delete.html', kwargs)
315 return render(request, 'item_delete.html', kwargs)
316
316
317 def experiments(request):
317 def experiments(request):
318
318
319 experiment_list = Experiment.objects.all().order_by('campaign')
319 experiment_list = Experiment.objects.all().order_by('campaign')
320
320
321 keys = ['id', 'name', 'start_time', 'end_time', 'campaign']
321 keys = ['id', 'name', 'start_time', 'end_time', 'campaign']
322
322
323 kwargs = {}
323 kwargs = {}
324
324
325 kwargs['experiment_keys'] = keys[1:]
325 kwargs['experiment_keys'] = keys[1:]
326 kwargs['experiments'] = experiment_list#.values(*keys)
326 kwargs['experiments'] = experiment_list#.values(*keys)
327
327
328 kwargs['title'] = 'Experiment'
328 kwargs['title'] = 'Experiment'
329 kwargs['suptitle'] = 'List'
329 kwargs['suptitle'] = 'List'
330 kwargs['button'] = 'New Experiment'
330 kwargs['button'] = 'New Experiment'
331
331
332 return render(request, 'experiments.html', kwargs)
332 return render(request, 'experiments.html', kwargs)
333
333
334 def experiment(request, id_exp):
334 def experiment(request, id_exp):
335
335
336 experiment = get_object_or_404(Experiment, pk=id_exp)
336 experiment = get_object_or_404(Experiment, pk=id_exp)
337
337
338 experiments = Experiment.objects.filter(campaign=experiment.campaign)
338 experiments = Experiment.objects.filter(campaign=experiment.campaign)
339 configurations = Configuration.objects.filter(experiment=experiment, type=0)
339 configurations = Configuration.objects.filter(experiment=experiment, type=0)
340
340
341 kwargs = {}
341 kwargs = {}
342
342
343 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
343 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
344 conf_keys = ['id', 'device__name', 'device__device_type', 'device__ip_address', 'device__port_address']
344 conf_keys = ['id', 'device__name', 'device__device_type', 'device__ip_address', 'device__port_address']
345
345
346 conf_labels = ['id', 'device__name', 'device_type', 'ip_address', 'port_address']
346 conf_labels = ['id', 'device__name', 'device_type', 'ip_address', 'port_address']
347
347
348 kwargs['experiment_keys'] = exp_keys[1:]
348 kwargs['experiment_keys'] = exp_keys[1:]
349 kwargs['experiment'] = experiment
349 kwargs['experiment'] = experiment
350
350
351 kwargs['experiments'] = experiments.values(*exp_keys)
351 kwargs['experiments'] = experiments.values(*exp_keys)
352
352
353 kwargs['configuration_labels'] = conf_labels[1:]
353 kwargs['configuration_labels'] = conf_labels[1:]
354 kwargs['configuration_keys'] = conf_keys[1:]
354 kwargs['configuration_keys'] = conf_keys[1:]
355 kwargs['configurations'] = configurations #.values(*conf_keys)
355 kwargs['configurations'] = configurations #.values(*conf_keys)
356
356
357 kwargs['title'] = 'Experiment'
357 kwargs['title'] = 'Experiment'
358 kwargs['suptitle'] = 'Details'
358 kwargs['suptitle'] = 'Details'
359
359
360 kwargs['button'] = 'Add Configuration'
360 kwargs['button'] = 'Add Configuration'
361
361
362 return render(request, 'experiment.html', kwargs)
362 return render(request, 'experiment.html', kwargs)
363
363
364 def experiment_new(request, id_camp=0):
364 def experiment_new(request, id_camp=0):
365
365
366 if request.method == 'GET':
366 if request.method == 'GET':
367 form = ExperimentForm(initial={'campaign':id_camp})
367 form = ExperimentForm(initial={'campaign':id_camp})
368
368
369 if request.method == 'POST':
369 if request.method == 'POST':
370 form = ExperimentForm(request.POST, initial={'campaign':id_camp})
370 form = ExperimentForm(request.POST, initial={'campaign':id_camp})
371
371
372 if form.is_valid():
372 if form.is_valid():
373 experiment = form.save()
373 experiment = form.save()
374 return redirect('url_experiment', id_exp=experiment.id)
374 return redirect('url_experiment', id_exp=experiment.id)
375
375
376 kwargs = {}
376 kwargs = {}
377 kwargs['form'] = form
377 kwargs['form'] = form
378 kwargs['title'] = 'Experiment'
378 kwargs['title'] = 'Experiment'
379 kwargs['suptitle'] = 'New'
379 kwargs['suptitle'] = 'New'
380 kwargs['button'] = 'Create'
380 kwargs['button'] = 'Create'
381
381
382 return render(request, 'experiment_edit.html', kwargs)
382 return render(request, 'experiment_edit.html', kwargs)
383
383
384 def experiment_edit(request, id_exp):
384 def experiment_edit(request, id_exp):
385
385
386 experiment = get_object_or_404(Experiment, pk=id_exp)
386 experiment = get_object_or_404(Experiment, pk=id_exp)
387
387
388 if request.method == 'GET':
388 if request.method == 'GET':
389 form = ExperimentForm(instance=experiment)
389 form = ExperimentForm(instance=experiment)
390
390
391 if request.method=='POST':
391 if request.method=='POST':
392 form = ExperimentForm(request.POST, instance=experiment)
392 form = ExperimentForm(request.POST, instance=experiment)
393
393
394 if form.is_valid():
394 if form.is_valid():
395 experiment = form.save()
395 experiment = form.save()
396 return redirect('url_experiment', id_exp=experiment.id)
396 return redirect('url_experiment', id_exp=experiment.id)
397
397
398 kwargs = {}
398 kwargs = {}
399 kwargs['form'] = form
399 kwargs['form'] = form
400 kwargs['title'] = 'Experiment'
400 kwargs['title'] = 'Experiment'
401 kwargs['suptitle'] = 'Edit'
401 kwargs['suptitle'] = 'Edit'
402 kwargs['button'] = 'Update'
402 kwargs['button'] = 'Update'
403
403
404 return render(request, 'experiment_edit.html', kwargs)
404 return render(request, 'experiment_edit.html', kwargs)
405
405
406 def experiment_delete(request, id_exp):
406 def experiment_delete(request, id_exp):
407
407
408 experiment = get_object_or_404(Experiment, pk=id_exp)
408 experiment = get_object_or_404(Experiment, pk=id_exp)
409
409
410 if request.method=='POST':
410 if request.method=='POST':
411 if request.user.is_staff:
411 if request.user.is_staff:
412 id_camp = experiment.campaign.id
412 id_camp = experiment.campaign.id
413 experiment.delete()
413 experiment.delete()
414 return redirect('url_campaign', id_camp=id_camp)
414 return redirect('url_campaign', id_camp=id_camp)
415
415
416 return HttpResponse("Not enough permission to delete this object")
416 return HttpResponse("Not enough permission to delete this object")
417
417
418 kwargs = {'object':experiment, 'exp_active':'active',
418 kwargs = {'object':experiment, 'exp_active':'active',
419 'url_cancel':'url_experiment', 'id_item':id_exp}
419 'url_cancel':'url_experiment', 'id_item':id_exp}
420
420
421 return render(request, 'item_delete.html', kwargs)
421 return render(request, 'item_delete.html', kwargs)
422
422
423 def dev_confs(request):
423 def dev_confs(request):
424
424
425 configurations = Configuration.objects.all().order_by('type', 'device__device_type', 'experiment')
425 configurations = Configuration.objects.all().order_by('type', 'device__device_type', 'experiment')
426
426
427 # keys = ['id', 'device__device_type__name', 'device__name', 'experiment__campaign__name', 'experiment__name']
427 # keys = ['id', 'device__device_type__name', 'device__name', 'experiment__campaign__name', 'experiment__name']
428
428
429 keys = ['id', 'device', 'experiment', 'type', 'programmed_date']
429 keys = ['id', 'device', 'experiment', 'type', 'programmed_date']
430
430
431 kwargs = {}
431 kwargs = {}
432
432
433 kwargs['configuration_keys'] = keys[1:]
433 kwargs['configuration_keys'] = keys[1:]
434 kwargs['configurations'] = configurations#.values(*keys)
434 kwargs['configurations'] = configurations#.values(*keys)
435
435
436 kwargs['title'] = 'Configuration'
436 kwargs['title'] = 'Configuration'
437 kwargs['suptitle'] = 'List'
437 kwargs['suptitle'] = 'List'
438 kwargs['button'] = 'New Configuration'
438 kwargs['button'] = 'New Configuration'
439
439
440 return render(request, 'dev_confs.html', kwargs)
440 return render(request, 'dev_confs.html', kwargs)
441
441
442 def dev_conf(request, id_conf):
442 def dev_conf(request, id_conf):
443
443
444 conf = get_object_or_404(Configuration, pk=id_conf)
444 conf = get_object_or_404(Configuration, pk=id_conf)
445
445
446 DevConfModel = CONF_MODELS[conf.device.device_type.name]
446 DevConfModel = CONF_MODELS[conf.device.device_type.name]
447 dev_conf = DevConfModel.objects.get(pk=id_conf)
447 dev_conf = DevConfModel.objects.get(pk=id_conf)
448
448
449 kwargs = {}
449 kwargs = {}
450 kwargs['dev_conf'] = dev_conf
450 kwargs['dev_conf'] = dev_conf
451 kwargs['dev_conf_keys'] = ['experiment', 'device']
451 kwargs['dev_conf_keys'] = ['experiment', 'device']
452
452
453 kwargs['title'] = 'Configuration'
453 kwargs['title'] = 'Configuration'
454 kwargs['suptitle'] = 'Details'
454 kwargs['suptitle'] = 'Details'
455
455
456 kwargs['button'] = 'Edit Configuration'
456 kwargs['button'] = 'Edit Configuration'
457
457
458 ###### SIDEBAR ######
458 ###### SIDEBAR ######
459 kwargs.update(sidebar(conf))
459 kwargs.update(sidebar(conf))
460
460
461 return render(request, 'dev_conf.html', kwargs)
461 return render(request, 'dev_conf.html', kwargs)
462
462
463 def dev_conf_new(request, id_exp=0):
463 def dev_conf_new(request, id_exp=0):
464
464
465 if request.method == 'GET':
465 if request.method == 'GET':
466 form = ConfigurationForm(initial={'experiment':id_exp})
466 form = ConfigurationForm(initial={'experiment':id_exp})
467
467
468 if request.method == 'POST':
468 if request.method == 'POST':
469 form = ConfigurationForm(request.POST)
469 form = ConfigurationForm(request.POST)
470
470
471 if form.is_valid():
471 if form.is_valid():
472 experiment = Experiment.objects.get(pk=request.POST['experiment'])
472 experiment = Experiment.objects.get(pk=request.POST['experiment'])
473 device = Device.objects.get(pk=request.POST['device'])
473 device = Device.objects.get(pk=request.POST['device'])
474
474
475 exp_devices = Device.objects.filter(configuration__experiment=experiment,
475 exp_devices = Device.objects.filter(configuration__experiment=experiment,
476 configuration__type=0)
476 configuration__type=0)
477
477
478 if device.id not in exp_devices.values('id',):
478 if device.id not in exp_devices.values('id',):
479
479
480 DevConfModel = CONF_MODELS[device.device_type.name]
480 DevConfModel = CONF_MODELS[device.device_type.name]
481 conf = DevConfModel(experiment=experiment, device=device)
481 conf = DevConfModel(experiment=experiment, device=device)
482 conf.save()
482 conf.save()
483
483
484 return redirect('url_experiment', id_exp=experiment.id)
484 return redirect('url_experiment', id_exp=experiment.id)
485
485
486 kwargs = {}
486 kwargs = {}
487 kwargs['form'] = form
487 kwargs['form'] = form
488 kwargs['title'] = 'Configuration'
488 kwargs['title'] = 'Configuration'
489 kwargs['suptitle'] = 'New'
489 kwargs['suptitle'] = 'New'
490 kwargs['button'] = 'Create'
490 kwargs['button'] = 'Create'
491
491
492 return render(request, 'dev_conf_edit.html', kwargs)
492 return render(request, 'dev_conf_edit.html', kwargs)
493
493
494 def dev_conf_edit(request, id_conf):
494 def dev_conf_edit(request, id_conf):
495
495
496 conf = get_object_or_404(Configuration, pk=id_conf)
496 conf = get_object_or_404(Configuration, pk=id_conf)
497
497
498 DevConfModel = CONF_MODELS[conf.device.device_type.name]
498 DevConfModel = CONF_MODELS[conf.device.device_type.name]
499 DevConfForm = CONF_FORMS[conf.device.device_type.name]
499 DevConfForm = CONF_FORMS[conf.device.device_type.name]
500
500
501 dev_conf = DevConfModel.objects.get(pk=id_conf)
501 dev_conf = DevConfModel.objects.get(pk=id_conf)
502
502
503 if request.method=='GET':
503 if request.method=='GET':
504 form = DevConfForm(instance=dev_conf)
504 form = DevConfForm(instance=dev_conf)
505
505
506 if request.method=='POST':
506 if request.method=='POST':
507 form = DevConfForm(request.POST, instance=dev_conf)
507 form = DevConfForm(request.POST, instance=dev_conf)
508
508
509 if form.is_valid():
509 if form.is_valid():
510 form.save()
510 form.save()
511 return redirect('url_dev_conf', id_conf=id_conf)
511 return redirect('url_dev_conf', id_conf=id_conf)
512
512
513 kwargs = {}
513 kwargs = {}
514 kwargs['form'] = form
514 kwargs['form'] = form
515 kwargs['title'] = 'Device Configuration'
515 kwargs['title'] = 'Device Configuration'
516 kwargs['suptitle'] = 'Edit'
516 kwargs['suptitle'] = 'Edit'
517 kwargs['button'] = 'Update'
517 kwargs['button'] = 'Update'
518
518
519 ###### SIDEBAR ######
519 ###### SIDEBAR ######
520 kwargs.update(sidebar(conf))
520 kwargs.update(sidebar(conf))
521
521
522 return render(request, 'dev_conf_edit.html', kwargs)
522 return render(request, 'dev_conf_edit.html', kwargs)
523
523
524 def dev_conf_read(request, id_conf):
524 def dev_conf_read(request, id_conf):
525
525
526 conf = get_object_or_404(Configuration, pk=id_conf)
526 conf = get_object_or_404(Configuration, pk=id_conf)
527
527
528 messages.error(request, "Read View not implemented yet")
528 messages.error(request, "Read View not implemented yet")
529
529
530 return redirect('url_dev_conf', id_conf=conf.id)
530 return redirect('url_dev_conf', id_conf=conf.id)
531
531
532 def dev_conf_write(request, id_conf):
532 def dev_conf_write(request, id_conf):
533
533
534 conf = get_object_or_404(Configuration, pk=id_conf)
534 conf = get_object_or_404(Configuration, pk=id_conf)
535
535
536 messages.error(request, "Write View not implemented yet")
536 messages.error(request, "Write View not implemented yet")
537
537
538 return redirect('url_dev_conf', id_conf=conf.id)
538 return redirect('url_dev_conf', id_conf=conf.id)
539
539
540 def dev_conf_import(request, id_conf):
540 def dev_conf_import(request, id_conf):
541
541
542 conf = get_object_or_404(Configuration, pk=id_conf)
542 conf = get_object_or_404(Configuration, pk=id_conf)
543
543
544 messages.error(request, "Import View not implemented yet")
544 messages.error(request, "Import View not implemented yet")
545
545
546 return redirect('url_dev_conf', id_conf=conf.id)
546 return redirect('url_dev_conf', id_conf=conf.id)
547
547
548 def dev_conf_export(request, id_conf):
548 def dev_conf_export(request, id_conf):
549
549
550 conf = get_object_or_404(Configuration, pk=id_conf)
550 conf = get_object_or_404(Configuration, pk=id_conf)
551
551
552 messages.error(request, "Export View not implemented yet")
552 messages.error(request, "Export View not implemented yet")
553
553
554 return redirect('url_dev_conf', id_conf=conf.id)
554 return redirect('url_dev_conf', id_conf=conf.id)
555
555
556 def dev_conf_delete(request, id_conf):
556 def dev_conf_delete(request, id_conf):
557
557
558 conf = get_object_or_404(Configuration, pk=id_conf)
558 conf = get_object_or_404(Configuration, pk=id_conf)
559
559
560 if request.method=='POST':
560 if request.method=='POST':
561 if request.user.is_staff:
561 if request.user.is_staff:
562 id_exp = conf.experiment.id
562 id_exp = conf.experiment.id
563 conf.delete()
563 conf.delete()
564 return redirect('url_experiment', id_exp=id_exp)
564 return redirect('url_experiment', id_exp=id_exp)
565
565
566 return HttpResponse("Not enough permission to delete this object")
566 return HttpResponse("Not enough permission to delete this object")
567
567
568 kwargs = {'object':conf, 'conf_active':'active',
568 kwargs = {'object':conf, 'conf_active':'active',
569 'url_cancel':'url_dev_conf', 'id_item':id_conf}
569 'url_cancel':'url_dev_conf', 'id_item':id_conf}
570
570
571 ###### SIDEBAR ######
571 ###### SIDEBAR ######
572 kwargs.update(sidebar(conf))
572 kwargs.update(sidebar(conf))
573
573
574 return render(request, 'item_delete.html', kwargs)
574 return render(request, 'item_delete.html', kwargs)
575
575
576 def sidebar(conf):
576 def sidebar(conf):
577
577
578 experiments = Experiment.objects.filter(campaign=conf.experiment.campaign)
578 experiments = Experiment.objects.filter(campaign=conf.experiment.campaign)
579 configurations = Configuration.objects.filter(experiment=conf.experiment, type=0)
579 configurations = Configuration.objects.filter(experiment=conf.experiment, type=0)
580
580
581 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
581 exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
582 conf_keys = ['id', 'device']
582 conf_keys = ['id', 'device']
583
583
584 kwargs = {}
584 kwargs = {}
585
585
586 kwargs['dev_conf'] = conf
586 kwargs['dev_conf'] = conf
587
587
588 kwargs['experiment_keys'] = exp_keys[1:]
588 kwargs['experiment_keys'] = exp_keys[1:]
589 kwargs['experiments'] = experiments.values(*exp_keys)
589 kwargs['experiments'] = experiments.values(*exp_keys)
590
590
591 kwargs['configuration_keys'] = conf_keys[1:]
591 kwargs['configuration_keys'] = conf_keys[1:]
592 kwargs['configurations'] = configurations #.values(*conf_keys)
592 kwargs['configurations'] = configurations #.values(*conf_keys)
593
593
594 return kwargs
594 return kwargs
595
596
597 def operation(request):
598 pass
599
600
@@ -1,31 +1,32
1 """radarsys URL Configuration
1 """radarsys URL Configuration
2
2
3 The `urlpatterns` list routes URLs to views. For more information please see:
3 The `urlpatterns` list routes URLs to views. For more information please see:
4 https://docs.djangoproject.com/en/1.8/topics/http/urls/
4 https://docs.djangoproject.com/en/1.8/topics/http/urls/
5 Examples:
5 Examples:
6 Function views
6 Function views
7 1. Add an import: from my_app import views
7 1. Add an import: from my_app import views
8 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
8 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
9 Class-based views
9 Class-based views
10 1. Add an import: from other_app.views import Home
10 1. Add an import: from other_app.views import Home
11 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
11 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
12 Including another URLconf
12 Including another URLconf
13 1. Add an import: from blog import urls as blog_urls
13 1. Add an import: from blog import urls as blog_urls
14 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
14 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
15 """
15 """
16 from django.conf.urls import include, url
16 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'),
21 url(r'^admin/', include(admin.site.urls)),
22 url(r'^admin/', include(admin.site.urls)),
22 url(r'^accounts/', include('apps.accounts.urls')),
23 url(r'^accounts/', include('apps.accounts.urls')),
23 url(r'^', include('apps.main.urls')),
24 url(r'^', include('apps.main.urls')),
24 url(r'^rc/', include('apps.rc.urls')),
25 url(r'^rc/', include('apps.rc.urls')),
25 url(r'^dds/', include('apps.dds.urls')),
26 url(r'^dds/', include('apps.dds.urls')),
26 url(r'^cgs/', include('apps.cgs.urls')),
27 url(r'^cgs/', include('apps.cgs.urls')),
27 url(r'^jars/', include('apps.jars.urls')),
28 url(r'^jars/', include('apps.jars.urls')),
28 url(r'^usrp/', include('apps.usrp.urls')),
29 url(r'^usrp/', include('apps.usrp.urls')),
29 url(r'^abs/', include('apps.abs.urls')),
30 url(r'^abs/', include('apps.abs.urls')),
30 url(r'^misc/', include('apps.misc.urls')),
31 url(r'^misc/', include('apps.misc.urls')),
31 ]
32 ]
General Comments 0
You need to be logged in to leave comments. Login now