Statistics
| Branch: | Tag: | Revision:

root / edumanage / views.py @ f60df981

History | View | Annotate | Download (7 kB)

1
# -*- coding: utf-8 -*- vim:encoding=utf-8:
2
# vim: tabstop=4:shiftwidth=4:softtabstop=4:expandtab
3

    
4
from django.shortcuts import render_to_response,get_object_or_404
5
from django.http import HttpResponse,HttpResponseRedirect,Http404
6
from django.template import RequestContext
7
from django.core.urlresolvers import reverse
8
from django.contrib.auth.decorators import login_required
9
from edumanage.models import *
10
from edumanage.forms import *
11
from django import forms
12

    
13
def index(request):
14
    return render_to_response('base.html', context_instance=RequestContext(request))
15

    
16
@login_required
17
def manage(request):
18
    services_list = []
19
    servers_list = []
20
    user = request.user
21
    try:
22
        profile = user.get_profile()
23
        inst = profile.institution
24
    except UserProfile.DoesNotExist:
25
        inst = False
26
    services = ServiceLoc.objects.filter(institutionid=inst)
27
    services_list.extend([s for s in services])
28
    servers = InstServer.objects.filter(instid=inst)
29
    servers_list.extend([s for s in servers])
30
    return render_to_response('edumanage/welcome.html', 
31
                              {
32
                               'institution': inst, 
33
                               'services': services_list,
34
                               'servers': servers_list
35
                               },  
36
                              context_instance=RequestContext(request))
37

    
38
@login_required
39
def institutions(request):
40
    user = request.user
41
    dict = {}
42
    
43
    try:
44
        profile = user.get_profile()
45
        inst = profile.institution
46
        inst.__unicode__ = inst.get_name(request.LANGUAGE_CODE)
47
    except UserProfile.DoesNotExist:
48
        inst = False
49
    dict['institution'] = inst.pk
50
    form = InstDetailsForm(initial=dict)
51
    form.fields['institution'].widget.attrs['readonly'] = True
52
    return render_to_response('edumanage/institution.html', 
53
                              {
54
                               'institution': inst,
55
                               'form': form, 
56
                               },  
57
                              context_instance=RequestContext(request))
58

    
59

    
60

    
61
@login_required
62
def add_institution_details(request, institution_pk):
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"))
74
    if request.method == "GET":
75

    
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
        
86
        return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form},
87
                                  context_instance=RequestContext(request))
88
    elif request.method == 'POST':
89
        request_data = request.POST.copy()
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)
95
        if form.is_valid():
96
            instdets = form.save()
97
            print "SAVED M2M"
98
            return HttpResponseRedirect(reverse("institutions"))
99
        else:
100
            try:
101
                profile = user.get_profile()
102
                inst = profile.institution
103
            except UserProfile.DoesNotExist:
104
                inst = False
105
                form.fields['institution'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=institution_pk), empty_label=None)
106
            return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form},
107
                                  context_instance=RequestContext(request))
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