src/p4l/views.py
changeset 34 cfc090f440d0
parent 33 945b144d68c1
child 35 544bc92e6fe7
equal deleted inserted replaced
33:945b144d68c1 34:cfc090f440d0
     5 @author: tc
     5 @author: tc
     6 '''
     6 '''
     7 
     7 
     8 from django.conf import settings
     8 from django.conf import settings
     9 from django.contrib.auth.decorators import login_required
     9 from django.contrib.auth.decorators import login_required
    10 from django.shortcuts import get_object_or_404
       
    11 from django.utils.decorators import method_decorator
    10 from django.utils.decorators import method_decorator
    12 from django.views.generic import ListView, DetailView, TemplateView
    11 from django.views.generic import ListView, DetailView
    13 from p4l.forms import RecordFilterForm
    12 from p4l.forms import RecordFilterForm
    14 from p4l.models import Record
    13 from p4l.models import Record
    15 from p4l.utils import get_labels_for_uris
    14 from p4l.utils import get_labels_for_uris
       
    15 import json
    16 import logging
    16 import logging
    17 
    17 
    18 
    18 
    19 logger = logging.getLogger(__name__)
    19 logger = logging.getLogger(__name__)
    20 
    20 
   106             uris_labels = get_labels_for_uris(uri_list, "http://www.iiep.unesco.org/plan4learning/scheme/DocumentType", lang, False)
   106             uris_labels = get_labels_for_uris(uri_list, "http://www.iiep.unesco.org/plan4learning/scheme/DocumentType", lang, False)
   107             context['recordType_label'] = uris_labels[self.object.recordType]
   107             context['recordType_label'] = uris_labels[self.object.recordType]
   108         
   108         
   109         return context
   109         return context
   110 
   110 
   111 class RecordEditView(TemplateView):
   111 class RecordEditView(DetailView):
   112     http_method_names = ['get']
   112     http_method_names = ['get']
   113     template_name = 'p4l/record_update_form.html'
   113     template_name = 'p4l/record_update_form.html'
       
   114     model = Record
       
   115     slug_field = "identifier"
       
   116     slug_url_kwarg = "id"
   114 
   117 
       
   118     def get_context_data(self, **kwargs):
       
   119         context = DetailView.get_context_data(self, **kwargs)
       
   120         # We get the language, "fr" by default
       
   121         lang = "fr"
       
   122         if "lang" in self.request.GET:
       
   123             lang = self.request.GET["lang"]
       
   124         elif hasattr(self.request, "LANGUAGE_CODE") and self.request.LANGUAGE_CODE in ["fr","en","es"]:
       
   125             lang = self.request.LANGUAGE_CODE
       
   126         
       
   127         uri_labels = get_labels_for_uris([s.uri for s in self.object.subjects.all()], "http://skos.um.es/unescothes/CS000", lang, False)
       
   128         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.themes.all()], "http://www.iiep.unesco.org/plan4learning/scheme/Themes", lang, False))
       
   129         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.countries.all()], "http://skos.um.es/unescothes/CS000/Countries", lang, False))
       
   130         uri_labels.update(get_labels_for_uris([self.object.language.uri] if self.object.language else [], "http://www.iiep.unesco.org/plan4learning/scheme/Languages", lang, False))
       
   131         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.otherLanguages.all()], "http://www.iiep.unesco.org/plan4learning/scheme/Languages", lang, False))
       
   132         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.projectNames.all()], "http://www.iiep.unesco.org/plan4learning/scheme/Projects", None, True))
       
   133         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.subjectCorporateBodies.all()], "http://www.iiep.unesco.org/plan4learning/scheme/Organizations", None, True))
       
   134         uri_labels.update(get_labels_for_uris([s.uri for s in self.object.corporateAuthors.all()], "http://www.iiep.unesco.org/plan4learning/scheme/Organizations", None, True))
       
   135         uri_labels.update(get_labels_for_uris([self.object.recordType] if self.object.recordType else [], "http://www.iiep.unesco.org/plan4learning/scheme/DocumentType", lang, False))
       
   136 
       
   137         context['uri_labels'] = json.dumps(uri_labels)
       
   138         
       
   139         return context
       
   140         
       
   141