示例#1
0
文件: __init__.py 项目: sercom/sercom
    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)))
示例#2
0
文件: __init__.py 项目: sercom/sercom
    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)
示例#3
0
文件: __init__.py 项目: sercom/sercom
        # 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))