From 40ff375f358cc9a2efea53b8abd4cc66f76e9971 Mon Sep 17 00:00:00 2001 From: AbdulxayAbduvosiyev Date: Sun, 12 May 2024 13:39:04 +0500 Subject: [PATCH 1/3] qoshimcha --- .gitignore | 3 ++- requirements.txt | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 68bc17f..e8ae4f9 100644 --- a/.gitignore +++ b/.gitignore @@ -157,4 +157,5 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ +staticfiles/ \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 8580ad2..ccc0083 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,8 @@ asgiref==3.8.1 Django==5.0.4 +djangorestframework==3.15.1 +djangorestframework-simplejwt==5.3.1 pillow==10.3.0 +PyJWT==2.8.0 sqlparse==0.5.0 tzdata==2024.1 From 0dd39f334ab8a41cf3316893d10f9b672d1b0a6d Mon Sep 17 00:00:00 2001 From: AbdulxayAbduvosiyev Date: Sun, 12 May 2024 14:42:35 +0500 Subject: [PATCH 2/3] releasing the API of Room model --- api/abdulaziz/room/serializers.py | 12 ++++++++++++ api/abdulaziz/room/urls.py | 6 ++++++ api/abdulaziz/room/views.py | 9 +++++++++ apps/structure/api_urls.py | 5 +++++ apps/structure/urls.py | 0 apps/users/apps.py | 4 ---- core/urls.py | 6 +++--- 7 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 api/abdulaziz/room/serializers.py create mode 100644 api/abdulaziz/room/urls.py create mode 100644 api/abdulaziz/room/views.py create mode 100644 apps/structure/api_urls.py delete mode 100644 apps/structure/urls.py diff --git a/api/abdulaziz/room/serializers.py b/api/abdulaziz/room/serializers.py new file mode 100644 index 0000000..f4cf874 --- /dev/null +++ b/api/abdulaziz/room/serializers.py @@ -0,0 +1,12 @@ +from rest_framework import serializers +from apps.structure.models import Room + +class RoomSerializer(serializers.ModelSerializer): + class Meta: + model = Room + fields = ['title', 'updated_at', 'created_at'] + extra_kwargs = { + 'created_at': {'read_only': True}, + 'updated_at': {'read_only': True}, + } + \ No newline at end of file diff --git a/api/abdulaziz/room/urls.py b/api/abdulaziz/room/urls.py new file mode 100644 index 0000000..ee2cd5c --- /dev/null +++ b/api/abdulaziz/room/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import RoomListView + +urlpatterns= [ + path('room_list/', RoomListView.as_view(), name='room_list') +] \ No newline at end of file diff --git a/api/abdulaziz/room/views.py b/api/abdulaziz/room/views.py new file mode 100644 index 0000000..eea37a0 --- /dev/null +++ b/api/abdulaziz/room/views.py @@ -0,0 +1,9 @@ +from rest_framework import generics +from .serializers import RoomSerializer +from apps.structure.models import Room + + +class RoomListView(generics.ListAPIView): + queryset = Room.objects.all() + serializer_class = RoomSerializer + diff --git a/apps/structure/api_urls.py b/apps/structure/api_urls.py new file mode 100644 index 0000000..1a5b44b --- /dev/null +++ b/apps/structure/api_urls.py @@ -0,0 +1,5 @@ +from django.urls import path, include + +urlpatterns = [ + path('', include('api.abdulaziz.room.urls')) +] \ No newline at end of file diff --git a/apps/structure/urls.py b/apps/structure/urls.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/users/apps.py b/apps/users/apps.py index f60a301..2bb189c 100644 --- a/apps/users/apps.py +++ b/apps/users/apps.py @@ -3,8 +3,4 @@ class UsersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' -<<<<<<< HEAD - name = 'users' -======= name = 'apps.users' ->>>>>>> cb4e5e2d655c474d3c5b46e6200c4d1a1b7bd285 diff --git a/core/urls.py b/core/urls.py index 7a66974..43ee24a 100644 --- a/core/urls.py +++ b/core/urls.py @@ -22,9 +22,9 @@ urlpatterns = [ path('admin/', admin.site.urls), - path('api/v1' , include('apps.users.api.urls')), - path('api/v1' , include('apps.common.api.urls')), - path('api/v1' , include('apps.structure.api.urls')), + path('api/v1/' , include('apps.users.api.urls')), + path('api/v1/' , include('apps.common.api.urls')), + path('api/v1/' , include('apps.structure.api_urls')), ] if settings.DEBUG: From c6d4365275966e848d1881e177cf3a96a5801ebb Mon Sep 17 00:00:00 2001 From: AbdulxayAbduvosiyev Date: Sat, 18 May 2024 19:53:47 +0500 Subject: [PATCH 3/3] 'view' part of API --- api/abdulxay/attendance/serializers.py | 13 +++++++++++++ api/abdulxay/attendance/urls.py | 6 ++++++ api/abdulxay/attendance/views.py | 7 +++++++ api/abdulxay/payment/serializers.py | 12 ++++++++++++ api/abdulxay/payment/urls.py | 6 ++++++ api/abdulxay/payment/views.py | 8 ++++++++ api/abdulxay/task/serializers.py | 13 +++++++++++++ api/abdulxay/task/urls.py | 6 ++++++ api/abdulxay/task/views.py | 7 +++++++ api/abdulxay/task_submittion/serializers.py | 12 ++++++++++++ api/abdulxay/task_submittion/urls.py | 6 ++++++ api/abdulxay/task_submittion/views.py | 7 +++++++ apps/structure/api_urls.py | 6 +++++- 13 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 api/abdulxay/attendance/serializers.py create mode 100644 api/abdulxay/attendance/urls.py create mode 100644 api/abdulxay/attendance/views.py create mode 100644 api/abdulxay/payment/serializers.py create mode 100644 api/abdulxay/payment/urls.py create mode 100644 api/abdulxay/payment/views.py create mode 100644 api/abdulxay/task/serializers.py create mode 100644 api/abdulxay/task/urls.py create mode 100644 api/abdulxay/task/views.py create mode 100644 api/abdulxay/task_submittion/serializers.py create mode 100644 api/abdulxay/task_submittion/urls.py create mode 100644 api/abdulxay/task_submittion/views.py diff --git a/api/abdulxay/attendance/serializers.py b/api/abdulxay/attendance/serializers.py new file mode 100644 index 0000000..a6e94ca --- /dev/null +++ b/api/abdulxay/attendance/serializers.py @@ -0,0 +1,13 @@ +from rest_framework import serializers +from apps.structure.models import Attendance + +class AttendanceSerializers(serializers.ModelSerializer): + + class Meta: + model = Attendance + fields = ['lesson', 'student', 'status', 'created_at', 'updated_at'] + extra_kwargs = { + 'created_at': {'read_only': True}, + 'updated_at': {'read_only': True}, + } + diff --git a/api/abdulxay/attendance/urls.py b/api/abdulxay/attendance/urls.py new file mode 100644 index 0000000..5158682 --- /dev/null +++ b/api/abdulxay/attendance/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import AttendanceListView + +urlpatterns = [ + path('attendance_list/', AttendanceListView.as_view(), name='attendance_list') +] \ No newline at end of file diff --git a/api/abdulxay/attendance/views.py b/api/abdulxay/attendance/views.py new file mode 100644 index 0000000..b9f629b --- /dev/null +++ b/api/abdulxay/attendance/views.py @@ -0,0 +1,7 @@ +from rest_framework import generics +from .serializers import AttendanceSerializers +from apps.structure.models import Attendance + +class AttendanceListView(generics.ListAPIView): + queryset = Attendance.objects.all() + serializer_class = AttendanceSerializers \ No newline at end of file diff --git a/api/abdulxay/payment/serializers.py b/api/abdulxay/payment/serializers.py new file mode 100644 index 0000000..1c08b98 --- /dev/null +++ b/api/abdulxay/payment/serializers.py @@ -0,0 +1,12 @@ +from rest_framework import serializers +from apps.structure.models import Payment + +class PaymentSerializers(serializers.ModelSerializer): + + class Meta: + model = Payment + fields = ['student', 'price', 'date', 'deadline', 'comment', 'created_at', 'updated_at'] + extra_kwargs = { + 'created_at': {'read_only': True}, + 'updated_at': {'read_only': True}, + } \ No newline at end of file diff --git a/api/abdulxay/payment/urls.py b/api/abdulxay/payment/urls.py new file mode 100644 index 0000000..e69718c --- /dev/null +++ b/api/abdulxay/payment/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import PaymentListView + +urlpatterns = [ + path('payment_list/', PaymentListView.as_view(), name='payment_list') +] diff --git a/api/abdulxay/payment/views.py b/api/abdulxay/payment/views.py new file mode 100644 index 0000000..4ad331d --- /dev/null +++ b/api/abdulxay/payment/views.py @@ -0,0 +1,8 @@ +from rest_framework import generics +from .serializers import PaymentSerializers +from apps.structure.models import Payment + + +class PaymentListView(generics.ListAPIView): + queryset = Payment.objects.all() + serializer_class = PaymentSerializers \ No newline at end of file diff --git a/api/abdulxay/task/serializers.py b/api/abdulxay/task/serializers.py new file mode 100644 index 0000000..7b5c1da --- /dev/null +++ b/api/abdulxay/task/serializers.py @@ -0,0 +1,13 @@ +from rest_framework import serializers +from apps.structure.models import Task + +class TaskSerializers(serializers.ModelSerializer): + + class Meta: + model = Task + fields = ['title', 'grade', 'deadline', 'created_at', 'updated_at', 'teacher', 'group', 'file'] + + extra_kwargs = { + 'created_at': {'read_only': True}, + 'updated_at': {'read_only': True}, + } diff --git a/api/abdulxay/task/urls.py b/api/abdulxay/task/urls.py new file mode 100644 index 0000000..f1b1da9 --- /dev/null +++ b/api/abdulxay/task/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import TaskListView + +urlpatterns = [ + path('task_list/', TaskListView.as_view(), name='task_list') +] \ No newline at end of file diff --git a/api/abdulxay/task/views.py b/api/abdulxay/task/views.py new file mode 100644 index 0000000..7ad2bdf --- /dev/null +++ b/api/abdulxay/task/views.py @@ -0,0 +1,7 @@ +from rest_framework import generics +from .serializers import TaskSerializers +from apps.structure.models import Task + +class TaskListView(generics.ListAPIView): + queryset = Task.objects.all() + serializer_class = TaskSerializers \ No newline at end of file diff --git a/api/abdulxay/task_submittion/serializers.py b/api/abdulxay/task_submittion/serializers.py new file mode 100644 index 0000000..a186f86 --- /dev/null +++ b/api/abdulxay/task_submittion/serializers.py @@ -0,0 +1,12 @@ +from rest_framework import serializers +from apps.structure.models import TaskSubmittion + +class TaskSubmittionSerializers(serializers.ModelSerializer): + + class Meta: + model = TaskSubmittion + fields = ['student', 'task', 'file', 'created_at', 'updated_at'] + extra_kwargs = { + 'created_at': {'read_only': True}, + 'updated_at': {'read_only': True}, + } diff --git a/api/abdulxay/task_submittion/urls.py b/api/abdulxay/task_submittion/urls.py new file mode 100644 index 0000000..695bbb7 --- /dev/null +++ b/api/abdulxay/task_submittion/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from .views import TaskSubmittionListView + +urlpatterns = [ + path('tasksubmittion_list/', TaskSubmittionListView.as_view(), name='tasksubmittion_list') +] \ No newline at end of file diff --git a/api/abdulxay/task_submittion/views.py b/api/abdulxay/task_submittion/views.py new file mode 100644 index 0000000..0a192c8 --- /dev/null +++ b/api/abdulxay/task_submittion/views.py @@ -0,0 +1,7 @@ +from rest_framework import generics +from .serializers import TaskSubmittionSerializers +from apps.structure.models import TaskSubmittion + +class TaskSubmittionListView(generics.ListAPIView): + queryset = TaskSubmittion.objects.all() + serializer_class = TaskSubmittionSerializers \ No newline at end of file diff --git a/apps/structure/api_urls.py b/apps/structure/api_urls.py index 1a5b44b..aa42855 100644 --- a/apps/structure/api_urls.py +++ b/apps/structure/api_urls.py @@ -1,5 +1,9 @@ from django.urls import path, include urlpatterns = [ - path('', include('api.abdulaziz.room.urls')) + path('', include('api.abdulaziz.room.urls')), + path('', include('api.abdulxay.payment.urls')), + path('', include('api.abdulxay.task_submittion.urls')), + path('', include('api.abdulxay.task.urls')), + path('', include('api.abdulxay.attendance.urls')), ] \ No newline at end of file