feat: add operation template models and preventive intervention logic with associated tests

This commit is contained in:
Karl Determe 2026-08-13 11:48:32 +02:00
parent 3d55121fbc
commit 7b519f16bd
2 changed files with 22 additions and 0 deletions

View file

@ -1355,6 +1355,7 @@ class OperationTemplate(models.Model):
model_name = ct.model.lower() model_name = ct.model.lower()
if model_name not in filters: if model_name not in filters:
filters[model_name] = set() filters[model_name] = set()
filters[model_name].add(entry.asset_model_object_id)
return filters if filters else None return filters if filters else None

View file

@ -130,6 +130,27 @@ class OperationTemplateTests(TestCase):
self.assertEqual(operations[0].template_group, 'Equipment Check') self.assertEqual(operations[0].template_group, 'Equipment Check')
self.assertEqual(operations[1].template_group, 'Generic Inspection') self.assertEqual(operations[1].template_group, 'Generic Inspection')
def test_get_asset_model_filters(self):
"""Test that get_asset_model_filters returns the correct dictionary with asset model IDs."""
from interventions.models import OperationTemplateAssetModelFilter
from django.contrib.contenttypes.models import ContentType
from common.models import Thematic
ct = ContentType.objects.get_for_model(Thematic)
# Create a filter entry
filter_entry = OperationTemplateAssetModelFilter.objects.create(
template=self.equipment_template,
asset_model_content_type=ct,
asset_model_object_id=999
)
filters = self.equipment_template.get_asset_model_filters()
self.assertIsNotNone(filters)
self.assertIn('thematic', filters)
self.assertIn(999, filters['thematic'])