[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