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