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>&copy; 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>&copy; 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