Soucis de réservation, erreur détectée

Coucou !

Une de nos résidente a eu cette erreur en essayant de réserver ses salles (je le copie comme elle me l’a copié) :

Exception serveur non interceptée

La génération de cette page a déclenché une erreur

Code d’erreur : 500

Si vous ne savez pas ce qui vient de se passer et souhaitez ouvir un ticket de support please
copy the error below and share it.

Traceback (most recent call last):

File « apps/frappe/frappe/website/serve.py », line 20, in get_response

response = renderer_instance.render()

^^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/website/page_renderers/document_page.py », line 41, in render

html = self.get_html()

^^^^^^^^^^^^^^^

File « apps/frappe/frappe/website/utils.py », line 569, in cache_html_decorator

html = func(*args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/website/page_renderers/document_page.py », line 52, in get_html

return frappe.get_template(self.template_path).render(self.context)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File « env/lib/python3.11/site-packages/jinja2/environment.py », line 1295, in render

self.environment.handle_exception()

File « env/lib/python3.11/site-packages/jinja2/environment.py », line 942, in handle_exception

raise rewrite_traceback_stack(source=source)

File « apps/webshop/webshop/templates/generators/item/item.html », line 2, in top-level template code

{% from « erpnext/templates/includes/macros.html » import recommended_item_row %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/templates/web.html », line 1, in top-level template code

{% extends base_template_path %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/templates/base.html », line 75, in top-level template code

{% block content %}

File « apps/frappe/frappe/templates/web.html », line 111, in block ‹ content ›

{{ main_content() }}

File « env/lib/python3.11/site-packages/jinja2/sandbox.py », line 401, in call

return __context.call(__obj, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File « env/lib/python3.11/site-packages/jinja2/runtime.py », line 784, in _invoke

rv = self._func(*arguments)

^^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/templates/web.html », line 15, in template

{% block page_container %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/frappe/frappe/templates/web.html », line 30, in block ‹ page_container ›

{%- block page_content -%}{%- endblock -%}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/webshop/webshop/templates/generators/item/item.html », line 29, in block ‹ page_content ›

{% include « templates/generators/item/item_booking.html » %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/templates/generators/item/item_booking.html », line 4, in top-level template code

{% include « bookings/templates/generators/item/booking_resource_card.html » %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/templates/generators/item/booking_resource_card.html », line 30, in top-level template code

{% include « bookings/templates/generators/item/booking_resource_prices.html » %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/templates/generators/item/booking_resource_prices.html », line 86, in top-level template code

{% for price in booking_resource_doc.get_website_prices() %}

^^^^^^^^^^^^^^^^^^^^^^^^^

File « env/lib/python3.11/site-packages/jinja2/sandbox.py », line 401, in call

return __context.call(__obj, *args, **kwargs)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/bookings/doctype/booking_resource/booking_resource.py », line 275, in get_website_prices

return list(get_website_prices(self))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/bookings/utils/web_prices.py », line 60, in get_website_prices

price_list_rate = get_resource_price(booking_resource, cart_settings, price.uom)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File « apps/bookings/bookings/bookings/utils/web_prices.py », line 153, in get_resource_price

customer_group = customer.customer_group if customer else cart_settings.default_customer_group

^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: ‹ Lead › object has no attribute ‹ customer_group ›

Merci à vous !

1 « J'aime »

Bonjour Jérôme,

Nous allons regarder.

Peux-tu ouvrir un ticket sur Gitlab s’il te plait ?

Quand il s’agit d’un bug évident - ici il y a un message d’erreur, ce qui n’est pas normal - l’ouverture d’un ticket Gitlab nous permet de prioriser et suivre l’avancée des correctifs.
Sur le forum, l’information est vite perdue.

Merci pour ta compréhension.

Bonne journée,

Charles-Henri

2 « J'aime »

Salut Charles-Henri,

Aucun problème, merci pour l’info :slight_smile:

Je m’en vais déposer le bug sur Git dès maintenant.
À bientôt,

1 « J'aime »

Bonjour,

J’ai un souci similaire avec une erreur 500 aussi mais mon bug est à une autre ligne (il me semble :upside_down_face: ).
J’ai trouvé le ticket et le merge lié mais je ne sais pas si un fix est proposé de votre côté, ou du notre.

J’ai un événement avec inscription payante.
Avec un compte utilisateur, je peux m’inscrire et mettre au panier.
Au moment du paiement ça plante et j’ai l’erreur 500 sauf que moi c’est la ligne nom et pas adresse qui plante.

Voici mes erreurs, pouvez-vous m’aider svp ?

Pour info, in n’y a pas de formulaire d’inscription à l’événement personnalisé (plus possible avec le nouveau portail de toute façon il me semble), mais il y a un formulaire d’inscription au lieu qui est personnalisé.

<Masqué>
400 {"errors":[{"code":"ArgumentInvalid","message":"Le champ nom est invalide"}]}

Bonjour @Flogs ,

Je me suis permis d’enlever le message d’erreur du forum, car il contient des informations sensibles.

L’erreur est différente de celle de Jérôme et générée par HelloAsso.
Apparemment le champ Nom est invalide.

Pouvez-vous réessayer en utilisant un autre nom que Test.
HelloAsso est assez regardant sur les données envoyées dans l’API Checkout.
Voici toutes les règles:

Côté Dokos, c’est vrai qu’on a pas pris le temps d’implémenter toutes les vérifications associées… c’est une erreur :frowning:

Bonne fin de journée,

Charles-Henri

1 « J'aime »

Je rebondis également sur la question des formulaires personnalisés lors des inscriptions aux événements.

Je masque ma première réponse car on me dit dans l’oreillette qu’on a déjà une fonctionnalité permettant de créer un formulaire personnalisé sur un événement en sélectionnant un formulaire web. qu’est-ce qu’il vous manque pour pouvoir vous passer du formulaire d’inscription au lieu ? De notre côté, on souhaiterait, à terme, supprimer cette fonctionnalité qui est très bancale.Merci pour vos retours !

Ce n’est effectivement pas encore possible avec le nouveau portail, cependant @corentin a publié une fonctionnalité équivalente pour les réservations de ressources le week-end dernier (déploiement en cours sur les site de Dokos Cloud)

feat: Show custom form when booking (!338) · Requêtes de fusion · Dokos / Dokos Bookings · GitLab

image

image971×702 48.8 KB

L’idée est de permettre l’ajout de champs personnalisés dans les réservations de ressources, et que ces champs puissent être sélectionnés dans chaque ressource pour proposer un formulaire avant l’ajout au panier.

Est-ce qu’une fonctionnalité similaire dans les événements vous permettraient de vous passer du formulaire d’inscription au lieu ?

Bonne fin de journée,

Charles-Henri

1 « J'aime »

Effectivement il est bien possible de définir un formulaire d’inscription personnalisé pour les inscriptions aux événements, même si l’ergonomie de cette personnalisation est complexe.

Voilà le résultat :

1 « J'aime »

Bonjour,

Merci pour vos retours.

J’ai créé un nouveau compte pour tester avec un faux-vrai nom et ça fonctionne.
J’avais essayé de changer le nom du compte test initial mais malgré le changement ça ne passait pas quand même.
Avec un nouveau compte c’est ok.


Pour la personnalisation de formulaire :

J’avais mis en place un formulaire personnalisé mais j’avais une erreur ensuite sur l’événement. Du coup, j’ai finalement laissé la case “formulaire d’inscription” vide dans les paramètres de l’événement pour avoir l’inscription par défaut et là ça fonctionnait.

J’ai un post en brouillon ici à ce propos, je pourrai le partager à l’occasion. Mais vu que pour l’instant ça marche, je touche plus :-p

Merci,
Florent

1 « J'aime »

Hey, hello !
Désolé de revenir sur ce post, peut-être devrais-je passer sur Github.
Je vois que le billet a été fermé et donc, je suppose que le problème a été résolu.
On m’a soufflé à l’oreille que ce n’était pas le cas et que l’erreur était toujours là.

Pouvez-vous me dire si le bug a été corrigé (ou est en cours) ? Comme ça, je pourrais expliquer la situation au mieux :slight_smile:

Merci !

Bonjour Jérôme, je te confirme que le problème de l’impossibilité de réserver quand l’utilisateur est une Piste (lead) au lieu d’être un client est normalement résolu, du moins ce problème spécifique là.

1 « J'aime »