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
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
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
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