src/jocondelab/views/front_office.py
changeset 206 16b49f9cd7a8
parent 202 e684e2b830a9
child 209 83b0a734d939
--- a/src/jocondelab/views/front_office.py	Mon Dec 02 17:25:45 2013 +0100
+++ b/src/jocondelab/views/front_office.py	Tue Dec 03 18:30:12 2013 +0100
@@ -20,6 +20,7 @@
 import random
 
 import logging
+from core.models.term import Thesaurus
 logger = logging.getLogger(__name__)
 
 def get_terms_by_thesaurus(notices, lang):
@@ -206,14 +207,30 @@
         
         if self.show_contributions:
             cqs = self.object.contribution_set.select_related('term__dbpedia_fields')
+            if self.template_name == "jocondelab/front_describe.html":
+                # describe mode : get contributions from session history and not from whole database
+                contrib_h = self.request.session.setdefault('contribution_history', {})
+                notice_id = str(self.object.id)
+                if notice_id in contrib_h:
+                    contrib_h = contrib_h[notice_id]
+                else:
+                    contrib_h = []
+                
+                query = cqs.filter(thesaurus=Thesaurus.objects.get(label="REPR"), 
+                                   term__dbpedia_fields__language_code=lang, 
+                                   term__dbpedia_uri__in=contrib_h).order_by('-contribution_count')
+                vote_mode = False
+            else:
+                query = cqs.filter(thesaurus=None,term__dbpedia_fields__language_code=lang).order_by('-contribution_count')
+                vote_mode = True
             contributions = [{
                     "label": ct.term.dbpedia_fields.get(language_code=lang).label,
                     "dbpedia_uri": ct.term.dbpedia_uri,
                     "contribution_id": ct.id,
                     "li_style": "positive" if ct.contribution_count > 0 else "null",
                     "font_size": "%.1f"%(12. + .5 * max(0., min(12., ct.contribution_count))),
-                    "vote_mode": True
-                } for ct in cqs.filter(thesaurus=None,term__dbpedia_fields__language_code=lang).order_by('-contribution_count')]
+                    "vote_mode": vote_mode
+                } for ct in query]
             context["contributions"] = contributions
         
         context['wikipedia_urls'] = json.dumps(settings.WIKIPEDIA_URLS)