Skip to content
Snippets Groups Projects
Commit 18c96c33 authored by Marte Fossum's avatar Marte Fossum
Browse files

Add visible field to RoleType

parent d77541bf
No related branches found
No related tags found
1 merge request!434Add visible field to RoleType
......@@ -82,7 +82,7 @@ class RoleAdmin(VersionAdmin):
class RoleTypeAdmin(VersionAdmin):
list_display = ("id", "identifier", "name_nb", "name_en")
list_display = ("id", "identifier", "name_nb", "name_en", "visible")
readonly_fields = ("id", "created", "updated")
......
# Generated by Django 4.1.4 on 2023-11-08 17:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("greg", "0030_remove_identity_identity_type_value_unique_and_more"),
]
operations = [
migrations.AddField(
model_name="roletype",
name="visible",
field=models.BooleanField(default=False),
),
]
......@@ -185,6 +185,7 @@ class RoleType(BaseModel):
default_duration_days = models.IntegerField(null=True)
# Max days into the future this role can be assigned
max_days = models.IntegerField(default=365)
visible = models.BooleanField(default=False)
def __str__(self):
return f"{str(self.name_en or self.name_nb)} ({self.identifier})"
......
from rest_framework import permissions
from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from greg.models import RoleType
from gregui.api.serializers.roletype import RoleTypeSerializerUi
......@@ -9,3 +10,8 @@ class RoleTypeViewSet(ListAPIView):
queryset = RoleType.objects.all().order_by("id")
permission_classes = [permissions.AllowAny]
serializer_class = RoleTypeSerializerUi
def get(self, request, *args, **kwargs):
roletypes = self.queryset.filter(visible=True)
serializer = self.serializer_class(roletypes, many=True)
return Response(serializer.data)
import pytest
from rest_framework.reverse import reverse
from rest_framework import status
from greg.models import RoleType
@pytest.mark.django_db
def test_get_roletypes(
client,
role_type_1,
role_type_2,
role_type_3,
role_type_4,
role_type_5,
):
response = client.get(reverse("gregui-v1:role-types"), data={})
response_body = response.json()
assert response.status_code == status.HTTP_200_OK
assert len(response_body) == 5
RoleType.objects.filter(id=role_type_1.id).update(visible=False)
RoleType.objects.filter(id=role_type_3.id).update(visible=False)
response = client.get(reverse("gregui-v1:role-types"), data={})
response_body = response.json()
assert response.status_code == status.HTTP_200_OK
assert len(response_body) == 3
......@@ -99,7 +99,65 @@ def unit_foo3() -> OrganizationalUnit:
@pytest.fixture
def role_type_foo() -> RoleType:
rt = RoleType.objects.create(
identifier="role_foo", name_en="Role Foo EN", name_nb="Role Foo NB"
identifier="role_foo",
name_en="Role Foo EN",
name_nb="Role Foo NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
@pytest.fixture
def role_type_1() -> RoleType:
rt = RoleType.objects.create(
identifier="role1",
name_en="Role1 EN",
name_nb="Role1 NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
@pytest.fixture
def role_type_2() -> RoleType:
rt = RoleType.objects.create(
identifier="role2",
name_en="Role2 EN",
name_nb="Role2 NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
@pytest.fixture
def role_type_3() -> RoleType:
rt = RoleType.objects.create(
identifier="role3",
name_en="Role3 EN",
name_nb="Role3 NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
@pytest.fixture
def role_type_4() -> RoleType:
rt = RoleType.objects.create(
identifier="role4",
name_en="Role4 EN",
name_nb="Role4 NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
@pytest.fixture
def role_type_5() -> RoleType:
rt = RoleType.objects.create(
identifier="role5",
name_en="Role5 EN",
name_nb="Role5 NB",
visible=True,
)
return RoleType.objects.get(id=rt.id)
......
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