Coverage for backend/core/plots/Plot.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-11-06 23:27 +0000

1from django.db import models 

2from core.auxiliary.models.Flowsheet import Flowsheet 

3from core.auxiliary.models.PropertyInfo import PropertyInfo 

4 

5from core.managers import AccessControlManager 

6class PlotType(models.TextChoices): 

7 line="line" 

8 scatter="scatter" 

9 

10class Plot(models.Model): 

11 flowsheet = models.ForeignKey(Flowsheet, on_delete=models.CASCADE, related_name="flowsheetGraphs") 

12 title = models.CharField(max_length=256, blank=True) 

13 plotType = models.CharField(choices=PlotType.choices, default=PlotType.line) 

14 

15 created_at = models.DateTimeField(auto_now_add=True) 

16 objects = AccessControlManager() 

17 

18 

19 

20 

21class Series(models.Model): 

22 flowsheet = models.ForeignKey(Flowsheet, on_delete=models.CASCADE, related_name="GraphsSeries") 

23 label = models.CharField(max_length=256, blank=True) 

24 plot = models.ForeignKey(Plot, on_delete=models.CASCADE, related_name="series", null=True, default=None) 

25 x = models.ForeignKey(PropertyInfo, on_delete=models.SET_NULL, related_name="graph_x", null=True) 

26 y = models.ForeignKey(PropertyInfo, on_delete=models.SET_NULL, related_name="graph_y", null=True) 

27 

28 created_at = models.DateTimeField(auto_now_add=True) 

29 

30 objects = AccessControlManager() 

31