From: Ricardo Markiewicz Date: Mon, 5 Mar 2007 00:57:24 +0000 (+0000) Subject: curso X-Git-Tag: 0_9~129 X-Git-Url: https://git.llucax.com/z.facultad/75.52/sercom.git/commitdiff_plain/2c2bc622008bd1611d3bf7f8a5a4c88a7544912e?hp=d480400b3f16dd41f6796f5af15ef2be6dfdf6d0 curso * ahora se puede eliminar alumnos desde la edicion del curso --- diff --git a/doc/alumno_curso_test.csv b/doc/alumno_curso_test.csv new file mode 100644 index 0000000..53f6da0 --- /dev/null +++ b/doc/alumno_curso_test.csv @@ -0,0 +1,4 @@ +78226,Ricardo Markiewicz,rmarkie@fi.uba.ar,45524413 +12345,juan perez,jperez@gmail.com,12345 +78945,pepe parada,ppepe@gmail.com,78945 +65444,marcelo araujo,marcelo@gmail.com,65444 diff --git a/sercom/subcontrollers/alumno/__init__.py b/sercom/subcontrollers/alumno/__init__.py index 3d2c11a..155c781 100644 --- a/sercom/subcontrollers/alumno/__init__.py +++ b/sercom/subcontrollers/alumno/__init__.py @@ -182,7 +182,7 @@ class AlumnoController(controllers.Controller, identity.SecureResource): alumno = Alumno.byPadron(padron=padron) msg = {} msg['id'] = alumno.id - msg['value'] = alumno.nombre + msg['value'] = alumno.shortrepr() except SQLObjectNotFound: msg = 'No existe el alumno con padron: %s.' % padron error=True diff --git a/sercom/subcontrollers/curso/__init__.py b/sercom/subcontrollers/curso/__init__.py index c838777..7411437 100644 --- a/sercom/subcontrollers/curso/__init__.py +++ b/sercom/subcontrollers/curso/__init__.py @@ -144,6 +144,7 @@ class CursoForm(W.TableForm): alumnos = AjaxMultiSelect(label=_(u'Alumnos'), validator=V.Int(), + attrs = dict(size='20'), on_add="alumnos_agregar_a_la_lista") fields = Fields() @@ -229,7 +230,7 @@ class CursoController(controllers.Controller, identity.SecureResource): values.descripcion = r.descripcion # cargo la lista con los docentes asignados al curso values.docentes_curso = [{"id":d.docente.id, "label":d.docente.shortrepr()} for d in DocenteInscripto.selectBy(curso=r.id)] - values.alumnos_inscriptos = [{"id":a.alumno.id, "label":a.alumno.nombre} for a in AlumnoInscripto.selectBy(curso=r.id)] + values.alumnos_inscriptos = [{"id":a.alumno.id, "label":a.alumno.shortrepr()} for a in AlumnoInscripto.selectBy(curso=r.id)] return dict(name=name, namepl=namepl, record=values, form=form) @@ -243,6 +244,7 @@ class CursoController(controllers.Controller, identity.SecureResource): docentes = kw.get('docentes_curso', []) alumnos = kw.get('alumnos', []) + alumnos_inscriptos = AlumnoInscripto.selectBy(curso=id) """ levanto los doncentes del curso para ver cuales tengo que agregar """ docentes_inscriptos = DocenteInscripto.selectBy(curso=id) @@ -259,6 +261,12 @@ class CursoController(controllers.Controller, identity.SecureResource): pass """ Verifico que los alumnos no esten ya inscriptos """ + for a in alumnos_inscriptos: + if (a.id not in alumnos): + try: + r.remove_alumno(a.alumno) + except: + pass for a in alumnos: try: r.add_alumno(a) @@ -301,6 +309,9 @@ class CursoController(controllers.Controller, identity.SecureResource): continue try: u = Alumno(row[0], nombre=row[1]) + except: + u = Alumno.byPadron(row[0]) + try: u.email = row[2] u.telefono = row[3] u.contrasenia = row[0] diff --git a/sercom/subcontrollers/grupo/__init__.py b/sercom/subcontrollers/grupo/__init__.py index 6be1757..e6e3e49 100644 --- a/sercom/subcontrollers/grupo/__init__.py +++ b/sercom/subcontrollers/grupo/__init__.py @@ -240,7 +240,7 @@ class GrupoController(controllers.Controller, identity.SecureResource): alumno=Alumno.byPadron(kw['responsable'])).getOne() except SQLObjectNotFound: flash(_(u'El responsable %s no existe') % resp) - raise redirect('list') + raise redirect('../list') kw['responsable'] = resp r = validate_set(id, kw) flash(_(u'El %s fue actualizado.') % name)