示例#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')