def dashboard_data(request): valid_session = (timezone.now() - request.user.session.last_access) < timedelta(seconds=200) if valid_session: sysacad = SysacadSession(alumno=request.user) else: return {'state': 'password_required'} materias_dict = sysacad.estado_academico_data()['materias'] sysacad.close() materias = request.user.actualizar_materias(materias_dict).filter(estado='cursa') materias = request.user.materias.filter(estado='cursa') aprobadas_percent = request.user.get_materia_percent('aprobada') regularizadas_percent = request.user.get_materia_percent('regular') cursa_percent = request.user.get_materia_percent('cursa') carrera_progress = request.user.get_carrera_progress() context = { 'materias': materias, 'aprobadas_percent': aprobadas_percent, 'regularizadas_percent': regularizadas_percent, 'cursa_percent': cursa_percent, 'carrera_progress': carrera_progress, } return { 'state': 'OK', 'html': render_to_string('dashboard_data.html', context) }
def save(self, commit=True): sysacad = SysacadSession(alumno=self.user) sysacad.change_password(self.cleaned_data["old_password"], self.cleaned_data["new_password1"]) sysacad.close() self.user.set_password(self.cleaned_data["new_password1"]) if self.cleaned_data["email"] != "": self.user.email = self.cleaned_data["email"] if commit: self.user.save() return self.user
def get_queryset(self): alumno_pk = self.kwargs['alumno_pk'] alumno = Alumno.objects.get(pk=alumno_pk) if self.request.QUERY_PARAMS.get('cached', 'true') == 'false': # TODO: Actualizar datos de materias sysacad = SysacadSession(alumno=alumno) try: materias = sysacad.estado_academico_data()['materias'] except SysacadSession.AuthenticationError: raise exceptions.NotAuthenticated sysacad.close() for materia in materias: if int(materia['anio']) == 0: continue try: materia_obj = Materia.objects.get(nombre=materia['nombre']) except Materia.DoesNotExist: materia_obj = Materia.objects.create( nombre = materia['nombre'], plan = materia['plan'], anio = materia['anio'] ) estadomateria = alumno.materias.get_or_create(info=materia_obj)[0] if materia['estado']['estado'] == 'aprobada': estadomateria.estado = 'aprobada' estadomateria.data = { 'nota': materia['estado']['nota'], 'tomo': materia['estado']['tomo'], 'folio': materia['estado']['folio'], } elif materia['estado']['estado'] == 'cursa': estadomateria.estado = 'cursa' estadomateria.data = { 'aula': materia['estado']['aula'], 'comision': materia['estado']['comision'] } elif materia['estado']['estado'] == 'regular': estadomateria.estado = 'regular' else: estadomateria.estado = 'no_inscripto' estadomateria.save() return alumno.materias.all()
def get_object(self): alumno = super(AlumnosDetail, self).get_object() if self.request.QUERY_PARAMS.get('cached', 'true') == 'false': # Actualizar la data del alumno sysacad = SysacadSession(alumno=alumno) try: datos_alumno = sysacad.estado_academico_data()['datos_alumno'] except SysacadSession.AuthenticationError: raise exceptions.NotAuthenticated alumno.first_name, alumno.last_name = datos_alumno alumno.save() sysacad.close() return alumno