]> git.parisson.com Git - teleforma.git/commitdiff
try bugfix
authorGuillaume Pellerin <yomguy@parisson.com>
Sun, 20 Jul 2014 19:00:44 +0000 (21:00 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Sun, 20 Jul 2014 19:00:44 +0000 (21:00 +0200)
teleforma/views/pro.py

index 3350535334a9f1449acfe5c3c8bc4441236e0895..cfa9feac488db93e84355dff91ff7ee6a70278e0 100644 (file)
@@ -100,10 +100,10 @@ def render_to_pdf(request, template, context, filename=None, encoding='utf-8',
 
 
 def set_revision(user, seminar):
-    revisions = SeminarRevision.objects.filter(user=user, date__gte=REVISION_DATE_FILTER, date_modified=None)
-    if revisions:
-        if not revisions[0].seminar == seminar:
-            revisions = SeminarRevision.objects.filter(seminar=seminar, user=user, date__gte=REVISION_DATE_FILTER, date_modified=None)
+    all_revisions = SeminarRevision.objects.filter(user=user, date__gte=REVISION_DATE_FILTER, date_modified=None)
+    if all_revisions:
+        if not all_revisions[0].seminar == seminar:
+            revisions = all_revisions.filter(seminar=seminar)
             if revisions:
                 r = revisions[0]
                 now = datetime.datetime.now()
@@ -131,14 +131,31 @@ class SeminarAccessMixin(object):
     def seminar_load(request, id, username):
         seminar = Seminar.objects.get(id=id)
         user = User.objects.get(username=username)
-        r = SeminarRevision(seminar=seminar, user=user)
-        set_revision(user, seminar)
+        all_revisions = SeminarRevision.objects.filter(user=user, date__gte=REVISION_DATE_FILTER, date_modified=None)
+        if all_revisions:
+            if not all_revisions[0].seminar == seminar:
+                revisions = all_revisions.filter(seminar=seminar)
+                if not revisions:
+                    r = SeminarRevision(seminar=seminar, user=user)
+                    r.save()
+        else:
+            r = SeminarRevision(seminar=seminar, user=user)
+            r.save()
 
     @jsonrpc_method('teleforma.seminar_unload')
     def seminar_unload(request, id, username):
         seminar = Seminar.objects.get(id=id)
         user = User.objects.get(username=username)
-        set_revision(user, seminar)
+        all_revisions = SeminarRevision.objects.filter(user=user, date__gte=REVISION_DATE_FILTER, date_modified=None)
+        if all_revisions:
+            if not all_revisions[0].seminar == seminar:
+                revisions = all_revisions.filter(seminar=seminar)
+                if revisions:
+                    r = revisions[0]
+                    now = datetime.datetime.now()
+                    if (now - r.date) > datetime.timedelta(seconds = 1):
+                        r.date_modified = now
+                        r.save()
 
 class SeminarView(SeminarAccessMixin, DetailView):