[cpif] r139 - in trunk: . backend frontend-web frontend-web/skins/default

svn at argo.es svn at argo.es
Sat Jun 9 18:51:08 CEST 2007


Author: jcea
Date: Sat Jun  9 18:51:07 2007
New Revision: 139

Log:
Eliminamos la indicacion de metatag en la URL, salvo cuando
es imprescindible. De esta forma un hilo tiene siempre la
misma URL, independientemente de por donde haya entrado el
usuario.

Ademas, mostramos el titulo de metatag en el enlace al final.



Modified:
   trunk/TODO
   trunk/backend/database.py
   trunk/frontend-web/skins.py
   trunk/frontend-web/skins/default/body_show_thread.html
   trunk/frontend-web/url_hilo.py
   trunk/frontend-web/url_nuevo_post_POST.py

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Sat Jun  9 18:51:07 2007
@@ -92,15 +92,11 @@
   hilos del dia mas antiguo, nos desaparecen de ahi y nos sale
   una pagina vacia.
 
-- 20070606: Cuando se visualiza un hilo o se escribe un mensaje
-  nuevo en el, estamos pasando el metatag en la URL. Esto es
-  porque un hilo puede estar en varios metatags, y hay que saber
-  a cual volver. Pero queda feo. ?Y si pasamos esa info en una
-  cookie o similar?.
-
-  Una opcion es que en vez de tener un enlace para volver al metatag
-  anterior, tener enlaces para ir a todos los metatags de ese hilo.
-
-  Pero esto no soluciona el problema cuando se escribe un mensaje
-  nuevo...
+- 20070609: Cuando un hilo pueda tener varios metatags, debe
+  aparecer su listado al final de la pagina, para que el usuario
+  pueda volver al que quiera. Pero es problematico cuando
+  escribimos un nuevo mensaje en un hilo, ya que no sabemos
+  hacia que metatag hay que hacer la redireccion. Claro que la
+  idea modificar el proceso de escribir un mensaje nuevo
+  para no volver a pasar por el metatag.
 

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Sat Jun  9 18:51:07 2007
@@ -259,10 +259,11 @@
 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
+  if not hilo : return None,None,None,None
 
   meta={"titulo":hilo["titulo"],"creador":hilo["creador"],
         "TS creacion":hilo["TS creacion"]}
+  metatags=hilo["metatags"]
 
   u=root["usuarios"]["usuarios"][normaliza_nick(usuario)]
 
@@ -295,7 +296,7 @@
             pnl=iterador_mensajes.next()[0] # El primer no leido
           plnl[hilo_num]=pnl
 
-  return (meta,mensajes,finished)
+  return (meta,mensajes,finished,metatags)
 
 # Marcamos como leidos los hilos que estamos
 # viendo en pantalla. Si hay mensajes adicionales

Modified: trunk/frontend-web/skins.py
==============================================================================
--- trunk/frontend-web/skins.py	(original)
+++ trunk/frontend-web/skins.py	Sat Jun  9 18:51:07 2007
@@ -99,10 +99,10 @@
     
     tl = self._dict.get('thread_prev',None)
     if tl:
-      self.set_text(available_skins[self._skin]['thread_prev'] % {'link': '/hilo/%d/%s' % (metatag, tl)})
+      self.set_text(available_skins[self._skin]['thread_prev'] % {'link': '/hilo/%s' %tl})
     tl = self._dict.get('thread_next',None)
     if tl:
-      self.set_text(available_skins[self._skin]['thread_next'] % {'link': '/hilo/%d/%s' % (metatag, tl)})
+      self.set_text(available_skins[self._skin]['thread_next'] % {'link': '/hilo/%s' %tl})
   
   def list_metatags(self):
     """Format the thread list"""
@@ -129,15 +129,15 @@
         if nr:
           page = ((nr[0] - 1) / thread_len)  * thread_len + 1
           aux = available_skins[self._skin]['thread_unread'] % {"title":title,
-              "link": "/hilo/%d/%d" % (metatag,thread),
-              "link_notread": "/hilo/%d/%d/%d#%d" % (metatag,thread,page,nr_point),
+              "link": "/hilo/%d" %(thread),
+              "link_notread": "/hilo/%d/%d#%d" %(thread,page,nr_point),
               "t_date": hourdate(ts,self._tz),
               "format": format,
               "not_read":nr_point
               }
         else:
           aux = available_skins[self._skin]['thread'] % {"title":title,
-              "link": "/hilo/%d/%d" % (metatag,thread),
+              "link": "/hilo/%d" %thread,
               "t_date":hourdate(ts,self._tz),
               "format": format
               }
@@ -163,7 +163,7 @@
       aux = available_skins[self._skin]['body']
     elif "thread_entries" in urls[self._url]:
       self.show_thread()
-      self._dict["link_new_post"] = "/nuevo_post_POST/%d/%d" % (metatag,self._dict["msg_num"])
+      self._dict["link_new_post"] = "/nuevo_post_POST/%d/%d" %(metatag,self._dict["msg_num"])
       self._dict["link_metatag"] = "/indice/%d" % metatag
       aux = available_skins[self._skin]['body_thread']
     elif "new_user" in urls[self._url]:

Modified: trunk/frontend-web/skins/default/body_show_thread.html
==============================================================================
--- trunk/frontend-web/skins/default/body_show_thread.html	(original)
+++ trunk/frontend-web/skins/default/body_show_thread.html	Sat Jun  9 18:51:07 2007
@@ -9,5 +9,5 @@
         <tr><td colspan=2 align=right><input class="form-element" type="submit" name="submit" value="Publicar nuevo mensaje"/></td></tr>
       </table>
     </form>
-    <a href="%(link_metatag)s">Volver al subforo</a><br />
+    <a href="%(link_metatag)s">Volver al subforo '%(metatag_title)s'</a><br />
     <a href="/">Pagina principal</a>

Modified: trunk/frontend-web/url_hilo.py
==============================================================================
--- trunk/frontend-web/url_hilo.py	(original)
+++ trunk/frontend-web/url_hilo.py	Sat Jun  9 18:51:07 2007
@@ -6,29 +6,30 @@
 def gestiona_url(conn,handler,path,usuario) :
   import time,database,calendario
   l=len(path)
-  if l<2 and l>4 :
+  if l<2 and l>3 :
     return None
 
   try :
-    hilo_num=int(path[2])
+    hilo_num=int(path[1])
   except :
     return None
 
   first_post=1
-  if l==4 :
+  if l==3 :
     try :
-      first_post=int(path[3])
+      first_post=int(path[2])
     except :
       return None
 
-  meta,mensajes,finished=database.listado_hilo(conn,usuario,hilo_num,first_post)
+  meta,mensajes,finished,metatags=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
+  metatag=iter(metatags).next()
   import skins 
   pagina = skins.Skin()
   pagina.load_url(path)
 
-  metatag = int(path[1])
   d = {
       "page_title":"cpif - %s" % meta["titulo"],
       "thread_title": meta["titulo"],

Modified: trunk/frontend-web/url_nuevo_post_POST.py
==============================================================================
--- trunk/frontend-web/url_nuevo_post_POST.py	(original)
+++ trunk/frontend-web/url_nuevo_post_POST.py	Sat Jun  9 18:51:07 2007
@@ -6,8 +6,8 @@
 def gestiona_url(conn,handler,path,usuario) :
   if len(path)!=3 : return None
   try :
-    hilo=int(path[2])
     metatag=int(path[1])
+    hilo=int(path[2])
   except :
     return None
   import database



More information about the cpif mailing list