def update(self, id, **kw): """Save or create record to model""" params = dict([(k,v) for (k,v) in kw.iteritems() if k in Curso.sqlmeta.columns.keys()]) r = validate_set(id, params) docentesIds = kw.get('docentes_to', []) alumnosIds = kw.get('alumnos', []) docentesIds = isinstance(docentesIds, basestring) and [int(docentesIds)] or [int(d) for d in docentesIds] alumnosIds = isinstance(alumnosIds, basestring) and [int(alumnosIds)] or [int(d) for d in alumnosIds] alumnos_inscriptos = AlumnoInscripto.selectBy(curso=id) docentes_inscriptos = DocenteInscripto.selectBy(curso=id) """ elimino a los docentes que no fueron seleccionados y agrego los nuevos """ for di in docentes_inscriptos: if di.docenteID in docentesIds: docentesIds.remove(di.docenteID) else: r.remove_docente(di.docenteID) for d in docentesIds: r.add_docente(d) """ idem con los alumnos """ for ai in alumnos_inscriptos: if ai.alumnoID in alumnosIds: alumnosIds.remove(ai.alumnoID) else: r.remove_alumno(ai.alumno) for a in alumnosIds: r.add_alumno(a) flash(_(u'El %s fue actualizado.') % name) raise redirect('../list')
def create(self, **kw): """Save or create record to model""" r = validate_new(kw) docentes = kw.get('docentes', []) alumnos = kw.get('alumnos', []) """ Elimino todos los docentes asignados al curso y los agrego nuevamente""" for d in DocenteInscripto.selectBy(curso=r): d.destroySelf() """ Agrego la nueva seleccion """ for d in docentes: r.add_docente(Docente(d)) """ Elimino a los alumnos y los vuelvo a agregar """ for a in AlumnoInscripto.selectBy(curso=r): d.destroySelf() for a in alumnos: r.add_alumno(Alumno(a)) flash(_(u'Se creó un nuevo %s.') % name) raise redirect('list')
def get_docentes_inscriptos(id): return [(di.id, di) for di in DocenteInscripto.select(DocenteInscripto.q.cursoID==id)]
#Elimino el grupo si quedo vacio if len(miembrosA) == 0: try: validate_del(grupoAId) except: pass # si se selecciono un grupo nuevo if int(grupoBId) == 0: # creo un grupo nuevo nuevosMiembros = [] for m in miembrosB: nuevosMiembros.append(AlumnoInscripto.get(int(m))) nuevosTutores = [] for t in tutoresB: nuevosTutores.append(DocenteInscripto.get(t)) #Creo el nuevo grupo Grupo(miembros = nuevosMiembros, tutores = nuevosTutores, cursoID=cursoID, nombre='NuevoGrupo'+str(cursoID)) else: grupoBorig = validate_get(int(grupoBId)) log.debug(miembrosB) b = list(Miembro.selectBy(grupo=grupoBorig, baja=None)) log.debug(b) #borro todos y los vuelvo a agregar for mB in Miembro.selectBy(grupo=grupoBorig, baja=None): if str(mB.alumno.id) not in miembrosB: grupoBorig.remove_miembro(mB.alumno.id) try: grupoB = validate_get(grupoBId) for b in miembrosB: try: