src/jocondelab/views/front_office.py
changeset 100 25636bb50756
parent 98 b174c4467f7c
child 101 19de76fe00a9
--- a/src/jocondelab/views/front_office.py	Thu Aug 22 17:20:27 2013 +0200
+++ b/src/jocondelab/views/front_office.py	Fri Aug 23 15:18:43 2013 +0200
@@ -8,7 +8,7 @@
 from core.models import (Notice, Thesaurus, Term)
 from jocondelab.models import DbpediaFields
 from django.conf import settings
-from django.views.generic import View
+from django.views.generic import View, DetailView
 from django.views.generic.base import TemplateResponseMixin
 from django.db.models import Q, Count
 import re
@@ -49,7 +49,7 @@
         starttime = time.time()
         
         context = {}
-        lang = request.GET.get('lang',request.LANGUAGE_CODE)
+        lang = request.GET.get('lang',request.LANGUAGE_CODE)[:2]
         querystr = request.GET.get('q', "")
         search_in_title = request.GET.get('search_in_title', True)
         search_in_translations = request.GET.get('search_in_translations', True)
@@ -79,9 +79,9 @@
             ns = qs.order_by('?')[:npp]
         
         context["lang"] = lang
-        context["rescount"] = nbnotices
+        context["count"] = nbnotices
         context["notices"] = get_notices(ns, lang)
-        context["queryterms"] = querystr
+        context["searchterm"] = querystr
         
         wpp = 50
         if show_tagcloud:
@@ -108,23 +108,22 @@
         
         return self.render_to_response(context)
 
-class NoticeView(View, TemplateResponseMixin):
+class NoticeView(DetailView):
     
+    model = Notice
     template_name = "jocondelab/front_notice.html"
     
-    def get(self, request, notice_id):
+    def get_context_data(self, **kwargs):
         
-        context = {}
-        lang = request.GET.get('lang',request.LANGUAGE_CODE)
-        
-        notice = Notice.objects.get(id=notice_id)
+        context = super(NoticeView, self).get_context_data(**kwargs)
+        lang = self.request.GET.get('lang',self.request.LANGUAGE_CODE)[:2]
         
         context["lang"] = lang
-        context["notice"] = notice
-        context["title"] = notice.titr if notice.titr else notice.deno
-        context["images"] = [i.url for i in notice.images.exclude(relative_url__endswith='v.jpg')]
+        context["images"] = [settings.JOCONDE_IMG_BASE_URL + i.url for i in self.object.images.exclude(relative_url__endswith='v.jpg')]
+        context["title"] = self.object.titr if self.object.titr else self.object.deno
+        
         terms = []
-        for nt in notice.noticeterm_set.select_related('dbpedia_fields').all():
+        for nt in self.object.noticeterm_set.select_related('term__dbpedia_fields').all():
             translated_term = nt.term.dbpedia_fields.filter(language_code = lang)
             termdict = {
                 "label": nt.term.label,
@@ -142,10 +141,9 @@
                    "untranslated": []
                    }
             termsbythesaurus[term["thesaurus"]]["translated" if term["translated"] else "untranslated"].append(term)
-        
+         
         context["terms_by_thesaurus"] = termsbythesaurus
-        context['JOCONDE_IMG_BASE_URL'] = settings.JOCONDE_IMG_BASE_URL
         
-        return self.render_to_response(context)
+        return context
 
     
\ No newline at end of file