Skip to content

Commit

Permalink
add checks and exceptions to recorded data init
Browse files Browse the repository at this point in the history
  • Loading branch information
clavay authored and trombastic committed Feb 16, 2024
1 parent 81b3e28 commit dafc0f4
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions pyscada/models.py
Expand Up @@ -2633,15 +2633,22 @@ def __init__(self, *args, **kwargs):
else:
timestamp = time.time_ns() / 1000000000

if "variable_id" in kwargs:
variable_id = kwargs["variable_id"]
elif "variable" in kwargs:
if "variable" in kwargs:
variable_id = kwargs["variable"].pk
elif "variable_id" in kwargs:
variable_id = kwargs["variable_id"]
try:
kwargs["variable"] = Variable.objects.get(id=variable_id)
except Variable.DoesNotExist:
raise ValidationError(f"Variable with id {variable_id} not found. Cannot save data.")
else:
variable_id = None

if variable_id is not None and "id" not in kwargs:
kwargs["id"] = int(int(int(timestamp * 1000) * 2097152) + variable_id)
try:
kwargs["id"] = int(int(int(float(timestamp) * 1000) * 2097152) + variable_id)
except (TypeError , ValueError)as e:
raise ValidationError(f"Cannot save data for variable {kwargs['variable']}, timestamp error : {e}")
if "variable" in kwargs and "value" in kwargs:
if kwargs["variable"].value_class.upper() in [
"FLOAT",
Expand Down Expand Up @@ -2720,8 +2727,10 @@ def __init__(self, *args, **kwargs):
super(RecordedData, self).__init__(*args, **kwargs)
if self.variable is not None:
self.timestamp = self.time_value()
else:
elif self.date_saved is not None:
self.timestamp = self.date_saved.timestamp()
else:
self.timestamp = time.time()

def calculate_pk(self, timestamp=None):
"""
Expand Down

0 comments on commit dafc0f4

Please sign in to comment.