Skip to content

Commit 8b009b2

Browse files
authored
Add dref global files api (#2466)
1 parent 351630e commit 8b009b2

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

dref/serializers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1416,3 +1416,7 @@ class DrefShareUserSerializer(serializers.ModelSerializer):
14161416
class Meta:
14171417
model = Dref
14181418
fields = ("id", "users", "users_details")
1419+
1420+
1421+
class DrefGlobalFilesSerializer(serializers.Serializer):
1422+
budget_template_url = serializers.CharField(read_only=True)

dref/views.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import django.utils.timezone as timezone
22
from django.contrib.auth.models import Permission
33
from django.db import models
4+
from django.templatetags.static import static
45
from django.utils.translation import gettext
56
from drf_spectacular.utils import extend_schema
67
from rest_framework import (
@@ -30,6 +31,7 @@
3031
DrefFileInputSerializer,
3132
DrefFileSerializer,
3233
DrefFinalReportSerializer,
34+
DrefGlobalFilesSerializer,
3335
DrefOperationalUpdateSerializer,
3436
DrefSerializer,
3537
DrefShareUserSerializer,
@@ -86,6 +88,24 @@ def get_published(self, request, pk=None, version=None):
8688
serializer = DrefSerializer(dref, context={"request": request})
8789
return response.Response(serializer.data)
8890

91+
@extend_schema(request=None, responses=DrefGlobalFilesSerializer)
92+
@action(
93+
detail=False,
94+
url_path="global-files",
95+
methods=["get"],
96+
serializer_class=DrefGlobalFilesSerializer,
97+
permission_classes=[permissions.IsAuthenticated, DenyGuestUserPermission],
98+
)
99+
def get_global_files(self, request, pk=None, version=None):
100+
"""
101+
Dref global files url
102+
"""
103+
return response.Response(
104+
DrefGlobalFilesSerializer(
105+
{"budget_template_url": request.build_absolute_uri(static("files/dref/budget_template.xlsm"))}
106+
).data
107+
)
108+
89109

90110
class DrefOperationalUpdateViewSet(RevisionMixin, viewsets.ModelViewSet):
91111
serializer_class = DrefOperationalUpdateSerializer
455 KB
Binary file not shown.

0 commit comments

Comments
 (0)