[cpif] r102 - trunk/backend

svn at argo.es svn at argo.es
Thu May 24 19:32:18 CEST 2007


Author: jcea
Date: Thu May 24 19:32:18 2007
New Revision: 102

Log:
Ahora que paginamos los mensajes de un hilo, ya no basta
con entrar en un hilo para marcarlo como leido. Tenemos
que asegurarnos de que hemos visto el ultimo mensaje.



Modified:
   trunk/backend/database.py

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Thu May 24 19:32:18 2007
@@ -231,21 +231,26 @@
         "TS creacion":hilo["TS creacion"]}
 
   u=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
-  if hilo_num in u["punto de lectura no leidos"] :
-    del u["punto de lectura no leidos"][hilo_num]
-  u["punto de lectura"][hilo_num]=hilo["mensajes"].get_max_item()[0]
 
   mensajes=[]
   i=thread_len
   pr=hilo["numeros"].get(primer_mensaje,None)
   if not pr : return None,None,None
   for msg_num,msg in hilo["mensajes"].items_from(pr) :
-    msg=msg[1]
+    posicion,msg=msg
     mensajes.append((msg_num,msg["autor"],msg["TS"],msg["texto"]))
     i-=1
     if not i : break
 
-  return (meta,mensajes,primer_mensaje+thread_len>hilo["num_mensajes"])
+  finished=posicion>=hilo["num_mensajes"]
+  if u["punto de lectura"][hilo_num]<msg_num :
+    u["punto de lectura"][hilo_num]=msg_num
+    nl=u["punto de lectura no leidos"].get(hilo_num)
+    if nl and (nl<=msg_num) :
+      if finished : del u["punto de lectura no leidos"][hilo_num]
+      else : u["punto de lectura no leidos"][hilo_num]=msg_num
+
+  return (meta,mensajes,finished)
 
 # Marcamos como leidos los hilos que estamos
 # viendo en pantalla. Si hay mensajes adicionales



More information about the cpif mailing list