Exemplo n.º 1
0
    def curso_tiene_horario_valido(self, curso, horarios_invalidos):
        for horario_curso in HorarioPorCurso.query.filter_by(
                curso_id=curso.id).filter_by(es_horario_activo=True).all():
            horario = Horario.query.get(horario_curso.horario_id)
            if not horario.dia in horarios_invalidos:
                continue

            horario = Modelo_Horario(dia=horario.dia,
                                     hora_inicio=float(horario.hora_desde),
                                     hora_fin=float(horario.hora_hasta))
            franjas = horario.get_franjas_utilizadas()
            for franja in franjas:
                if franja in horarios_invalidos[horario.dia]:
                    return False

        return True
Exemplo n.º 2
0
    def normalizar_dias_y_franjas_invalidas(self, horarios_invalidos):
        horarios_normalizados = {}
        for datos_horario in horarios_invalidos:
            franjas = horarios_normalizados.get(datos_horario["dia"], [])

            horario = Modelo_Horario(dia=datos_horario["dia"],
                                     hora_inicio=self.get_hora_numerica(
                                         datos_horario["hora_desde"]),
                                     hora_fin=self.get_hora_numerica(
                                         datos_horario["hora_hasta"]))

            for franja in horario.get_franjas_utilizadas():
                if not franja in franjas:
                    franjas.append(franja)

            horarios_normalizados[datos_horario["dia"]] = franjas

        return horarios_normalizados
Exemplo n.º 3
0
    def inicializar_con_JSON(self, datos_json):
        self.id_curso = datos_json["id_curso"]
        self.cod = datos_json["cod"]
        self.nombre = datos_json["nombre"]

        horarios = []
        for datos_horario in datos_json["horarios"]:
            horarios.append(Horario(datos_JSON=datos_horario))
        self.horarios = horarios

        self.se_dicta_primer_cuatrimestre = datos_json[
            "se_dicta_primer_cuatrimestre"]
        self.se_dicta_segundo_cuatrimestre = datos_json[
            "se_dicta_segundo_cuatrimestre"]
        self.puntaje = datos_json["puntaje"]
        self.medias_horas_cursada = datos_json["medias_horas_cursada"]
Exemplo n.º 4
0
    def transformar_horario(self, horarioPDF):
        horarios = []
        for horario in horarioPDF["Horarios"]:
            horarios.append(
                Horario(dia=horario[0],
                        hora_inicio=horario[1],
                        hora_fin=horario[2]))

        self.ultimo_id_curso += 1

        return Curso(id_curso=self.ultimo_id_curso,
                     cod_materia=horarioPDF["Codigo"],
                     nombre_curso="Curso" + horarioPDF["Curso"],
                     horarios=horarios,
                     se_dicta_primer_cuatrimestre=True,
                     se_dicta_segundo_cuatrimestre=True,
                     puntaje=0)
Exemplo n.º 5
0
    def procesar_materia(self, linea, dia, hora):
        codigo, nombre, creditos, tipo, cred_minimos, correlativas = linea.split(
            ",")

        creditos = int(creditos)
        cred_minimos = int(cred_minimos)

        correlativas = correlativas.split("-")
        if not correlativas or correlativas[0] == '':
            correlativas = []

        tipo = self.obtener_tipo_de_materia(tipo)

        self.ultimo_id_materia += 1

        materia = Materia(id_materia=self.ultimo_id_materia,
                          codigo=codigo,
                          nombre=nombre,
                          creditos=creditos,
                          tipo=tipo,
                          cred_min=cred_minimos,
                          correlativas=correlativas,
                          tematicas_principales=[],
                          medias_horas_extras_cursada=creditos * 2)

        self.codigo_a_id[materia.codigo] = materia.id_materia

        self.ultimo_id_curso += 1

        horarios_curso = [
            Curso(id_curso=self.ultimo_id_curso,
                  cod_materia=codigo,
                  nombre_curso="Curso" + codigo,
                  horarios=[Horario(dia, hora, hora + 1)],
                  se_dicta_primer_cuatrimestre=True,
                  se_dicta_segundo_cuatrimestre=True,
                  puntaje=0)
        ]

        self.materias[materia.id_materia] = materia
        self.horarios[materia.id_materia] = horarios_curso

        return self.proximo_horario(dia, hora)
Exemplo n.º 6
0
from app.API_Rest.GeneradorPlanCarreras.modelos.Curso import Curso
from app.API_Rest.GeneradorPlanCarreras.modelos.Materia import Materia
from app.API_Rest.GeneradorPlanCarreras.modelos.Horario import Horario
from app.API_Rest.GeneradorPlanCarreras.ParametrosDTO import OBLIGATORIA, ELECTIVA
from app.API_Rest.GeneradorPlanCarreras.Constantes import *

#############################################
##              Horarios                   ##
#############################################

LUNES_7_7y5 = Horario(
    dia=LUNES,
    hora_inicio=7,
    hora_fin=7.5
)

LUNES_7y5_8 = Horario(
    dia=LUNES,
    hora_inicio=7.5,
    hora_fin=8
)

LUNES_7_8 = Horario(
    dia=LUNES,
    hora_inicio=7,
    hora_fin=8
)

LUNES_8_8y5 = Horario(
    dia=LUNES,
    hora_inicio=8,