From 3bb0b71560c1e3656256a3e7738fa73dc560a210 Mon Sep 17 00:00:00 2001 From: Corentin Forler <8860073-cforler_dokos@users.noreply.gitlab.com> Date: Fri, 23 Feb 2024 11:33:46 +0100 Subject: [PATCH 1/2] fix(booking): Fix ExceptionTooMany error message --- .../doctype/event_registration/event_registration.py | 11 +---------- erpnext/venue/doctype/item_booking/item_booking.py | 11 ++--------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/erpnext/venue/doctype/event_registration/event_registration.py b/erpnext/venue/doctype/event_registration/event_registration.py index 0acb83bf7df..32518b04753 100644 --- a/erpnext/venue/doctype/event_registration/event_registration.py +++ b/erpnext/venue/doctype/event_registration/event_registration.py @@ -6,6 +6,7 @@ from functools import cached_property import frappe from frappe import _ from frappe.model.document import Document +from frappe.utils import is_desk from erpnext.utilities import webshop_app_import_guard @@ -17,16 +18,6 @@ def _get_shopping_cart_settings(): return get_shopping_cart_settings() -def is_desk() -> bool: - try: - path = frappe.request.path - if path.startswith("/app/") or path.startswith("/api/"): - return True - except Exception: - pass - return False - - class DuplicateRegistration(frappe.ValidationError): """Raised when a duplicate registration is found for the same user (or email address if user is missing).""" diff --git a/erpnext/venue/doctype/item_booking/item_booking.py b/erpnext/venue/doctype/item_booking/item_booking.py index a94fb362e3f..0a869bf2cb1 100644 --- a/erpnext/venue/doctype/item_booking/item_booking.py +++ b/erpnext/venue/doctype/item_booking/item_booking.py @@ -31,6 +31,7 @@ from frappe.utils import ( now_datetime, sbool, time_diff_in_minutes, + is_desk, ) from frappe.utils.deprecations import deprecated from googleapiclient.errors import HttpError @@ -84,14 +85,6 @@ def util_split_list( return items_no, items_yes -def is_desk() -> bool: - try: - return bool(frappe.request.path.startswith("/app/") or frappe.request.path.startswith("/api/")) - except Exception: - pass - return False - - class BookingException(frappe.ValidationError): @classmethod def throw(cls, *args, **kwargs): @@ -145,7 +138,7 @@ class ExceptionBookingOverlap(BookingException): class ExceptionTooManyBookings(ExceptionBookingOverlap): @classmethod def throw_website(cls, doc: "ItemBooking", overlaps: list): - cls.throw_desk(doc, overlaps) + frappe.throw(_("This slot is no longer bookable."), exc=cls) @classmethod def throw_desk(cls, doc: "ItemBooking", overlaps: list): -- GitLab From 26384760c6560573e2ede4d48e2c1e7b0f60ca0f Mon Sep 17 00:00:00 2001 From: Corentin Forler <8860073-cforler_dokos@users.noreply.gitlab.com> Date: Fri, 23 Feb 2024 11:33:55 +0100 Subject: [PATCH 2/2] chore: fmt --- .../doctype/item_booking/item_booking.py | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/erpnext/venue/doctype/item_booking/item_booking.py b/erpnext/venue/doctype/item_booking/item_booking.py index 0a869bf2cb1..d78f2f9667f 100644 --- a/erpnext/venue/doctype/item_booking/item_booking.py +++ b/erpnext/venue/doctype/item_booking/item_booking.py @@ -27,11 +27,11 @@ from frappe.utils import ( get_datetime, get_time, getdate, + is_desk, now, now_datetime, sbool, time_diff_in_minutes, - is_desk, ) from frappe.utils.deprecations import deprecated from googleapiclient.errors import HttpError @@ -696,7 +696,9 @@ def get_item_uoms(item_code): @frappe.whitelist() @deprecated def book_new_slot(**kwargs): - frappe.log_error("book_new_slot is deprecated: use webshop.webshop.shopping_cart.booking.book_new_slot instead") + frappe.log_error( + "book_new_slot is deprecated: use webshop.webshop.shopping_cart.booking.book_new_slot instead" + ) try: doc = frappe.get_doc( { @@ -725,19 +727,21 @@ def book_new_slot(**kwargs): def book_new_slot_from_event(**kwargs): frappe.only_for("Desk User") doc = frappe.new_doc("Item Booking") - doc.update({ - "item": kwargs.get("item"), - "starts_on": kwargs.get("start"), - "ends_on": kwargs.get("end"), - "user": kwargs.get("user"), - "status": kwargs.get("status") or "In cart", - "event": kwargs.get("event"), - "all_day": kwargs.get("all_day") or 0, - "uom": kwargs.get("uom"), - "sync_with_google_calendar": kwargs.get("sync_with_google_calendar") - or frappe.db.get_single_value("Venue Settings", "sync_with_google_calendar"), - "deduct_booking_credits": sbool(kwargs.get("with_credits")), - }) + doc.update( + { + "item": kwargs.get("item"), + "starts_on": kwargs.get("start"), + "ends_on": kwargs.get("end"), + "user": kwargs.get("user"), + "status": kwargs.get("status") or "In cart", + "event": kwargs.get("event"), + "all_day": kwargs.get("all_day") or 0, + "uom": kwargs.get("uom"), + "sync_with_google_calendar": kwargs.get("sync_with_google_calendar") + or frappe.db.get_single_value("Venue Settings", "sync_with_google_calendar"), + "deduct_booking_credits": sbool(kwargs.get("with_credits")), + } + ) doc.insert(ignore_permissions=True) return doc -- GitLab