Skip to content

Commit

Permalink
Hide inactive reservation metadata sets from respa admin resource form
Browse files Browse the repository at this point in the history
Add a new field `active` to the `ReservationMetadataSet` model. Admin
users can change this field in Django admin. Hide inactive reservation
metadata sets from the resource form in the Respa admin.

Refs TTVA-218
  • Loading branch information
japauliina committed Jan 8, 2025
1 parent ff55bf4 commit 4999a5f
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 1 deletion.
3 changes: 3 additions & 0 deletions locale/fi/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -2214,3 +2214,6 @@ msgstr "Jos ehto ei ole aktiivinen, sitä ei näytetä Respan adminissa."

msgid "Inactive resource types are not shown in the Respa admin."
msgstr "Jos resurssityyppi ei ole aktiivinen, sitä ei näytetä Respan adminissa."

msgid "Inactive metadata sets are not shown in the resource form in Respa admin."
msgstr "Jos metatietojoukko ei ole aktiivinen, sitä ei näytetä resurssin lomakkeessa Respan adminissa."
3 changes: 3 additions & 0 deletions locale/sv/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -1801,3 +1801,6 @@ msgstr "Inaktiva villkor visas inte i Respa administratören."

msgid "Inactive resource types are not shown in the Respa admin."
msgstr "Inaktiva resurstyper visas inte i Respa administratören."

msgid "Inactive metadata sets are not shown in the resource form in Respa admin."
msgstr "Inaktiva metadatauppsättningar visas inte i resursformuläret i Respa administratören."
18 changes: 18 additions & 0 deletions resources/migrations/0127_reservationmetadataset_active.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 2.2.11 on 2025-01-08 08:50

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('resources', '0126_resourcetype_active'),
]

operations = [
migrations.AddField(
model_name='reservationmetadataset',
name='active',
field=models.BooleanField(default=True, help_text='Inactive metadata sets are not shown in the resource form in Respa admin.', verbose_name='Active'),
),
]
5 changes: 5 additions & 0 deletions resources/models/reservation.py
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,11 @@ class ReservationMetadataSet(ModifiableModel):
related_name="metadata_sets_required",
blank=True,
)
active = models.BooleanField(
default=True,
verbose_name=_("Active"),
help_text=_("Inactive metadata sets are not shown in the resource form in Respa admin."),
)

class Meta:
verbose_name = _("Reservation metadata set")
Expand Down
4 changes: 4 additions & 0 deletions respa_admin/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
Equipment,
Period,
Purpose,
ReservationMetadataSet,
Resource,
ResourceAccess,
ResourceAccessibility,
Expand Down Expand Up @@ -312,6 +313,9 @@ def __init__(self, *args, **kwargs):
if choice[0] not in ["", "none"]
]
self.fields["authentication"].initial = ["weak"]
self.fields["reservation_metadata_set"].queryset = (
ReservationMetadataSet.objects.filter(active=True)
)

def clean_notification_email_addresses(self):
notification_email_addresses = self.cleaned_data["notification_email_addresses"]
Expand Down
18 changes: 17 additions & 1 deletion respa_admin/tests/test_resource_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from django.utils import translation
from freezegun import freeze_time

from resources.models import Purpose, Resource, ResourceType, TermsOfUse
from resources.models import Purpose, ReservationMetadataSet, Resource, ResourceType, TermsOfUse

from ..forms import ResourceForm, get_period_formset

Expand Down Expand Up @@ -296,3 +296,19 @@ def test_only_active_resource_types_are_visible():

assert list(resource_type_field.queryset) == [active_resource_type]
assert inactive_resource_type not in resource_type_field.queryset


@pytest.mark.django_db
def test_only_reservation_metadata_sets_are_visible():
active_metadata_set = ReservationMetadataSet.objects.create(
name="Active metadata set",
active=True)
inactive_metadata_set = ReservationMetadataSet.objects.create(
name="Inactive metadata set",
active=False)

form = ResourceForm()
metadata_set_field = form.fields['reservation_metadata_set']

assert list(metadata_set_field.queryset) == [active_metadata_set]
assert inactive_metadata_set not in metadata_set_field.queryset

0 comments on commit 4999a5f

Please sign in to comment.