From 1387e0044c25827b07157584c6d6a1605dda09f4 Mon Sep 17 00:00:00 2001 From: Val Huber Date: Sun, 16 Apr 2023 08:34:37 -0700 Subject: [PATCH] 01.08.04 - is_inserted etc (issue 11) --- .idea/LogicBank.iml | 2 +- .idea/misc.xml | 2 +- examples/nw/db/database-gold-plus.db | 0 logic_bank/exec_row_logic/logic_row.py | 14 ++++++++++++++ logic_bank/logic_bank.py | 3 +++ logic_bank/rule_bank/rule_bank_setup.py | 2 +- 6 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 examples/nw/db/database-gold-plus.db diff --git a/.idea/LogicBank.iml b/.idea/LogicBank.iml index 0d42a22..943183f 100644 --- a/.idea/LogicBank.iml +++ b/.idea/LogicBank.iml @@ -4,7 +4,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index d713e17..9eb4caf 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/examples/nw/db/database-gold-plus.db b/examples/nw/db/database-gold-plus.db new file mode 100644 index 0000000..e69de29 diff --git a/logic_bank/exec_row_logic/logic_row.py b/logic_bank/exec_row_logic/logic_row.py index c2b5cbe..b9b32c4 100644 --- a/logic_bank/exec_row_logic/logic_row.py +++ b/logic_bank/exec_row_logic/logic_row.py @@ -30,6 +30,7 @@ class LogicRow: Passed to user logic, mainly to make updates - with logic, for example row = sqlalchemy read + logic_row.update(row=row, msg="my log message") Additional instance variables: ins_upd_dlt, nest_level, session, etc. @@ -52,6 +53,7 @@ def __init__(self, row: base, old_row: base, ins_upd_dlt: str, nest_level: int, self.old_row = old_row """ old mapped row """ self.ins_upd_dlt = ins_upd_dlt + """ values are 'ins', 'upd' or 'dlt' """ self.ins_upd_dlt_initial = ins_upd_dlt # order inserted, then adjusted self.nest_level = nest_level self.reason = "?" # set by insert, update and delete @@ -261,6 +263,18 @@ def _copy_rules(self): each_copy_rule.execute(logic_row, parent_logic_row) self.log(f'copy_rules for role: {role_name} - {attributes_copied}') + def is_inserted(self) -> bool: + """ return True if self.ins_upd_dlt == "ins" else False """ + return True if self.ins_upd_dlt == "ins" else False + + def is_updated(self) -> bool: + """ return True if self.ins_upd_dlt == "upd" else False """ + return True if self.ins_upd_dlt == "upd" else False + + def is_deleted(self) -> bool: + """ return True if self.ins_upd_dlt == "dlt" else False """ + return True if self.ins_upd_dlt == "dlt" else False + def _get_parent_role_def(self, parent_role_name: str): """ returns sqlalchemy role_def """ my_mapper = object_mapper(self.row) diff --git a/logic_bank/logic_bank.py b/logic_bank/logic_bank.py index f77e459..224f360 100644 --- a/logic_bank/logic_bank.py +++ b/logic_bank/logic_bank.py @@ -30,6 +30,9 @@ class LogicBank: session.commit() # LogicBank listeners execute rules relevant for submitted changes .. _Rule Summary: + + https://apilogicserver.github.io/Docs/Logic/ + https://github.com/valhuber/LogicBank/wiki/Rule-Summary """ diff --git a/logic_bank/rule_bank/rule_bank_setup.py b/logic_bank/rule_bank/rule_bank_setup.py index 0b1db28..a0210f7 100644 --- a/logic_bank/rule_bank/rule_bank_setup.py +++ b/logic_bank/rule_bank/rule_bank_setup.py @@ -9,7 +9,7 @@ from sqlalchemy.orm import session import logging -__version__ = "01.08.03" +__version__ = "01.08.04" def setup(a_session: session):