[Oi-commits] r1140 - in trunk: . forum

oi-commits at pardus.org.tr oi-commits at pardus.org.tr
Sat Mar 15 15:23:01 EET 2008


Author: jnmbk
Date: Sat Mar 15 15:23:01 2008
New Revision: 1140

Modified:
   trunk/AUTHORS
   trunk/forum/views.py
Log:
it works better now (thanks Akın)

Modified: trunk/AUTHORS
=================================================================
--- trunk/AUTHORS	(original)
+++ trunk/AUTHORS	Sat Mar 15 15:23:01 2008
@@ -3,11 +3,14 @@
 
 Developers
  Ahmet AYGÜN <ahmet_pardusman.org>
- Eren TÜRKAY <turkay.eren_gmail.com>
+ Akın Ömeroğlu <akin_omeroglu.net>
  Denis Kürov <dkurov_gmail.com>
+ Ekrem Seren <ekrem.seren_gmail.com>
+ Eren TÜRKAY <turkay.eren_gmail.com>
 
 Special Thanks
  Miss Pizza for their delicious pizzas,
  Duran Sandwiches for their delicious sandwiches and tortillas,
  Pardus for subversion service,
- Evim Nargile for hookah.
+ Evim Nargile for hookah,
+ falçata.png (Ahmet knows it).

Modified: trunk/forum/views.py
=================================================================
--- trunk/forum/views.py	(original)
+++ trunk/forum/views.py	Sat Mar 15 15:23:01 2008
@@ -36,8 +36,11 @@
             posts += forum.posts
 
             # read/unread stuff
-            if request.user.is_authenticated() and forum.id in request.session["read_forum_dict"]:
-                if forum.topics == request.session["read_forum_dict"][forum.id]:
+            if request.user.is_authenticated():
+                if forum.id in request.session["read_forum_dict"] and\
+                        forum.forum_latest_post.edited < request.session["read_forum_dict"][forum.id]:
+                    forum.is_read = True
+                elif not forum.forum_latest_post or request.session["last_visit"] > forum.forum_latest_post.edited:
                     forum.is_read = True
                 else:
                     forum.is_read = False
@@ -56,8 +59,12 @@
 
     if request.user.is_authenticated():
         for topic in topics:
-            if topic.topic_latest_post.edited > request.session['last_visit'] or\
-                    topic.id in request.session["read_topic_set"]:
+            if topic.topic_latest_post.edited > request.session['last_visit'] and\
+                    not topic.id in request.session["read_topic_dict"]:
+                topic.is_read = False
+            elif topic.topic_latest_post.edited < request.session['last_visit'] or\
+                    not topic.id in request.session["read_topic_dict"] or\
+                    request.session["read_topic_dict"][topic.id] > topic.topic_latest_post.edited:
                 topic.is_read = True
             else:
                 topic.is_read = False
@@ -79,12 +86,9 @@
     posts = topic.post_set.all().order_by('created')
     news_list = News.objects.filter(status=1).order_by('-update')[:3]
 
-    if request.user.is_authenticated() and not topic.id in request.session["read_topic_set"]:
-        request.session["read_topic_set"].add(topic.id)
-        if not forum.id in request.session["read_forum_dict"]:
-            request.session["read_forum_dict"][forum.id] = 1
-        else:
-            request.session["read_forum_dict"][forum.id] += 1
+    if request.user.is_authenticated():
+        request.session["read_topic_dict"][topic.id] = datetime.now()
+        request.session["read_forum_dict"][forum.id] = datetime.now()
         request.session.modified = True
 
     topic.views += 1
@@ -359,8 +363,8 @@
     if request.user.is_authenticated():
         if not "last_visit" in request.session:
             request.session["last_visit"] = datetime.now()
-        if not "read_topic_set" in request.session:
-            request.session["read_topic_set"] = set()
+        if not "read_topic_dict" in request.session:
+            request.session["read_topic_dict"] = {}
         if not "read_forum_dict" in request.session:
             request.session["read_forum_dict"] = {}
 


More information about the Oi-commits mailing list