Revision f60df981
b/edumanage/forms.py | ||
---|---|---|
9 | 9 |
class InstDetailsForm(forms.ModelForm): |
10 | 10 |
|
11 | 11 |
class Meta: |
12 |
model = InstitutionDetails |
|
12 |
model = InstitutionDetails |
|
13 |
|
|
14 |
|
|
15 |
class ServiceLocForm(forms.ModelForm): |
|
16 |
|
|
17 |
class Meta: |
|
18 |
model = ServiceLoc |
b/edumanage/models.py | ||
---|---|---|
261 | 261 |
org_name = models.ManyToManyField(Name_i18n) |
262 | 262 |
|
263 | 263 |
|
264 |
def __unicode__(self, lang=None): |
|
265 |
print "GOT ", lang, "DONE" |
|
266 |
return self.get_name(lang) |
|
264 |
def __unicode__(self): |
|
265 |
return "%s" % ', '.join([i.name for i in self.org_name.all()]) |
|
267 | 266 |
|
268 | 267 |
|
269 |
def get_name(self, lang): |
|
270 |
print "GOT name", lang, "DONE" |
|
268 |
def get_name(self, lang=None): |
|
271 | 269 |
name = ', '.join([i.name for i in self.org_name.all()]) |
272 | 270 |
if not lang: |
273 | 271 |
return name |
274 | 272 |
else: |
275 |
try:
|
|
273 |
try: |
|
276 | 274 |
name = self.org_name.get(lang=lang) |
277 | 275 |
return name |
278 | 276 |
except Exception as e: |
279 |
print e |
|
280 | 277 |
return name |
281 | 278 |
|
282 | 279 |
|
b/edumanage/templatetags/tolocale.py | ||
---|---|---|
5 | 5 |
|
6 | 6 |
@register.filter |
7 | 7 |
def do_tolocale(parser, token): |
8 |
print token |
|
9 | 8 |
try: |
10 |
tag_name, inst, format_string = token.split_contents() |
|
11 |
print inst |
|
9 |
tag_name, objtrans, format_string = token.split_contents() |
|
12 | 10 |
except ValueError: |
13 | 11 |
raise template.TemplateSyntaxError, "%r tag requires exactly two arguments" % token.contents.split()[0] |
14 |
return CurrentLocaleNode(inst, format_string)
|
|
12 |
return CurrentLocaleNode(objtrans, format_string)
|
|
15 | 13 |
|
16 | 14 |
|
17 | 15 |
class CurrentLocaleNode(template.Node): |
18 |
def __init__(self, inst, format_string): |
|
19 |
self.format_string = format_string |
|
20 |
self.inst = template.Variable(inst) |
|
21 |
print self.format_string, "STING" |
|
16 |
def __init__(self, objtrans, format_string): |
|
17 |
self.format_string = template.Variable(format_string) |
|
18 |
self.objtrans = template.Variable(objtrans) |
|
22 | 19 |
def render(self, context): |
23 |
inst_pk = self.inst.resolve(context) |
|
24 |
return Institution.objects.get(pk=inst_pk).__unicode__(lang=str(self.format_string)) |
|
20 |
objtrans = self.objtrans.resolve(context) |
|
21 |
translang = self.format_string.resolve(context) |
|
22 |
return objtrans.get_name(lang=translang) |
|
25 | 23 |
|
26 | 24 |
register.tag('tolocale', do_tolocale) |
b/edumanage/views.py | ||
---|---|---|
4 | 4 |
from django.shortcuts import render_to_response,get_object_or_404 |
5 | 5 |
from django.http import HttpResponse,HttpResponseRedirect,Http404 |
6 | 6 |
from django.template import RequestContext |
7 |
from django.core.urlresolvers import reverse |
|
7 | 8 |
from django.contrib.auth.decorators import login_required |
8 | 9 |
from edumanage.models import * |
9 | 10 |
from edumanage.forms import * |
... | ... | |
60 | 61 |
@login_required |
61 | 62 |
def add_institution_details(request, institution_pk): |
62 | 63 |
user = request.user |
64 |
try: |
|
65 |
profile = user.get_profile() |
|
66 |
inst = profile.institution |
|
67 |
except UserProfile.DoesNotExist: |
|
68 |
inst = False |
|
69 |
|
|
70 |
if (not inst) or (int(inst.pk) != int(institution_pk)): |
|
71 |
# messages.add_message(request, messages.WARNING, |
|
72 |
# _("Insufficient rights on Institution. Contact your administrator")) |
|
73 |
return HttpResponseRedirect(reverse("institutions")) |
|
63 | 74 |
if request.method == "GET": |
64 |
try: |
|
65 |
profile = user.get_profile() |
|
66 |
inst = profile.institution |
|
67 |
except UserProfile.DoesNotExist: |
|
68 |
inst = False |
|
69 |
|
|
70 |
if (not inst) or (int(inst.pk) != int(institution_pk)): |
|
71 |
# messages.add_message(request, messages.WARNING, |
|
72 |
# _("Insufficient rights on Institution. Contact your administrator")) |
|
73 |
return HttpResponseRedirect(reverse("institution")) |
|
74 | 75 |
|
75 |
form = InstDetailsForm() |
|
76 |
form.fields['institution'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=institution_pk), empty_label=None) |
|
76 |
# Determine add or edit |
|
77 |
request_data = request.POST.copy() |
|
78 |
try: |
|
79 |
inst_details = InstitutionDetails.objects.get(institution=inst) |
|
80 |
form = InstDetailsForm(instance=inst_details) |
|
81 |
except InstitutionDetails.DoesNotExist: |
|
82 |
form = InstDetailsForm() |
|
83 |
form.fields['institution'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=institution_pk), empty_label=None) |
|
84 |
|
|
85 |
|
|
77 | 86 |
return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, |
78 | 87 |
context_instance=RequestContext(request)) |
79 | 88 |
elif request.method == 'POST': |
80 | 89 |
request_data = request.POST.copy() |
81 |
form = InstDetailsForm(request_data) |
|
90 |
try: |
|
91 |
inst_details = InstitutionDetails.objects.get(institution=inst) |
|
92 |
form = InstDetailsForm(request_data, instance=inst_details) |
|
93 |
except InstitutionDetails.DoesNotExist: |
|
94 |
form = InstDetailsForm(request_data) |
|
82 | 95 |
if form.is_valid(): |
83 |
instdets = form.save(commit=False) |
|
84 |
instdets.save() |
|
85 |
form.save_m2m() |
|
86 |
return HttpResponseRedirect(reverse("institution")) |
|
96 |
instdets = form.save() |
|
97 |
print "SAVED M2M" |
|
98 |
return HttpResponseRedirect(reverse("institutions")) |
|
87 | 99 |
else: |
88 | 100 |
try: |
89 | 101 |
profile = user.get_profile() |
... | ... | |
94 | 106 |
return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, |
95 | 107 |
context_instance=RequestContext(request)) |
96 | 108 |
|
109 |
|
|
110 |
@login_required |
|
111 |
def services(request): |
|
112 |
user = request.user |
|
113 |
dict = {} |
|
114 |
|
|
115 |
try: |
|
116 |
profile = user.get_profile() |
|
117 |
inst = profile.institution |
|
118 |
except UserProfile.DoesNotExist: |
|
119 |
inst = False |
|
120 |
try: |
|
121 |
services = ServiceLoc.objects.filter(institutionid = inst) |
|
122 |
except ServiceLoc.DoesNotExist: |
|
123 |
services = False |
|
124 |
|
|
125 |
|
|
126 |
return render_to_response('edumanage/services.html', |
|
127 |
{ |
|
128 |
'institution': inst, |
|
129 |
'services': services, |
|
130 |
}, |
|
131 |
context_instance=RequestContext(request)) |
|
132 |
|
|
133 |
|
|
134 |
|
|
135 |
@login_required |
|
136 |
def add_services(request, service_pk): |
|
137 |
user = request.user |
|
138 |
try: |
|
139 |
profile = user.get_profile() |
|
140 |
inst = profile.institution |
|
141 |
except UserProfile.DoesNotExist: |
|
142 |
inst = False |
|
143 |
|
|
144 |
# if (not inst) or (int(inst.pk) != int(institution_pk)): |
|
145 |
# # messages.add_message(request, messages.WARNING, |
|
146 |
# # _("Insufficient rights on Institution. Contact your administrator")) |
|
147 |
# return HttpResponseRedirect(reverse("institutions")) |
|
148 |
if request.method == "GET": |
|
149 |
|
|
150 |
# Determine add or edit |
|
151 |
request_data = request.POST.copy() |
|
152 |
try: |
|
153 |
service = ServiceLoc.objects.get(institutionid=inst, pk=service_pk) |
|
154 |
form = ServiceLocForm(instance=service) |
|
155 |
except ServiceLoc.DoesNotExist: |
|
156 |
form = ServiceLocForm() |
|
157 |
form.fields['institutionid'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=inst.pk), empty_label=None) |
|
158 |
|
|
159 |
|
|
160 |
return render_to_response('edumanage/services_edit.html', { 'form': form}, |
|
161 |
context_instance=RequestContext(request)) |
|
162 |
elif request.method == 'POST': |
|
163 |
request_data = request.POST.copy() |
|
164 |
try: |
|
165 |
service = ServiceLoc.objects.get(institutionid=inst, pk=service_pk) |
|
166 |
form = ServiceLocForm(request_data, instance=service) |
|
167 |
except ServiceLoc.DoesNotExist: |
|
168 |
form = ServiceLocForm(request_data) |
|
169 |
if form.is_valid(): |
|
170 |
srvcs = form.save() |
|
171 |
return HttpResponseRedirect(reverse("services")) |
|
172 |
else: |
|
173 |
try: |
|
174 |
profile = user.get_profile() |
|
175 |
inst = profile.institution |
|
176 |
except UserProfile.DoesNotExist: |
|
177 |
inst = False |
|
178 |
form.fields['institutionid'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=inst.pk), empty_label=None) |
|
179 |
return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, |
|
180 |
context_instance=RequestContext(request)) |
|
181 |
|
b/templates/edumanage/institution.html | ||
---|---|---|
29 | 29 |
<h4>Institution</h4> |
30 | 30 |
{% load tolocale %} |
31 | 31 |
{% if institution %} |
32 |
<h5>{% tolocale institution.pk 'el'%}</h5>
|
|
32 |
<h5>{% tolocale institution LANGUAGE_CODE%}</h5>(<a href="{% url edit-institution institution.pk %}">edit</a>)
|
|
33 | 33 |
{% if institution.institutiondetails %} |
34 |
ErType: {{institution.institutiondetails.get_ertype_display}} |
|
34 |
<dl class="dl-horizontal"> |
|
35 |
<dt>ErType</dt><dd>{{institution.institutiondetails.get_ertype_display}}</dd> |
|
36 |
<dt>Adress</dt><dd>{{institution.institutiondetails.address_street}}@{{institution.institutiondetails.address_city}}</dd> |
|
37 |
<dt>Contact</dt>{% if institution.institutiondetails.contact.all %}{% for con in institution.institutiondetails.contact.all %}<dd>{{con}}</dd>{% endfor %}{% else %}<dd>(no contacts)</dd>{% endif %} |
|
38 |
<dt>Url</dt>{% if institution.institutiondetails.url.all %}{% for url in institution.institutiondetails.url.all %}<dd>{{url}}</dd>{% endfor %}{% else %}<dd>(no urls)</dd>{% endif %} |
|
39 |
<dt>oper_name</dt><dd>{{institution.institutiondetails.oper_name}}</dd> |
|
40 |
<dt>Number User</dt><dd>{{institution.institutiondetails.number_user}}</dd> |
|
41 |
<dt>Number Id</dt><dd>{{institution.institutiondetails.number_id}}</dd> |
|
42 |
<dt>Ts</dt><dd>{{institution.institutiondetails.ts}}</dd> |
|
43 |
</dl> |
|
35 | 44 |
{% else %} |
36 | 45 |
<div>No institution details defined yet <a href="{% url edit-institution institution.pk %}">(edit)</a></div> |
37 | 46 |
{% endif %} |
b/templates/edumanage/institution_edit.html | ||
---|---|---|
27 | 27 |
<!--/span--> |
28 | 28 |
<div class="span12"> |
29 | 29 |
<h4>Institution</h4> |
30 |
|
|
31 |
<h5>{{institution}}</h5>
|
|
30 |
{% load tolocale %} |
|
31 |
<h5>{% tolocale institution LANGUAGE_CODE%}</h5>
|
|
32 | 32 |
|
33 | 33 |
|
34 | 34 |
|
b/templates/edumanage/services.html | ||
---|---|---|
1 |
{% extends "base.html"%} |
|
2 |
|
|
3 |
{% block content %} |
|
4 |
<div class="container-fluid"> |
|
5 |
<div class="row-fluid"> |
|
6 |
<div class="span3"> |
|
7 |
<div class="sidebar-nav"> |
|
8 |
<ul class="nav nav-tabs nav-stacked"> |
|
9 |
<li> |
|
10 |
<a href="{% url manage %}">Home</a> |
|
11 |
</li> |
|
12 |
<li> |
|
13 |
<a href="#">Institution</a> |
|
14 |
</li> |
|
15 |
<li class="active"> |
|
16 |
<a href="#">Services</a> |
|
17 |
</li> |
|
18 |
<li> |
|
19 |
<a href="#">Servers</a> |
|
20 |
</li> |
|
21 |
</ul> |
|
22 |
</div><!--/.well --> |
|
23 |
</div><!--/span--> |
|
24 |
|
|
25 |
<div class="span9"> |
|
26 |
<div class="row-fluid"> |
|
27 |
<!--/span--> |
|
28 |
<div class="span12"> |
|
29 |
<h4>Services</h4> |
|
30 |
{% load tolocale %} |
|
31 |
{% if services %} |
|
32 |
{% for service in services %} |
|
33 |
{{service}} |
|
34 |
{% endfor %} |
|
35 |
{% else %} |
|
36 |
<div>No services defined yet <a href="{% url edit-services '2' %}">(edit)</a></div> |
|
37 |
{% endif %} |
|
38 |
</div><!--/span--> |
|
39 |
</div><!--/row--> |
|
40 |
</div><!--/span--> |
|
41 |
</div><!--/row--> |
|
42 |
|
|
43 |
<hr> |
|
44 |
|
|
45 |
<footer> |
|
46 |
<p>© Company 2012</p> |
|
47 |
</footer> |
|
48 |
|
|
49 |
</div><!--/.fluid-container--> |
|
50 |
{% endblock %} |
b/templates/edumanage/services_edit.html | ||
---|---|---|
1 |
{% extends "base.html"%} |
|
2 |
|
|
3 |
{% block content %} |
|
4 |
<div class="container-fluid"> |
|
5 |
<div class="row-fluid"> |
|
6 |
<div class="span3"> |
|
7 |
<div class="sidebar-nav"> |
|
8 |
<ul class="nav nav-tabs nav-stacked"> |
|
9 |
<li> |
|
10 |
<a href="{% url manage %}">Home</a> |
|
11 |
</li> |
|
12 |
<li class="active"> |
|
13 |
<a href="#">Institution</a> |
|
14 |
</li> |
|
15 |
<li> |
|
16 |
<a href="#">Services</a> |
|
17 |
</li> |
|
18 |
<li> |
|
19 |
<a href="#">Servers</a> |
|
20 |
</li> |
|
21 |
</ul> |
|
22 |
</div><!--/.well --> |
|
23 |
</div><!--/span--> |
|
24 |
|
|
25 |
<div class="span9"> |
|
26 |
<div class="row-fluid"> |
|
27 |
<!--/span--> |
|
28 |
<div class="span12"> |
|
29 |
<h4>Services</h4> |
|
30 |
|
|
31 |
<h5>Service...</h5> |
|
32 |
|
|
33 |
|
|
34 |
|
|
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
40 |
|
|
41 |
<form method="POST" class="form-horizontal"> |
|
42 |
|
|
43 |
{% csrf_token %} |
|
44 |
{% if form.non_field_errors %} |
|
45 |
<p class="error"> |
|
46 |
{{ form.non_field_errors}} |
|
47 |
</p> |
|
48 |
{% endif %} |
|
49 |
<div style="display: none"> |
|
50 |
{{form.institutionid}} |
|
51 |
</div> |
|
52 |
|
|
53 |
|
|
54 |
<div class="control-group {% if form.longitude.errors %} error {% endif %}"> |
|
55 |
<label class="control-label" for="id_ertype">Lng</label> |
|
56 |
<div class="controls">{{ form.longitude }} |
|
57 |
{% if form.longitude.errors %} |
|
58 |
<span class="help-inline"> |
|
59 |
{{ form.longitude.errors|join:", " }} |
|
60 |
</span> |
|
61 |
{% endif %} |
|
62 |
<span class="help-block"> {{ form.longitude.help_text }}</span> |
|
63 |
</div> |
|
64 |
</div> |
|
65 |
|
|
66 |
<div class="control-group {% if form.latitude.errors %} error {% endif %}"> |
|
67 |
<label class="control-label" for="id_address_street">Lat</label> |
|
68 |
<div class="controls">{{ form.latitude }} |
|
69 |
{% if form.latitude.errors %} |
|
70 |
<span class="help-inline"> |
|
71 |
{{ form.latitude.errors|join:", " }} |
|
72 |
</span> |
|
73 |
{% endif %} |
|
74 |
<span class="help-block"> {{ form.latitude.help_text }}</span> |
|
75 |
</div> |
|
76 |
</div> |
|
77 |
|
|
78 |
<div class="control-group {% if form.loc_name.errors %} error {% endif %}"> |
|
79 |
<label class="control-label" for="id_address_city">loc_name</label> |
|
80 |
<div class="controls">{{ form.loc_name }} |
|
81 |
{% if form.loc_name.errors %} |
|
82 |
<span class="help-inline"> |
|
83 |
{{ form.loc_name.errors|join:", " }} |
|
84 |
</span> |
|
85 |
{% endif %} |
|
86 |
<span class="help-block"> {{ form.loc_name.help_text }}</span> |
|
87 |
</div> |
|
88 |
</div> |
|
89 |
|
|
90 |
<div class="control-group {% if form.address_street.errors %} error {% endif %}"> |
|
91 |
<label class="control-label" for="id_address_street">Address Street</label> |
|
92 |
<div class="controls">{{ form.address_street }} |
|
93 |
{% if form.address_street.errors %} |
|
94 |
<span class="help-inline"> |
|
95 |
{{ form.address_street.errors|join:", " }} |
|
96 |
</span> |
|
97 |
{% endif %} |
|
98 |
<span class="help-block"> {{ form.address_street.help_text }}</span> |
|
99 |
</div> |
|
100 |
</div> |
|
101 |
|
|
102 |
<div class="control-group {% if form.address_city.errors %} error {% endif %}"> |
|
103 |
<label class="control-label" for="id_address_city">Address City</label> |
|
104 |
<div class="controls">{{ form.address_city }} |
|
105 |
{% if form.address_city.errors %} |
|
106 |
<span class="help-inline"> |
|
107 |
{{ form.address_city.errors|join:", " }} |
|
108 |
</span> |
|
109 |
{% endif %} |
|
110 |
<span class="help-block"> {{ form.address_city.help_text }}</span> |
|
111 |
</div> |
|
112 |
</div> |
|
113 |
|
|
114 |
<div class="control-group {% if form.SSID.errors %} error {% endif %}"> |
|
115 |
<label class="control-label" for="id_url">SSID</label> |
|
116 |
<div class="controls">{{ form.SSID }} |
|
117 |
{% if form.SSID.errors %} |
|
118 |
<span class="help-inline"> |
|
119 |
{{ form.SSID.errors|join:", " }} |
|
120 |
</span> |
|
121 |
{% endif %} |
|
122 |
<span class="help-block"> {{ form.SSID.help_text }}</span> |
|
123 |
</div> |
|
124 |
</div> |
|
125 |
|
|
126 |
<div class="control-group {% if form.enc_level.errors %} error {% endif %}"> |
|
127 |
<label class="control-label" for="id_oper_name">enc_level</label> |
|
128 |
<div class="controls">{{ form.enc_level }} |
|
129 |
{% if form.enc_level.errors %} |
|
130 |
<span class="help-inline"> |
|
131 |
{{ form.enc_level.errors|join:", " }} |
|
132 |
</span> |
|
133 |
{% endif %} |
|
134 |
<span class="help-block"> {{ form.enc_level.help_text }}</span> |
|
135 |
</div> |
|
136 |
</div> |
|
137 |
|
|
138 |
<div class="control-group {% if form.port_restrict.errors %} error {% endif %}"> |
|
139 |
<label class="control-label" for="id_number_user">port_restrict</label> |
|
140 |
<div class="controls">{{ form.port_restrict }} |
|
141 |
{% if form.port_restrict.errors %} |
|
142 |
<span class="help-inline"> |
|
143 |
{{ form.port_restrict.errors|join:", " }} |
|
144 |
</span> |
|
145 |
{% endif %} |
|
146 |
<span class="help-block"> {{ form.port_restrict.help_text }}</span> |
|
147 |
</div> |
|
148 |
</div> |
|
149 |
|
|
150 |
<div class="control-group {% if form.transp_proxy.errors %} error {% endif %}"> |
|
151 |
<label class="control-label" for="id_number_id">transp_proxy</label> |
|
152 |
<div class="controls">{{ form.transp_proxy }} |
|
153 |
{% if form.transp_proxy.errors %} |
|
154 |
<span class="help-inline"> |
|
155 |
{{ form.transp_proxy.errors|join:", " }} |
|
156 |
</span> |
|
157 |
{% endif %} |
|
158 |
<span class="help-block"> {{ form.transp_proxy.help_text }}</span> |
|
159 |
</div> |
|
160 |
</div> |
|
161 |
|
|
162 |
<div class="control-group {% if form.IPv6.errors %} error {% endif %}"> |
|
163 |
<label class="control-label" for="id_number_id">IPv6</label> |
|
164 |
<div class="controls">{{ form.IPv6 }} |
|
165 |
{% if form.IPv6.errors %} |
|
166 |
<span class="help-inline"> |
|
167 |
{{ form.IPv6.errors|join:", " }} |
|
168 |
</span> |
|
169 |
{% endif %} |
|
170 |
<span class="help-block"> {{ form.IPv6.help_text }}</span> |
|
171 |
</div> |
|
172 |
</div> |
|
173 |
|
|
174 |
<div class="control-group {% if form.NAT.errors %} error {% endif %}"> |
|
175 |
<label class="control-label" for="id_number_id">NAT</label> |
|
176 |
<div class="controls">{{ form.NAT }} |
|
177 |
{% if form.NAT.errors %} |
|
178 |
<span class="help-inline"> |
|
179 |
{{ form.NAT.errors|join:", " }} |
|
180 |
</span> |
|
181 |
{% endif %} |
|
182 |
<span class="help-block"> {{ form.NAT.help_text }}</span> |
|
183 |
</div> |
|
184 |
</div> |
|
185 |
|
|
186 |
<div class="control-group {% if form.AP_no.errors %} error {% endif %}"> |
|
187 |
<label class="control-label" for="id_number_id">AP_no</label> |
|
188 |
<div class="controls">{{ form.AP_no }} |
|
189 |
{% if form.AP_no.errors %} |
|
190 |
<span class="help-inline"> |
|
191 |
{{ form.AP_no.errors|join:", " }} |
|
192 |
</span> |
|
193 |
{% endif %} |
|
194 |
<span class="help-block"> {{ form.AP_no.help_text }}</span> |
|
195 |
</div> |
|
196 |
</div> |
|
197 |
|
|
198 |
<div class="control-group {% if form.wired.errors %} error {% endif %}"> |
|
199 |
<label class="control-label" for="id_number_id">wired</label> |
|
200 |
<div class="controls">{{ form.wired }} |
|
201 |
{% if form.wired.errors %} |
|
202 |
<span class="help-inline"> |
|
203 |
{{ form.wired.errors|join:", " }} |
|
204 |
</span> |
|
205 |
{% endif %} |
|
206 |
<span class="help-block"> {{ form.wired.help_text }}</span> |
|
207 |
</div> |
|
208 |
</div> |
|
209 |
|
|
210 |
<div class="control-group {% if form.url.errors %} error {% endif %}"> |
|
211 |
<label class="control-label" for="id_url">URL(s)</label> |
|
212 |
<div class="controls">{{ form.url }} |
|
213 |
{% if form.url.errors %} |
|
214 |
<span class="help-inline"> |
|
215 |
{{ form.url.errors|join:", " }} |
|
216 |
</span> |
|
217 |
{% endif %} |
|
218 |
<span class="help-block"> {{ form.url.help_text }}</span> |
|
219 |
</div> |
|
220 |
</div> |
|
221 |
|
|
222 |
|
|
223 |
<div class="control-group"> |
|
224 |
<div class="controls"> |
|
225 |
<button type="submit" id="applybutton" value="Apply" class="btn btn-large btn-primary"/>Apply</button> |
|
226 |
</div> |
|
227 |
</div> |
|
228 |
</form> |
|
229 |
|
|
230 |
|
|
231 |
|
|
232 |
|
|
233 |
|
|
234 |
|
|
235 |
|
|
236 |
|
|
237 |
|
|
238 |
|
|
239 |
|
|
240 |
|
|
241 |
|
|
242 |
|
|
243 |
|
|
244 |
|
|
245 |
</div><!--/span--> |
|
246 |
</div><!--/row--> |
|
247 |
</div><!--/span--> |
|
248 |
</div><!--/row--> |
|
249 |
|
|
250 |
<hr> |
|
251 |
|
|
252 |
<footer> |
|
253 |
<p>© Company 2012</p> |
|
254 |
</footer> |
|
255 |
|
|
256 |
</div><!--/.fluid-container--> |
|
257 |
{% endblock %} |
b/templates/edumanage/welcome.html | ||
---|---|---|
5 | 5 |
<div class="row-fluid"> |
6 | 6 |
<div class="span3"> |
7 | 7 |
<div class="sidebar-nav"> |
8 |
{% block navbar %} |
|
8 | 9 |
<ul class="nav nav-tabs nav-stacked"> |
9 | 10 |
<li class="active"> |
10 |
<a href="#">Home</a>
|
|
11 |
<a href="{% url manage %}">Home</a>
|
|
11 | 12 |
</li> |
12 | 13 |
<li> |
13 | 14 |
<a href="{% url institutions %}">Institution</a> |
14 | 15 |
</li> |
15 | 16 |
<li> |
16 |
<a href="#">Services</a>
|
|
17 |
<a href="{% url services %}">Services</a>
|
|
17 | 18 |
</li> |
18 | 19 |
<li> |
19 | 20 |
<a href="#">Servers</a> |
20 | 21 |
</li> |
21 | 22 |
</ul> |
23 |
{% endblock %} |
|
22 | 24 |
</div><!--/.well --> |
23 | 25 |
</div><!--/span--> |
24 | 26 |
|
... | ... | |
36 | 38 |
</div><!--/span--> |
37 | 39 |
<div class="span6"> |
38 | 40 |
<h4>Institution</h4> |
41 |
{% load tolocale %} |
|
39 | 42 |
{% if institution %} |
40 |
<p>{{institution}}</p>
|
|
43 |
<p><a href="{% url institutions %}">{% tolocale institution LANGUAGE_CODE%}</a></p>
|
|
41 | 44 |
{% else %} |
42 | 45 |
<p>No institution defined!</p> |
43 | 46 |
{% endif %} |
Also available in: Unified diff