Esempio n. 1
0
 def printContent(self, request, d, msg):
     # 1) Si se envían datos, se agrega
     try:
         pag = int(request.args['pag'][0])
     except:
         pag = 0        
     _ = request.getSession()._
     if "submit" in request.args.keys():
         op = "insert into subject (name) values (%s)"
         name = QuotedString(request.args['name'][0])
         d.addCallback(lambda a: self.db.db.runOperation(op, (name,)))
         d.addCallback(lambda a: request.write("""<div class="message"><h2>""" + \
          _('Materia agregada') + '</h2>' + \
          _('La materia ha sido guardada correctamente') + """</div>"""))
     elif "del" in request.args.keys():
         # si nos piden borrar, llamamos al metodo de borrar materias de
         # DBDelete, el cual borra la materia si no tiene referencias
         # y si no devuelve False
         erase = DBDelete(self.db)
         delete = int(request.args['del'][0])
         d.addCallback(lambda a: erase.deleteSubject(delete))
         d.addCallback(self.printSubjectDelete, request)
     # 2) Se imprime un mensaje de bienvenida configurable
     d.addCallback(lambda a: request.write(msg))
     # 3) Se buscan los datos nuevos en la base
     op = "select s.id, s.name, count(fk_subject), (select count(*) from subject) from subject s \
           left join tutor_subject t on (s.id = t.fk_subject) \
           group by s.id, s.name order by name asc"
           
     op += " LIMIT %d OFFSET %d" %  (ITEMS_PAG, ITEMS_PAG*pag)              
     d.addCallback(lambda a: self.db.db.runQuery(op))
     d.addCallback(self.printForm, request, pag)
     return d
Esempio n. 2
0
 def checkUser(self, rows, userId, request):
     session = request.getSession()
     _ = session._
     d = defer.maybeDeferred(lambda: None)
     if len(rows) != 1:
         d.addCallback(lambda a: \
              request.write(self.template.unexpectedArguments(session, \
              _('No es alumno del cliente'))))
     else:
         erase = DBDelete(self.db)
         to_delete = str(rows[0][0])
         d.addCallback(lambda a: erase.deletePupil(to_delete))
         d.addCallback(lambda a: request.write('<div class="message">' + \
          _('El usuario ha sido borrado correctamente') + '</div>'))
     return d
Esempio n. 3
0
 def doAuthentication(self, trans, request):
     session = request.getSession()
     _ = trans
     # Se escribe el comienzo de la página
     request.write(self.template.startPage(session, \
          _('Listado de usuarios del sistema')))
     d = defer.maybeDeferred(lambda: None)
     keys = request.args.keys()
     # Si no es admin o no esta loggeado, no seguimos
     if not hasattr(session, 'username') or session.kind != ADMIN:
         request.write(self.template.notAuthenticated(session))
     else:
         if "kind" in request.args.keys():
             try:
                 kind = int(request.args['kind'][0])
                 if "del" in keys:
                     erase = DBDelete(self.db)
                     client = QuotedString(request.args['del'][0])
                     d.addCallback(lambda a: erase.deletePerson(client, kind))
                     d.addCallback(lambda a: request.write('<div class="message">' + \
                      _('El usuario ha sido borrado correctamente') + '</div>'))
                 elif ("ia" in keys or "pc" in keys) and "user_id" in keys and \
                     not ("ia" in keys and "pc" in keys):
                     hours = ("ia" in keys) and "ia" or "pc"
                     user = QuotedString(request.args['user_id'][0])
                     cant = float(request.args[hours][0].replace(",", "."))
                     d.addCallback(lambda a: self.setClientHours(user, cant, hours))
                     d.addCallback(lambda a: request.write('<div class="message">' + \
                      _('Se ha actualizado correctamente la cantidad de horas  disponibles') + '</div>'))
                 d.addCallback(lambda a: self.listClient(request))
             except ValueError:
                     d.addCallback(lambda a: \
                      request.write(self.template.unexpectedArguments(session, \
                      _('Argumento no valido'))))
         else:
             d.addCallback(lambda a: \
              request.write(self.template.unexpectedArguments(session, \
             _('Falta el argumento \'kind\''))))
     # Se escribe el final de la página
     d.addCallback(lambda a: request.write(self.template.finishPage(session)))
     d.addCallback(lambda a: request.finish())
     return d
Esempio n. 4
0
    def render_GET(self, request):

        #verifico el parametro get por si hay que borrar una clase. 
        

        keys = request.args.keys()
        if "del" in keys:
            d = defer.maybeDeferred(lambda: None)
            alumno = request.getSession().userId
            erase = DBDelete(self.db)
            clase = int(request.args['del'][0])
            d.addCallback(lambda a: erase.deletePA(clase, alumno)) #borramos la cosa.
            
            #falta imprimir mensaje de operacion correcta
            #como llego a la funcion de internacionalizacion? 
            
            #d.addCallback(lambda a: request.write('<div class="message">' + \
            #    _('La clase se ha cancelado correctamente') \
            #    + '</div>'))
            
        d = defer.maybeDeferred(getTranslatorFromSession, request)
        d.addCallback(self.writeWelcomeMessage, request)
        return server.NOT_DONE_YET