Coverage for backend/django/core/auxiliary/models/Expression.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-12-18 04:00 +0000

1from django.db import models 

2from core.auxiliary.models.Scenario import Scenario 

3from core.managers import AccessControlManager 

4from core.auxiliary.models.Flowsheet import Flowsheet 

5from typing import TYPE_CHECKING 

6if TYPE_CHECKING: 

7 from core.auxiliary.models.PropertyInfo import PropertyInfo 

8class Expression(models.Model): 

9 """ 

10 This basically represents a column in the csv file that a user has uploaded. 

11 It was originally intended to store mathematical expressions, but we have formulas on the 

12 PropertyValue now, so that functionality is not needed here. 

13 Now it just stores the name of the CSV column (or potential Live Data Source) 

14 """ 

15 # TODO: Rename to CSVColumn or sometihng similar. See also SolveState.py 

16 

17 flowsheet = models.ForeignKey(Flowsheet, on_delete=models.CASCADE, related_name="expressions") 

18 name = models.TextField(blank=True) 

19 value = models.TextField(blank=True,max_length=2048) # TODO: Pretty sure this is not used and can be removed. 

20 scenario = models.ForeignKey(Scenario, on_delete=models.CASCADE, related_name="expressions") 

21 

22 created_at = models.DateTimeField(auto_now_add=True) 

23 

24 objects = AccessControlManager() 

25 property : "PropertyInfo" 

26 

27 

28 

29 class Meta: 

30 ordering = ['created_at']