12
12
from .serializers import FileUploadSerializer
13
13
from academic .serializers import StudentSerializer
14
14
15
+
15
16
class StudentListView (views .APIView ):
16
- """
17
+ """
17
18
List all students, or create a new student.
18
19
"""
19
- #permission_classes = [IsAuthenticated]
20
- def get (self , request , format = None ):
21
- students = Student .objects .all ()
22
- serializer = StudentSerializer (students , many = True )
23
- return Response (serializer .data )
24
-
25
- def post (self , request , format = None ):
26
- serializer = StudentSerializer (data = request .data )
27
-
28
- print (serializer .is_valid ())
29
- print (request .data )
30
- if serializer .is_valid ():
31
- student = serializer .create (request )
32
- if student :
33
- #serializer.save()
34
- return Response (status = status .HTTP_201_CREATED )
35
- return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
20
+
21
+ # permission_classes = [IsAuthenticated]
22
+ def get (self , request , format = None ):
23
+ students = Student .objects .all ()
24
+ serializer = StudentSerializer (students , many = True )
25
+ return Response (serializer .data )
26
+
27
+ def post (self , request , format = None ):
28
+ serializer = StudentSerializer (data = request .data )
29
+
30
+ print (serializer .is_valid ())
31
+ print (request .data )
32
+ if serializer .is_valid ():
33
+ student = serializer .create (request )
34
+ if student :
35
+ # serializer.save()
36
+ return Response (data = student , status = status .HTTP_201_CREATED )
37
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
38
+
36
39
37
40
class StudentDetailView (views .APIView ):
38
- permission_classes = [IsAuthenticated ]
39
- def get_object (self , pk ):
40
- try :
41
- return Student .objects .get (pk = pk )
42
- except Student .DoesNotExist :
43
- raise Http404
44
- def get (self , request , pk , format = None ):
45
- student = self .get_object (pk )
46
- serializer = StudentSerializer (student )
47
- return Response (serializer .data )
48
-
49
- def put (self , request , pk , format = None ):
50
- student = self .get_object (pk )
51
- serializer = StudentSerializer (student , data = request .data )
52
- if serializer .is_valid ():
53
- serializer .save ()
54
- return Response (serializer .data )
55
- return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
56
-
57
- def delete (self , request , pk , format = None ):
58
- student = self .get_object (pk )
59
- student .delete ()
60
- return Response (status = status .HTTP_204_NO_CONTENT )
41
+ permission_classes = [IsAuthenticated ]
42
+
43
+ def get_object (self , pk ):
44
+ try :
45
+ return Student .objects .get (pk = pk )
46
+ except Student .DoesNotExist :
47
+ raise Http404
48
+
49
+ def get (self , request , pk , format = None ):
50
+ student = self .get_object (pk )
51
+ serializer = StudentSerializer (student )
52
+ return Response (serializer .data )
53
+
54
+ def put (self , request , pk , format = None ):
55
+ student = self .get_object (pk )
56
+ serializer = StudentSerializer (student , data = request .data )
57
+ if serializer .is_valid ():
58
+ serializer .save ()
59
+ return Response (serializer .data )
60
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
61
+
62
+ def delete (self , request , pk , format = None ):
63
+ student = self .get_object (pk )
64
+ student .delete ()
65
+ return Response (status = status .HTTP_204_NO_CONTENT )
66
+
61
67
62
68
class StudentBulkUploadView (views .APIView ):
63
- """
64
- This uploads bulk number of students from excel file
65
- """
66
-
67
- parser_class = [FileUploadParser ]
68
- def post (self , request , filename , format = "xlsx" ):
69
- file_obj = request .data
70
- print (request .data )
71
-
72
- xlfile = file_obj ["filename" ]
73
-
74
- wb = load_workbook (xlfile )
75
- ws = wb .active
76
- print (ws .title )
77
-
78
- studentz = []
79
- for row in ws .iter_rows (min_row = 2 , max_col = 9 , max_row = 6 , values_only = True ):
80
- studentz .append (row )
81
- #print(studentz)
82
-
83
- students = []
84
- for i in range (len (studentz )):
85
- student = {
86
- "addmission_number" : f"{ studentz [i ][0 ]} " ,
87
- "first_name" : f"{ studentz [i ][1 ]} " ,
88
- "middle_name" : f"{ studentz [i ][2 ]} " ,
89
- "last_name" : f"{ studentz [i ][3 ]} " ,
90
- "grad_date" : f"{ studentz [i ][4 ]} " ,
91
- "sex" : f"{ studentz [i ][5 ]} " ,
92
- "birthday" : f"{ studentz [i ][6 ]} " ,
93
- "class_level" : f"{ studentz [i ][8 ]} " ,
94
- }
95
- students .append (student )
96
-
97
- for student in students :
98
- if student in Student .objects .all ():
99
- print ("student exists!" )
100
- continue
101
- else :
102
- serializer = StudentSerializer (data = student )
103
- if serializer .is_valid ():
104
- serializer .save ()
105
-
106
- return Response (status = status .HTTP_201_CREATED )
107
-
108
-
109
-
110
- '''
69
+ """
70
+ This uploads bulk number of students from excel file
71
+ """
72
+
73
+ parser_class = [FileUploadParser ]
74
+
75
+ def post (self , request , filename , format = "xlsx" ):
76
+ file_obj = request .data
77
+
78
+ xlfile = file_obj ["filename" ]
79
+ print (xlfile )
80
+
81
+ wb = load_workbook (xlfile )
82
+ ws = wb .active
83
+ print (ws .title )
84
+
85
+ studentz = []
86
+ for row in ws .iter_rows (min_row = 5 , max_col = 9 , max_row = 99 , values_only = True ):
87
+ studentz .append (row )
88
+ # print(studentz)
89
+
90
+ students = []
91
+ for i in range (len (studentz )):
92
+ student = {
93
+ "first_name" : f"{ studentz [i ][1 ].split ()[0 ]} " ,
94
+ "middle_name" : f"{ studentz [i ][1 ].split ()[1 ]} " ,
95
+ "last_name" : f"{ studentz [i ][1 ].split ()[2 ]} " ,
96
+ "gender" : f"{ studentz [i ][2 ]} " ,
97
+ "prem number" : f"{ studentz [i ][0 ]} " ,
98
+ "grade_level" : f"{ studentz [i ][3 ]} " ,
99
+ "parent_contact" : f"{ studentz [i ][4 ]} " ,
100
+ "addmission_number" : f"{ studentz [i ][5 ]} " ,
101
+ "religion" : f"{ studentz [i ][7 ]} " ,
102
+ }
103
+ students .append (student )
104
+ print (students )
105
+
106
+ created = []
107
+ exist = []
108
+ for student in students :
109
+ if student in Student .objects .all ():
110
+ print ("student exists!" )
111
+ exist .append (student )
112
+ continue
113
+ else :
114
+ serializer = StudentSerializer (data = student )
115
+ print (serializer .is_valid ())
116
+ if serializer .is_valid ():
117
+ student = serializer .bulk_create (student )
118
+ created .append (student )
119
+ # if student:
120
+ # serializer.save()
121
+ # serializer.save()
122
+
123
+ return Response (
124
+ data = {"created" : created , "existing" : exist }, status = status .HTTP_201_CREATED
125
+ )
126
+
127
+
128
+ """
111
129
class StudentHealthRecordViewSet(viewsets.ModelViewSet):
112
130
queryset = StudentHealthRecord.objects.all()
113
131
serializer_class = StudentHealthRecordSerializer
@@ -127,4 +145,4 @@ class SchoolYearViewSet(viewsets.ModelViewSet):
127
145
class MessageToStudentViewSet(viewsets.ModelViewSet):
128
146
queryset = MessageToStudent.objects.all()
129
147
serializer_class = MessageToStudentSerializer
130
- '''
148
+ """
0 commit comments