Skip to content

Commit

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

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

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."

msgid "Inactive equipment is not shown in the Respa admin."
msgstr "Jos varuste ei ole aktiivinen, sitä ei näytetä 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 @@ -1804,3 +1804,6 @@ 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."

msgid "Inactive equipment is not shown in the Respa admin."
msgstr "Inaktiva utrustningar visas inte i Respa administratören."
18 changes: 18 additions & 0 deletions resources/migrations/0128_equipment_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 11:34

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('resources', '0127_reservationmetadataset_active'),
]

operations = [
migrations.AddField(
model_name='equipment',
name='active',
field=models.BooleanField(default=True, help_text='Inactive equipment is not shown in the Respa admin.', verbose_name='Active'),
),
]
5 changes: 5 additions & 0 deletions resources/models/equipment.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ class Equipment(ModifiableModel, AutoIdentifiedModel):
name = models.CharField(verbose_name=_('Name'), max_length=200)
category = models.ForeignKey(EquipmentCategory, verbose_name=_('Category'), related_name='equipment',
on_delete=models.CASCADE)
active = models.BooleanField(
default=True,
verbose_name=_('Active'),
help_text=_('Inactive equipment is not shown in the Respa admin.')
)

class Meta:
verbose_name = pgettext_lazy('singular', 'equipment')
Expand Down
2 changes: 1 addition & 1 deletion respa_admin/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ class ResourceForm(forms.ModelForm):
equipment = forms.ModelMultipleChoiceField(
required=False,
widget=RespaCheckboxSelect,
queryset=Equipment.objects.all(),
queryset=Equipment.objects.filter(active=True),
)

name_fi = forms.CharField(
Expand Down
26 changes: 25 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,9 @@
from django.utils import translation
from freezegun import freeze_time

from resources.models import Purpose, ReservationMetadataSet, Resource, ResourceType, TermsOfUse
from resources.models import (
Equipment, EquipmentCategory, Purpose, ReservationMetadataSet, Resource, ResourceType, TermsOfUse
)

from ..forms import ResourceForm, get_period_formset

Expand Down Expand Up @@ -312,3 +314,25 @@ def test_only_reservation_metadata_sets_are_visible():

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


@pytest.mark.django_db
def test_only_active_equipments_are_visible():
category = EquipmentCategory.objects.create(
id="category",
name="Category"
)
active_equipment = Equipment.objects.create(
name="Active equipment",
category=category,
active=True)
inactive_equipment = Equipment.objects.create(
name="Inactive equipment",
category=category,
active=False)

form = ResourceForm()
equipment_field = form.fields['equipment']

assert list(equipment_field.queryset) == [active_equipment]
assert inactive_equipment not in equipment_field.queryset

0 comments on commit c148703

Please sign in to comment.