]> git.llucax.com Git - software/sercom.git/blob - sercom/subcontrollers/miscorrecciones/__init__.py
si no hay instancias de entregas activas aborto el agregar entrega al alumno.
[software/sercom.git] / sercom / subcontrollers / miscorrecciones / __init__.py
1 # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
2
3 #{{{ Imports
4 import cherrypy
5 from turbogears import controllers, expose, redirect
6 from turbogears import validate, flash, error_handler
7 from turbogears import validators as V
8 from turbogears import widgets as W
9 from turbogears import identity
10 from turbogears import paginate
11 from docutils.core import publish_parts
12 from sercom.subcontrollers import validate as val
13 from sercom.model import Entrega, Correccion, Grupo, AlumnoInscripto
14 from sqlobject import *
15 from zipfile import ZipFile, BadZipfile
16 from cStringIO import StringIO
17
18 #}}}
19
20 #{{{ Configuración
21 cls = Correccion
22 name = 'correccion'
23 namepl = name + 'es'
24 #}}}
25
26 #{{{ Controlador
27 class MisCorreccionesController(controllers.Controller, identity.SecureResource):
28     """Basic model admin interface"""
29     require = identity.has_permission('entregar')
30
31     hide_to_admin = 1
32
33     @expose()
34     def default(self, tg_errors=None):
35         """handle non exist urls"""
36         raise redirect('list')
37
38     @expose()
39     def index(self):
40         raise redirect('list')
41
42     @expose(template='kid:%s.templates.list' % __name__)
43     @paginate('records')
44     def list(self):
45         """List records in model"""
46         # Grupos en los que el usuario formo parte
47         m = [i.grupo.id for i in Grupo.selectByAlumno(identity.current.user)]
48         try:
49             entregador = AlumnoInscripto.selectByAlumno(identity.current.user)
50             m.append(entregador.id)
51         except:
52             pass
53         r = cls.select(IN(cls.q.entregadorID, m))
54         return dict(records=r, name=name, namepl=namepl)
55
56 #}}}
57