Example #1
0
def create_disciplina():
    # cursos = Curso.objects.all()
    # disciplinas = [
    #     {
    #         'codigo': 'CAX-MTM001',
    #         'nome': 'Matemática Elementar',
    #         # 'curso': cursos[0].pk
    #     }
    # ]
    # for disc in disciplinas:
    #     disciplina = Disciplina(**disc)
    #     disciplina.save()
    #     disciplina.curso.add(cursos[0])

    #     logger.info("%(disciplina)s created.")

    with open('curso/management/commands/disciplinas.csv',
              encoding="ISO-8859-1") as csvfile:
        disciplinas = csv.reader(csvfile, quotechar='|')
        for row in disciplinas:
            if row[0] == 'curso':
                curso = Curso(nome=row[1],
                              abreviacao=row[2],
                              matriz=row[3],
                              is_active=row[4])
                curso.save()
            else:
                try:
                    disciplina = Disciplina.objects.get(codigo=row[0])
                    disciplina.curso.add(curso)
                except ObjectDoesNotExist:
                    disciplina = Disciplina(codigo=row[0], nome=row[1])
                    disciplina.save()
                    disciplina.curso.add(curso)
Example #2
0
def creaCurso(curso):
    curso = int(curso.split("/")[0])
    existe = existeCurso(curso)
    creado = False
    if ( not existe ):
            curso = Curso(curso=curso)
            curso.save()
            cambiaTutoresAProfesores()
            copiaProyectosEnCursoCursoActualAProyectosPendientesCursoNuevo(curso)
            #evaluationSystemCopy = EvaluationSystemCopy().fromCourse(cursoAnterior).toNewEvaluationSystemInCourse(curso)
            creado =  True
    return creado
Example #3
0
def creaCurso(curso):
    curso = int(curso.split("/")[0])
    existe = existeCurso(curso)
    creado = False
    if (not existe):
        curso = Curso(curso=curso)
        curso.save()
        cambiaTutoresAProfesores()
        copiaProyectosEnCursoCursoActualAProyectosPendientesCursoNuevo(curso)
        #evaluationSystemCopy = EvaluationSystemCopy().fromCourse(cursoAnterior).toNewEvaluationSystemInCourse(curso)
        creado = True
    return creado
Example #4
0
def create_curso():
    """Creates an curso object combining different elements from the list"""
    logger.info("Creating curso")
    cursos = [
        {
            'nome': 'ENGENHARIA METALÚRGICA',
            'abreviacao': 'EM',
            'matriz': '2016',
            'is_active': False,
        },
        {
            'nome': 'ENGENHARIA METALÚRGICA',
            'abreviacao': 'EM',
            'matriz': '2019',
            'is_active': True,
        },
        {
            'nome': 'ENGENHARIA DE PRODUÇÃO',
            'abreviacao': 'EP',
            'matriz': '2016',
        },
        {
            'nome': 'LICENCIATURA EM MATEMÁTICA',
            'abreviacao': 'LM',
            'matriz': '2017',
            'is_active': False,
        },
        {
            'nome': 'LICENCIATURA EM MATEMÁTICA',
            'abreviacao': 'LM',
            'matriz': '2019',
        },
        {
            'nome': 'TECNOLOGIA EM PROCESSOS GERENCIAIS',
            'abreviacao': 'TPG',
            'matriz': '2019',
        },
        {
            'nome': 'TECNOLOGIA EM PROCESSOS METALÚRGICOS',
            'abreviacao': 'TPM',
            'matriz': '2017',
        },
    ]

    for cal in cursos:
        curso = Curso(**cal)
        curso.save()
        logger.info("%(curso)s created.")
Example #5
0
def iniciaAplicacion(request, login):
    if QueryCourse().getLastCourse():
        return HttpResponseForbidden()
    
    if (request.method == "POST" ) :
        form = ProfesorForm(request)
        if (form.is_valid()):
            form.save()
            curso = Curso(curso=int(datetime.date.today().year))
            curso.save()
            newEvaluationSystem = SistemaEvaluacion(curso=curso, estado="D")
            newEvaluationSystem.save()
            return HttpResponseRedirect('/coordinacio/projectes/')
    else:
        form = ProfesorForm(request)
    return render_to_response('inicializaAplicacion.html', locals()) 
Example #6
0
def iniciaAplicacion(request, login):
    if QueryCourse().getLastCourse():
        return HttpResponseForbidden()

    if (request.method == "POST"):
        form = ProfesorForm(request)
        if (form.is_valid()):
            form.save()
            curso = Curso(curso=int(datetime.date.today().year))
            curso.save()
            newEvaluationSystem = SistemaEvaluacion(curso=curso, estado="D")
            newEvaluationSystem.save()
            return HttpResponseRedirect('/coordinacio/projectes/')
    else:
        form = ProfesorForm(request)
    return render_to_response('inicializaAplicacion.html', locals())
Example #7
0
    def save(self, commit=True):
        data = self.clean()
        formacao = Formacao(**self.form_to_dict_formacao())

        curso = None
        if data['tipo_curso'] == 'curso-externo':
            curso = Curso(**self.form_to_dict_curso())

        if commit:
            if curso:
                curso.save()
                formacao.curso_id = curso.pk
            else:
                formacao.curso_id = data['curso_id']

            formacao.save()

        return formacao
Example #8
0
    def create(self, request, *args, **kwargs):
        try:
            data = request.data
            try:
                prof = Professor.objects.get(id=data.get('prof'))
            except ObjectDoesNotExist as ex:
                prof = None
            try:
                facu = Faculdade.objects.get(id=data.get('facu'))
            except ObjectDoesNotExist as ex:
                facu = None

            curso = Curso(
                nome=data['name'],
                codigo=data['codigo'],
                faculdade=facu,
                professor_coordenador=prof,
            )
            curso.save()
            serializer_context = {
                'request': request,
            }

            return Response({
                'status':
                True,
                'curso':
                CursoSerializer(curso, context=serializer_context).data
            })
        except IntegrityError as ex:
            return Response({
                'status': False,
                'error': "Algum campo está faltando.",
                'except': ex.args
            })
        except Exception as ex:
            return generic_except(ex)
Example #9
0
def editaCurso(request, user, curso):
    cursoA = int(curso.split("/")[0])
    cursoB = int(curso.split("/")[1])
    if cursoA + 1 != cursoB: return HttpResponseNotFound()
    curso = cursoA

    cursoForm = Curso()
    cursoDB = QueryCourse().getCourseByCourse(curso)

    if not cursoDB: return HttpResponseNotFound()

    if (request.method == "POST"):
        form = CursoForm(request.POST, instance=cursoForm)
        if form.is_valid():
            cursoDB.fechaTope = cursoForm.fechaTope
            cursoDB.save()
            return HttpResponseRedirect('/coordinacio/cursos/')
    else:
        form = CursoForm(initial={'fechaTope': cursoDB.fechaTope})

    return render_to_response('edicionCurso.html', locals())
Example #10
0
def carga_datos_inicial(request):
    roles = ['Docente', 'Decano', 'Director de Programa', 'Administrador']
    tipos_act = ['Formacion', 'Evaluacion']
    tipos_cursos = [
        'Asignatura básica', 'Asignatura Profesional',
        'Electiva Complementaria', 'Electiva Profesional'
    ]
    escuelas = [{
        'corto': 'EISC',
        'largo': 'Escuela de Ingeniería en Sistemas y Computacion'
    }, {
        'corto': 'EIEE',
        'largo': 'Escuela de Ingeniería Eléctrica y Electrónica'
    }, {
        'corto': 'EICG',
        'largo': 'Escuela de Ingeniería Civil y Geomática'
    }, {
        'corto': 'Estad',
        'largo': 'Escuela de Estadística'
    }, {
        'corto':
        'EIDENAR',
        'largo':
        'Escuela de Ingeniería de Recursos Naturales y del Ambiente'
    }]

    usuarios = [{
        'username': '******',
        'first_name': 'Raul',
        'last_name': 'Gutierrez',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Mauricio Eduardo',
        'last_name': 'Fernández',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Diego Fernando',
        'last_name': 'Garcia',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Jaime',
        'last_name': 'Mosquera Restrepo',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'Estad'
    }, {
        'username': '******',
        'first_name': 'Hernando',
        'last_name': 'Palacios',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Jesus',
        'last_name': 'Gonzales',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Manolo',
        'last_name': 'Galvan',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Luz Edith',
        'last_name': 'Barba',
        'rol': 'Director de Programa',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIDENAR'
    }, {
        'username': '******',
        'first_name': 'Camilo José',
        'last_name': 'Cruz Rivera',
        'rol': 'Administrador',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Beatriz',
        'last_name': 'Florian',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Roberto',
        'last_name': 'Behar Gutierrez',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'Estad'
    }, {
        'username': '******',
        'first_name': 'Víctor Manuel',
        'last_name': 'Gonzales Rojas',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'Estad'
    }, {
        'username': '******',
        'first_name': 'Angel',
        'last_name': 'Garcia Baños',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Oscar Fernando',
        'last_name': 'Bedoya',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }, {
        'username': '******',
        'first_name': 'Ruben',
        'last_name': 'Nieto',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Sandra',
        'last_name': 'Nope',
        'rol': 'Docente',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EIEE'
    }, {
        'username': '******',
        'first_name': 'Carlos Arturo',
        'last_name': 'Lozano Moncada',
        'rol': 'Decano',
        'password': '******',
        'email': '*****@*****.**',
        'escuela': 'EISC'
    }]

    programas = [{
        'nombre': 'Ingeniería en Sistemas',
        'semestres': 10,
        'creditos': 159,
        'escuela': 'EISC',
        'dir_programa': 'raul_g'
    }, {
        'nombre': 'Estadística',
        'semestres': 10,
        'creditos': 153,
        'escuela': 'Estad',
        'dir_programa': 'jaime_m'
    }, {
        'nombre': 'Tecnología en Sistemas de Información',
        'semestres': 7,
        'creditos': 90,
        'escuela': 'EISC',
        'dir_programa': 'mauricio_f'
    }, {
        'nombre': 'Ingeniería Eléctrica',
        'semestres': 10,
        'creditos': 167,
        'escuela': 'EIEE',
        'dir_programa': 'diego_g'
    }, {
        'nombre': 'Ingeniería Electrónica',
        'semestres': 10,
        'creditos': 160,
        'escuela': 'EIEE',
        'dir_programa': 'hernando_p'
    }, {
        'nombre': 'Tecnología Electrónica',
        'semestres': 6,
        'creditos': 90,
        'escuela': 'EIEE',
        'dir_programa': 'jesus_g'
    }, {
        'nombre': 'Ingeniería Civil',
        'semestres': 10,
        'creditos': 170,
        'escuela': 'EICG',
        'dir_programa': 'manolo_g'
    }, {
        'nombre': 'Ingeniería Sanitaria y Ambiental',
        'semestres': 10,
        'creditos': 169,
        'escuela': 'EIDENAR',
        'dir_programa': 'luz_b'
    }]

    cursos = [{
        'nombre': 'Desarrollo de Software 2',
        'codigo': '750092M',
        'creditos': 4,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'beatriz_f',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Sistemas de Información',
        'codigo': '750022M',
        'creditos': 3,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'beatriz_f',
        'semestre': 8,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Inteligencia Artificial',
        'codigo': '750033M',
        'creditos': 4,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Oscar_B',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Fundamentos de Analisi y Diseño de Algoritmos',
        'codigo': '750094M',
        'creditos': 4,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Oscar_B',
        'semestre': 5,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Fundamentos de Lenguajes de Programación',
        'codigo': '750095M',
        'creditos': 4,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Oscar_B',
        'semestre': 4,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Introducción a la Estadística',
        'codigo': '770087M',
        'creditos': 3,
        'programa': 'Estadística',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Roberto_b',
        'semestre': 1,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Estadística Descriptiva',
        'codigo': '770086M',
        'creditos': 3,
        'programa': 'Estadística',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Roberto_b',
        'semestre': 2,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Estadística Aplicada 2',
        'codigo': '790012M',
        'creditos': 4,
        'programa': 'Estadística',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Roberto_b',
        'semestre': 8,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Muestreo Estadístico',
        'codigo': '770546M',
        'creditos': 4,
        'programa': 'Estadística',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Víctor_M',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Introduccion a la Programación Orientada a Objetos',
        'codigo': '750569M',
        'creditos': 3,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Angel_G',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Bases de datos',
        'codigo': '750091M',
        'creditos': 4,
        'programa': 'Ingeniería en Sistemas',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Angel_G',
        'semestre': 6,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Teoria Electromagnética',
        'codigo': '710023M',
        'creditos': 4,
        'programa': 'Ingeniería Eléctrica',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Ruben_N',
        'semestre': 6,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Circuitos Integrados',
        'codigo': '710568M',
        'creditos': 4,
        'programa': 'Ingeniería Electrónica',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Ruben_N',
        'semestre': 2,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Electricidad para Electrónica',
        'codigo': '711064M',
        'creditos': 3,
        'programa': 'Ingeniería Electrónica',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Ruben_N',
        'semestre': 2,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Estadística no Parametrica',
        'codigo': '781546M',
        'creditos': 4,
        'programa': 'Estadística',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Víctor_M',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Circuitos Electricos',
        'codigo': '728564M',
        'creditos': 3,
        'programa': 'Ingeniería Eléctrica',
        'horas_catedra': 3,
        'horas_individual': 6,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Sandra_N',
        'semestre': 5,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Electrónica',
        'codigo': '726498M',
        'creditos': 4,
        'programa': 'Ingeniería Eléctrica',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Sandra_N',
        'semestre': 6,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Transformadores',
        'codigo': '726571M',
        'creditos': 4,
        'programa': 'Ingeniería Eléctrica',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Sandra_N',
        'semestre': 7,
        'validable': True,
        'habilitable': False
    }, {
        'nombre': 'Lineas y Redes',
        'codigo': '724591M',
        'creditos': 4,
        'programa': 'Ingeniería Eléctrica',
        'horas_catedra': 4,
        'horas_individual': 8,
        'tipo': 'Asignatura Profesional',
        'docente_encargado': 'Sandra_N',
        'semestre': 8,
        'validable': True,
        'habilitable': False
    }]

    for escuela in escuelas:
        if not Escuela.objects.filter(nombre_corto=escuela['corto']).exists():
            registro = Escuela(nombre_largo=escuela['largo'],
                               nombre_corto=escuela['corto'])
            registro.save()

    for rol in roles:
        if not Rol.objects.filter(nombre=rol).exists():
            registro = Rol(nombre=rol)
            registro.save()

    for usuario in usuarios:
        if not Usuario.objects.filter(username=usuario['username']).exists():
            registro = Usuario.objects.create_user(
                username=usuario['username'],
                email=usuario['email'],
                password=usuario['password'])
            registro.first_name = usuario['first_name']
            registro.last_name = usuario['last_name']
            registro.rol = Rol.objects.get(nombre=usuario['rol'])
            registro.escuela = Escuela.objects.get(
                nombre_corto=usuario['escuela'])
            #    rol=Rol.objects.get(nombre=usuario['rol']),
            #    escuela=Escuela.objects.get(nombre_corto=usuario['escuela']))
            registro.save()

    for tipo in tipos_act:
        if not TipoActividad.objects.filter(nombre=tipo).exists():
            registro = TipoActividad(nombre=tipo)
            registro.save()

    for tipo in tipos_cursos:
        if not TipoCurso.objects.filter(nombre=tipo).exists():
            registro = TipoCurso(nombre=tipo)
            registro.save()

    for programa in programas:
        if not Programa.objects.filter(nombre=programa['nombre']).exists():
            registro = Programa(
                nombre=programa['nombre'],
                semestres=programa['semestres'],
                creditos=programa['creditos'],
                cod_escuela=Escuela.objects.get(
                    nombre_corto=programa['escuela']),
                dir_programa=Usuario.objects.get(
                    username=programa['dir_programa']),
            )
            registro.save()

    for curso in cursos:
        if not Curso.objects.filter(codigo=curso['codigo']).exists():
            registro = Curso(
                codigo=curso['codigo'],
                nombre=curso['nombre'],
                creditos=curso['creditos'],
                horas_catedra=curso['horas_catedra'],
                horas_individual=curso['horas_individual'],
                programa=Programa.objects.get(nombre=curso['programa']),
                tipo=TipoCurso.objects.get(nombre=curso['tipo']),
                docente_encargado=Usuario.objects.get(
                    username=curso['docente_encargado']),
                semestre=curso['semestre'],
                validable=curso['validable'],
                habilitable=curso['habilitable'],
            )
            registro.save()

    return HttpResponse("Datos Cargados")
Example #11
0
 def setUp(self):
     self.curso = Curso(
         codigo_curso='CTT1', descricao='Curso de teste', nivel_curso='B'
     )
     self.serializer = CursoSerializer(instance=self.curso)
Example #12
0
 def setUp(self):
     self.curso = Curso(codigo_curso='CTT1', descricao='Curso de teste')