Erreur Réservation - 'SalesOrderItem' object has no attribute 'item_booking'

Rebonjour :slight_smile:

Suite à notre mise à jour V5 et notre migration de vps, la réservation/paiement ne fonctionne plus.

DĂ©jĂ , depuis le portail, ça affiche 0€ alors que le tarif est Ă  20€.
Ensuite je peux mettre au panier, ça indique bien 20€ ici, je peux aller jusqu’au moment de “passer commande”, et là j’ai une erreur qui bloque tout.
Quand je regarde mon log d’erreurs de paiements j’ai les 2 erreurs ci-dessous.

Au cas oĂč c’était l’envoi de la notification de rĂ©servation enregistrĂ©e qui plantait et bloquait tout, j’ai voulu la dĂ©sactiver mais je ne peux pas car ‘“Impossible de trouver Module: Venue”.

Voici les erreurs du log, svp avez-vous des idées ? Encore merci :slight_smile:

Titre : â€č SalesOrderItem â€ș object has no attribute â€č item_booking â€ș

Traceback with variables (most recent call last):
  File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
    if not safe_block_eval(alert.condition, None, context):
      doc = Sales Order (STREAM-ORD-2026-0026)
      alert = Notification (Réservation Enregistrée)
      event = 'Submit'
      TemplateError = jinja2.exceptions.TemplateError
      context = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      e = 'SalesOrderItem' object has no attribute 'item_booking'
      title = ''SalesOrderItem' object has no attribute 'item_booking''
  File "apps/frappe/frappe/utils/safe_block_eval.py", line 44, in safe_block_eval
    return frappe.safe_eval(code, _globals, _locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      _globals = None
      _locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      output_var = None
      kwargs = {}
  File "apps/frappe/frappe/utils/__init__.py", line 1181, in safe_eval
    return safe_eval(code, eval_globals, eval_locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      eval_globals = None
      eval_locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      safe_eval = <function safe_eval at 0x779a9ffb1220>
  File "apps/frappe/frappe/utils/safe_exec.py", line 156, in safe_eval
    return eval(_compile_code(code, filename="<safe_eval>", mode="eval"), eval_globals, eval_locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      eval_globals = {'__builtins__': {}, 'int': <class 'int'>, 'float': <class 'float'>, 'long': <class 'int'>, 'round': <built-in function round>, 'any': <built-in function any>, '_getattr_': <function _get_attr_for_eval at 0x779a9ffb3110>, '_getitem_': <function _getitem at 0x779a9ffb2fb0>, '_getiter_': <built-in function iter>, '_iter_unpack_sequence_': <function guarded_iter_unpack_sequence at 0x779a9ff6e770>, '_inplacevar_': <function protected_inplacevar at 0x779a9ffa2560>}
      eval_locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      unicodedata = <module 'unicodedata' (built-in)>
  File "<safe_eval>", line 1, in <module>
      doc = Sales Order (STREAM-ORD-2026-0026)
      nowdate = <function nowdate at 0x779aa5264eb0>
      frappe = frappe.utils.safe_exec.NamespaceDict{'flags': frappe.types.frappedict._dict{}, 'format': <function format_value at 0x779aa39aa4b0>, 'format_value': <function format_value at 0x779aa39aa4b0>, 'date_format': 'dd/mm/yyyy', 'time_format': 'HH:mm', 'number_format': # ###,##, 'format_date': <function global_date_format at 0x779aa5268bf0>, 'form_dict': frappe.types.frappedict._dict{'cmd': 'webshop.webshop.shopping_cart.cart.place_order'}, 'bold': <function bold at 0x779aa52745c0>, 'errprint': <function errprint at 0x779aa530f1c0>, 'qb': frappe.utils.local.MariaDB, 'get_meta': <function get_meta at 0x779aa3b0ac40>, 'get_doc': <function get_doc at 0x779aa3aa6980>, 'get_last_doc': <function get_las... make_patch_request at 0x779aa1386cf0>, 'make_delete_request': <function make_delete_request at 0x779aa1386e50>, 'enqueue': <function safe_enqueue at 0x779a9ffb26c0>, 'is_job_queued': <function is_job_queued at 0x779a9ffb2610>, 'redirect_to_message': <function redirect_to_message at 0x779aa46f8040>}
  File "<safe_eval>", line 1, in <genexpr>
      .0 = list_iterator()
      item = Sales Order Item (0cuu36pgcf)
  File "apps/frappe/frappe/utils/safe_exec.py", line 776, in _get_attr_for_eval
    return getattr(object, name) if default is ARGUMENT_NOT_SET else getattr(object, name, default)
      object = Sales Order Item (0cuu36pgcf)
      name = 'item_booking'
      default = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
            if key in v:
               ^^^^^^^^
        TypeError: argument of type 'object' is not a container or iterable
        
builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'

et une autre,
Titre : Error

Traceback with variables (most recent call last):
  File "apps/webshop/webshop/webshop/shopping_cart/cart.py", line 288, in place_order
    sales_order.submit()
      quotation_name = None
      quotation = Quotation (SAL-QTN-2026-00029)
      cart_settings = Webshop Settings (Webshop Settings)
      _make_sales_order = <function _make_sales_order at 0x779a9cf3b060>
      sales_order = Sales Order (STREAM-ORD-2026-0026)
      item = Sales Order Item (0cuu36pgcf)
      is_stock_item = 0
  File "apps/frappe/frappe/utils/typing_validations.py", line 48, in wrapper
    return func(*args, **kwargs)
      args = (Sales Order (STREAM-ORD-2026-0026))
      kwargs = {}
      app = 'frappe'
      apply_condition = <function _in_request_or_test at 0x779aa530f950>
      force_types = True
      func = <function Document.submit at 0x779aa3aaea30>
  File "apps/frappe/frappe/model/document.py", line 1692, in submit
    return self._submit()
      self = Sales Order (STREAM-ORD-2026-0026)
  File "apps/frappe/frappe/model/document.py", line 1673, in _submit
    return self.save()
      self = Sales Order (STREAM-ORD-2026-0026)
  File "apps/frappe/frappe/model/document.py", line 723, in save
    return self._save(*args, **kwargs)
      self = Sales Order (STREAM-ORD-2026-0026)
      args = ()
      kwargs = {}
  File "apps/frappe/frappe/model/document.py", line 793, in _save
    self.run_post_save_methods()
      self = Sales Order (STREAM-ORD-2026-0026)
      ignore_permissions = None
      ignore_version = None
  File "apps/frappe/frappe/model/document.py", line 1800, in run_post_save_methods
    self.run_method("on_submit")
      self = Sales Order (STREAM-ORD-2026-0026)
  File "apps/frappe/frappe/model/document.py", line 1608, in run_method
    self.run_notifications(method)
      self = Sales Order (STREAM-ORD-2026-0026)
      method = 'on_submit'
      args = ()
      kwargs = {}
      fn = <function Document.run_method.<locals>.fn at 0x779a9c8e8880>
      out = None
  File "apps/frappe/frappe/model/document.py", line 1666, in run_notifications
    _evaluate_alert(alert)
      self = Sales Order (STREAM-ORD-2026-0026)
      method = 'on_submit'
      _get_notifications = <function Document.run_notifications.<locals>._get_notifications at 0x779a9c8eb690>
      notifications = [frappe.types.frappedict._dict{'name': 'Réservation Enregistrée', 'event': 'Submit', 'method': None}, frappe.types.frappedict._dict{'name': 'Nouvelle Réservation de Ressource', 'event': 'Submit', 'method': None}]
      _evaluate_alert = <function Document.run_notifications.<locals>._evaluate_alert at 0x779a9c8e8d50>
      event_map = {'on_update': 'Save', 'after_insert': 'New', 'on_submit': 'Submit', 'on_cancel': 'Cancel', 'on_change': 'Value Change'}
      alert = {'name': 'Réservation Enregistrée', 'event': 'Submit', 'method': None}
      event = 'Submit'
      evaluate_alert = <function evaluate_alert at 0x779a9d543740>
  File "apps/frappe/frappe/model/document.py", line 1650, in _evaluate_alert
    evaluate_alert(self, alert.name, alert.event)
      alert = {'name': 'Réservation Enregistrée', 'event': 'Submit', 'method': None}
      evaluate_alert = <function evaluate_alert at 0x779a9d543740>
      self = Sales Order (STREAM-ORD-2026-0026)
  File "apps/frappe/frappe/email/doctype/notification/notification.py", line 873, in evaluate_alert
    frappe.throw(msg, title=_("Error in Notification"))
      doc = Sales Order (STREAM-ORD-2026-0026)
      alert = Notification (Réservation Enregistrée)
      event = 'Submit'
      TemplateError = jinja2.exceptions.TemplateError
      context = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      message = 'Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                  v = deepcopy(v)
                File "/usr/lib/python3.14/copy.py", line 131, in deepco......
                File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking''
      title = ''SalesOrderItem' object has no attribute 'item_booking''
      msg = '<details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                ...    File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>'
  File "apps/frappe/frappe/utils/messages.py", line 159, in throw
    msgprint(
      msg = '<details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                ...    File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>'
      exc = frappe.exceptions.ValidationError
      title = 'Erreur dans la notification'
      is_minimizable = False
      wide = False
      as_list = False
      primary_action = None
      allow_dangerous_html = False
  File "apps/frappe/frappe/utils/messages.py", line 118, in msgprint
    _raise_exception()
      msg = '<details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                ...    File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>'
      title = 'Erreur dans la notification'
      raise_exception = frappe.exceptions.ValidationError
      as_table = False
      as_list = False
      indicator = 'red'
      alert = False
      primary_action = None
      is_minimizable = False
      wide = False
      realtime = False
      allow_dangerous_html = False
      clean_html = <function clean_html at 0x779aa52752d0>
      _raise_exception = <function msgprint.<locals>._raise_exception at 0x779a9c8e85c0>
      inspect = <module 'inspect' from '/usr/lib/python3.14/inspect.py'>
      out = {'message': '\'SalesOrderItem\' object has no attribute \'item_booking\'Traceback with variables (most recent call last):\n  File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert\n    if not safe_block_eval(alert.condition, None, context):\n      doc = Sales Order (STREAM-ORD-2026-0026)\n      alert = Notification (Réservation Enregistrée)\n      event = \'Submit\'\n      TemplateError = jinja2.exceptions.TemplateError\n      context =  Traceback (most recent call last):\n          ...traceback_with_variables internal stacks...\n          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer\n            v = deepcopy(v)\n          ... container or iterable\n        \nbuiltins.AttributeError: \'SalesOrderItem\' object has no attribute \'item_booking\'', 'as_table': False, 'title': 'Erreur dans la notification', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '989c2315de08ffc463685487cc65db11fa176fba15dd90792a0576d6'}
  File "apps/frappe/frappe/utils/messages.py", line 59, in _raise_exception
    raise exc
      exc = <details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                 ...     File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>
      inspect = <module 'inspect' from '/usr/lib/python3.14/inspect.py'>
      msg = '<details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
        File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
          if not safe_block_eval(alert.condition, None, context):
            doc = Sales Order (STREAM-ORD-2026-0026)
            alert = Notification (Réservation Enregistrée)
            event = 'Submit'
            TemplateError = jinja2.exceptions.TemplateError
            context = <exception while printing> Traceback (most recent call last):
                ...traceback_with_variables internal stacks...
                File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
                ...    File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
                  if key in v:
                     ^^^^^^^^
              TypeError: argument of type 'object' is not a container or iterable
              
      builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>'
      out = {'message': '\'SalesOrderItem\' object has no attribute \'item_booking\'Traceback with variables (most recent call last):\n  File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert\n    if not safe_block_eval(alert.condition, None, context):\n      doc = Sales Order (STREAM-ORD-2026-0026)\n      alert = Notification (Réservation Enregistrée)\n      event = \'Submit\'\n      TemplateError = jinja2.exceptions.TemplateError\n      context =  Traceback (most recent call last):\n          ...traceback_with_variables internal stacks...\n          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer\n            v = deepcopy(v)\n          ... container or iterable\n        \nbuiltins.AttributeError: \'SalesOrderItem\' object has no attribute \'item_booking\'', 'as_table': False, 'title': 'Erreur dans la notification', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '989c2315de08ffc463685487cc65db11fa176fba15dd90792a0576d6'}
      raise_exception = frappe.exceptions.ValidationError
frappe.exceptions.ValidationError: <details><summary>'SalesOrderItem' object has no attribute 'item_booking'</summary>Traceback with variables (most recent call last):
  File "apps/frappe/frappe/email/doctype/notification/notification.py", line 833, in evaluate_alert
    if not safe_block_eval(alert.condition, None, context):
      doc = Sales Order (STREAM-ORD-2026-0026)
      alert = Notification (Réservation Enregistrée)
      event = 'Submit'
      TemplateError = jinja2.exceptions.TemplateError
      context = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      e = 'SalesOrderItem' object has no attribute 'item_booking'
      title = ''SalesOrderItem' object has no attribute 'item_booking''
  File "apps/frappe/frappe/utils/safe_block_eval.py", line 44, in safe_block_eval
    return frappe.safe_eval(code, _globals, _locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      _globals = None
      _locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      output_var = None
      kwargs = {}
  File "apps/frappe/frappe/utils/__init__.py", line 1181, in safe_eval
    return safe_eval(code, eval_globals, eval_locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      eval_globals = None
      eval_locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      safe_eval = <function safe_eval at 0x779a9ffb1220>
  File "apps/frappe/frappe/utils/safe_exec.py", line 156, in safe_eval
    return eval(_compile_code(code, filename="<safe_eval>", mode="eval"), eval_globals, eval_locals)
      code = 'doc.order_type == "Shopping Cart" and any(item.item_booking for item in doc.items)'
      eval_globals = {'__builtins__': {}, 'int': <class 'int'>, 'float': <class 'float'>, 'long': <class 'int'>, 'round': <built-in function round>, 'any': <built-in function any>, '_getattr_': <function _get_attr_for_eval at 0x779a9ffb3110>, '_getitem_': <function _getitem at 0x779a9ffb2fb0>, '_getiter_': <built-in function iter>, '_iter_unpack_sequence_': <function guarded_iter_unpack_sequence at 0x779a9ff6e770>, '_inplacevar_': <function protected_inplacevar at 0x779a9ffa2560>}
      eval_locals = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 372, in dict_printer
            v = deepcopy(v)
          File "/usr/lib/python3.14/copy.py", line 131, in deepcopy
            y = copier(x, memo)
          File "/usr/lib/python3.14/copy.py", line 202, in _deepcopy_dict
            y[deepcopy(key, memo)] = deepcopy(value, memo)
                                     ~~~~~~~~^^^^^^^^^^^^^
          File "/usr/lib/python3.14/copy.py", line 138, in deepcopy
            y = copier(memo)
          File "apps/frappe/frappe/utils/safe_exec.py", line 63, in default_function
            raise AttributeError(f"module has no attribute '{key}'")
        AttributeError: module has no attribute '__deepcopy__'
        
      unicodedata = <module 'unicodedata' (built-in)>
  File "<safe_eval>", line 1, in <module>
      doc = Sales Order (STREAM-ORD-2026-0026)
      nowdate = <function nowdate at 0x779aa5264eb0>
      frappe = frappe.utils.safe_exec.NamespaceDict{'flags': frappe.types.frappedict._dict{}, 'format': <function format_value at 0x779aa39aa4b0>, 'format_value': <function format_value at 0x779aa39aa4b0>, 'date_format': 'dd/mm/yyyy', 'time_format': 'HH:mm', 'number_format': # ###,##, 'format_date': <function global_date_format at 0x779aa5268bf0>, 'form_dict': frappe.types.frappedict._dict{'cmd': 'webshop.webshop.shopping_cart.cart.place_order'}, 'bold': <function bold at 0x779aa52745c0>, 'errprint': <function errprint at 0x779aa530f1c0>, 'qb': frappe.utils.local.MariaDB, 'get_meta': <function get_meta at 0x779aa3b0ac40>, 'get_doc': <function get_doc at 0x779aa3aa6980>, 'get_last_doc': <function get_las... make_patch_request at 0x779aa1386cf0>, 'make_delete_request': <function make_delete_request at 0x779aa1386e50>, 'enqueue': <function safe_enqueue at 0x779a9ffb26c0>, 'is_job_queued': <function is_job_queued at 0x779a9ffb2610>, 'redirect_to_message': <function redirect_to_message at 0x779aa46f8040>}
  File "<safe_eval>", line 1, in <genexpr>
      .0 = list_iterator()
      item = Sales Order Item (0cuu36pgcf)
  File "apps/frappe/frappe/utils/safe_exec.py", line 776, in _get_attr_for_eval
    return getattr(object, name) if default is ARGUMENT_NOT_SET else getattr(object, name, default)
      object = Sales Order Item (0cuu36pgcf)
      name = 'item_booking'
      default = <exception while printing> Traceback (most recent call last):
          ...traceback_with_variables internal stacks...
          File "apps/frappe/frappe/utils/__init__.py", line 374, in dict_printer
            if key in v:
               ^^^^^^^^
        TypeError: argument of type 'object' is not a container or iterable
        
builtins.AttributeError: 'SalesOrderItem' object has no attribute 'item_booking'</details>

Florent

Bonjour @Flogs

Quelles sont les versions installées ?

bench version -f table

Vous devriez avoir quelque chose comme :

App Version Branch
blog 0.0.1 version-16
bookings 2.12.0 v5
erpnext 5.13.4 v5
etransactions 2.1.4 v5
frappe 5.12.2 v5
hrms 3.11.0 v5
payments 3.6.0 v5
webshop 2.2.0 v5

Depuis l’interface, j’ai ça, donc effectivement, je n’ai pas les mĂȘmes que vous.

Okay, avez-vous fait bench update pour la mise Ă  jour ?

Bonjour,

Merci pour les réponses.

La personne qui s’occupe du cĂŽtĂ© server me dit qu’il a fait :
bench update --reset --restart-supervisor

Et du coup, on a les versions suivantes maintenant. Mais toujours les mĂȘmes erreurs que celles que je donnais en ouvrant le sujet.

Okay je pense qu’il y a une erreur dans le contenu de cette « Notification Â».

  • Allez dans la liste Notification
  • Cliquez sur « RĂ©servation EnregistrĂ©e Â» dans la liste pour ouvrir le document
  • Dans le bloc de texte Ă©ditable message/contenu, remplacez toutes les occurrences de item_booking par resource_booking.
  • Enregistrez le document.
  • VĂ©rifier que ça corrige l’erreur en cliquant sur le bouton « PrĂ©visualiser Â», puis en choisissant un Devis contenant/liĂ© Ă  une rĂ©servation de salle. Normalement, le contenu brut de la notification apparaĂźt sans qu’il ne soit indiquĂ© d’erreur.

Bonjour,

Je ne peux pas enregistrer les modifications sur la notification, j’ai l’erreur : “Impossible de trouver Module: Venue”. Idem quand j’essaie de la dĂ©sactiver. En revanche, je n’y avais pas pensĂ© avant, mais j’ai pu la supprimer.
Du coup c’est bon maintenant.

Il me reste un dernier souci (j’espĂšre :p) mais je vais ouvrir un nouveau sujet pour plus de clartĂ© si jamais d’autres en ont besoin.

Merci encore, Ă  plus tard,
Florent