No Description

views.py 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. import json
  2. import sys
  3. from django.shortcuts import render
  4. from django.http.response import JsonResponse
  5. from rest_framework import status
  6. <<<<<<< HEAD
  7. from .models import Facultad, Curso, Matricula
  8. from rest_framework.decorators import api_view
  9. from rest_framework.parsers import JSONParser
  10. from .serializers import FacultadSerializer, CursoSerializer
  11. from .organizar import files3
  12. =======
  13. from .models import Facultad, Curso, Matricula, ProximoSemestre
  14. from rest_framework.decorators import api_view
  15. from rest_framework.parsers import JSONParser
  16. from .serializers import FacultadSerializer, CursoSerializer, MatriculaSerializer, ProximoSemestreSerializer
  17. from .organizar import files3
  18. from .matricula import files
  19. >>>>>>> Suazo
  20. # Create your views here.
  21. @api_view(['POST', ])
  22. def insertarFacultades(request):
  23. faculties = ['Administración de Empresas', 'Administración de Empresas Graduado', 'Arquitectura', 'Arquitectura Graduado', 'Asuntos Académicos',
  24. 'Ciencias Militares', 'Ciencias Naturales', 'Ciencias Naturales Graduado', 'Ciencias Sociales', 'Ciencias Sociales Graduado',
  25. 'Escuela de Comunicación', 'Escuela de Comunicación Graduada', 'Educación', 'Educación Continua (BEOF)', 'Educación Graduado',
  26. 'Escuela de Derecho', 'Escuela Graduada de Ciencias y Tecnologías de la Información', 'Estudios Generales', 'Humanidades',
  27. 'Humanidades Graduado', 'Planificación']
  28. if request.method == 'POST':
  29. for faculty in faculties:
  30. facultad_serializer = FacultadSerializer(data={'fname': faculty})
  31. if facultad_serializer.is_valid():
  32. facultad_serializer.save()
  33. return JsonResponse({"message": 'se crearon todas las facultades'}, status=status.HTTP_201_CREATED)
  34. @api_view(['POST', ])
  35. def insertarTodosLosCursos(request):
  36. if request.method == 'POST':
  37. <<<<<<< HEAD
  38. =======
  39. i = 1
  40. >>>>>>> Suazo
  41. for file in files3:
  42. check = file['file'].split('.')
  43. path = "C:/Users/danie/Documents/Projects/Companion App/server/segundo_sem" if check[
  44. 0][-1] == '2' else "C:/Users/danie/Documents/Projects/Companion App/server/primer_sem"
  45. with open(path + '/' + file['file']) as f:
  46. data = json.load(f)
  47. fac_id = file['num']
  48. for key in data:
  49. if key != 'Horario ':
  50. code = key
  51. name = data[key][0]
  52. creds = data[key][1]
  53. <<<<<<< HEAD
  54. curso_serializer = CursoSerializer(
  55. data={'name': name, 'code': code, 'creditos': creds, 'fac_id': fac_id})
  56. if curso_serializer.is_valid():
  57. curso_serializer.save()
  58. =======
  59. try:
  60. curso = Curso.objects.get(code=code)
  61. except Curso.DoesNotExist:
  62. curso = None
  63. if curso == None:
  64. curso_serializer = CursoSerializer(
  65. data={'name': name, 'code': code, 'creditos': creds, 'fac_id': fac_id})
  66. if curso_serializer.is_valid():
  67. curso_serializer.save()
  68. else:
  69. print('ya se creo', i)
  70. i += 1
  71. >>>>>>> Suazo
  72. return JsonResponse({'message': 'se insertaron todos los cursos'}, status=status.HTTP_201_CREATED)
  73. @api_view(['GET', 'POST'])
  74. def hello_world(request):
  75. if request.method == 'POST':
  76. return JsonResponse({"message": "Got some data!", "data": request.data})
  77. return JsonResponse({"message": "Hello, world!"})
  78. @api_view(['POST', ])
  79. <<<<<<< HEAD
  80. def fetchMatricula(request):
  81. if request.method == 'POST':
  82. json = []
  83. for i in Curso.objects.all():
  84. json.append({"id": i.fac_id.id, "name": i.name,
  85. "code": i.code, "credits": i.creditos})
  86. return JsonResponse(json, safe=False)
  87. @api_view(['POST', 'GET'])
  88. def testQuery(request):
  89. json = []
  90. for i in Curso.objects.all():
  91. json.append({"id": i.fac_id.id, "name": i.name,
  92. "code": i.code, "credits": i.creditos})
  93. =======
  94. def insertarProximoSemestre(request):
  95. if request.method == 'POST':
  96. for file in files:
  97. path = "C:/Users/danie/Documents/Projects/Companion App/server/Matricula Parse"
  98. with open(path + '/' + file['file']) as f:
  99. data = json.load(f)
  100. for course in data:
  101. print(course["Curso"])
  102. print(Curso.objects.filter(code=course["Curso"]))
  103. code = Curso.objects.get(code=course["Curso"])
  104. section = course["Seccion"]
  105. prof = course["Profesor"]
  106. days = ""
  107. for i in course["Dias"]:
  108. days += i
  109. days += " "
  110. hours = ""
  111. for i in course["Horario"]:
  112. hours += i
  113. hours += " "
  114. if hours == "":
  115. hours = "TBA"
  116. rooms = ""
  117. for i in course["Salones"]:
  118. rooms += i
  119. rooms += " "
  120. if rooms == "":
  121. rooms = "TBA"
  122. print(
  123. f"code {code.code}, section {section}, prof {prof}, hours {hours}, rooms {rooms}, days {days}")
  124. # extra_info = course["Info_Extra"]
  125. matricula_serializer = ProximoSemestreSerializer(
  126. data={'code': code.code, 'name': code.name, 'fac_id': code.fac_id.pk, 'course_id': code.pk, 'section': section, 'prof': prof, 'hours': hours, 'rooms': rooms, 'days': days})
  127. if matricula_serializer.is_valid(raise_exception=True):
  128. matricula_serializer.save()
  129. print("inserted some data")
  130. return JsonResponse({'message': 'se insertaron todos los cursos'}, status=status.HTTP_201_CREATED)
  131. @api_view(['POST', ])
  132. def fetchMatricula(request):
  133. json = []
  134. for i in ProximoSemestre.objects.all():
  135. json.append({"id": i.course_id.fac_id.id, "name": i.course_id.name,
  136. "code": i.course_id.code, "credits": i.course_id.creditos,
  137. "section": i.section, "prof": i.prof, "hours": i.hours,
  138. "days": i.days, "rooms": i.rooms})
  139. >>>>>>> Suazo
  140. return JsonResponse(json, safe=False)