diff --git a/pluto/requirements.txt b/pluto/requirements.txt deleted file mode 100644 index c49a76e..0000000 --- a/pluto/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -Django==3.2.10 -axblack==20210720 -djangorestframework==3.12.4 -pytz==2021.3 -django-cors-headers==3.10.1 \ No newline at end of file diff --git a/pluto/starfish/models.py b/pluto/starfish/models.py index 98cbd09..abc7787 100644 --- a/pluto/starfish/models.py +++ b/pluto/starfish/models.py @@ -1,9 +1,10 @@ import uuid from django.db import models - from starfish import choices - +import pandas as pd +import pendulum +import os class Team(models.Model): name = models.CharField(verbose_name='Nome', max_length=64, null=False) @@ -93,5 +94,16 @@ class Meta: def __str__(self): return self.goal - def export(self): - pass + def export(self, data): + now = pendulum.now().strftime("%Y-%m-%dT%H:%M:%S") + filename = f"review-{now}.csv" + filepath = 'csv_review' + + if not os.path.exists(filepath): + os.mkdir(filepath) + + dir = os.path.join(filepath, filename) + df = pd.DataFrame.from_dict(data, orient= 'index') + df.to_csv(dir) + + return filename diff --git a/pluto/starfish/routes.py b/pluto/starfish/routes.py index d237999..0e38d28 100644 --- a/pluto/starfish/routes.py +++ b/pluto/starfish/routes.py @@ -7,6 +7,4 @@ router.register(r'teams', views.TeamViewSet, basename='team') router.register(r'members', views.MemberViewSet, basename='member') router.register(r'reviews', views.ReviewViewSet, basename='review') -router.register( - r'suggestions', views.SuggestionViewSet, basename='suggestions' -) +router.register(r'suggestions', views.SuggestionViewSet, basename='suggestions') diff --git a/pluto/starfish/views.py b/pluto/starfish/views.py index b52ed03..c25d757 100644 --- a/pluto/starfish/views.py +++ b/pluto/starfish/views.py @@ -144,6 +144,21 @@ def counting(self, request): return response.Response(data=message, status=status.HTTP_200_OK) + @decorators.action( + methods=["post"], + url_path="export", + url_name="export", + detail=True, + ) + def export_csv(self, request, pk): + review = models.Review.objects.get(id=pk) + serializer = serializers.ReviewSerializer(review) + + review.export(data=serializer.data) + + return response.Response(status=status.HTTP_200_OK) + + class SuggestionViewSet(viewsets.ModelViewSet): queryset = models.Suggestion.objects.all() @@ -158,5 +173,4 @@ def vote(self, request, pk): member = models.Member.objects.get(id=request.data['id_member']) suggestion.vote(member=member) - return response.Response(status=status.HTTP_200_OK) diff --git a/requirements.txt b/requirements.txt index 8b28e91..65bf1d8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,7 @@ django-filter==1.0.1 django-cors-headers==3.10.1 django-jsonfield==1.4.1 django-utils-six==2.0 +pandas==1.3.4 +pendulum==2.1.2 pusher==3.1.0 -ptvsd==4.3.2 +ptvsd==4.3.2 \ No newline at end of file