[cpif] r331 - in trunk: . backend frontend-web frontend-web/skins/default
svn at argo.es
svn at argo.es
Thu Sep 6 15:28:13 CEST 2007
Author: jcea
Date: Thu Sep 6 15:28:10 2007
New Revision: 331
Log:
Soporte preliminar de hilos "sticky". Hay que
actualizar el "skin" para visualizarlos de forma
diferenciada.
Added:
trunk/frontend-web/url_toggle_sticky.py
- copied, changed from r330, /trunk/frontend-web/url_toggle_readonly.py
Modified:
trunk/TODO
trunk/backend/database.py
trunk/backend/upgrade.py
trunk/frontend-web/skins.py
trunk/frontend-web/skins/default/body_show_thread.html
trunk/frontend-web/skins/default/body_show_thread_anonymous.html
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Thu Sep 6 15:28:10 2007
@@ -334,8 +334,25 @@
"solo lectura" y para eliminar la opcion de escribir respuesta.
- 20070906: FRONTAL WEB: El cambio de estado de "solo lectura"
- debe hacerse por AJAX.
+ debe hacerse por AJAX. Baja prioridad.
- 20070906: La comprobacion de moderadores requiere normalizar
los nicks cada vez.
+
+- 20070906: Un hilo "sticky" lo es en todos los metatags a los
+ que pertenece. Asi que si un moderador cambia el estado "sticky"
+ de un hilo en varios metatags, cambia en todos, auqnue en los
+ otros metatags no sea moderador. Adicionalmente, un moderador
+ de un metatag puede poner un hilo como "sticky" en cualquier
+ otro metatag si el hilo existe en su metatag.
+
+ Estas cosas seran potencialmente muy delicadas cuando cualquier
+ usuario pueda crear hilos sinteticos. Hay que estudiarlo con
+ cuidado.
+
+- 20070906: FRONTAL WEB: Modificar el skin para visualizar
+ los hilos "sticky" de forma diferenciada.
+
+- 20070906: FRONTAL WEB: El cambio de estado de "sticky"
+ debe hacerse por AJAX. Baja prioridad.
Modified: trunk/backend/database.py
==============================================================================
--- trunk/backend/database.py (original)
+++ trunk/backend/database.py Thu Sep 6 15:28:10 2007
@@ -1,7 +1,7 @@
# $Id$
-VERSION_DB="2007090601"
+VERSION_DB="2007090602"
import globales
@@ -347,6 +347,7 @@
"TS2hilo":BTree(),
"moderadores":moderadores,
"monitor":BTree(),
+ "sticky_threads":set(),
})
for usuario in root["usuarios"]["usuarios"].itervalues() :
@@ -634,7 +635,7 @@
u["monitor hilos"][thread]=None
return None,True
-def check_moderator_or_master_status(conn,usuario,num_thread) :
+def check_thread_moderator_or_master_status(conn,usuario,num_thread) :
root=conn.get_root()
hilos=root["hilos"]["hilos"]
metatags=root["metatags"]["metatags"]
@@ -647,7 +648,10 @@
return False
def check_permissions_readonly(conn,usuario,num_thread) :
- return check_moderator_or_master_status(conn,usuario,num_thread)
+ return check_thread_moderator_or_master_status(conn,usuario,num_thread)
+
+def check_permissions_sticky(conn,usuario,num_thread) :
+ return check_thread_moderator_or_master_status(conn,usuario,num_thread)
def thread_is_readonly(conn,hilo) :
root=conn.get_root()
@@ -662,4 +666,25 @@
return False
hilo["read only"]=None
return True
+
+
+def toogle_thread_sticky(conn,num_thread) :
+ root=conn.get_root()
+ hilo=root["hilos"]["hilos"][num_thread]
+ metatags=root["metatags"]["metatags"]
+ somebody_sticky=False
+ somebody_no_sticky=False
+ for metatag in hilo["metatags"] :
+ metatag=metatags[metatag]
+ sticky=metatag["sticky_threads"]
+ if num_thread in sticky :
+ somebody_sticky=True
+ sticky.discard(num_thread)
+ else :
+ somebody_no_sticky=True
+ sticky.add(num_thread)
+ metatag._p_note_change() # Durable
+
+ assert somebody_sticky!=somebody_no_sticky
+ return not somebody_sticky
Modified: trunk/backend/upgrade.py
==============================================================================
--- trunk/backend/upgrade.py (original)
+++ trunk/backend/upgrade.py Thu Sep 6 15:28:10 2007
@@ -298,3 +298,10 @@
root["version del foro"]="2007090601"
conn.commit()
+ if root["version del foro"]=="2007090601" :
+ print "Actualizando la base de datos: 2007090601 -> 2007090602"
+ root["version del foro"]="2007090602"
+ for metatag in root["metatags"]["metatags"].values() :
+ metatag["sticky_threads"]=set()
+ conn.commit()
+
Modified: trunk/frontend-web/skins.py
==============================================================================
--- trunk/frontend-web/skins.py (original)
+++ trunk/frontend-web/skins.py Thu Sep 6 15:28:10 2007
@@ -54,6 +54,7 @@
'/nuevo_usuario_POST': [],
'/perfil_POST': [],
'/toggle_readonly': [],
+ '/toggle_sticky': [],
}
import os
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 Sep 6 15:28:10 2007
@@ -36,6 +36,7 @@
<li><a href="/">Página principal</a></li>
<li>%(auth)s</li>
<li><a href="/toggle_readonly/%(thread_num)d">Marcar/desmarcar este hilo como 'solo lectura'</a></li>
+ <li><a href="/toggle_sticky/%(thread_num)d">Marcar/desmarcar este hilo como 'sticky'</a></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ón de CPIF</a></li>
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 Sep 6 15:28:10 2007
@@ -19,6 +19,7 @@
<li><a href="/">Página principal</a></li>
<li>%(auth)s</li>
<li><a href="/toggle_readonly/%(thread_num)d">Marcar/desmarcar este hilo como 'solo lectura'</a></li>
+ <li><a href="/toggle_sticky/%(thread_num)d">Marcar/desmarcar este hilo como 'sticky'</a></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ón de CPIF</a></li>
Copied: trunk/frontend-web/url_toggle_sticky.py (from r330, /trunk/frontend-web/url_toggle_readonly.py)
==============================================================================
--- /trunk/frontend-web/url_toggle_readonly.py (original)
+++ trunk/frontend-web/url_toggle_sticky.py Thu Sep 6 15:28:10 2007
@@ -13,13 +13,13 @@
if not usuario : return None
import database
- if not database.check_permissions_readonly(conn,usuario,num_thread) :
+ if not database.check_permissions_sticky(conn,usuario,num_thread) :
import skins
pagina = skins.Skin(path,usuario)
- pagina.load_dict({"page_title": "cpif - Toogle ReadOnly"})
+ pagina.load_dict({"page_title": "cpif - Toogle sticky"})
pagina.load_dict({"generic_message": "<h2>Necesitas ser 'master' o moderador para llevar a cabo esta acción</h2>"})
return(pagina.web())
- database.toogle_thread_readonly(conn,num_thread)
+ database.toogle_thread_sticky(conn,num_thread)
return (302,{"Location":"/hilo/%d" %num_thread}, "")
More information about the cpif
mailing list