home · contact · privacy
Refactor VersionedAttributes, ProcessSteps, and Conditions retrieval.
[plomtask] / plomtask / conditions.py
index 98a0b99e667adfe11f9f4f0ef3439df03a6cc67f..b87e3ac3e16f1500da87962d2adfb333093f0f54 100644 (file)
@@ -25,14 +25,10 @@ class Condition(BaseModel):
         """Build condition from row, including VersionedAttributes."""
         condition = super().from_table_row(db_conn, row)
         assert isinstance(condition, Condition)
-        for title_row in db_conn.exec('SELECT * FROM condition_titles '
-                                      'WHERE parent = ?', (row[0],)):
-            condition.title.history[title_row[1]]\
-                    = title_row[2]  # pylint: disable=no-member
-        for desc_row in db_conn.exec('SELECT * FROM condition_descriptions '
-                                     'WHERE parent = ?', (row[0],)):
-            condition.description.history[desc_row[1]]\
-                    = desc_row[2]  # pylint: disable=no-member
+        for name in ('title', 'description'):
+            table_name = f'condition_{name}s'
+            for row_ in db_conn.all_where(table_name, 'parent', row[0]):
+                getattr(condition, name).history_from_row(row_)
         return condition
 
     @classmethod