def guardar(self): g = Grupo.get(self.grupoID) ##Cambiamos la , por . para que funcione la conversion a float if self.precio: self.precio = self.precio.replace(',','.') if self.a: self.a.precio = self.precio self.a.factura = self.factura self.a.metalico = self.metalico self.a.grupo = g self.a.alumno = Alumno.get(self.alumnoID) ##Si en la interfaz tenemos confirmado y en BBDD no, confirmamos la asistencia if ( self.confirmado and not self.a.confirmado): self.set_confirmado() return 2 else: self.a.confirmado = self.confirmado return 1 else: ##print "Creando Asistencia nuevo" ##FIXME comprobar si el grupo no está completo! if g.alumnos.__len__() >= g.num_max: logging.debug("Grupo completo!") mostrar_aviso("Grupo lleno","Grupo lleno") return -1 self.a = Asistencia(alumno=Alumno.get(self.alumnoID),grupo=Grupo.get(self.grupoID), precio=self.precio,confirmado=self.confirmado,factura=self.factura,metalico=self.metalico) return 0
def imprimir_etiquetas(self,todos=False,lista_alumnos_elegidos=None,lista_grupos_elegidos=None): """Función que imprime etiquetas con los datos de lso alumnos. Si todos es True imprime los alumnos dados de baja también""" lista = [] p = Provincias() ##Preparamos el docu fichero = get_print_path('Alumnos')+"/Etiquetas_Alumnos.pdf" c = canvas.Canvas(fichero,pagesize=A4) c.translate(mm,mm) if todos: logging.debug("Imprimimos las etiquetas de todos los alumnos") busqueda = Alumno.select() elif lista_alumnos_elegidos!=None: logging.debug("Imprimimos solo ciertos alumnos") busqueda = [] logging.debug(lista_alumnos_elegidos) for numero in lista_alumnos_elegidos: logging.debug( "Vamos a buscar el alumno %s"%numero) try: busqueda.append(Alumno.get(numero)) except: logging.debug( "No hemos encontrado el alumno con la numero %s"%numero) elif lista_grupos_elegidos!=None: logging.debug("Imprimimos solo ciertos grupos") lista_alumnos_elegidos = [] busqueda = [] logging.debug(lista_grupos_elegidos) for numero in lista_grupos_elegidos: logging.debug("Buscando alumnos ne el grupo %s"%numero) for asistencia in Asistencia.select(Asistencia.q.grupoID==numero): logging.debug("Añadiendo el alumno %s"%asistencia.alumno.id) busqueda.append(asistencia.alumno) logging.debug(lista_alumnos_elegidos) else: logging.debug( "Imprimimos las etiquetas de los alumnos activos") busqueda = Alumno.select(Alumno.q.activo==True) for alumno in busqueda: i = p.get_iter_from_string(str(alumno.provincia)) provincia = p.get_value(i,1) lista.append(["%s %s %s"%(alumno.nombre,alumno.apellido1,alumno.apellido2),"%s"%alumno.direccion,"%s - %s - %s"%(alumno.ciudad,alumno.cp,provincia)]) ##Con la lista generada vamos a imprimir cada página con 16 etiquetas for x in range(0,len(lista),16): self.crear_pag_etiquetas(c,lista[x:x+16]) c.showPage() ##Guardamos y listo! c.save() send_to_printer(fichero) return len(lista)
def cargar(self,id): if id == -1: for variable in self._lista_variables: if variable == 'telefono1' or variable == 'telefono2' or variable == 'cp': setattr(self,variable,0) try: setattr(self,variable,'') except: print "Error reiniciando %s"%variable pass self.provincia=49 self.banco = 2095 ## self.fecha_nacimiento="2010-03-03" ## self.telefono1=555444333 ## self.telefono2=0 ## self.cp=48980 ## self.dni="22233444T" self.activo=1 self.id=-1 ##Limpiaos la lista de grupos self.lista_grupos.clear() self.lista_historico.clear() else: self.a = Alumno.get(id) for variable in self._lista_variables: if (variable == 'fecha_nacimiento'): ##La fecha nacimiento la pasamos a string ##fecha = str(getattr(self.a,variable).isoformat()) fecha = "%s-%s-%s"%(str(self.a.fecha_nacimiento.day),str(self.a.fecha_nacimiento.month),str(self.a.fecha_nacimiento.year)) self.fecha_nacimiento="%s"%fecha elif (variable == 'cuenta'): setattr(self,variable,str(ajustar(getattr(self.a,variable),10))) elif (variable == 'dc'): setattr(self,variable,str(ajustar(getattr(self.a,variable),2))) elif (variable == 'sucursal'): setattr(self,variable,str(ajustar(getattr(self.a,variable),4))) elif (variable == 'banco_codigo'): try: setattr(self,variable,str(ajustar(self.a.banco.codigo,4))) except: setattr(self,variable,"9999") else: setattr(self,variable,getattr(self.a,variable)) self.id=id ##refrescamos la lista de grupos a los que quere asistir el alumno if self.email == None: self.email = "---" self.refrescar_lista_grupos() self.refrescar_lista_historico()
def anadir_alumno(self,id): if self.id == -1: print "Antes debemos guardar el grupo, ya que no existe" self.guardar() ##Primero comprobamos si el alumno ya está en la lista for asistencia in self.g.alumnos: if asistencia.alumnoID == id: print "El alumno ya está en la lista!" return ##Obtenemos el alumno de la id a = Alumno.get(id) print "Añadiendo a %s %s %s"%(a.nombre,a.apellido1,a.apellido2) ##Creamos una asistencia sin confirmar para ese alumno c = Asistencia(grupo=self.g,alumno=a,confirmado=False) ##Refrescamos la lista self.rellenar_lista_alumnos()