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