From 4d5e7fa1a906fe7ce2f87ff53e9842a056ca18c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Wed, 12 Mar 2025 13:40:47 +0100 Subject: [PATCH] MAINT: remove name overrides box borrowed/returned --- loanpy/integrationtests/basic_test.py | 10 +++++----- loanpy/src/loan/box_loan.py | 4 ++-- loanpy/src/loan/conf.py | 7 ++----- loanpy/src/loan/confirm_loan.py | 2 +- loanpy/src/loan/default_config.ini | 2 ++ loanpy/src/loan/manual_return.py | 6 +++--- loanpy/unittests/test_manual_return.py | 10 +++++----- 7 files changed, 20 insertions(+), 21 deletions(-) diff --git a/loanpy/integrationtests/basic_test.py b/loanpy/integrationtests/basic_test.py index 448f0ef..36ddcfe 100644 --- a/loanpy/integrationtests/basic_test.py +++ b/loanpy/integrationtests/basic_test.py @@ -286,7 +286,7 @@ def test_request_loan_multiple_items(loan_form_data_multi): assert response.stderr is None, response.stderr assert response.code == 0 loan = get_entity_by_id(loanid) - assert loan.get_property(BOX_BORROWED).value == box_versionids + assert loan.get_property(BOX_BORROWED.name).value == box_versionids assert loan.get_property(f"{LENT.name}").value.startswith("20") box1 = get_entity_by_name(TESTBOXNUMBER) box2 = get_entity_by_name(TESTBOXNUMBER2) @@ -377,7 +377,7 @@ def test_direct_call(loan_form_data_multi): data[F_LOAN] = loan.id confirm_loan(data) loan = db.execute_query(f"FIND loan with {COMMENT.name}='{TESTLOANCOMMENT}'", unique=True) - assert loan.get_property(BOX_BORROWED).value == box_before_confirm_versionids + assert loan.get_property(BOX_BORROWED.name).value == box_before_confirm_versionids assert loan.get_property(f"{LENT.name}").value.startswith("20") box1 = get_entity_by_name(TESTBOXNUMBER) box2 = get_entity_by_name(TESTBOXNUMBER2) @@ -418,8 +418,8 @@ def test_direct_call(loan_form_data_multi): loan = db.execute_query(f"FIND loan with {COMMENT.name}='{TESTLOANCOMMENT}'", unique=True) assert loan.get_property(f"{RETURNED.name}").value.startswith("20") assert loan.get_property(f"{RETURNED.name}").value.startswith("20") - assert loan.get_property(BOX_BORROWED).value == box_before_confirm_versionids - assert loan.get_property(BOX_RETURNED).value == box_before_return_versionids + assert loan.get_property(BOX_BORROWED.name).value == box_before_confirm_versionids + assert loan.get_property(BOX_RETURNED.name).value == box_before_return_versionids def modded_config(config): @@ -448,7 +448,7 @@ def test_no_location_setting(loan_form_data_multi): data[F_LOAN] = loanid confirm_loan(data) loan = get_entity_by_id(loanid) - assert loan.get_property(BOX_BORROWED).value == box_versionids + assert loan.get_property(BOX_BORROWED.name).value == box_versionids assert loan.get_property(f"{LENT.name}").value.startswith("20") box1 = get_entity_by_name(TESTBOXNUMBER) box2 = get_entity_by_name(TESTBOXNUMBER2) diff --git a/loanpy/src/loan/box_loan.py b/loanpy/src/loan/box_loan.py index f810c49..37b9ef8 100644 --- a/loanpy/src/loan/box_loan.py +++ b/loanpy/src/loan/box_loan.py @@ -565,10 +565,10 @@ def get_borrowed_items_from(loan) -> db.Container: db.Container, borrowed items referenced by the given loan. Return value is a container with one element, even if only one item is referenced and the property value is not a list. """ - borrowed = loan.get_property(BOX_BORROWED) + borrowed = loan.get_property(BOX_BORROWED.name) if borrowed is None: raise RuntimeError( - f"Loan has no reference to a borrowed item. {BOX_BORROWED} property is missing." + f"Loan has no reference to a borrowed item. {BOX_BORROWED.name} property is missing." f"Loan ID: {loan.id}") elif not isinstance(borrowed.value, list): borrowed = [borrowed.value] diff --git a/loanpy/src/loan/conf.py b/loanpy/src/loan/conf.py index 12faabd..a7c5e62 100644 --- a/loanpy/src/loan/conf.py +++ b/loanpy/src/loan/conf.py @@ -36,8 +36,5 @@ RETURN_REQUESTED = db.Property(name=ps['RETURN_REQUESTED'], datatype=db.DATETIME RETURN_ACCEPTED = db.Property(name=ps['RETURN_ACCEPTED'], datatype=db.DATETIME) RETURNED = db.Property(name=ps['RETURNED'], datatype=db.DATETIME) BOX_NUMBER = db.Property(name=ps['BOX_NUMBER'], datatype=db.TEXT) - -# Other Strings -# TODO: Adapt datamodel and remove name override -BOX_RETURNED = "Box (returned)" -BOX_BORROWED = "Box (borrowed)" +BOX_RETURNED = db.Property(name=ps['BOX_RETURNED'], datatype=rts['BOX']) +BOX_BORROWED = db.Property(name=ps['BOX_BORROWED'], datatype=rts['BOX']) diff --git a/loanpy/src/loan/confirm_loan.py b/loanpy/src/loan/confirm_loan.py index 9e5b982..3ef14d5 100755 --- a/loanpy/src/loan/confirm_loan.py +++ b/loanpy/src/loan/confirm_loan.py @@ -33,7 +33,7 @@ from .box_loan import (BOX, BOX_BORROWED, DESTINATION, F_LOAN, LENT, S_LENT, S_L def _set_lent_box(loan): """ Store the exact versions of borrowed items when it was delivered to the borrower. """ references = set_references_to_current_version(loan.get_property(BOX).value) - loan.add_property(id=BOX.id, name=BOX_BORROWED, value=references, + loan.add_property(id=BOX.id, name=BOX_BORROWED.name, value=references, datatype=db.LIST(BOX.name) if isinstance(references, list) else BOX.name) loan.update() diff --git a/loanpy/src/loan/default_config.ini b/loanpy/src/loan/default_config.ini index 7b49b0f..c086fc8 100644 --- a/loanpy/src/loan/default_config.ini +++ b/loanpy/src/loan/default_config.ini @@ -23,3 +23,5 @@ RETURN_REQUESTED = returnRequested RETURN_ACCEPTED = returnAccepted RETURNED = returned BOX_NUMBER = Number +BOX_RETURNED = returned Box version +BOX_BORROWED = borrowed Box version diff --git a/loanpy/src/loan/manual_return.py b/loanpy/src/loan/manual_return.py index a2acab7..b82e600 100755 --- a/loanpy/src/loan/manual_return.py +++ b/loanpy/src/loan/manual_return.py @@ -36,8 +36,8 @@ def _set_returned_box(loan): This stores the version of the box that was returned by a borrower. """ - references = set_references_to_current_version(loan.get_property(BOX_BORROWED).value) - loan.add_property(id=BOX.id, name=BOX_RETURNED, value=references, + references = set_references_to_current_version(loan.get_property(BOX_BORROWED.name).value) + loan.add_property(id=BOX.id, name=BOX_RETURNED.name, value=references, datatype=db.LIST(BOX.name) if isinstance(references, list) else BOX.name) @@ -57,7 +57,7 @@ def set_content(loan): and "entity_loan.no_content_updates" in config["Misc"] and config["Misc"]["entity_loan.no_content_updates"]): return - items = loan.get_property(BOX_BORROWED).value + items = loan.get_property(BOX_BORROWED.name).value if not isinstance(items, list): items = [items] for item in items: diff --git a/loanpy/unittests/test_manual_return.py b/loanpy/unittests/test_manual_return.py index f1753dd..2360515 100644 --- a/loanpy/unittests/test_manual_return.py +++ b/loanpy/unittests/test_manual_return.py @@ -5,14 +5,14 @@ from loan.manual_return import _set_returned_box def test_set_returned_box(): loan = Record() - loan.add_property(BOX, name=BOX_BORROWED, value="1234@abcd") + loan.add_property(BOX, name=BOX_BORROWED.name, value="1234@abcd") assert len(loan.get_properties()) == 1 - assert loan.get_property(BOX_BORROWED).value == "1234@abcd" - assert loan.get_property(BOX_RETURNED) is None + assert loan.get_property(BOX_BORROWED.name).value == "1234@abcd" + assert loan.get_property(BOX_RETURNED.name) is None _set_returned_box(loan) assert len(loan.get_properties()) == 2 - assert loan.get_property(BOX_BORROWED).value == "1234@abcd" - assert loan.get_property(BOX_RETURNED).value == "1234@HEAD" + assert loan.get_property(BOX_BORROWED.name).value == "1234@abcd" + assert loan.get_property(BOX_RETURNED.name).value == "1234@HEAD" -- GitLab