123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- import json
- import sys
- from django.shortcuts import render
- from django.http.response import JsonResponse
- from rest_framework import status
- from .models import Facultad, Curso, Matricula
- from rest_framework.decorators import api_view
- from rest_framework.parsers import JSONParser
- from .serializers import FacultadSerializer, CursoSerializer, MatriculaSerializer, ProximoSemestreSerializer
- from .organizar import files3
- from .matricula import files
-
-
- # Create your views here.
-
- @api_view(['POST', ])
- def insertarFacultades(request):
- faculties = ['Administración de Empresas', 'Administración de Empresas Graduado', 'Arquitectura', 'Arquitectura Graduado', 'Asuntos Académicos',
- 'Ciencias Militares', 'Ciencias Naturales', 'Ciencias Naturales Graduado', 'Ciencias Sociales', 'Ciencias Sociales Graduado',
- 'Escuela de Comunicación', 'Escuela de Comunicación Graduada', 'Educación', 'Educación Continua (BEOF)', 'Educación Graduado',
- 'Escuela de Derecho', 'Escuela Graduada de Ciencias y Tecnologías de la Información', 'Estudios Generales', 'Humanidades',
- 'Humanidades Graduado', 'Planificación']
- if request.method == 'POST':
- for faculty in faculties:
- facultad_serializer = FacultadSerializer(data={'fname': faculty})
- if facultad_serializer.is_valid():
- facultad_serializer.save()
-
- return JsonResponse({"message": 'se crearon todas las facultades'}, status=status.HTTP_201_CREATED)
-
-
- @api_view(['POST', ])
- def insertarTodosLosCursos(request):
- if request.method == 'POST':
- for file in files3:
- check = file['file'].split('.')
- path = "C:/Users/danie/Documents/Projects/Companion App/server/segundo_sem" if check[
- 0][-1] == '2' else "C:/Users/danie/Documents/Projects/Companion App/server/primer_sem"
- with open(path + '/' + file['file']) as f:
- data = json.load(f)
- fac_id = file['num']
- for key in data:
- if key != 'Horario ':
- code = key
- name = data[key][0]
- creds = data[key][1]
- curso_serializer = CursoSerializer(
- data={'name': name, 'code': code, 'creditos': creds, 'fac_id': fac_id})
- if curso_serializer.is_valid():
- curso_serializer.save()
- return JsonResponse({'message': 'se insertaron todos los cursos'}, status=status.HTTP_201_CREATED)
-
-
- @api_view(['GET', 'POST'])
- def hello_world(request):
- if request.method == 'POST':
- return JsonResponse({"message": "Got some data!", "data": request.data})
- return JsonResponse({"message": "Hello, world!"})
-
-
- @api_view(['POST', ])
- def insertarProximoSemestre(request):
- if request.method == 'POST':
- for file in files:
- print(f"help {file['file']}")
- path = "C:/Users/danie/Documents/Projects/Companion App/server/Matricula Parse"
- with open(path + '/' + file['file']) as f:
- print(f"opened {file['file']}")
- data = json.load(f)
- for course in data:
- code = Curso.objects.get(code=course["Curso"])
- section = course["Seccion"]
- prof = course["Profesor"]
- days = ""
- for i in course["Dias"]:
- days += i
- days += " "
-
- hours = ""
- for i in course["Horario"]:
- hours += i
- hours += " "
-
- rooms = ""
- for i in course["Salones"]:
- rooms += i
- rooms += " "
-
- # extra_info = course["Info_Extra"]
- matricula_serializer = ProximoSemestreSerializer(
- data={'course_id': code, 'section': section, 'prof': prof, 'hours': hours, 'rooms': rooms, 'days': days})
- print(
- f"code {code}, section {section}, prof {prof}, hours {hours}, rooms {rooms}, days {days}")
- if matricula_serializer.is_valid(raise_exception=True):
- matricula_serializer.save()
- print("inserted some data")
-
- return JsonResponse({'message': 'se insertaron todos los cursos'}, status=status.HTTP_201_CREATED)
-
-
- @api_view(['POST', 'GET'])
- def testQuery(request):
- json = []
- for i in Curso.objects.all():
- json.append({"id": i.fac_id.id, "name": i.name,
- "code": i.code, "credits": i.creditos})
- return JsonResponse(json, safe=False)
|