Esempio n. 1
0
    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)
Esempio n. 2
0
 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)
Esempio n. 4
0
 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)