From 6c4ff7f616ee60e26929aa325378aa8945dbc89e Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sun, 11 Mar 2007 20:51:23 +0000 Subject: [PATCH] Modifico permisos en Enunciado y Ejercicio para que un Entregador pueda consultarlos. Los permisos ahora por default son para entregar y todos los metodos administrativos fueron cerrados para admin. El Entregador solo puede listar y show y de esta forma puede bajar los enunciados, ver las fechas de entrega, etc. Se ocultan columnas de las tablas que no son necesarias y se sacan links cuando el usuario no es ADMIN. --- sercom/subcontrollers/ejercicio/__init__.py | 7 ++++++- .../ejercicio/entrega/__init__.py | 5 ++++- .../ejercicio/entrega/templates/list.kid | 5 +++-- .../ejercicio/templates/list.kid | 11 +++++----- sercom/subcontrollers/enunciado/__init__.py | 8 ++++++- .../enunciado/templates/list.kid | 21 +++++++++++-------- 6 files changed, 38 insertions(+), 19 deletions(-) diff --git a/sercom/subcontrollers/ejercicio/__init__.py b/sercom/subcontrollers/ejercicio/__init__.py index cacbad5..58a36b2 100644 --- a/sercom/subcontrollers/ejercicio/__init__.py +++ b/sercom/subcontrollers/ejercicio/__init__.py @@ -165,7 +165,7 @@ form = EjercicioForm() #{{{ Controlador class EjercicioController(controllers.Controller, identity.SecureResource): """Basic model admin interface""" - require = identity.has_permission('admin') + require = identity.has_permission('entregar') entrega = EntregaController() @@ -187,12 +187,14 @@ class EjercicioController(controllers.Controller, identity.SecureResource): return dict(records=r, name=name, namepl=namepl, parcial=autor) @expose(template='kid:%s.templates.new' % __name__) + @identity.require(identity.has_permission('admin')) def new(self, **kw): """Create new records in model""" return dict(name=name, namepl=namepl, form=form, values=kw) @validate(form=form) @error_handler(new) + @identity.require(identity.has_permission('admin')) @expose() def create(self, **kw): """Save or create record to model""" @@ -201,6 +203,7 @@ class EjercicioController(controllers.Controller, identity.SecureResource): raise redirect('list') @expose(template='kid:%s.templates.edit' % __name__) + @identity.require(identity.has_permission('admin')) def edit(self, id, **kw): """Edit record in model""" r = validate_get(id) @@ -209,6 +212,7 @@ class EjercicioController(controllers.Controller, identity.SecureResource): @validate(form=form) @error_handler(edit) @expose() + @identity.require(identity.has_permission('admin')) def update(self, id, **kw): """Save or create record to model""" r = validate_set(id, kw) @@ -222,6 +226,7 @@ class EjercicioController(controllers.Controller, identity.SecureResource): return dict(name=name, namepl=namepl, record=r) @expose() + @identity.require(identity.has_permission('admin')) def delete(self, id): """Destroy record in model""" validate_del(id) diff --git a/sercom/subcontrollers/ejercicio/entrega/__init__.py b/sercom/subcontrollers/ejercicio/entrega/__init__.py index 18e77b4..069f372 100644 --- a/sercom/subcontrollers/ejercicio/entrega/__init__.py +++ b/sercom/subcontrollers/ejercicio/entrega/__init__.py @@ -74,7 +74,7 @@ form = EntregaForm() #{{{ Controlador class EntregaController(controllers.Controller, identity.SecureResource): """Basic model admin interface""" - require = identity.has_permission('admin') + require = identity.has_permission('entregar') @expose(template='kid:%s.templates.list' % __name__) @validate(validators=dict(ejercicio_id=V.Int)) @@ -85,6 +85,7 @@ class EntregaController(controllers.Controller, identity.SecureResource): return dict(records=r, name=name, namepl=namepl, parcial=str(ejercicio_id)) @expose(template='kid:%s.templates.new' % __name__) + @identity.require(identity.has_permission('admin')) def new(self, ejercicio_id, **kw): """Create new records in model""" form.fields[6].attrs['value'] = ejercicio_id @@ -93,6 +94,7 @@ class EntregaController(controllers.Controller, identity.SecureResource): @validate(form=form) @error_handler(new) @expose() + @identity.require(identity.has_permission('admin')) def create(self, ejercicio_id, **kw): """Save or create record to model""" e = Ejercicio.get(ejercicio_id) @@ -101,6 +103,7 @@ class EntregaController(controllers.Controller, identity.SecureResource): raise redirect('/ejercicio/entrega/'+str(e.id)) @expose() + @identity.require(identity.has_permission('admin')) def delete(self, id): """Destroy record in model""" r = validate_get(id) diff --git a/sercom/subcontrollers/ejercicio/entrega/templates/list.kid b/sercom/subcontrollers/ejercicio/entrega/templates/list.kid index f4bb28e..68ecb78 100644 --- a/sercom/subcontrollers/ejercicio/entrega/templates/list.kid +++ b/sercom/subcontrollers/ejercicio/entrega/templates/list.kid @@ -1,4 +1,5 @@ + @@ -27,13 +28,13 @@ activa obs - Eliminar + Eliminar
-Agregar +Agregar Volver a Ejericicios
diff --git a/sercom/subcontrollers/ejercicio/templates/list.kid b/sercom/subcontrollers/ejercicio/templates/list.kid index 25ee50d..6c2931d 100644 --- a/sercom/subcontrollers/ejercicio/templates/list.kid +++ b/sercom/subcontrollers/ejercicio/templates/list.kid @@ -1,4 +1,5 @@ + @@ -11,14 +12,14 @@ - + - +
CursoCurso Numero Enunciado Es Grupal? Operaciones
cursocurso numero Entregas - Editar - Eliminar + Editar + Eliminar

-Agregar +Agregar Ver todo
diff --git a/sercom/subcontrollers/enunciado/__init__.py b/sercom/subcontrollers/enunciado/__init__.py index 8f22b94..d265192 100644 --- a/sercom/subcontrollers/enunciado/__init__.py +++ b/sercom/subcontrollers/enunciado/__init__.py @@ -79,7 +79,7 @@ form = EnunciadoForm() #{{{ Controlador class EnunciadoController(controllers.Controller, identity.SecureResource): """Basic model admin interface""" - require = identity.has_permission('admin') + require = identity.has_permission('entregar') @expose() def default(self, tg_errors=None): @@ -102,6 +102,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): return dict(records=r, name=name, namepl=namepl, parcial=autor) @expose(template='kid:%s.templates.new' % __name__) + @identity.require(identity.has_permission('admin')) def new(self, **kw): """Create new records in model""" return dict(name=name, namepl=namepl, form=form, values=kw) @@ -109,6 +110,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): @validate(form=form) @error_handler(new) @expose() + @identity.require(identity.has_permission('admin')) def create(self, archivo, **kw): """Save or create record to model""" kw['archivo'] = archivo.file.read() @@ -119,6 +121,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): raise redirect('list') @expose(template='kid:%s.templates.edit' % __name__) + @identity.require(identity.has_permission('admin')) def edit(self, id, **kw): """Edit record in model""" r = validate_get(id) @@ -127,6 +130,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): @validate(form=form) @error_handler(edit) @expose() + @identity.require(identity.has_permission('admin')) def update(self, id, **kw): """Save or create record to model""" r = validate_set(id, kw) @@ -144,6 +148,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): return dict(name=name, namepl=namepl, record=r) @expose() + @identity.require(identity.has_permission('admin')) def delete(self, id): """Destroy record in model""" r = validate_get(id) @@ -160,6 +165,7 @@ class EnunciadoController(controllers.Controller, identity.SecureResource): return r.archivo @expose("json") + @identity.require(identity.has_permission('admin')) def de_curso(self, curso_id): c = Curso.get(curso_id) e = Enunciado.selectByCurso(c) diff --git a/sercom/subcontrollers/enunciado/templates/list.kid b/sercom/subcontrollers/enunciado/templates/list.kid index 12991f7..a6fde05 100644 --- a/sercom/subcontrollers/enunciado/templates/list.kid +++ b/sercom/subcontrollers/enunciado/templates/list.kid @@ -1,4 +1,5 @@ + @@ -16,7 +17,7 @@ Nombre Descripción Autor - CP + CP Operaciones @@ -24,23 +25,25 @@ descripción nombre descripción - autor - + autor + autor + + cant - Editar - Eliminar + Editar + Eliminar Bajar Enunciado
-Agregar -Ver todo +Agregar