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

Merge branch 'hide-guest-roles' into 'master'

Add visible field to RoleType

See merge request !434
parents 2be8c20a 18c96c33
No related branches found
No related tags found
1 merge request!434Add visible field to RoleType
Pipeline #238113 passed
...@@ -82,7 +82,7 @@ class RoleAdmin(VersionAdmin): ...@@ -82,7 +82,7 @@ class RoleAdmin(VersionAdmin):
class RoleTypeAdmin(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") 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): ...@@ -185,6 +185,7 @@ class RoleType(BaseModel):
default_duration_days = models.IntegerField(null=True) default_duration_days = models.IntegerField(null=True)
# Max days into the future this role can be assigned # Max days into the future this role can be assigned
max_days = models.IntegerField(default=365) max_days = models.IntegerField(default=365)
visible = models.BooleanField(default=False)
def __str__(self): def __str__(self):
return f"{str(self.name_en or self.name_nb)} ({self.identifier})" return f"{str(self.name_en or self.name_nb)} ({self.identifier})"
......
from rest_framework import permissions from rest_framework import permissions
from rest_framework.generics import ListAPIView from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from greg.models import RoleType from greg.models import RoleType
from gregui.api.serializers.roletype import RoleTypeSerializerUi from gregui.api.serializers.roletype import RoleTypeSerializerUi
...@@ -9,3 +10,8 @@ class RoleTypeViewSet(ListAPIView): ...@@ -9,3 +10,8 @@ class RoleTypeViewSet(ListAPIView):
queryset = RoleType.objects.all().order_by("id") queryset = RoleType.objects.all().order_by("id")
permission_classes = [permissions.AllowAny] permission_classes = [permissions.AllowAny]
serializer_class = RoleTypeSerializerUi 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: ...@@ -99,7 +99,65 @@ def unit_foo3() -> OrganizationalUnit:
@pytest.fixture @pytest.fixture
def role_type_foo() -> RoleType: def role_type_foo() -> RoleType:
rt = RoleType.objects.create( 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) 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