diff --git a/erpnext/venue/doctype/event_registration/event_registration.py b/erpnext/venue/doctype/event_registration/event_registration.py index 0acb83bf7dff90b357e078b1beef1eb3cbcaa8e7..32518b04753ccfdbf2991295bd8ec3f045a87eb0 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 a94fb362e3f578bed6a479034097717d880ea9df..d78f2f9667fcddc21de4060857f7a91deea34df3 100644 --- a/erpnext/venue/doctype/item_booking/item_booking.py +++ b/erpnext/venue/doctype/item_booking/item_booking.py @@ -27,6 +27,7 @@ from frappe.utils import ( get_datetime, get_time, getdate, + is_desk, now, now_datetime, sbool, @@ -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): @@ -703,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( { @@ -732,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