--- 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