def crear_estudiantes(pprograma, pcodigo , papellido, pnombre, pemail, pstatus):
    #Parametros para la llamada de la llamada de un estudiante
    BASE_PATH_STUDENT = "http://localhost:8000/map/api/student/codigo_student/?operation=6"
    headers_student = {
        'API-KEY': '123',
        'Authorization': 'Token ef3859d862f572ad532fceb04536e948da1d5270'
    }
    BASE_PATH_STUDENT = BASE_PATH_STUDENT.replace("codigo_student", str(pcodigo))

    #Se llama al servicio de llamada de estudiante para verificar si este existe
    rta_buscar_estudiante = fork_service.llamada_get(BASE_PATH_STUDENT, headers_student)
    s_code = rta_buscar_estudiante.status_code

    if s_code == 500:
        json_rta = json.loads(rta_buscar_estudiante.text)['mensaje']
        if json_rta == 'No existe el estudiante':

            rta_dar_maestria = maestrias.dar_maestria(pprograma)
            s_code_dar_maestria = rta_dar_maestria.status_code
            json_maestria = {}
            if rta_dar_maestria != None:

                if s_code_dar_maestria == 500:
                    print 'No se encontro la maestría: ' + pprograma

                    rta_crear = maestrias.crear_maesria(pprograma)
                    if rta_crear.status_code == 500:
                        print "Error en la creacion de la maestria" + pprograma
                    elif rta_crear.status_code == 200:
                        print('Se creó la maestria:')
                        json_maestria = json.loads(rta_crear.text)

                elif s_code_dar_maestria == 200:

                    decode_dar_maestria = rta_dar_maestria.text
                    json_maestria = json.loads(decode_dar_maestria)

                master_id=json_maestria["id"]
                data = {
                    'lastname': papellido,
                    'code': pcodigo,
                    'email': pemail,
                    'name': pnombre,
                    'student_status': pstatus,
                    'master_id': master_id
                }

                rta = servicio_crear_estudiante(data)
                return rta


            else:
                print "Error en la busqueda de la maestría: " + pcodigo

    else:
        print "Estudiante ya existe: " + str(pcodigo)
        return rta_buscar_estudiante
def carga_cursos_mati(p_numero_escenario):
    maestria = local_settings.MATI

    print 'creación de ' + maestria

    rta_dar_maestria = maestrias.dar_maestria(maestria)
    s_code_dar_maestria = rta_dar_maestria.status_code

    if rta_dar_maestria != None:
        if s_code_dar_maestria == 500:
            print 'No se encontro la maestría: ' + maestria

            rta_crear = maestrias.crear_maesria(maestria)

            if rta_crear == 500:
                print "Error en la creacion de la maestria" + maestria
            elif rta_crear == 200:
                print('Se creó la maestria:')
                print rta_crear.text
                print
        else:
            print('Ya existe la maestría')


    print 'creación de ' + maestria

    print "Cargando cursos escenario "+ p_numero_escenario
    delimiter = '	'
    path_num_escenario = "escenario"+p_numero_escenario
    path_escenario = local_settings.path_base_cursos_base.replace("num_escenario",path_num_escenario)
    with open( path_escenario + "cursos_base_mati.csv", 'rb') as csvfile:
        reader = csv.DictReader(csvfile,  delimiter=delimiter)
        for row in reader:

            validar_datos.analisis_datos_curso(prm_maestria= maestria)

            obj_maestria = maestrias.dar_maestria(maestria)
            json_maestria = json.loads(obj_maestria.text)

            obj_pensum = maestrias.dar_pensum_maestria(json_maestria["id"])
            json_pensum = json.loads(obj_pensum.text)
            rta = curso.crear_curso(row['NAME'], row['CODE'], row['CREDITS'], row['SUMMER'], json_pensum[0]["id"])
            print(rta.text)
def analisis_datos_curso(prm_id, prm_cursosMati, prm_maestria):
    obj_maestria = maestrias.dar_maestria(prm_maestria)
    code_dar_maestria = obj_maestria.status_code

    if obj_maestria != None:
                if code_dar_maestria == 500:
                    print 'No se encontro la maestría: ' + prm_maestria

                    rta_crear = maestrias.crear_maesria(prm_maestria)

                    if rta_crear == 500:
                        print "Error en la creacion de la maestria" + prm_maestria

                    elif rta_crear == 200:
                        print('Se creó la maestria:')
                        print rta_crear.text
                        print
                        obj_maestria = maestrias.dar_maestria(prm_maestria)
    json_maestria = json.loads(obj_maestria.text)

    obj_pensum = maestrias.dar_pensum_maestria(json_maestria["id"])
    code_dar_pensum = obj_pensum.status_code

    if obj_pensum != None:
        if code_dar_pensum == 500:
            print 'No se encontro un pensum de la maestria'

            rta_crear = pensum.crear_pensum(json_maestria["id"],json_maestria["name"]+" pensum")
            rta_crear_code= rta_crear.status_code
            if rta_crear_code == 500:
                print "Error en la creacion del pensum" + json_maestria["name"]+" pensum"

            elif rta_crear_code == 200:
                print('Se creó el pensum:')
                print rta_crear.text
                print
                obj_pensum = maestrias.dar_pensum_maestria(json_maestria["id"])
    json_pensum = json.loads(obj_pensum.text)
    print( json_pensum )
    print( json_maestria )
def cargar_estudiantes_graduados(parchivo):

    #Parametros para la llamada de un estudiante
    headers_student = {
        'API-KEY': '123',
        'Authorization': 'Token ef3859d862f572ad532fceb04536e948da1d5270'
    }

    #Parametros para actualizar los datos de un estudiante
    BASE_PATH_EDIT_STUDENT = "http://localhost:8000/map/api/student/codigo_student"
    headers_edit_student = {
        'API-KEY': '123',
        'Authorization': 'Token ef3859d862f572ad532fceb04536e948da1d5270'
    }

    delimiter = '	'
    with open(local_settings.path_student_graduated + parchivo, 'rb') as csvfile:
        reader = csv.DictReader(csvfile,  delimiter=delimiter)
        for row in reader:
            BASE_PATH_STUDENT = "http://localhost:8000/map/api/student/codigo_student/?operation=6"

            pprograma = row["PROGRAMA"]
            papellido = row['APELLIDOS']
            pcodigo = row['CARNET']
            pnombre = row['NOMBRES']
            pstatus = 3
            BASE_PATH_STUDENT = BASE_PATH_STUDENT.replace("codigo_student", row['CARNET'])

            rta_buscar_estudiante = fork_service.llamada_get(BASE_PATH_STUDENT, headers_student)
            s_code = rta_buscar_estudiante.status_code

            if s_code == 500:

                rta_dar_maestria = maestrias.dar_maestria(pprograma)
                s_code_dar_maestria = rta_dar_maestria.status_code

                if rta_dar_maestria != None:
                    if s_code_dar_maestria == 500:
                        print 'No se encontro la maestría: ' + pprograma

                        rta_crear = maestrias.crear_maesria(pprograma)

                        if rta_crear == 500:
                            print "Error en la creacion de la maestria" + pprograma
                        elif rta_crear == 200:
                            print('Se creó la maestria:')
                            print rta_crear.text
                            print

                    elif s_code_dar_maestria == 200:
                        decode_dar_maestria = rta_dar_maestria.text
                        json_maestria = json.loads(decode_dar_maestria)
                        master_id=json_maestria["id"]
                        data = {
                            'lastname': papellido,
                            'code': pcodigo,
                            'name': pnombre,
                            'student_status': pstatus,
                            'master_id': master_id
                        }
                        rta = servicio_crear_estudiante( data )
                        print rta
                    else:
                        print "Error en el estudiante" + pcodigo
                else:
                    print "Error en la busqueda de la maestría: " + pcodigo

            else:
                json_id_estudiante = json.loads(rta_buscar_estudiante.text)['id']

                BASE_PATH_EDIT_STUDENT = BASE_PATH_EDIT_STUDENT.replace("codigo_student", str(json_id_estudiante))
                data_edit = {
                    'student_status': 3
                }
                print(BASE_PATH_EDIT_STUDENT)
                print(data_edit)
                rta = fork_service.llamada_put(BASE_PATH_EDIT_STUDENT, headers_edit_student, data_edit)
                print "Estudiante ya existe: " + pcodigo
                print "Se actualiza el estado a graduado"
                print(rta.text)
def carga_mati():

    maestria = 'MAESTRIA EN ARQUITECTURAS TI'
    print 'creación de ' + maestria

    rta_dar_maestria = maestrias.dar_maestria(maestria)
    s_code_dar_maestria = rta_dar_maestria.status_code

    if rta_dar_maestria != None:
        if s_code_dar_maestria == 500:
            print 'No se encontro la maestría: ' + maestria

            rta_crear = maestrias.crear_maesria(maestria)

            if rta_crear == 500:
                print "Error en la creacion de la maestria" + maestria
            elif rta_crear == 200:
                print('Se creó la maestria:')
                print rta_crear.text
                print
        else:
            print('Ya existe la maestría')


    print "carga de cursos de MATI"


    cursosMati = {
        "ARTI4101": {"name": "Gerencia de Proyectos para Arquitectos", "credits": 4, "summer": False},
        "ARTI4102": {"name": "Comunicación Efectiva para Arquitectos", "credits": 4, "summer": False},
        "ARTI4103": {"name": "Arquitectura de Negocios y Estrategia de TI", "credits": 4, "summer": False},
        "ARTI4104": {"name": "Fundamentos para Arquitectos", "credits": 4, "summer": False},
        "ARTI4201": {"name": "Arquitectura de Solución", "credits": 4, "summer": False},
        "ARTI4202": {"name": "Arquitectura de Información", "credits": 4, "summer": False},
        "ARTI4203": {"name": "Arquitectura de Infraestructura de TI", "credits": 4, "summer": False},
        "ARTI4204": {"name": "Arquitectura de Seguridad", "credits": 4, "summer": False},
        "ARTI4205": {"name": "Arquitectura de Procesos de Negocio", "credits": 4, "summer": False},
        "ARTI4301": {"name": "Proyecto final", "credits": 4, "summer": False},
        "ARTI4106": {"name": "Arquitectura Empresarial", "credits": 4, "summer": False}
    }

    for codigo in cursosMati:
        analisis_datos_curso(codigo, cursosMati, maestria)

        obj_maestria = maestrias.dar_maestria(maestria)
        json_maestria = json.loads(obj_maestria.text)

        obj_pensum = maestrias.dar_pensum_maestria(json_maestria["id"])
        json_pensum = json.loads(obj_pensum.text)
        rta = curso.crear_curso(cursosMati[codigo]["name"], codigo, cursosMati[codigo]["credits"], cursosMati[codigo]["summer"], json_pensum[0]["id"])
        print(rta.text)
    #
    print "carga de secciones de MATI"
    seccionesMati = {
        13183: {"course": "ARTI4101", "capacity": {"MATI": 34, "pregrado": 3, "otros": 3}, "name": "1", "semester": 1, "year": 2015, "teacher": 79505041, "status": 0},
        13579: {"course": "ARTI4102", "capacity": {"MATI": 32, "pregrado": 2, "otros": 6}, "name": "2", "semester": 1, "year": 2015, "teacher": 120000000, "status": 0},
        12663: {"course": "ARTI4103", "capacity": {"MATI": 40, "MBIT": 40, "MESI": 10}, "name": "1", "semester": 1, "year": 2015, "teacher": 79232014, "status": 0},
        13981: {"course": "ARTI4104", "capacity": {"MATI": 34, "pregrado": 2, "otros": 4}, "name": "2", "semester": 1, "year": 2015, "teacher": 198714604, "status": 0},
        13982: {"course": "ARTI4106", "capacity": {"MATI": 60, "MBIT": 40}, "name": "1", "semester": 1, "year": 2015, "teacher": 130000000, "status": 0},
        12664: {"course": "ARTI4201", "capacity": {"MATI": 35, "otros": 5}, "name": "1", "semester": 1, "year": 2015, "teacher": 79505041, "status": 0},
        12667: {"course": "ARTI4202", "capacity": {"MATI": 34, "pregrado": 2, "otros": 4}, "name": "1", "semester": 1, "year": 2015, "teacher": 140000000, "status": 0},
        12665: {"course": "ARTI4203", "capacity": {"MATI": 20, "MESI": 20}, "name": "1", "semester": 1, "year": 2015, "teacher": 79419382, "status": 0},
        13185: {"course": "ARTI4204", "capacity": {"MATI": 32, "pregrado": 4, "otros": 4}, "name": "1", "semester": 1, "year": 2015, "teacher": 85462189, "status": 0},
        13285: {"course": "ARTI4205", "capacity": {"MATI": 34, "pregrado": 2, "otros": 4}, "name": "1", "semester": 1, "year": 2015, "teacher": 200021872, "status": 0},
        13582: {"course": "ARTI4301", "capacity": {"MATI": 99}, "name": "1", "semester": 1, "year": 2015, "teacher": 79505041, "status": 0}
    }

    for seccion_p in seccionesMati:
        v_profesor = profesores.dar_profesor(p_code=seccionesMati[seccion_p]["teacher"])
        v_curso = curso.dar_curso(p_code=seccionesMati[seccion_p]["course"])
        rta = seccion.crear_seccion(
            crn=seccion_p,
            name=seccionesMati[seccion_p]["name"],
            semester=seccionesMati[seccion_p]["semester"],
            year=seccionesMati[seccion_p]["year"],
            id_teacher= validar_datos.validar_datos_seccion_profesor(v_profesor),
            id_course=validar_datos.validar_datos_seccion_seccion(v_curso),
            status=seccionesMati[seccion_p]["status"]
        )
        print(rta.text)