Skip to content

Commit

Permalink
notifications: fix pickup name for booking
Browse files Browse the repository at this point in the history
* Closes: #2262.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
  • Loading branch information
jma committed Aug 11, 2021
1 parent c588dd3 commit 21e46e8
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 4 deletions.
4 changes: 4 additions & 0 deletions rero_ils/modules/notifications/dispatcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,10 @@ def not_yet_implemented(*args):
request_loan['patron_pid'])
ctx_data['request_patron'] = \
request_patron.replace_refs().dumps()
pickup_location = Location.get_record_by_pid(
request_loan['pickup_location_pid'])
ctx_data['request_pickup_name'] = \
pickup_location['pickup_name']
documents_data['item'] = {
'barcode': item_data['barcode']
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Call number: {% if document.item.call_number %}{{ document.item.call_number }}{%
{%- if document.item.call_number and document.item.second_call_number %} / {{ document.item.second_call_number }}{%-endif %}
{%- endif %}
{% endif %}
Pick up location: {{ pickup_name }}
Pick up location: {{ request_pickup_name }}
Patron: {{ request_patron.first_name }} {{ request_patron.last_name }}
{%- if request_patron.patron.barcode %} - {% for barcode in request_patron.patron.barcode %}{{ ', ' if not loop.last else '' }}{{ barcode }}{% endfor %}
{%- endif %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Cote: {% if document.item.call_number %}{{ document.item.call_number }}{% endif
{%- if document.item.call_number and document.item.second_call_number %} / {{ document.item.second_call_number }}{%-endif %}
{%- endif %}
{% endif %}
Lieu de retrait: {{ pickup_name }}
Lieu de retrait: {{ request_pickup_name }}
Lecteur: {{ request_patron.first_name }} {{ request_patron.last_name }}
{%- if request_patron.patron.barcode %} - {% for barcode in request_patron.patron.barcode %}{{ ', ' if not loop.last else '' }}{{ barcode }}{% endfor %}
{%- endif %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Signatur: {% if document.item.call_number %}{{ document.item.call_number }}{% en
{%- if document.item.call_number and document.item.second_call_number %} / {{ document.item.second_call_number }}{%-endif %}
{%- endif %}
{% endif %}
Abholort: {{ pickup_name }}
Abholort: {{ request_pickup_name }}
Leser: {{ request_patron.first_name }} {{ request_patron.last_name }}
{%- if request_patron.patron.barcode %} - {% for barcode in request_patron.patron.barcode %}{{ ', ' if not loop.last else '' }}{{ barcode }}{% endfor %}
{%- endif %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Segnatura: {% if document.item.call_number %}{{ document.item.call_number }}{% e
{%- if document.item.call_number and document.item.second_call_number %} / {{ document.item.second_call_number }}{%-endif %}
{%- endif %}
{% endif %}
Punto di ritiro: {{ pickup_name }}
Punto di ritiro: {{ request_pickup_name }}
Lettore: {{ request_patron.first_name }} {{ request_patron.last_name }}
{%- if request_patron.patron.barcode %} - {% for barcode in request_patron.patron.barcode %}{{ ', ' if not loop.last else '' }}{{ barcode }}{% endfor %}
{%- endif %}
Expand Down
109 changes: 109 additions & 0 deletions tests/api/notifications/test_notifications_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
from utils import VerifyRecordPermissionPatch, flush_index, get_json, \
postdata, to_relative_url

from rero_ils.modules.items.models import ItemStatus
from rero_ils.modules.libraries.api import email_notification_type
from rero_ils.modules.loans.api import Loan, LoanAction, LoanState
from rero_ils.modules.notifications.api import Notification, \
Expand Down Expand Up @@ -784,6 +785,114 @@ def test_request_notifications(client, patron_martigny, patron_sion,
mailbox.clear()


def test_multiple_request_booking_notifications(
client,
patron_martigny, patron2_martigny, patron4_martigny,
librarian_martigny, librarian_sion, librarian_saxon,
loc_public_martigny, loc_public_sion, loc_public_saxon,
lib_martigny, lib_sion, lib_saxon,
item_lib_martigny, circulation_policies, mailbox
):
"""Test multiple requests booking notifications."""
# request 1
login_user_via_session(client, librarian_martigny.user)
res, data = postdata(
client,
'api_item.librarian_request',
dict(
item_pid=item_lib_martigny.pid,
pickup_location_pid=loc_public_martigny.pid,
patron_pid=patron_martigny.pid,
transaction_library_pid=lib_martigny.pid,
transaction_user_pid=librarian_martigny.pid
)
)
assert res.status_code == 200
# request 2
login_user_via_session(client, librarian_sion.user)
res, data = postdata(
client,
'api_item.librarian_request',
dict(
item_pid=item_lib_martigny.pid,
pickup_location_pid=loc_public_sion.pid,
patron_pid=patron2_martigny.pid,
transaction_library_pid=lib_sion.pid,
transaction_user_pid=librarian_sion.pid
)
)
assert res.status_code == 200
# request 3
login_user_via_session(client, librarian_saxon.user)
res, data = postdata(
client,
'api_item.librarian_request',
dict(
item_pid=item_lib_martigny.pid,
pickup_location_pid=loc_public_saxon.pid,
patron_pid=patron4_martigny.pid,
transaction_library_pid=lib_saxon.pid,
transaction_user_pid=librarian_saxon.pid
)
)
assert res.status_code == 200

# checkout for patron1
params = {
'patron_pid': patron_martigny.pid,
'transaction_location_pid': loc_public_martigny.pid,
'transaction_user_pid': librarian_martigny.pid
}
loan, actions = item_lib_martigny.checkout(**params)
assert actions.get(LoanAction.CHECKOUT)
assert f'Lieu de retrait: {loc_public_martigny.get("code")}'\
in mailbox[-1].body
params = {
'transaction_location_pid': loc_public_sion.pid,
'transaction_user_pid': librarian_sion.pid
}
# checkin at the request pickup of patron2
_, actions = item_lib_martigny.checkin(**params)
assert actions.get(LoanAction.CHECKIN)
assert f'Lieu de retrait: {loc_public_sion.get("code")}'\
in mailbox[-1].body

# checkout for patron2
params = {
'patron_pid': patron2_martigny.pid,
'transaction_location_pid': loc_public_sion.pid,
'transaction_user_pid': librarian_sion.pid
}
loan, actions = item_lib_martigny.checkout(**params)
assert actions.get(LoanAction.CHECKOUT)
params = {
'transaction_location_pid': loc_public_saxon.pid,
'transaction_user_pid': librarian_saxon.pid
}
# checkin at the request pickup of patron3
_, actions = item_lib_martigny.checkin(**params)
assert actions.get(LoanAction.CHECKIN)
assert f'Lieu de retrait: {loc_public_saxon.get("code")}'\
in mailbox[-1].body

# checkout for patron3
params = {
'patron_pid': patron4_martigny.pid,
'transaction_location_pid': loc_public_saxon.pid,
'transaction_user_pid': librarian_saxon.pid
}
loan, actions = item_lib_martigny.checkout(**params)
assert actions.get(LoanAction.CHECKOUT)
params = {
'transaction_location_pid': loc_public_martigny.pid,
'transaction_user_pid': librarian_martigny.pid
}
# checkin at the request pickup of patron3
_, actions = item_lib_martigny.checkin(**params)
assert actions.get(LoanAction.CHECKIN)
assert item_lib_martigny.status == ItemStatus.ON_SHELF


def test_booking_notifications(client, patron_martigny, patron_sion,
lib_martigny, lib_fully,
librarian_fully,
Expand Down

0 comments on commit 21e46e8

Please sign in to comment.