+ raise redirect(url('/dashboard'))
+
+ @expose(template='.templates.welcome')
+ @identity.require(identity.not_anonymous())
+ def dashboard(self):
+ now = DateTimeCol.now()
+ if 'admin' in identity.current.permissions:
+ # TODO : Fijar el curso !!
+ correcciones = Correccion.selectBy(corrector=identity.current.user,
+ corregido=None).count()
+ instancias = list(InstanciaDeEntrega.select(
+ AND(InstanciaDeEntrega.q.inicio <= now,
+ InstanciaDeEntrega.q.fin > now))
+ .orderBy(InstanciaDeEntrega.q.fin))
+ return dict(a_corregir=correcciones,
+ instancias_activas=instancias, now=now)
+
+ if 'entregar' in identity.current.permissions:
+ last_login = Visita.select(AND(VisitaUsuario.q.user_id == identity.current.user.id, Visita.q.visit_key == VisitaUsuario.q.visit_key))[-1:][0].created
+ # Proximas instancias de entrega
+ instancias = list(InstanciaDeEntrega.select(
+ AND(InstanciaDeEntrega.q.inicio <= now,
+ InstanciaDeEntrega.q.fin > now)).orderBy(InstanciaDeEntrega.q.fin))
+ # Ultimas N entregas realizadas
+ # Grupos en los que el usuario formo parte
+ m = [i.grupo.id for i in Grupo.selectByAlumno(identity.current.user)]
+ try:
+ entregador = AlumnoInscripto.selectByAlumno(identity.current.user)
+ m.append(entregador.id)
+ except:
+ pass
+ entregas = list(Entrega.select(IN(Entrega.q.entregadorID, m))[:5])
+
+ # Ultimas correcciones
+ correcciones = list(Correccion.select(AND(IN(Correccion.q.entregadorID, m), Correccion.q.corregido >= last_login)))
+ return dict(instancias_activas=instancias, now=now, entregas=entregas, correcciones=correcciones)
+ return dict()