[cpif] r297 - in trunk: backend frontend-web

svn at argo.es svn at argo.es
Fri Jul 27 15:14:10 CEST 2007


Author: jcea
Date: Fri Jul 27 15:14:09 2007
New Revision: 297

Log:
Mas soporte de monitorizacion de hilos y metatags.



Modified:
   trunk/backend/database.py
   trunk/frontend-web/skins.py
   trunk/frontend-web/url_hilo.py
   trunk/frontend-web/url_indice.py

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Fri Jul 27 15:14:09 2007
@@ -461,22 +461,20 @@
   usuario=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
 
   no_leidos=usuario["punto de lectura no leidos"][metatag]
+  monitor_hilos=usuario["monitor hilos"]
 
   resultado=[]
 
   for ts,hilo in root["metatags"]["metatags"][metatag]["TS2hilo"].items_range(ts,ts2) :
     hilo_num,hilo=hilo
-    if hilo_num in no_leidos :
-      resultado.append((hilo_num,hilo["titulo"],True))
-    else :
-      resultado.append((hilo_num,hilo["titulo"],False))
+    resultado.append((hilo_num,hilo["titulo"],hilo_num in no_leidos,hilo_num in monitor_hilos))
 
   return resultado
 
 def listado_hilo(conn,usuario,hilo_num,primer_mensaje=1) :
   root=conn.get_root()
   hilo=root["hilos"]["hilos"].get(hilo_num,None)
-  if not hilo : return None,None,None,None,None
+  if not hilo : return None,None,None,None,None,None
 
   meta={"titulo":hilo["titulo"],"creador":hilo["creador"],
         "TS creacion":hilo["TS creacion"]}
@@ -484,12 +482,13 @@
   avatares=root["static"]["avatars"]
   usuarios=root["usuarios"]["usuarios"]
   u=usuarios[normaliza_nick(usuario)]
+  mon=hilo_num in u["monitor hilos"]
 
   num_mensajes=hilo["num_mensajes"]
   mensajes=[]
   i=globales.thread_len
   pr=hilo["numeros"].get(primer_mensaje,None)
-  if not pr : return None,None,None,None,None
+  if not pr : return None,None,None,None,None,None
   iterador_mensajes=hilo["mensajes"].items_from(pr)
   for msg_num,msg in iterador_mensajes :
     posicion,msg=msg
@@ -524,7 +523,7 @@
             plnl[hilo_num]=pnl
 
   mt=root["metatags"]["metatags"]
-  return (meta,mensajes,num_mensajes,finished,[(i,mt[i]["nombre"]) for i in metatags])
+  return (meta,mensajes,num_mensajes,finished,[(i,mt[i]["nombre"]) for i in metatags],mon)
 
 # Marcamos como leidos los hilos que estamos
 # viendo en pantalla. Si hay mensajes adicionales
@@ -546,10 +545,15 @@
 def get_metatags(conn,usuario) :
   metatags=[]
   root=conn.get_root()
-  plnl=root["usuarios"]["usuarios"][normaliza_nick(usuario)]["punto de lectura no leidos"]
+  u=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
+  plnl=u["punto de lectura no leidos"]
+  monitor_metatags=u["monitor metatags"]
   for i,j in root["metatags"]["metatags"].iteritems() :
     plnl2=plnl.get(i)
     if plnl2!=None :
-      metatags.append((i,j["nombre"], True if plnl2 else False))
+      metatags.append((i,j["nombre"], True if plnl2 else False, i in monitor_metatags))
   return metatags
+
+def monitored_metatag(conn,usuario,metatag) :
+  return metatag in conn.get_root()["usuarios"]["usuarios"][normaliza_nick(usuario)]["monitor metatags"]
 

Modified: trunk/frontend-web/skins.py
==============================================================================
--- trunk/frontend-web/skins.py	(original)
+++ trunk/frontend-web/skins.py	Fri Jul 27 15:14:09 2007
@@ -181,7 +181,7 @@
   def list_metatags(self):
     """Format the thread list"""
     m_list = self._dict.pop("metatags",None)
-    for id, title, nr in m_list:
+    for id, title, nr, mon in m_list:
       format = self._style.pop(0)
       self._style.append(format)
       if nr:
@@ -197,7 +197,7 @@
     thread_len=globales.thread_len
     for date,threads in t_list:
       self.set_text(available_skins[self._skin]['group_date'] % {'group_date':daydate(date,self._tz)})
-      for thread, title, ts, nr, nr_point, n_msgs in threads:
+      for thread, title, ts, nr, nr_point, n_msgs, mon in threads:
         format = self._style.pop(0)
         self._style.append(format)
         if nr:

Modified: trunk/frontend-web/url_hilo.py
==============================================================================
--- trunk/frontend-web/url_hilo.py	(original)
+++ trunk/frontend-web/url_hilo.py	Fri Jul 27 15:14:09 2007
@@ -21,7 +21,7 @@
     except :
       return None
 
-  meta,mensajes,num_mensajes,finished,metatags=database.listado_hilo(conn,usuario,hilo_num,first_post)
+  meta,mensajes,num_mensajes,finished,metatags,mon=database.listado_hilo(conn,usuario,hilo_num,first_post)
   if not meta : return None
 
   assert len(metatags)==1 # De momento no permitimos multiples metatags para un hilo
@@ -37,6 +37,7 @@
       "messages": (first_post,num_mensajes,mensajes),
       "metatag": metatag[0],
       "metatag_title": metatag[1],
+      "monitor": mon,
       }
 
   pagina.load_dict(d)

Modified: trunk/frontend-web/url_indice.py
==============================================================================
--- trunk/frontend-web/url_indice.py	(original)
+++ trunk/frontend-web/url_indice.py	Fri Jul 27 15:14:09 2007
@@ -54,7 +54,8 @@
       "page_title": "cpif - listado de hilos",
       "threads":[],
       "calendar": calendario.vista_mensual(conn,fecha_elegida,usuario,metatag),
-      "metatag": metatag
+      "metatag": metatag,
+      "monitor": database.monitored_metatag(conn,usuario,metatag),
       }
 
   root=conn.get_root()
@@ -76,7 +77,8 @@
         hilos[id]["TS"], 
         hilos[id]["mensajes"].get(punto_no_leido.get(id,None)), # El numero de mensajes hasta el no leido
         punto_no_leido.get(id,None),
-        hilos[id]["num_mensajes"]) for id,title,not_read in h])) # El punto donde el usuario no ha leido
+        hilos[id]["num_mensajes"],
+        mon) for id,title,not_read,mon in h])) # El punto donde el usuario no ha leido
 
       num_hilos+=l
     ts=ts2



More information about the cpif mailing list