def adminupdate(self, **kw): """Save or create record to model""" cursoID = int(kw['cursoID']) log.debug(kw) grupoAId = kw['listaGrupoA'] grupoBId = kw['listaGrupoB'] miembrosA = kw.get('grupos_from', []) miembrosB = kw.get('grupos_to', []) responsableA = kw['responsableA'] responsableB = kw['responsableB'] tutoresA = kw.get('tutoresA', []) tutoresB = kw.get('tutoresB', []) # por las dudas de que no sea una lista if not isinstance(miembrosA, list): miembrosA = [miembrosA] if not isinstance(miembrosB, list): miembrosB = [miembrosB] if not isinstance(tutoresA, list): tutoresA = [tutoresA] if not isinstance(tutoresB, list): tutoresB = [tutoresB] """ levanto los grupos originales """ grupoAorig = validate_get(int(grupoAId)) log.debug(miembrosA) log.debug(Miembro.selectBy(grupo=grupoAorig, baja=None)) """ Si el grupo A quedo vacio deberia eliminarlo (primero genero los otros para que no elimine los alumnos)""" for mA in Miembro.selectBy(grupo=grupoAorig, baja=None): if str(mA.alumno.id) not in miembrosA: grupoAorig.remove_miembro(mA.alumno.id) try: grupoA = validate_get(grupoAId) for a in miembrosA: try: grupoA.add_miembro(a, baja=None) except DuplicateEntryError: continue except Exception, e: log.debug(e) flash(_(u'Error A %s.' % e)) raise redirect(url('/curso/grupo/list' % int(cursoID)))
def get_alumnos(self, grupoid): try: # Busco los alumnos del grupo grupo = Grupo.get(int(grupoid)) miembros = Miembro.selectBy(baja=None, grupo=grupo) integrantes = [] for m in miembros: msg = {} alumnoInscripto = AlumnoInscripto.get(m.alumno.id) msg['id'] = alumnoInscripto.id msg['label'] = alumnoInscripto.alumno.usuario integrantes.append(msg) return dict(msg=integrantes, error=False) except Exception, (inst): msg = u"""Se ha producido un error inesperado al buscar el registro:\n %s""" % str(inst) integrantes = [msg] return dict(msg=integrantes, error=True)
# 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: grupoB.add_miembro(b, baja=None) except DuplicateEntryError: continue except Exception, e: log.debug(e) flash(_(u'Error B %s.' % e))