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 |