Browse Source

edited unique courses to db

dmr1725 3 years ago
parent
commit
4f8a36f33e

+ 24
- 0
server/CompanionApp/migrations/0002_auto_20201103_2016.py View File

@@ -0,0 +1,24 @@
1
+# Generated by Django 3.0.8 on 2020-11-04 00:16
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('CompanionApp', '0001_initial'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AlterField(
15
+            model_name='matricula',
16
+            name='grade',
17
+            field=models.CharField(default='N', max_length=3),
18
+        ),
19
+        migrations.AlterField(
20
+            model_name='user',
21
+            name='fac_id',
22
+            field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='CompanionApp.Facultad'),
23
+        ),
24
+    ]

+ 1
- 1
server/CompanionApp/models.py View File

@@ -16,7 +16,7 @@ class Matricula(models.Model):
16 16
     course_id = models.ForeignKey(Curso, on_delete=models.CASCADE)
17 17
     section = models.CharField(max_length=5)
18 18
     prof = models.CharField(max_length=150)
19
-    grade = models.CharField(max_length=3)
19
+    grade = models.CharField(max_length=3, default = 'N')
20 20
     semestre = models.IntegerField(default=0)
21 21
 
22 22
 class User(AbstractUser):

+ 8
- 2
server/CompanionApp/serializers.py View File

@@ -1,4 +1,4 @@
1
-from .models import Facultad, Curso
1
+from .models import Facultad, Curso, Matricula
2 2
 from rest_framework import serializers
3 3
 
4 4
 class FacultadSerializer(serializers.ModelSerializer):
@@ -18,8 +18,14 @@ class CursoSerializer(serializers.ModelSerializer):
18 18
         model = Curso
19 19
         fields = ('__all__')
20 20
     
21
+
22
+class MatriculaSerializer(serializers.ModelSerializer):
23
+    class Meta:
24
+        model = Matricula
25
+        fields = ('__all__')
26
+    
21 27
     def create(self, validated_data):
22
-        instance, created = Curso.objects.get_or_create(**validated_data)
28
+        instance, created = Matricula.objects.get_or_create(**validated_data)
23 29
         # print(instance, created)
24 30
         if(created == False):
25 31
             print('ya se creo')

+ 2
- 1
server/CompanionApp/urls.py View File

@@ -9,6 +9,7 @@ from django.conf.urls import url, include
9 9
 urlpatterns = [
10 10
     url(r'^api/insertar_fac$', views.insertarFacultades),
11 11
     url(r'^api/hello$', views.hello_world),
12
-    url(r'^api/insertar_cursos$', views.insertarTodosLosCursos)
12
+    url(r'^api/insertar_cursos$', views.insertarTodosLosCursos),
13
+    url(r'^api/insert_matricula$', views.matricula)
13 14
 ]
14 15
 

+ 26
- 7
server/CompanionApp/views.py View File

@@ -14,7 +14,7 @@ from rest_framework.parsers import JSONParser
14 14
 from rest_framework import status
15 15
  
16 16
 from .models import Facultad, Curso
17
-from .serializers import FacultadSerializer, CursoSerializer 
17
+from .serializers import FacultadSerializer, CursoSerializer, MatriculaSerializer
18 18
 from rest_framework.decorators import api_view
19 19
 
20 20
 # clientID: 965339169610-8et02d4qpfk96vclngd0otths1rs8661.apps.googleusercontent.com
@@ -43,6 +43,7 @@ def insertarFacultades(request):
43 43
 @api_view(['POST',])
44 44
 def insertarTodosLosCursos(request):
45 45
     if request.method == 'POST':
46
+        i = 1
46 47
         for file in files3:
47 48
             check = file['file'].split('.')
48 49
             path = "C:/Users/diego/Documents/companion_app/segundo_sem" if check[0][-1] == '2' else "C:/Users/diego/Documents/companion_app/primer_sem"
@@ -54,19 +55,37 @@ def insertarTodosLosCursos(request):
54 55
                         code = key
55 56
                         name = data[key][0]
56 57
                         creds = data[key][1]
57
-                        curso_serializer = CursoSerializer(data={'name': name, 'code': code, 'creditos': creds, 'fac_id': fac_id})
58
-                        if curso_serializer.is_valid():
59
-                            curso_serializer.save()
58
+                        try: 
59
+                            curso = Curso.objects.get(code = code)
60
+                        except Curso.DoesNotExist:
61
+                            curso = None
62
+                        
63
+                        if curso == None:
64
+                            curso_serializer = CursoSerializer(data={'name': name, 'code': code, 'creditos': creds, 'fac_id': fac_id})
65
+                            if curso_serializer.is_valid():
66
+                                curso_serializer.save()
67
+                        else:
68
+                            print('ya se creo', i)
69
+                            i += 1
60 70
         return JsonResponse({'message': 'se insertaron todos los cursos'}, status=status.HTTP_201_CREATED)
61 71
 
72
+@api_view(['POST',])
73
+def matricula(request):
74
+    if request.method == 'POST':
75
+        matricula_serializer = MatriculaSerializer(data = {'course_id': request.data['course_id_id'], 'section': request.data['section'], 'prof': request.data['prof'], 'semestre': request.data['semestre']})
76
+        if matricula_serializer.is_valid():
77
+            matricula_serializer.save()
78
+            return JsonResponse({'message': 'se inserto matricula'})
79
+        return JsonResponse({'message': 'error'})
80
+
62 81
 
63 82
 
64 83
 
65 84
 @api_view(['GET', 'POST'])
66 85
 def hello_world(request):
67
-    if request.user.is_authenticated:
68
-        if request.method == 'GET':
69
-            return JsonResponse({'msg': request.user.email}, status = status.HTTP_200_OK)
86
+    # if request.user.is_authenticated:
87
+    if request.method == 'GET':
88
+        return JsonResponse({'msg': request.user.email}, status = status.HTTP_200_OK)
70 89
     return JsonResponse({'msg': 'no'})
71 90
 
72 91