from turbogears import paginate
from docutils.core import publish_parts
from sercom.subcontrollers import validate as val
-from sercom.model import Correccion
+from sercom.model import Correccion, Curso, Ejercicio, InstanciaDeEntrega
+from sqlobject import *
+
#}}}
#{{{ Configuración
fields = Fields()
javascript = [W.JSSource("MochiKit.DOM.focusOnLoad('form_instancia');")]
+def get_cursos():
+ return [(0, u'---')] + [(fk1.id, fk1.shortrepr()) for fk1 in Curso.select()]
+
+class CorreccionFiltros(W.TableForm):
+ class Fields(W.WidgetsList):
+ cursoID = W.SingleSelectField(label=_(u'Curso'), options = get_cursos, validator = V.Int(not_empty=True))
+ fields = Fields()
+
+filtro = CorreccionFiltros()
form = CorreccionForm()
#}}}
@expose(template='kid:%s.templates.list' % __name__)
@paginate('records')
- def list(self):
+ def list(self, cursoID = 0):
"""List records in model"""
- r = cls.select()
- return dict(records=r, name=name, namepl=namepl)
+ vfilter = dict(cursoID = cursoID)
+ if int(cursoID) == 0:
+ r = cls.selectBy(corrector=identity.current.user)
+ else:
+ r = cls.select(
+ AND(
+ cls.q.correctorID == identity.current.user.id,
+ Ejercicio.q.id == InstanciaDeEntrega.q.ejercicioID,
+ InstanciaDeEntrega.q.id == Correccion.q.instanciaID,
+ Ejercicio.q.cursoID == cursoID
+ )
+ )
+ return dict(records=r, name=name, namepl=namepl, form=filtro, vfilter=vfilter)
@expose(template='kid:%s.templates.edit' % __name__)
def edit(self, id, **kw):
<h1>Administración de <span py:replace="namepl">Objetos</span></h1>
+<div py:replace="form(value=vfilter, action=tg.url('/correccion/list'), submit_text=_(u'Filtrar'))">Filtros</div>
+
<table class="list">
<tr>
<th><span title="Instancia de Entrega">IE</span></th>
<th>Entregas</th>
<th>Corrector</th>
<th>Asignado</th>
- <th>Corregido</th>
<th>Corregido</th>
<th>Nota</th>
+ <th>Operaciones</th>
</tr>
<tr py:for="record in records">
<td><span py:replace="record.instancia.shortrepr()">usuario</span></td>
<a py:if="isinstance(record.entregador, Grupo)" href="${tg.url('/grupo/show/%d' % record.entregador.id)}" py:content="record.entregador.shortrepr()">nombre</a>
<a py:if="isinstance(record.entregador, AlumnoInscripto)" href="${tg.url('/alumno/show/%d' % record.entregador.alumno.id)}" py:content="record.entregador.shortrepr()">nombre</a>
</td>
- <td><span py:replace="len(record.entregas)">email</span></td>
+ <td align="center"><span py:replace="len(record.entregas)">email</span></td>
<td><a href="${tg.url('/docente/show/%d' % record.corrector.docente.id)}" py:content="record.corrector.shortrepr()">corrector</a></td>
- <td><span py:replace="record.asignado">nota</span></td>
- <td><span py:replace="record.corregido">observaciones</span></td>
- <td><span py:replace="record.nota">observaciones</span></td>
+ <td><span py:replace="record.asignado">fecha asignado</span></td>
+ <td><span py:replace="record.corregido">fecha corregido</span></td>
+ <td align="right"><span py:replace="record.nota">nota</span></td>
<td>
<a href="${tg.url('/correccion/show/%d' % record.id)}">Ver</a>
<a py:if="not record.corregido and not record.nota" href="${tg.url('/correccion/edit/%d' % record.id)}">Corregir</a>