def consultar_actas_notas(self, acta_data): registry = http.request.registry cr = http.request.cr uid = http.request.uid user_obj = registry('res.users') user_ids = user_obj.search(cr, uid, [('id', '=', uid)]) user_data = user_obj.browse(cr, uid, user_ids) inscripcion_obj = registry('unefa.inscripcion_asignatura') inscripcion_asignatura_obj = registry('unefa.asignatura_inscritas') estudiante_obj = registry('unefa.usuario_estudiante') inscripcion_id = inscripcion_obj.search( cr, uid, [('periodo_id', '=', acta_data['gestion_semestre_id']['periodo_id']['id']), ('state', 'in', ['inscrito'])]) inscripcion_data = inscripcion_obj.browse(cr, uid, inscripcion_id) list_inscripcion_ids = [] list_estudiantes_ids = [] for inscripcion in inscripcion_data: if inscripcion.user_id.pensum_id.id == acta_data['pensum_id'][ 'id']: list_inscripcion_ids.append(inscripcion.id) inscripcion_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', False)]) inscripcion_especial_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_relacion_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', True)]) asignaturas_inscritas_total_ids = list( set(inscripcion_asignatura_id) | set(inscripcion_especial_asignatura_id)) inscripcion_asignatura_data = inscripcion_asignatura_obj.browse( cr, uid, asignaturas_inscritas_total_ids) for ins_asig in inscripcion_asignatura_data: list_estudiantes_ids.append(ins_asig.inscripcion_id.user_id.id) estudiantes_ids = estudiante_obj.search( cr, uid, [('id', 'in', list_estudiantes_ids)], order='primer_apellido') usuario_estudiante_data = estudiante_obj.browse( cr, uid, estudiantes_ids) lista_estudiantes = [] lista_usuarios = [] for acta in acta_data: for estudiantes in acta.notas_ids: lista_estudiantes.append(estudiantes.estudiante_id.id) lista_usuarios.append(estudiantes.estudiante_id.user_id.id) if (uid in lista_usuarios) or ( uid == acta_data['gestion_semestre_id']['profesor_id']['id'] ) or (user_data['is_coordinador'] == True) or (user_data['is_asistente'] == True): datos = { 'parametros': { 'titulo': 'Consultar Acta de Notas', 'template': 'unefa_gestion_semestre.consultar_acta_notas', 'url_boton_list': '', 'remover_btn_enviar': 'si', 'id_form': 'formconsultaractas', }, 'usuario_estudiante_data': usuario_estudiante_data, 'acta_data': acta_data, 'lista_estudiantes': lista_estudiantes, } return panel.panel_post(datos) else: mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'Usted no tiene permiso para consultar este acta de notas', 'volver': '/' } return http.request.website.render('website_apiform.mensaje', mensaje_usuario)
def editar_actas_notas(self, acta_data): registry = http.request.registry cr = http.request.cr uid = http.request.uid context = http.request.context if uid == acta_data['gestion_semestre_id']['profesor_id']['id']: if acta_data['gestion_semestre_id']['acta_aprobada'] == False: inscripcion_obj = registry('unefa.inscripcion_asignatura') inscripcion_asignatura_obj = registry( 'unefa.asignatura_inscritas') estudiante_obj = registry('unefa.usuario_estudiante') inscripcion_id = inscripcion_obj.search( cr, uid, [('periodo_id', '=', acta_data['gestion_semestre_id']['periodo_id']['id']), ('state', 'in', ['inscrito'])]) inscripcion_data = inscripcion_obj.browse( cr, uid, inscripcion_id) list_inscripcion_ids = [] list_estudiantes_ids = [] for inscripcion in inscripcion_data: if inscripcion.user_id.pensum_id.id == acta_data[ 'pensum_id']['id']: list_inscripcion_ids.append(inscripcion.id) inscripcion_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', False)]) inscripcion_especial_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_relacion_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', True)]) asignaturas_inscritas_total_ids = list( set(inscripcion_asignatura_id) | set(inscripcion_especial_asignatura_id)) inscripcion_asignatura_data = inscripcion_asignatura_obj.browse( cr, uid, asignaturas_inscritas_total_ids) for ins_asig in inscripcion_asignatura_data: list_estudiantes_ids.append( ins_asig.inscripcion_id.user_id.id) estudiantes_ids = estudiante_obj.search( cr, uid, [('id', 'in', list_estudiantes_ids)], order='primer_apellido') usuario_estudiante_data = estudiante_obj.browse( cr, uid, estudiantes_ids) lista_estudiantes = [] for acta in acta_data: for estudiantes in acta.notas_ids: lista_estudiantes.append(estudiantes.estudiante_id.id) datos = { 'parametros': { 'titulo': 'Actas de Notas', 'template': 'unefa_gestion_semestre.editar_acta_notas', 'url_boton_list': '', 'css': 'info', 'id_form': 'formeditaractasnotas', 'id_enviar': 'editar_acta_notas', 'action': '/actas/editar', }, 'acta_data': acta_data, 'usuario_estudiante_data': usuario_estudiante_data, 'lista_estudiantes': lista_estudiantes, } return panel.panel_post(datos) else: mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'El acta de nota ya fue aprobada, No podra realizar modificacionas en las mismas.', 'volver': '/' } else: mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'Usted no tiene permiso para editar actas de notas', 'volver': '/' } return http.request.website.render('website_apiform.mensaje', mensaje_usuario)
def consultar_horarios(self, horarios_data): registry = http.request.registry cr = http.request.cr uid = http.request.uid context = http.request.context relacion_hora_turno = registry.get('unefa.horas_turno') relacion_hora_turno_ids = relacion_hora_turno.search( cr, uid, [('turno', '=', horarios_data['horario_id']['turno']), ('periodo_id', '=', horarios_data['horario_id']['periodo_id']['id']), ('state', '=', 'aprobado')]) relacion_hora_turno_data = relacion_hora_turno.browse( cr, uid, relacion_hora_turno_ids) relacion_hora_sabado_ids = relacion_hora_turno.search( cr, uid, [('turno', '=', 'sabatino'), ('periodo_id', '=', horarios_data['horario_id']['periodo_id']['id']), ('state', '=', 'aprobado')]) relacion_hora_sabado_data = relacion_hora_turno.browse( cr, uid, relacion_hora_sabado_ids) asignatura_seccion_obj = registry.get( 'unefa.oferta_academica_asignatura') asignatura_seccion_ids = asignatura_seccion_obj.search( cr, uid, [('oferta_asignatura_id', '=', horarios_data['seccion_id']['id'])]) asignatura_seccion_data = asignatura_seccion_obj.browse( cr, uid, asignatura_seccion_ids) asignatura_oferta_academica_obj = registry.get( 'unefa.oferta_academica_asignatura') asignatura_oferta_academica_ids = asignatura_oferta_academica_obj.search( cr, uid, [('oferta_asignatura_id', '=', horarios_data['seccion_id']['id'])]) asignatura_oferta_academica_data = asignatura_oferta_academica_obj.browse( cr, uid, asignatura_oferta_academica_ids) dic_prelacion = {} for i in asignatura_seccion_data: prelacion = '' cont = 1 for n in i.asignatura_id.asignaturas_ids: if len(i.asignatura_id.asignaturas_ids) == cont: prelacion += n.codigo_asignatura else: prelacion += n.codigo_asignatura + '-' cont += 1 dic_prelacion[i.id] = prelacion datos = { 'parametros': { 'titulo': 'Consultar Horarios', 'template': 'unefa_horarios.consultar_horarios', 'url_boton_list': '', 'remover_btn_enviar': 'si', 'id_form': 'formconsultarhorario', }, 'horarios_data': horarios_data, 'relacion_hora_turno_data': relacion_hora_turno_data, 'asignatura_seccion_data': asignatura_seccion_data, 'relacion_hora_sabado_data': relacion_hora_sabado_data, 'buscar_clase': self.buscar_clase, 'asignatura_oferta_academica_data': asignatura_oferta_academica_data, 'dic_prelacion': dic_prelacion, } return panel.panel_post(datos)
def crear_actas_notas(self, acta_data): registry = http.request.registry cr = http.request.cr uid = http.request.uid context = http.request.context if acta_data['creado'] != True: if uid == acta_data['gestion_semestre_id']['profesor_id']['id']: inscripcion_obj = registry('unefa.inscripcion_asignatura') inscripcion_asignatura_obj = registry( 'unefa.asignatura_inscritas') estudiante_obj = registry('unefa.usuario_estudiante') inscripcion_id = inscripcion_obj.search( cr, uid, [('periodo_id', '=', acta_data['gestion_semestre_id']['periodo_id']['id']), ('state', 'in', ['inscrito'])]) inscripcion_data = inscripcion_obj.browse( cr, uid, inscripcion_id) list_inscripcion_ids = [] list_estudiantes_ids = [] for inscripcion in inscripcion_data: if inscripcion.user_id.pensum_id.id == acta_data[ 'pensum_id']['id']: list_inscripcion_ids.append(inscripcion.id) inscripcion_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', False)]) inscripcion_especial_asignatura_id = inscripcion_asignatura_obj.search( cr, uid, [('inscripcion_id', 'in', list_inscripcion_ids), ('asignatura_relacion_id', '=', acta_data['gestion_semestre_id']['asignatura_id']['id']), ('seccion_id', '=', acta_data['gestion_semestre_id']['seccion_id']['id']), ('inscripcion_especial', '=', True)]) asignaturas_inscritas_total_ids = list( set(inscripcion_asignatura_id) | set(inscripcion_especial_asignatura_id)) inscripcion_asignatura_data = inscripcion_asignatura_obj.browse( cr, uid, asignaturas_inscritas_total_ids) for ins_asig in inscripcion_asignatura_data: list_estudiantes_ids.append( ins_asig.inscripcion_id.user_id.id) estudiantes_ids = estudiante_obj.search( cr, uid, [('id', 'in', list_estudiantes_ids)], order='primer_apellido') usuario_estudiante_data = estudiante_obj.browse( cr, uid, estudiantes_ids) datos = { 'parametros': { 'titulo': 'Actas de Notas', 'template': 'unefa_gestion_semestre.crear_acta_notas', 'url_boton_list': '', 'css': 'info', 'id_form': 'formcrearactasnotas', 'id_enviar': 'enviar_acta_notas', 'action': '/actas/guardar', }, 'acta_data': acta_data, 'usuario_estudiante_data': usuario_estudiante_data, } return panel.panel_post(datos) else: mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'Usted no tiene permiso para acceder a estos registros', 'volver': '/' } return http.request.website.render('website_apiform.mensaje', mensaje_usuario) else: mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'Ya ha sido creado un registro de acta de notas para esta asignatura', 'volver': '/' } return http.request.website.render('website_apiform.mensaje', mensaje_usuario)
def editar_horarios(self, horarios_data): registry = http.request.registry cr = http.request.cr uid = http.request.uid context = http.request.context users_obj = registry.get('res.users') users_ids = users_obj.search(cr, uid, [('id', '=', uid)]) users_data = users_obj.browse(cr, uid, users_ids) list_group = [] for g in users_data['groups_id']: list_group.append(g.name) mensaje_usuario = { 'titulo': 'Aviso!', 'mensaje': 'Disculpe su rol NO tiene permisos para realizar la elaboración de horarios, Comuníquese con el administrador del sistema', 'volver': '/' } if ('Coordinador' in list_group) or ('Profesor Adjunto' in list_group): print True else: return http.request.website.render('website_apiform.mensaje', mensaje_usuario) relacion_hora_turno = registry.get('unefa.horas_turno') relacion_hora_turno_ids = relacion_hora_turno.search( cr, uid, [('turno', '=', horarios_data['horario_id']['turno']), ('periodo_id', '=', horarios_data['horario_id']['periodo_id']['id']), ('state', '=', 'aprobado')]) relacion_hora_turno_data = relacion_hora_turno.browse( cr, uid, relacion_hora_turno_ids) relacion_hora_sabado_ids = relacion_hora_turno.search( cr, uid, [('turno', '=', 'sabatino'), ('periodo_id', '=', horarios_data['horario_id']['periodo_id']['id']), ('state', '=', 'aprobado')]) relacion_hora_sabado_data = relacion_hora_turno.browse( cr, uid, relacion_hora_sabado_ids) asignatura_seccion_obj = registry.get( 'unefa.oferta_academica_asignatura') asignatura_seccion_ids = asignatura_seccion_obj.search( cr, uid, [('oferta_asignatura_id', '=', horarios_data['seccion_id']['id'])]) asignatura_seccion_data = asignatura_seccion_obj.browse( cr, uid, asignatura_seccion_ids) asignatura_oferta_academica_obj = registry.get( 'unefa.oferta_academica_asignatura') asignatura_oferta_academica_ids = asignatura_oferta_academica_obj.search( cr, uid, [('oferta_asignatura_id', '=', horarios_data['seccion_id']['id'])]) asignatura_oferta_academica_data = asignatura_oferta_academica_obj.browse( cr, uid, asignatura_oferta_academica_ids) dic_prelacion = {} for i in asignatura_seccion_data: prelacion = '' cont = 1 for n in i.asignatura_id.asignaturas_ids: if len(i.asignatura_id.asignaturas_ids) == cont: prelacion += n.codigo_asignatura else: prelacion += n.codigo_asignatura + '-' cont += 1 dic_prelacion[i.id] = prelacion datos = { 'parametros': { 'titulo': 'Editar Horario', 'template': 'unefa_horarios.editar_horarios', 'url_boton_list': '', 'css': 'info', 'id_form': 'formeditarhorario', 'id_enviar': 'enviar_horario_editado', 'action': '/horarios/editar', }, 'horarios_data': horarios_data, 'relacion_hora_turno_data': relacion_hora_turno_data, 'asignatura_seccion_data': asignatura_seccion_data, 'relacion_hora_sabado_data': relacion_hora_sabado_data, 'asignatura_oferta_academica_data': asignatura_oferta_academica_data, 'dic_prelacion': dic_prelacion, } return panel.panel_post(datos)