diff --git a/edumanage/forms.py b/edumanage/forms.py index 4efdc542a0aa75be44bb7a68eb1a01090c5c260c..086a0c1b4d6145543cfcf27f9d6293163ca4d64d 100644 --- a/edumanage/forms.py +++ b/edumanage/forms.py @@ -9,4 +9,10 @@ from django.conf import settings class InstDetailsForm(forms.ModelForm): class Meta: - model = InstitutionDetails \ No newline at end of file + model = InstitutionDetails + + +class ServiceLocForm(forms.ModelForm): + + class Meta: + model = ServiceLoc \ No newline at end of file diff --git a/edumanage/models.py b/edumanage/models.py index fdb600955feb1c75646922c86f094b6a7e75491a..32df8675f23614d8f95ad82a06e8142efe871965 100644 --- a/edumanage/models.py +++ b/edumanage/models.py @@ -261,22 +261,19 @@ class Institution(models.Model): org_name = models.ManyToManyField(Name_i18n) - def __unicode__(self, lang=None): - print "GOT ", lang, "DONE" - return self.get_name(lang) + def __unicode__(self): + return "%s" % ', '.join([i.name for i in self.org_name.all()]) - def get_name(self, lang): - print "GOT name", lang, "DONE" + def get_name(self, lang=None): name = ', '.join([i.name for i in self.org_name.all()]) if not lang: return name else: - try: + try: name = self.org_name.get(lang=lang) return name except Exception as e: - print e return name diff --git a/edumanage/templatetags/tolocale.py b/edumanage/templatetags/tolocale.py index 2949e24eaea61330950215710abedb130e8af1b0..31255c95da40584a4bdbad7c2cc50435960628e0 100644 --- a/edumanage/templatetags/tolocale.py +++ b/edumanage/templatetags/tolocale.py @@ -5,22 +5,20 @@ register = template.Library() @register.filter def do_tolocale(parser, token): - print token try: - tag_name, inst, format_string = token.split_contents() - print inst + tag_name, objtrans, format_string = token.split_contents() except ValueError: raise template.TemplateSyntaxError, "%r tag requires exactly two arguments" % token.contents.split()[0] - return CurrentLocaleNode(inst, format_string) + return CurrentLocaleNode(objtrans, format_string) class CurrentLocaleNode(template.Node): - def __init__(self, inst, format_string): - self.format_string = format_string - self.inst = template.Variable(inst) - print self.format_string, "STING" + def __init__(self, objtrans, format_string): + self.format_string = template.Variable(format_string) + self.objtrans = template.Variable(objtrans) def render(self, context): - inst_pk = self.inst.resolve(context) - return Institution.objects.get(pk=inst_pk).__unicode__(lang=str(self.format_string)) + objtrans = self.objtrans.resolve(context) + translang = self.format_string.resolve(context) + return objtrans.get_name(lang=translang) register.tag('tolocale', do_tolocale) \ No newline at end of file diff --git a/edumanage/views.py b/edumanage/views.py index a0e4c153a16fecfbd1063fdc8f4c344d8b11c29f..74c6380e5f326a8aa35cb170aec051cec8b685b3 100644 --- a/edumanage/views.py +++ b/edumanage/views.py @@ -4,6 +4,7 @@ from django.shortcuts import render_to_response,get_object_or_404 from django.http import HttpResponse,HttpResponseRedirect,Http404 from django.template import RequestContext +from django.core.urlresolvers import reverse from django.contrib.auth.decorators import login_required from edumanage.models import * from edumanage.forms import * @@ -60,30 +61,41 @@ def institutions(request): @login_required def add_institution_details(request, institution_pk): user = request.user + try: + profile = user.get_profile() + inst = profile.institution + except UserProfile.DoesNotExist: + inst = False + + if (not inst) or (int(inst.pk) != int(institution_pk)): + # messages.add_message(request, messages.WARNING, + # _("Insufficient rights on Institution. Contact your administrator")) + return HttpResponseRedirect(reverse("institutions")) if request.method == "GET": - try: - profile = user.get_profile() - inst = profile.institution - except UserProfile.DoesNotExist: - inst = False - - if (not inst) or (int(inst.pk) != int(institution_pk)): -# messages.add_message(request, messages.WARNING, -# _("Insufficient rights on Institution. Contact your administrator")) - return HttpResponseRedirect(reverse("institution")) - form = InstDetailsForm() - form.fields['institution'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=institution_pk), empty_label=None) + # Determine add or edit + request_data = request.POST.copy() + try: + inst_details = InstitutionDetails.objects.get(institution=inst) + form = InstDetailsForm(instance=inst_details) + except InstitutionDetails.DoesNotExist: + form = InstDetailsForm() + form.fields['institution'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=institution_pk), empty_label=None) + + return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, context_instance=RequestContext(request)) elif request.method == 'POST': request_data = request.POST.copy() - form = InstDetailsForm(request_data) + try: + inst_details = InstitutionDetails.objects.get(institution=inst) + form = InstDetailsForm(request_data, instance=inst_details) + except InstitutionDetails.DoesNotExist: + form = InstDetailsForm(request_data) if form.is_valid(): - instdets = form.save(commit=False) - instdets.save() - form.save_m2m() - return HttpResponseRedirect(reverse("institution")) + instdets = form.save() + print "SAVED M2M" + return HttpResponseRedirect(reverse("institutions")) else: try: profile = user.get_profile() @@ -94,3 +106,76 @@ def add_institution_details(request, institution_pk): return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, context_instance=RequestContext(request)) + +@login_required +def services(request): + user = request.user + dict = {} + + try: + profile = user.get_profile() + inst = profile.institution + except UserProfile.DoesNotExist: + inst = False + try: + services = ServiceLoc.objects.filter(institutionid = inst) + except ServiceLoc.DoesNotExist: + services = False + + + return render_to_response('edumanage/services.html', + { + 'institution': inst, + 'services': services, + }, + context_instance=RequestContext(request)) + + + +@login_required +def add_services(request, service_pk): + user = request.user + try: + profile = user.get_profile() + inst = profile.institution + except UserProfile.DoesNotExist: + inst = False + +# if (not inst) or (int(inst.pk) != int(institution_pk)): +# # messages.add_message(request, messages.WARNING, +# # _("Insufficient rights on Institution. Contact your administrator")) +# return HttpResponseRedirect(reverse("institutions")) + if request.method == "GET": + + # Determine add or edit + request_data = request.POST.copy() + try: + service = ServiceLoc.objects.get(institutionid=inst, pk=service_pk) + form = ServiceLocForm(instance=service) + except ServiceLoc.DoesNotExist: + form = ServiceLocForm() + form.fields['institutionid'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=inst.pk), empty_label=None) + + + return render_to_response('edumanage/services_edit.html', { 'form': form}, + context_instance=RequestContext(request)) + elif request.method == 'POST': + request_data = request.POST.copy() + try: + service = ServiceLoc.objects.get(institutionid=inst, pk=service_pk) + form = ServiceLocForm(request_data, instance=service) + except ServiceLoc.DoesNotExist: + form = ServiceLocForm(request_data) + if form.is_valid(): + srvcs = form.save() + return HttpResponseRedirect(reverse("services")) + else: + try: + profile = user.get_profile() + inst = profile.institution + except UserProfile.DoesNotExist: + inst = False + form.fields['institutionid'] = forms.ModelChoiceField(queryset=Institution.objects.filter(pk=inst.pk), empty_label=None) + return render_to_response('edumanage/institution_edit.html', { 'institution': inst, 'form': form}, + context_instance=RequestContext(request)) + diff --git a/templates/edumanage/institution.html b/templates/edumanage/institution.html index b0802f315fd55cb91eb0c42d547a6ab1a65264db..a2e519bb4eb722fac06cc86fec75b2458eee1da0 100644 --- a/templates/edumanage/institution.html +++ b/templates/edumanage/institution.html @@ -29,9 +29,18 @@
{{institution}}
+{% tolocale institution LANGUAGE_CODE%}
{% else %}No institution defined!
{% endif %}