Skip to content
Snippets Groups Projects
Commit 8d11e0f0 authored by Tore.Brede's avatar Tore.Brede
Browse files

Merge branch 'master' into GREG-21_add_foedselsnummer

parents 880add33 e1363c26
No related branches found
No related tags found
1 merge request!25GREG-21: Add foedselsnummer as type
Pipeline #90546 passed
...@@ -6,4 +6,4 @@ from greg.models import Sponsor ...@@ -6,4 +6,4 @@ from greg.models import Sponsor
class SponsorSerializer(serializers.ModelSerializer): class SponsorSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Sponsor model = Sponsor
fields = ["id", "feide_id"] fields = ["id", "feide_id", "first_name", "last_name"]
from drf_spectacular.utils import extend_schema, OpenApiParameter from drf_spectacular.utils import extend_schema, OpenApiParameter
from rest_framework import mixins from rest_framework import mixins
from rest_framework.viewsets import ReadOnlyModelViewSet, GenericViewSet from rest_framework.viewsets import GenericViewSet, ModelViewSet
from greg.api.pagination import PrimaryKeyCursorPagination from greg.api.pagination import PrimaryKeyCursorPagination
from greg.api.serializers import PersonSerializer from greg.api.serializers import PersonSerializer
...@@ -8,7 +8,7 @@ from greg.api.serializers.sponsor import SponsorSerializer ...@@ -8,7 +8,7 @@ from greg.api.serializers.sponsor import SponsorSerializer
from greg.models import Sponsor, Person from greg.models import Sponsor, Person
class SponsorViewSet(ReadOnlyModelViewSet): class SponsorViewSet(ModelViewSet):
"""Sponsor API""" """Sponsor API"""
queryset = Sponsor.objects.all().order_by("id") queryset = Sponsor.objects.all().order_by("id")
......
# Generated by Django 3.2.5 on 2021-08-19 11:04 # Generated by Django 3.2.5 on 2021-08-20 08:20
import datetime import datetime
import dirtyfields.dirtyfields import dirtyfields.dirtyfields
...@@ -119,6 +119,8 @@ class Migration(migrations.Migration): ...@@ -119,6 +119,8 @@ class Migration(migrations.Migration):
('created', models.DateTimeField(auto_now_add=True)), ('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now=True)),
('feide_id', models.CharField(max_length=256)), ('feide_id', models.CharField(max_length=256)),
('first_name', models.CharField(max_length=256)),
('last_name', models.CharField(max_length=256)),
], ],
bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model), bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model),
), ),
...@@ -163,7 +165,7 @@ class Migration(migrations.Migration): ...@@ -163,7 +165,7 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(auto_now_add=True)), ('created', models.DateTimeField(auto_now_add=True)),
('updated', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now=True)),
('type', models.CharField(choices=[('ID_PORTEN', 'Id Porten'), ('FEIDE_ID', 'Feide Id'), ('PASSPORT', 'Passport'), ('DRIVERS_LICENSE', 'Drivers License'), ('NATIONAL_ID_CARD', 'National Id Card'), ('FOEDSELSNUMMER', 'Foedselsnummer'), ('OTHER', 'Other')], max_length=16)), ('type', models.CharField(choices=[('ID_PORTEN', 'Id Porten'), ('FEIDE_ID', 'Feide Id'), ('PASSPORT', 'Passport'), ('DRIVERS_LICENSE', 'Drivers License'), ('NATIONAL_ID_CARD', 'National Id Card'), ('NATIONAL_ID_NUMBER', 'National Id Number'), ('OTHER', 'Other')], max_length=18)),
('source', models.CharField(max_length=256)), ('source', models.CharField(max_length=256)),
('value', models.CharField(max_length=256)), ('value', models.CharField(max_length=256)),
('verified', models.CharField(blank=True, choices=[('AUTOMATIC', 'Automatic'), ('MANUAL', 'Manual')], max_length=9)), ('verified', models.CharField(blank=True, choices=[('AUTOMATIC', 'Automatic'), ('MANUAL', 'Manual')], max_length=9)),
......
...@@ -263,6 +263,9 @@ class Sponsor(BaseModel): ...@@ -263,6 +263,9 @@ class Sponsor(BaseModel):
""" """
feide_id = models.CharField(max_length=256) feide_id = models.CharField(max_length=256)
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)
units = models.ManyToManyField( units = models.ManyToManyField(
"OrganizationalUnit", "OrganizationalUnit",
through="SponsorOrganizationalUnit", through="SponsorOrganizationalUnit",
...@@ -270,8 +273,12 @@ class Sponsor(BaseModel): ...@@ -270,8 +273,12 @@ class Sponsor(BaseModel):
) )
def __repr__(self): def __repr__(self):
return "{}(id={!r}, feide_id={!r})".format( return "{}(id={!r}, feide_id={!r}, first_name={!r}, last_name={!r})".format(
self.__class__.__name__, self.pk, self.feide_id self.__class__.__name__,
self.pk,
self.feide_id,
self.first_name,
self.last_name,
) )
class Meta: class Meta:
...@@ -318,3 +325,8 @@ class ScheduleTask(models.Model): ...@@ -318,3 +325,8 @@ class ScheduleTask(models.Model):
name = models.CharField(max_length=32) name = models.CharField(max_length=32)
last_completed = models.DateTimeField(null=True) last_completed = models.DateTimeField(null=True)
def __repr__(self):
return "{}(id={!r}, name={!r}, last_completed={!r})".format(
self.__class__.__name__, self.pk, self.name, self.last_completed
)
import pytest import pytest
from rest_framework import status
from rest_framework.reverse import reverse from rest_framework.reverse import reverse
@pytest.mark.django_db
def test_add_sponsor(client):
data = {
"feide_id": "sponsor@example.org",
"first_name": "Test",
"last_name": "Sponsor",
}
post_response = client.post(reverse("sponsor-list"), data=data)
assert post_response.status_code == status.HTTP_201_CREATED
response_data = post_response.json()
list_response = client.get(
reverse("sponsor-detail", kwargs={"id": response_data["id"]})
)
list_response_data = list_response.json()
assert list_response_data["feide_id"] == data["feide_id"]
assert list_response_data["first_name"] == data["first_name"]
assert list_response_data["last_name"] == data["last_name"]
@pytest.mark.django_db @pytest.mark.django_db
def test_sponsor_guest_list(client, sponsor_guy, person_foo_role): def test_sponsor_guest_list(client, sponsor_guy, person_foo_role):
url = reverse("sponsor_guests-list", kwargs={"sponsor_id": sponsor_guy.id}) url = reverse("sponsor_guests-list", kwargs={"sponsor_id": sponsor_guy.id})
......
...@@ -53,7 +53,9 @@ def person_bar() -> Person: ...@@ -53,7 +53,9 @@ def person_bar() -> Person:
@pytest.fixture @pytest.fixture
def sponsor_guy() -> Sponsor: def sponsor_guy() -> Sponsor:
return Sponsor.objects.create(feide_id="guy@example.org") return Sponsor.objects.create(
feide_id="guy@example.org", first_name="Sponsor", last_name="Guy"
)
@pytest.fixture @pytest.fixture
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment