[cpif] r116 - in trunk: . backend frontend-web

svn at argo.es svn at argo.es
Tue Jun 5 19:56:29 CEST 2007


Author: jcea
Date: Tue Jun  5 19:56:28 2007
New Revision: 116

Log:
En total tendremos dos metatags. Adicionalmente,
podemos marcar un metatag completo como leido.

Falta actualizar el "skin" para incorporar
los cambios ocasionados por los metatags (por
ejemplo, los enlaces o la pagina de entrada)
y podemos dar este milestone como zanjado.



Modified:
   trunk/TODO
   trunk/backend/database.py
   trunk/frontend-web/init.py
   trunk/frontend-web/url_.py
   trunk/frontend-web/url_indice.py
   trunk/frontend-web/url_todo_leido.py

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Tue Jun  5 19:56:28 2007
@@ -76,3 +76,11 @@
   mecanismo de control de acceso. Es decir, ahi
   apareceran los metatags a los que tenemos acceso.
 
+- 20070605: Cuando se crea un metatag nuevo, es obligatorio
+  que haya algun hilo dentro. Si se pudiesen mover o borrar
+  hilos, un metatag nunca debe quedarse vacio.
+
+- 20070605: Cuando marcamos un metatag como leido, los hilos
+  que estan en multiples metatags deben marcarse como leidos
+  en todos ellos.
+

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Tue Jun  5 19:56:28 2007
@@ -134,6 +134,7 @@
 
 def metatag_add(conn,nombre) :
   from durus.btree import BTree
+  from durus.persistent_dict import PersistentDict
 
   root=conn.get_root()
   metatags=root["metatags"]
@@ -142,7 +143,7 @@
   metatags["metatags"][num_mt]=PersistentDict({"nombre":nombre,"num_hilos":0,"TS2hilo":BTree()})
 
   for usuario in root["usuarios"]["usuarios"].itervalues() :
-    usuarios["punto de lectura no leidos"][num_mt]=BTree()
+    usuario["punto de lectura no leidos"][num_mt]=BTree()
 
   return num_mt
   
@@ -234,7 +235,7 @@
         posicion_hilos_no_leidos[metatag][hilo]=ultimo
   usuario["ultimo mensaje conocido"]=root["mensajes"]["num_mensajes"]
 
-def listado_hilos_personal(conn,usuario,ts,ts2,metatag=0) :
+def listado_hilos_personal(conn,usuario,ts,ts2,metatag) :
   root=conn.get_root()
   hilos=root["hilos"]["hilos"]
   usuario=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
@@ -297,7 +298,7 @@
 # viendo en pantalla. Si hay mensajes adicionales
 # que todavia no hemos visualizado en el indice,
 # los mantenemos como "no leidos".
-def marca_todo_leido(conn,usuario,metatag=0) :
+def marca_todo_leido(conn,usuario,metatag) :
   usuario=conn.get_root()["usuarios"]["usuarios"][normaliza_nick(usuario)]
   posicion_hilos_no_leidos=usuario["punto de lectura no leidos"][metatag]
   posicion_hilos=usuario["punto de lectura"]

Modified: trunk/frontend-web/init.py
==============================================================================
--- trunk/frontend-web/init.py	(original)
+++ trunk/frontend-web/init.py	Tue Jun  5 19:56:28 2007
@@ -63,6 +63,13 @@
       v=database.metatag_add(conn,"Varios")
       assert v==0
 
+    if conn.get_root()["metatags"]["num_metatags"]==1 :
+      v=database.metatag_add(conn,"General")
+      assert v==1
+
+    if not conn.get_root()["metatags"]["metatags"][1]["TS2hilo"] :
+      database.mensaje_add(conn,".","master",titulo="No puede haber metatags vacios",metatag=1)
+
     num_hilos=conn.get_root()["hilos"]["num_hilos"]
     if not num_hilos :
       import time,random
@@ -76,7 +83,7 @@
       t=time.time
       time.time=time2
       for i in xrange(1,len(ts)+1) :
-        database.mensaje_add(conn,"Cuerpo del hilo %d" %i,r.sample(usuarios,1)[0],titulo="Hilo %d" %i)
+        database.mensaje_add(conn,"Cuerpo del hilo %d" %i,r.sample(usuarios,1)[0],titulo="Hilo %d" %i,metatag=0)
       time.time=t
 
   inicializa(masterkey=sys.argv[1])

Modified: trunk/frontend-web/url_.py
==============================================================================
--- trunk/frontend-web/url_.py	(original)
+++ trunk/frontend-web/url_.py	Tue Jun  5 19:56:28 2007
@@ -1,4 +1,4 @@
-# $Id$
+# $Id: url_todo_leido.py 54 2007-05-19 19:33:33Z jcea $
 
 from globales import monitor
 
@@ -11,7 +11,6 @@
   l=[]
   for i,j in root["metatags"]["metatags"].iteritems() :
     l.append("<p><a href='/indice/%d'>%s%s</a>" %(i,j["nombre"]," - NO LEIDO" if plnl[i] else ""))
-    print plnl[i].items()
   return (200,"text/html; charset=utf-8",
 """<html><body>
 %s

Modified: trunk/frontend-web/url_indice.py
==============================================================================
--- trunk/frontend-web/url_indice.py	(original)
+++ trunk/frontend-web/url_indice.py	Tue Jun  5 19:56:28 2007
@@ -64,7 +64,7 @@
 
   while (num_hilos<50) and (fecha>=fecha_min) :
     ts2=timegm(fecha)
-    h=database.listado_hilos_personal(conn,usuario,ts,ts2)
+    h=database.listado_hilos_personal(conn,usuario,ts,ts2,metatag=metatag)
     l=len(h)
     if l :
       d["threads"].append((ts2,[(

Modified: trunk/frontend-web/url_todo_leido.py
==============================================================================
--- trunk/frontend-web/url_todo_leido.py	(original)
+++ trunk/frontend-web/url_todo_leido.py	Tue Jun  5 19:56:28 2007
@@ -5,6 +5,12 @@
 @monitor
 def gestiona_url(conn,handler,path,usuario) :
   import database
-  database.marca_todo_leido(conn,usuario)
+  if len(path)!=2 : return None
+  try :
+    metatag=int(path[1])
+    assert metatag in conn.get_root()["usuarios"]["usuarios"][usuario]["punto de lectura no leidos"]
+  except :
+    return None
+  database.marca_todo_leido(conn,usuario,metatag)
   return (302,"/","")
 



More information about the cpif mailing list