diff --git a/loanpy/integrationtests/basic_test.py b/loanpy/integrationtests/basic_test.py index 448f0ef02d1952071de3d82fd99e8693002a1030..36ddcfe607988018cbc6529bb20bbadb3a426708 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 f810c495c98bad87497831cf7228779f1bbb355e..37b9ef8ac600f6fbd398ba07cfbb3ee66b184d61 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 12faabdda99fabe9fce0a2a88a0cd66b8584b3c6..a7c5e62afd17fe1a00b2ed7c8cea94959b60c0e4 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 9e5b9825e6de5cdf3f92a7740e18bd9e6e0646b8..3ef14d58ba0dfc340c6bf2883362da3fa3feea59 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 7b49b0fa1978a4a801689b4c2eb242b3513586cd..c086fc8ff3c3b7b285a3eafbbfdd686f16ad6a8c 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 a2acab7bcb46a71c5a5419c66b1b604ad90e9047..b82e600111b95a8b83b921e1f54d4d0d40f23ae9 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 f1753dde016d3659a9a06e5746a1fcfd060f212b..2360515c70c3277ee2a321f34bba138e8058a7ef 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"