Skip to content

Commit aabeaac

Browse files
committed
Refactor code
1 parent 7f3b5b8 commit aabeaac

File tree

9 files changed

+53
-26
lines changed

9 files changed

+53
-26
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Generated by Django 3.2.23 on 2024-02-27 08:19
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api', '0190_auto_20240220_0510'),
10+
('api', '0190_remove_export_selector'),
11+
('api', '0204_merge_20240129_0639'),
12+
]
13+
14+
operations = [
15+
]

api/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2378,7 +2378,7 @@ def create(self, validated_data):
23782378
else:
23792379
title = "Export"
23802380
user = self.context['request'].user
2381-
validated_data['url'] = f'https://{settings.EXPORT_ALLOWED_DOMAIN}/{export_type}/{export_id}/export/'
2381+
validated_data['url'] = f'https://{settings.FRONTEND_URL}/{export_type}/{export_id}/export/'
23822382
validated_data['requested_by'] = user
23832383
export = super().create(validated_data)
23842384
if export.url:

api/tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def build_storage_state(tmp_dir, user, token):
2424
state = {
2525
"origins": [
2626
{
27-
"origin": "https://" + settings.EXPORT_ALLOWED_DOMAIN + "/",
27+
"origin": "https://" + settings.FRONTEND_URL + "/",
2828
"localStorage": [
2929
{
3030
"name": "user",

main/settings.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@
129129
*env('DJANGO_ADDITIONAL_ALLOWED_HOSTS'),
130130
]
131131

132-
EXPORT_ALLOWED_DOMAIN = [ *env('EXPORT_ALLOWED_HOSTS') ]
133132
SECRET_KEY = env('DJANGO_SECRET_KEY')
134133
DEBUG = env('DJANGO_DEBUG')
135134
GO_ENVIRONMENT = env('GO_ENVIRONMENT')

main/urls.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,6 @@
228228

229229
url(r"^api/v2/event/(?P<pk>\d+)", api_views.EventViewset.as_view({"get": "retrieve"})),
230230
url(r"^api/v2/event/(?P<slug>[-\w]+)", api_views.EventViewset.as_view({"get": "retrieve"}, lookup_field="slug")),
231-
#url(r"^api/v2/local-unit/", LocalUnitViewSet.as_view()),
232231
url(r"^api/v2/delegation-office/(?P<pk>\d+)", DelegationOfficeDetailAPIView.as_view()),
233232
url(r"^api/v2/delegation-office/", DelegationOfficeListAPIView.as_view()),
234233
url(r"^tinymce/", include("tinymce.urls")),

main/utils.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from django.utils.dateparse import parse_datetime, parse_date
1212
from django.db import models, router
1313
from django.contrib.contenttypes.models import ContentType
14+
from rest_framework.negotiation import DefaultContentNegotiation
15+
from rest_framework import exceptions
1416

1517

1618
def is_tableau(request):
@@ -161,3 +163,16 @@ def datetime_fields_to_date(
161163
parse_datetime,
162164
lambda x: x.date().isoformat(),
163165
)
166+
167+
168+
class SpreadSheetContentNegotiation(DefaultContentNegotiation):
169+
MEDIA_TYPES = [
170+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
171+
'text/html', # To allow download from browser
172+
]
173+
174+
def select_renderer(self, request, renderers, format_suffix):
175+
accepts = self.get_accept_list(request)
176+
if not set(self.MEDIA_TYPES).intersection(set(accepts)):
177+
raise exceptions.NotAcceptable(available_renderers=renderers)
178+
return (None, self.MEDIA_TYPES[0])

per/drf_views.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
from django_filters import rest_framework as filters
1616
from django.db.models import Q
1717
from django.conf import settings
18-
from drf_spectacular.utils import extend_schema, extend_schema_view
18+
from django.views import View
1919
from django.shortcuts import get_object_or_404
2020
from django.db import transaction
21+
from drf_spectacular.utils import extend_schema, extend_schema_view
2122

23+
from main.utils import SpreadSheetContentNegotiation
2224
from .admin_classes import RegionRestrictedAdmin
2325
from api.models import Country
2426
from deployments.models import SectorTag
@@ -256,6 +258,8 @@ def get_queryset(self):
256258
class ExportPerView(views.APIView):
257259
permission_classes = [permissions.IsAuthenticated]
258260

261+
content_negotiation_class = SpreadSheetContentNegotiation
262+
259263
def get(self, request, pk, format=None):
260264
per = get_object_or_404(Overview, pk=pk)
261265
per_queryset = Overview.objects.filter(id=per.id)
@@ -458,6 +462,7 @@ def get(self, request, pk, format=None):
458462
wb.save(response)
459463
return response
460464

465+
461466
class NewPerWorkPlanViewSet(viewsets.ModelViewSet):
462467
permission_classes = (IsAuthenticated,)
463468
queryset = PerWorkPlan.objects.all()

per/migrations/0096_migrate_formdata_notes.py

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,7 @@
66
class Migration(migrations.Migration):
77

88
def migrate_formdata_notes(apps, schema_editor):
9-
Form = apps.get_model('per', 'Form')
10-
FormData = apps.get_model('per', 'FormData')
11-
FormComponentResponse = apps.get_model('per', 'FormComponentResponse')
12-
count = 0
13-
for form in Form.objects.all():
14-
area = form.area
15-
for component_response in area.formcomponent_set.all():
16-
form_component_response = FormComponentResponse.objects.filter(
17-
component=component_response,
18-
)
19-
for response in form_component_response:
20-
form_data_entries = FormData.objects.filter(
21-
form=form,
22-
question__component=response.component
23-
)
24-
if form_data_entries.exists():
25-
form_data_entry = form_data_entries.first()
26-
response.notes = form_data_entry.notes
27-
response.save(update_fields=['notes'])
28-
count += 1
29-
print(f'Total {count} notes updated')
9+
pass
3010

3111
dependencies = [
3212
('per', '0095_perdocumentupload'),
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Generated by Django 3.2.23 on 2024-02-27 08:19
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('per', '0100_migrate_all_notes'),
10+
('per', '0102_merge_20240216_0447'),
11+
]
12+
13+
operations = [
14+
]

0 commit comments

Comments
 (0)