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

GREG-214: Switching to showing orgreg ID in dropdown for units

parent 053a1dca
No related branches found
No related tags found
1 merge request!284GREG-214: Switching to showing orgreg ID in dropdown for units
Pipeline #116246 passed
......@@ -5,6 +5,7 @@ type OuData = {
id: number
nb: string
en: string
orgreg_id?: string
}
function useOus(): OuData[] | undefined {
......
......@@ -243,7 +243,7 @@ const StepPersonForm = forwardRef(
.sort(i18n.language === 'en' ? enSort : nbSort)
.map((ou) => (
<MenuItem key={ou.id.toString()} value={ou.id}>
{getOuName(ou)} ({ou.id})
{getOuName(ou)} ({ou.orgreg_id ?? ''})
</MenuItem>
))}
</TextField>
......
......@@ -29,4 +29,4 @@ class SponsorOrgUnitsSerializer(ModelSerializer):
class Meta:
model = OrganizationalUnit
fields = ["id", "nb", "en"]
fields = ["id", "nb", "en", "orgreg_id"]
......@@ -10,6 +10,7 @@ from django.db.models import Q
from django.utils import timezone
from greg.managers import PersonManager
from gregsite.settings.base import ORGREG_NAME
class BaseModel(DirtyFieldsMixin, models.Model):
......@@ -472,6 +473,15 @@ class OrganizationalUnit(BaseModel):
active = models.BooleanField(default=True)
deleted = models.BooleanField(default=False)
@property
def orgreg_id(self) -> Optional[str]:
"""The orgreg ID if it exists"""
return (
self.identifiers.filter(name=ORGREG_NAME)
.values_list("value", flat=True)
.first()
)
def __repr__(self) -> str:
return "{}(id={!r}, name_en={!r}, parent={!r})".format(
self.__class__.__name__, self.pk, self.name_en, self.parent
......
import pytest
from rest_framework.reverse import reverse
from greg.models import OuIdentifier
from gregsite.settings.base import ORGREG_NAME
@pytest.mark.django_db
def test_orgreg_field_populated_if_identifier_present(
unit_foo, client, log_in, user_sponsor, sponsor_foo
):
orgreg_id = "200"
OuIdentifier.objects.create(
source="orgreg", name=ORGREG_NAME, value=orgreg_id, orgunit=unit_foo
)
log_in(user_sponsor)
resp = client.get(reverse("gregui-v1:ou-list"))
data = resp.json()
assert len(data) == 1
assert data[0]["orgreg_id"] == orgreg_id
@pytest.mark.django_db
def test_orgreg_field_empty_if_identifier_not_present(
unit_foo, client, log_in, user_sponsor, sponsor_foo
):
log_in(user_sponsor)
resp = client.get(reverse("gregui-v1:ou-list"))
data = resp.json()
assert len(data) == 1
assert data[0]["orgreg_id"] is None
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