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

svn at argo.es svn at argo.es
Sun May 13 00:58:20 CEST 2007


Author: jcea
Date: Sun May 13 00:58:18 2007
New Revision: 49

Log:
Seguimos migrando detalles de la estructura de datos
a donde le toca: database.py.



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

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Sun May 13 00:58:18 2007
@@ -30,3 +30,7 @@
   eficiente saltarse los dias intermedios hasta encontrar el siguiente
   dia con actividad.
 
+- 20070513: FRONTAL WEB: Internamente trabajamos con horas GMT (UTC),
+  asi que no estamos haciendo bien los cortes de pagina. En Espan~a,
+  hay dos horas de desfase en verano y una hora en inverno.
+

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Sun May 13 00:58:18 2007
@@ -172,6 +172,22 @@
 
   return resultado
 
+def listado_hilo(conn,usuario,hilo_num) :
+  root=conn.get_root()
+  hilo=root["hilos"]["hilos"].get(hilo_num,None)
+  if not hilo : return None,None
+
+  meta={"titulo":hilo["titulo"],"creador":hilo["creador"],
+        "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=[(msg_num,msg["autor"],msg["TS"],msg["texto"]) for msg_num,msg in hilo["mensajes"].items()]
+
+  return (meta,mensajes)
 
 # Marcamos como leidos los hilos que estamos
 # viendo en pantalla. Si hay mensajes adicionales

Modified: trunk/frontend-web/url_hilo.py
==============================================================================
--- trunk/frontend-web/url_hilo.py	(original)
+++ trunk/frontend-web/url_hilo.py	Sun May 13 00:58:18 2007
@@ -5,24 +5,23 @@
 @monitor
 def gestiona_url(conn,handler,path,usuario) :
   import time,database
-  root=conn.get_root()
-  hilo_num=int(path[-1])
-  hilo=root["hilos"]["hilos"][hilo_num]
-  texto=["<h2>Hilo: %s (%s)</h2>" %(hilo["titulo"],hilo["creador"])]
-  texto.extend(["<font size=-2>%s</font>" %time.ctime(hilo["TS creacion"]),"<hr>"])
+  try :
+    hilo_num=int(path[-1])
+  except :
+    return None
 
-  u=root["usuarios"]["usuarios"][database.normaliza_nick(usuario)]
-  if hilo_num in u["punto de lectura no leidos"] :
-    del u["punto de lectura no leidos"][hilo_num]
+  meta,mensajes=database.listado_hilo(conn,usuario,hilo_num)
+  if not meta : return None
+
+  texto=["<h2>Hilo: %s (%s)</h2>" %(meta["titulo"],meta["creador"])]
+  texto.extend(["<font size=-2>%s</font>" %time.ctime(meta["TS creacion"]),"<hr>"])
 
   estilos=["par","impar"]
-  for msg_num,msg in hilo["mensajes"].items() :
+  for msg_num,autor,TS,cuerpo in mensajes :
     estilo=estilos.pop(0)
     estilos.append(estilo)
-    texto.append("<div class='%s'><a name='%s'><p>Autor: %s - fecha: %s</a>" %(estilo,msg_num,msg["autor"],time.ctime(msg["TS"])))
-    texto.append("<p>%s</div>" %msg["texto"])
-
-  u["punto de lectura"][hilo_num]=hilo["mensajes"].get_max_item()[0]
+    texto.append("<div class='%s'><a name='%s'><p>Autor: %s - fecha: %s</a>" %(estilo,msg_num,autor,time.ctime(TS)))
+    texto.append("<p>%s</div>" %cuerpo)
 
   return(200,"text/html",
 """
@@ -31,7 +30,6 @@
 .par   {background-color: efe}
 .impar {background-color: eef}
 </style>
-
 %s
 <hr>
 <p><a href="/%s">P&aacute;gina principal</a>
@@ -43,4 +41,5 @@
 </form>
 <p><a href="/stop/cualquier_usuario">Parar la demo</a>
 </body></html>""" %("\r\n".join(texto),usuario,hilo_num,usuario))
+
 



More information about the cpif mailing list