diff --git a/__manifest__.py b/__manifest__.py
index 2e8e924009b061ddad964278021d2b4364b199ed..9fbf30e262998cce9a5adb2ac7aace067a791d2f 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -8,6 +8,7 @@
     "depends": [
         "partner_event",
         "website_event_private",
+        "website_event_questions",
         "website_event_require_login",
     ],
     "data": [
@@ -15,6 +16,8 @@
         "data/mail_template_data.xml",
         # views
         "views/event_event.xml",
+        "views/event_question.xml",
+        "views/event_registration_template.xml",
         # views menu
         # wizard
     ],
diff --git a/i18n/fr.po b/i18n/fr.po
index ee5d20f4d9f8ea0d186e09a1a7d7e4833a761cf3..b583f89b7644e80feab1e6686e1f5de044bf986f 100644
--- a/i18n/fr.po
+++ b/i18n/fr.po
@@ -2288,3 +2288,8 @@ msgstr ""
 "{{ object.event_id.name }}: {{\n"
 "                object.get_date_range_str() }}\n"
 "            "
+
+#. module: website_event
+#: model_terms:ir.ui.view,arch_db:website_event.registration_attendee_details
+msgid "Name *"
+msgstr "Prénom et Nom *"
diff --git a/i18n_extra/fr.po b/i18n_extra/fr.po
new file mode 100644
index 0000000000000000000000000000000000000000..9aa9872da01aa50835c83018dd245e6877a5fb08
--- /dev/null
+++ b/i18n_extra/fr.po
@@ -0,0 +1,20 @@
+# Translation of Odoo Server.
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-07-24 12:20+0000\n"
+"PO-Revision-Date: 2024-07-24 14:44+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.0.1\n"
+
+#. module: website_event
+#: model_terms:ir.ui.view,arch_db:website_event.registration_attendee_details
+msgid "Name *"
+msgstr "Prénom et Nom *"
diff --git a/models/__init__.py b/models/__init__.py
index fea9a03a87ad814d2124b95cf2e4eec34122881d..065291202736e1298a015bbf2c73c33e7e3f5d99 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -1,3 +1,4 @@
 from . import event_event
+from . import event_question_answer
 from . import event_registration
 from . import event_type
diff --git a/models/event_question_answer.py b/models/event_question_answer.py
new file mode 100644
index 0000000000000000000000000000000000000000..d67dd664bbd88cefd15f0f7b75e3d3089fbf6c32
--- /dev/null
+++ b/models/event_question_answer.py
@@ -0,0 +1,42 @@
+#  Copyright (c) 2024- Le Filament (https://le-filament.com)
+#  License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models
+
+
+class EventQuestionAnswer(models.Model):
+    _inherit = "event.question.answer"
+
+    number_max = fields.Integer(
+        "Nombre maximum autorisé",
+        default=0,
+        help="Laisser 0 pour ne pas limiter le nombre de fois "
+        "où cette réponse pourra être sélectionnée",
+    )
+    registration_answer_ids = fields.One2many(
+        string="Réponses enregistrées",
+        comodel_name="event.registration.answer",
+        inverse_name="value_answer_id",
+    )
+    answer_number = fields.Integer(
+        "Nombre de réponses enregistrées",
+        default=0,
+        compute="_compute_answers",
+        readonly=True,
+    )
+    remaining_number = fields.Integer(
+        "Nombre de réponses restantes",
+        default=0,
+        compute="_compute_answers",
+        readonly=True,
+    )
+    fully_booked = fields.Boolean(
+        "Complet", default=False, compute="_compute_answers", readonly=True
+    )
+
+    @api.depends("number_max", "registration_answer_ids")
+    def _compute_answers(self):
+        for answer in self.filtered("number_max"):
+            answer.answer_number = len(answer.sudo().registration_answer_ids)
+            answer.remaining_number = answer.number_max - answer.answer_number
+            answer.fully_booked = answer.remaining_number < 1
diff --git a/views/event_event.xml b/views/event_event.xml
index 6ccfe88c27a71a54bfbbaa7c75535d1361db42e1..a00468d24abd2f3f4cabc98aa75bf085a4d072e0 100644
--- a/views/event_event.xml
+++ b/views/event_event.xml
@@ -67,4 +67,18 @@
             </xpath>
         </field>
     </record>
+    <record id="event_questions_answer_max" model="ir.ui.view">
+        <field name="name">solagro.event.question.answer.max.seats.form</field>
+        <field name="model">event.event</field>
+        <field name="inherit_id" ref="website_event_questions.event_event_view_form" />
+        <field name="priority">50</field>
+        <field name="arch" type="xml">
+            <xpath
+                expr="//page[@name='questions']//field[@name='question_ids']//form//field[@name='name']"
+                position="after"
+            >
+                <field name="number_max" string="Max" />
+            </xpath>
+        </field>
+    </record>
 </odoo>
diff --git a/views/event_question.xml b/views/event_question.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4691c98121037ecc633b3fa8cd762e696d8e8d3f
--- /dev/null
+++ b/views/event_question.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+  Copyright (c) 2024- Le Filament (https://le-filament.com)
+  License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+  -->
+<odoo>
+    <record id="event_question_view_form_inherit" model="ir.ui.view">
+        <field name="name">event.question.view.form</field>
+        <field name="model">event.question</field>
+        <field
+            name="inherit_id"
+            ref="website_event_questions.event_question_view_form"
+        />
+        <field name="priority" eval="8" />
+        <field name="arch" type="xml">
+            <xpath
+                expr="//page[@name='answers']//field[@name='answer_ids']/tree/field[@name='name']"
+                position="after"
+            >
+                <field name="number_max" />
+                <field name="answer_number" />
+                <field name="fully_booked" />
+            </xpath>
+        </field>
+    </record>
+</odoo>
diff --git a/views/event_registration_template.xml b/views/event_registration_template.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a8f329acf9b94ef9aa8dce2df4400412e2c3a4b
--- /dev/null
+++ b/views/event_registration_template.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<odoo>
+
+<template
+        id="registration_event_question_with_max"
+        inherit_id="website_event_questions.registration_event_question"
+        name="Registration Event Question with Maximum"
+    >
+    <xpath
+            expr="//t[@t-if=&quot;question.question_type == 'simple_choice'&quot;]//t[@t-as='answer']//option"
+            position="attributes"
+        >
+        <attribute
+                name="t-if"
+            >(answer.number_max and not answer.fully_booked) or answer.number_max == 0</attribute>
+        <attribute
+                name="t-out"
+            >answer.name + " (" + str(answer.remaining_number) + " restant(es))"</attribute>
+    </xpath>
+    <xpath
+            expr="//t[@t-if=&quot;question.question_type == 'simple_choice'&quot;]//t[@t-as='answer']//option"
+            position="after"
+        >
+        <option
+                t-else=""
+                t-out="answer.name + ' (Épuisé)'"
+                disabled="disabled"
+                value=""
+            />
+    </xpath>
+</template>
+
+</odoo>