Merge branch 'main' of https://github.com/Central-University-IT-prod/PROD-Animulichki-SkillHub
This commit is contained in:
@@ -2,6 +2,7 @@ from django.urls import include, path
|
|||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
|
|
||||||
from api.users.views import (
|
from api.users.views import (
|
||||||
|
DownloadUsersFromExcelView,
|
||||||
RegisterUsersFromExcelView,
|
RegisterUsersFromExcelView,
|
||||||
UserViewSet,
|
UserViewSet,
|
||||||
)
|
)
|
||||||
@@ -19,4 +20,9 @@ urlpatterns = [
|
|||||||
RegisterUsersFromExcelView.as_view(),
|
RegisterUsersFromExcelView.as_view(),
|
||||||
name="excel-upload",
|
name="excel-upload",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"download/excel/<event_id>/",
|
||||||
|
DownloadUsersFromExcelView.as_view(),
|
||||||
|
name="excel-download",
|
||||||
|
)
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
|
|
||||||
|
import io
|
||||||
|
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
from django.http import FileResponse
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
@@ -55,3 +58,25 @@ class RegisterUsersFromExcelView(APIView):
|
|||||||
return Response(
|
return Response(
|
||||||
{"error": str(e)}, status=status.HTTP_400_BAD_REQUEST
|
{"error": str(e)}, status=status.HTTP_400_BAD_REQUEST
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class DownloadUsersFromExcelView(APIView):
|
||||||
|
def get(self, _, event_id):
|
||||||
|
try:
|
||||||
|
users = Event.objects.get(pk=event_id).users
|
||||||
|
except Event.DoesNotExist:
|
||||||
|
return Response(
|
||||||
|
{"error": "Event does not exist"},
|
||||||
|
status=status.HTTP_404_NOT_FOUND,
|
||||||
|
)
|
||||||
|
|
||||||
|
serializer = UserSerializer(users, many=True)
|
||||||
|
data = serializer.data
|
||||||
|
|
||||||
|
data = pd.DataFrame(data)
|
||||||
|
|
||||||
|
excel_data = io.BytesIO()
|
||||||
|
data.to_excel(excel_data, index=False)
|
||||||
|
excel_data.seek(0)
|
||||||
|
|
||||||
|
return FileResponse(excel_data, filename="users.xlsx")
|
||||||
|
|||||||
@@ -69,6 +69,11 @@
|
|||||||
"eslint-plugin-react": "^7.34.1",
|
"eslint-plugin-react": "^7.34.1",
|
||||||
"eslint-plugin-react-hooks": "^4.6.0",
|
"eslint-plugin-react-hooks": "^4.6.0",
|
||||||
"eslint-plugin-react-refresh": "^0.4.6",
|
"eslint-plugin-react-refresh": "^0.4.6",
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"prettier": "^3.2.5",
|
||||||
|
"@vitejs/plugin-react": "^4.2.0",
|
||||||
|
>>>>>>> 8d6323a364a5b30124a1b7ce60c092cb70e50a9e
|
||||||
"postcss": "^8.4.32",
|
"postcss": "^8.4.32",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"tailwindcss": "^3.3.5",
|
"tailwindcss": "^3.3.5",
|
||||||
|
|||||||
Reference in New Issue
Block a user