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

svn at argo.es svn at argo.es
Thu Jul 12 19:19:31 CEST 2007


Author: jcea
Date: Thu Jul 12 19:19:28 2007
New Revision: 273

Log:
Ya podemos visualizar la configuracion CPIF via web, pero
todavia no podemos cambiarla.



Added:
   trunk/frontend-web/url_edit_config.py
      - copied, changed from r271, /trunk/frontend-web/url_logout.py
Modified:
   trunk/TODO
   trunk/backend/database.py
   trunk/backend/upgrade.py
   trunk/frontend-web/globales.py
   trunk/frontend-web/init.py
   trunk/frontend-web/skins/default/body_generic.html
   trunk/frontend-web/skins/default/body_metatags.html
   trunk/frontend-web/skins/default/body_show_thread.html
   trunk/frontend-web/skins/default/body_show_thread_anonymous.html
   trunk/frontend-web/skins/default/body_threadlist.html
   trunk/frontend-web/skins/default/body_threadlist_anonymous.html

Modified: trunk/TODO
==============================================================================
--- trunk/TODO	(original)
+++ trunk/TODO	Thu Jul 12 19:19:28 2007
@@ -250,8 +250,20 @@
 
   Esto es especialmente interesante con herramientas como "wget".
 
-- 20070711: FRONTAL WEB: Los parsers HTML y BBCode (no se si alguno mas)
+- 20070712: FRONTAL WEB: Los parsers HTML y BBCode (no se si alguno mas)
   devuelven tokens vacios ('') cuando estan procesando un mensaje
   a publicar, si los tags estan juntos, el texto empieza con un
   tag. Hacer limpieza.
+
+- 20070712: Ya que estamos conservando la base de datos entre versiones,
+  eliminar el backup de usuarios, que se ha quedado anticuado.
+
+- 20070712: Ya podemos visualizar la configuracion CPIF via web, pero
+  todavia no podemos cambiarla.
+
+  Ojo en esta opcion, ya que si la transaccion DURUS se aborta, no debemos
+  modificar el estado global. La forma mas simple de lograrlos es hacer
+  un "commit" al final del cuerpo de la funcion, luego actualizar el estado
+  global y, por ultimo, regresar. No debe hacerse nada mas, so pena de que
+  ocurra una excepcion y nos deje el estado global a medio cambiar.
 

Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py	(original)
+++ trunk/backend/database.py	Thu Jul 12 19:19:28 2007
@@ -1,9 +1,9 @@
 # $Id$
 
 
-VERSION_DB="2007071201"
+VERSION_DB="2007071202"
 
-from globales import thread_len
+import globales
 
 # Chanchullo para los "tests"
 do_backup_users=True
@@ -63,7 +63,31 @@
     root["static"]["smileys"]=BTree()
     root["smileys"]=PersistentList()
 
+    conf=PersistentDict()
+    conf["thread_len"]=10
+    conf["allow_anonymous"]=True
+    conf["http_max_clients"]=16
+    conf["http_initial_timeout"]=30
+    conf["http_keep_alive_timeout"]=5
+    conf["openid_support"]=True
+    conf["allow_bbcode"]=True
+    conf["allow_html"]=True
+    conf["allow_avatar_change"]=True
+
+  @monitor
+  def load_initial_config(conn) :
+    conf=dict(conn.get_root()["config"]) # Force object load
+    return load_new_config(conf)
+
   init()
+  load_initial_config()
+
+
+def load_new_config(conf) :
+  import globales
+  for k,v in conf.items() :
+    setattr(globales,k,v)
+
 
 # Si suministramos una cookie, de ahi se saca el
 # usuario y se comprueba su identidad.
@@ -428,7 +452,7 @@
 
   num_mensajes=hilo["num_mensajes"]
   mensajes=[]
-  i=thread_len
+  i=globales.thread_len
   pr=hilo["numeros"].get(primer_mensaje,None)
   if not pr : return None,None,None
   iterador_mensajes=hilo["mensajes"].items_from(pr)

Modified: trunk/backend/upgrade.py
==============================================================================
--- trunk/backend/upgrade.py	(original)
+++ trunk/backend/upgrade.py	Thu Jul 12 19:19:28 2007
@@ -182,3 +182,20 @@
       root["usuarios"]["usuarios"]["jcea"]["email"]="jcea at argo.es"
     conn.commit()
 
+  if root["version del foro"]=="2007071201" :
+    print "Actualizando la base de datos: 2007071201 -> 2007071202"
+    root["version del foro"]="2007071202"
+    conf=PersistentDict()
+    conf["thread_len"]=10
+    conf["allow_anonymous"]=True
+    conf["http_max_clients"]=16
+    conf["http_initial_timeout"]=30
+    conf["http_keep_alive_timeout"]=5
+    conf["openid_support"]=True
+    conf["allow_bbcode"]=True
+    conf["allow_html"]=True
+    conf["allow_avatar_change"]=True
+
+    root["config"]=conf
+    conn.commit()
+

Modified: trunk/frontend-web/globales.py
==============================================================================
--- trunk/frontend-web/globales.py	(original)
+++ trunk/frontend-web/globales.py	Thu Jul 12 19:19:28 2007
@@ -12,29 +12,3 @@
 # Global version of the program
 version=None
 
-# Number of messages per page on a thread
-thread_len=10
-
-# Allow anonymous access?
-allow_anonymous=True
-
-# Simultaneous HTTP connections
-http_max_clients=16
-
-# Specify initial HTTP timeout
-http_initial_timeout=30
-# Keep-alive timeout (if zero or False, no keep-alive support)
-http_keep_alive_timeout=5
-
-# OpenID Support (Requires library. See docs)
-openid_support=True
-
-# Allow BBcode?
-allow_bbcode=True
-
-# Allow HTML?
-allow_html=True
-
-# Allow avatar change (Requires library. See docs)
-allow_avatar_change=True
-

Modified: trunk/frontend-web/init.py
==============================================================================
--- trunk/frontend-web/init.py	(original)
+++ trunk/frontend-web/init.py	Thu Jul 12 19:19:28 2007
@@ -9,12 +9,6 @@
   directorio_padre=os.path.split(os.getcwd())[0]  # Directorio padre
   sys.path.append(os.path.join(directorio_padre,"backend"))
 
-  if globales.openid_support :
-    import openid  # Nos aseguramos de tener la libreria
-
-  if globales.allow_avatar_change :
-    from PIL import Image # Nos aseguramos de tener la libreria
-
   for i in os.walk(directorio_padre) :
     if i[0].endswith("durus-berkeleydbstorage") : continue
     if i[2] :
@@ -40,6 +34,12 @@
   import database
 
   database.init_database(monitor)
+
+  if globales.openid_support :
+    import openid  # Nos aseguramos de tener la libreria
+
+  if globales.allow_avatar_change :
+    from PIL import Image # Nos aseguramos de tener la libreria
 
   @monitor
   def inicializa(conn,masterkey) :

Modified: trunk/frontend-web/skins/default/body_generic.html
==============================================================================
--- trunk/frontend-web/skins/default/body_generic.html	(original)
+++ trunk/frontend-web/skins/default/body_generic.html	Thu Jul 12 19:19:28 2007
@@ -8,6 +8,7 @@
       <li>%(auth)s</li>
       <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
       <li><a href="/edit_metatags">Editar Metatags</a></li>
+      <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
       <li><a href="/stop">Parar la demo</a></li>
     </ul>
   </div>

Modified: trunk/frontend-web/skins/default/body_metatags.html
==============================================================================
--- trunk/frontend-web/skins/default/body_metatags.html	(original)
+++ trunk/frontend-web/skins/default/body_metatags.html	Thu Jul 12 19:19:28 2007
@@ -8,6 +8,7 @@
         <li>%(auth)s</li>
         <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
         <li><a href="/edit_metatags">Editar Metatags</a></li>
+        <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
         <li><a href="/stop">Parar la demo</a></li>
       </ul>
     </div>

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	Thu Jul 12 19:19:28 2007
@@ -110,6 +110,7 @@
       <li>%(auth)s</li>
       <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
       <li><a href="/edit_metatags">Editar Metatags</a></li>
+      <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
       <li><a href="/stop">Parar la demo</a></li>
     </ul>
   </div>

Modified: trunk/frontend-web/skins/default/body_show_thread_anonymous.html
==============================================================================
--- trunk/frontend-web/skins/default/body_show_thread_anonymous.html	(original)
+++ trunk/frontend-web/skins/default/body_show_thread_anonymous.html	Thu Jul 12 19:19:28 2007
@@ -20,6 +20,7 @@
       <li>%(auth)s</li>
       <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
       <li><a href="/edit_metatags">Editar Metatags</a></li>
+      <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
       <li><a href="/stop">Parar la demo</a></li>
     </ul>
   </div>

Modified: trunk/frontend-web/skins/default/body_threadlist.html
==============================================================================
--- trunk/frontend-web/skins/default/body_threadlist.html	(original)
+++ trunk/frontend-web/skins/default/body_threadlist.html	Thu Jul 12 19:19:28 2007
@@ -41,6 +41,7 @@
         <li>%(auth)s</li>
         <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
         <li><a href="/edit_metatags">Editar Metatags</a></li>
+        <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
         <li><a href="/stop">Parar la demo</a></li>
       </ul>
     </div>

Modified: trunk/frontend-web/skins/default/body_threadlist_anonymous.html
==============================================================================
--- trunk/frontend-web/skins/default/body_threadlist_anonymous.html	(original)
+++ trunk/frontend-web/skins/default/body_threadlist_anonymous.html	Thu Jul 12 19:19:28 2007
@@ -13,6 +13,7 @@
         <li>%(auth)s</li>
         <li><a href="/nuevo_usuario">Dar de alta un nuevo usuario</a></li>
         <li><a href="/edit_metatags">Editar Metatags</a></li>
+        <li><a href="/edit_config">Editar configuraci&oacute;n de CPIF</a></li>
         <li><a href="/stop">Parar la demo</a></li>
       </ul>
     </div>

Copied: trunk/frontend-web/url_edit_config.py (from r271, /trunk/frontend-web/url_logout.py)
==============================================================================
--- /trunk/frontend-web/url_logout.py	(original)
+++ trunk/frontend-web/url_edit_config.py	Thu Jul 12 19:19:28 2007
@@ -1,9 +1,40 @@
 # $Id$
 
 from globales import monitor
+import globales
 
 def gestiona_url(handler,path,usuario) :
   if len(path)!=1 : return None
-  # Para borrar una cookie hay que mandarla con una fecha en el pasado.
-  return (302,{"Set-Cookie":"cpif_auth=X; path=/; expires=Thu, 01-Jan-1970 01:00:00 GMT","Location":"/"},"")
+
+  import skins
+  pagina = skins.Skin(path,usuario)
+  pagina.load_dict({"page_title": "cpif - Editar configuracion de CPIF"})
+
+  if usuario!="master" :
+    pagina.load_dict({"generic_message": "<h2>Solo el usuario 'master' puede editar la configuraci&oacute;n de CPIF</h2>"})
+    return pagina.web()
+
+  texto=['<tr><td>Number of messages per page on a thread</td><td><input type="text" name="thread_len" size="5" value="%d" /></td></tr>' %globales.thread_len]
+  texto.append('<tr><td>Allow anonymous access?</td><td><input type="checkbox" name="allow_anonymous" %s /></td></tr>' % "CHECKED" if globales.allow_anonymous else "")
+  texto.append('<tr><td>Simultaneous HTTP connections</td><td><input type="text" name="http_max_clients" size="5" value="%d" /></td></tr>' %globales.http_max_clients)
+  texto.append('<tr><td>Specify initial HTTP timeout</td><td><input type="text" name="http_initial_timeout" size="5" value="%d" /></td></tr>' %globales.http_initial_timeout)
+  texto.append('<tr><td>Keep-alive timeout<br/>(if zero or False, no keep-alive support)</td><td><input type="text" name="http_keep_alive_timeout" size="5" value="%d" /></td></tr>' %globales.http_keep_alive_timeout)
+  texto.append('<tr><td>OpenID Support<br/>(Requires library. See docs)</td><td><input type="checkbox" name="openid_support" %s /></td></tr>' % "CHECKED" if globales.openid_support else "")
+  texto.append('<tr><td>Allow BBcode?</td><td><input type="checkbox" name="allow_bbcode" %s /></td></tr>' % "CHECKED" if globales.allow_bbcode else "")
+  texto.append('<tr border=1><td>Allow HTML?</td><td><input type="checkbox" name="allow_html" %s /></td></tr>' % "CHECKED" if globales.allow_html else "")
+  texto.append('<tr><td>Allow avatar change<br/>(Requires library. See docs)</td><td><input type="checkbox" name="allow_avatar_change" %s /></td></tr>' % "CHECKED" if globales.allow_avatar_change else "")
+
+  return (200, {"Content-Type":"text/html; charset=utf-8"},
+"""
+<html>
+<title>Editar configuraci&oacute;n de CPIF</title>
+<body>
+<form action="/edit_config_POST" method="post" enctype="multipart/form-data">
+<table>
+%s
+<tr><td colspan="2" align="right"><input type="submit" name="submit" value="actualizar configuraci&oacute;n"/></td></tr>
+</table>
+</body>
+</html>
+""" % ("\r\n".join(texto)))
 



More information about the cpif mailing list