Coverage for backend/core/auxiliary/models/ControlValue.py: 100%
16 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from __future__ import annotations
2from django.db import models
3from typing import TYPE_CHECKING
4from core.managers import AccessControlManager
5if TYPE_CHECKING:
6 from .PropertyInfo import PropertyInfo
7 from .PropertyValue import PropertyValue
8 from .Flowsheet import Flowsheet
10class ControlValue(models.Model):
11 flowsheet = models.ForeignKey("Flowsheet", on_delete=models.CASCADE, related_name="controlValues")
12 manipulated = models.OneToOneField("PropertyValue", on_delete=models.CASCADE, related_name="controlManipulated", null=True)
13 setPoint = models.OneToOneField("PropertyValue", on_delete=models.CASCADE, related_name="controlSetPoint", null=True)
15 created_at = models.DateTimeField(auto_now_add=True)
17 objects = AccessControlManager()
21 @classmethod
22 def create(cls, manipulated: PropertyValue, setPoint: PropertyValue, flowsheet: Flowsheet) -> "ControlValue":
23 instance = cls.objects.create(manipulated=manipulated, setPoint=setPoint, flowsheet=flowsheet)
24 return instance
26 def delete(self) -> None:
27 super().delete()