Skip to content

Commit

Permalink
Add per in per document upload
Browse files Browse the repository at this point in the history
  • Loading branch information
k9845 committed Apr 2, 2024
1 parent 70b28f3 commit 5825bc6
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 5 deletions.
3 changes: 2 additions & 1 deletion per/filter_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ class Meta:
class PerDocumentFilter(filters.FilterSet):
country = filters.NumberFilter(field_name="country")
region = filters.NumberFilter(field_name="country__region")
per = filters.NumberFilter(field_name="per")

class Meta:
model = PerDocumentUpload
fields = ()
fields = ()
19 changes: 19 additions & 0 deletions per/migrations/0111_perdocumentupload_per.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 3.2.25 on 2024-04-02 05:24

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('per', '0110_auto_20240325_0611'),
]

operations = [
migrations.AddField(
model_name='perdocumentupload',
name='per',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='per.overview', verbose_name='Per'),
),
]
9 changes: 8 additions & 1 deletion per/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,13 @@ class PerDocumentUpload(models.Model):
verbose_name=_("created at"),
auto_now_add=True
)
per = models.ForeignKey(
Overview,
verbose_name=_('Per'),
on_delete=models.SET_NULL,
null=True,
blank=True
)

def __str__(self):
return f'{self.country.name} - {self.created_by}'
return f'{self.country.name} - {self.created_by} - {self.per_id}'
16 changes: 13 additions & 3 deletions per/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@
from django.contrib.auth.models import User
from django.db import models
from django.contrib.auth.models import Permission
from django.utils.translation import gettext


from api.models import Region, Appeal
from api.models import Region, Appeal, Country
from api.serializers import RegoCountrySerializer, UserNameSerializer
from .models import (
Form,
Expand Down Expand Up @@ -1023,6 +1021,18 @@ def validate(self, data):
)
return data

def validate_per(self, per):
if per is None:
raise serializers.ValidationError("This field is required")
country_per = list(
Country.objects.filter(id=self.initial_data['country']).values_list("per_overviews", flat=True)
)
if per and per.id not in country_per:
raise serializers.ValidationError(
gettext(f"Per {per.id} doesn't match country {self.initial_data['country']}")
)
return per

def validate_file(self, file):
validate_file_type(file)
return file
Expand Down

0 comments on commit 5825bc6

Please sign in to comment.