예제 #1
0
파일: __init__.py 프로젝트: sercom/sercom
    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')
예제 #2
0
파일: __init__.py 프로젝트: sercom/sercom
 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')
예제 #3
0
파일: __init__.py 프로젝트: sercom/sercom
def get_docentes_inscriptos(id):
    return [(di.id, di) for di in DocenteInscripto.select(DocenteInscripto.q.cursoID==id)]
예제 #4
0
파일: __init__.py 프로젝트: sercom/sercom
        #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: