diff --git a/survey_event_registration_generation/__manifest__.py b/survey_event_registration_generation/__manifest__.py
index 217ec42..b39fc28 100644
--- a/survey_event_registration_generation/__manifest__.py
+++ b/survey_event_registration_generation/__manifest__.py
@@ -14,6 +14,7 @@
'views/survey_question_views.xml',
'views/survey_survey_views.xml',
'views/survey_templates.xml',
+ 'views/event_stage_views.xml',
'security/ir.model.access.csv',
],
'assets': {
diff --git a/survey_event_registration_generation/controllers/main.py b/survey_event_registration_generation/controllers/main.py
index 21e6197..ab45bd6 100644
--- a/survey_event_registration_generation/controllers/main.py
+++ b/survey_event_registration_generation/controllers/main.py
@@ -9,25 +9,22 @@ class Survey(main.Survey):
@http.route(['/survey_event/get_events_from_product'], type='json', auth="public", methods=['POST'])
def get_events_from_product(self, product_id, **kw):
- tickets = request.env['event.event.ticket'].sudo().search([('product_id','=',product_id)])
- events = set([ticket.event_id for ticket in tickets])
+ if not product_id:
+ return []
+ events = request.env['event.event'].sudo().get_events_visible_in_survey(product_id)
return [{'id':event.id,'name':event.name} for event in events]
def _prepare_survey_data(self, survey_sudo, answer_sudo, **post):
result = super(Survey, self)._prepare_survey_data(survey_sudo, answer_sudo, **post)
- result['event_products'] = request.env['product.product'].sudo().search([('detailed_type','=','event')])
+ result['event_products'] = request.env['product.product'].sudo().get_event_products_visible_in_survey()
next_event_question = self._get_next_event_question(answer_sudo)
if next_event_question:
- event_product = None
+ event_product_id = None
if next_event_question.event_product_question_id:
- event_product = self._get_answer_event_product(next_event_question.event_product_question_id, answer_sudo)
- if event_product:
- event_tickets = request.env['event.event.ticket'].sudo().search([('product_id','=',event_product.id)])
- result['events'] = event_tickets.event_id
- else:
- result['events'] = request.env['event.event'].sudo().search([])
+ event_product_id = self._get_answer_event_product(next_event_question.event_product_question_id, answer_sudo).id
+ result['events'] = request.env['event.event'].sudo().get_events_visible_in_survey(event_product_id)
return result
diff --git a/survey_event_registration_generation/i18n/fr.po b/survey_event_registration_generation/i18n/fr.po
index fb8c9b0..250ed3a 100644
--- a/survey_event_registration_generation/i18n/fr.po
+++ b/survey_event_registration_generation/i18n/fr.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-09-20 07:01+0000\n"
-"PO-Revision-Date: 2023-09-20 07:01+0000\n"
+"POT-Creation-Date: 2023-10-03 10:07+0000\n"
+"PO-Revision-Date: 2023-10-03 10:07+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -15,12 +15,19 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: survey_event_registration_generation
+#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.question_event
+#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.question_event_product
+msgid ""
+msgstr ""
+
#. module: survey_event_registration_generation
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__answer_type
msgid "Answer Type"
msgstr "Type de réponse"
#. module: survey_event_registration_generation
+#: model:ir.model,name:survey_event_registration_generation.model_event_event
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__value_event
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_question__question_type__event
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_user_input_line__answer_type__event
@@ -32,6 +39,11 @@ msgstr "Événement"
msgid "Event Registration Allowed Field"
msgstr "Champs autorisés des inscrptions aux événements"
+#. module: survey_event_registration_generation
+#: model:ir.model,name:survey_event_registration_generation.model_event_stage
+msgid "Event Stage"
+msgstr "Étape de session de formation"
+
#. module: survey_event_registration_generation
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__value_event_product
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_question__question_type__event_product
@@ -85,6 +97,18 @@ msgstr ""
"Si vous indiquez la question du produit d'événement, seuls les événements "
"correspondants seront proposés"
+#. module: survey_event_registration_generation
+#. odoo-javascript
+#: code:addons/survey_event_registration_generation/static/src/js/survey_form.js:0
+#, python-format
+msgid "Please select..."
+msgstr ""
+
+#. module: survey_event_registration_generation
+#: model:ir.model,name:survey_event_registration_generation.model_product_product
+msgid "Product Variant"
+msgstr "Variante de produit"
+
#. module: survey_event_registration_generation
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__question_type
msgid "Question Type"
@@ -122,3 +146,8 @@ msgstr "Entrée utilisateur du questionnaire"
#: model:ir.model,name:survey_event_registration_generation.model_survey_user_input_line
msgid "Survey User Input Line"
msgstr "Ligne d'entrée pour l'utilisateur du questionnaire"
+
+#. module: survey_event_registration_generation
+#: model:ir.model.fields,field_description:survey_event_registration_generation.field_event_stage__visible_in_survey
+msgid "Visible in surveys"
+msgstr "Visible dans les sondages"
diff --git a/survey_event_registration_generation/models/__init__.py b/survey_event_registration_generation/models/__init__.py
index 12bd654..a27213e 100644
--- a/survey_event_registration_generation/models/__init__.py
+++ b/survey_event_registration_generation/models/__init__.py
@@ -1,4 +1,7 @@
from . import survey_question
from . import survey_user_input
from . import survey_user_input_line
-from . import survey_survey
\ No newline at end of file
+from . import survey_survey
+from . import event_stage
+from . import event_event
+from . import product_product
\ No newline at end of file
diff --git a/survey_event_registration_generation/models/event_event.py b/survey_event_registration_generation/models/event_event.py
new file mode 100644
index 0000000..a17c27d
--- /dev/null
+++ b/survey_event_registration_generation/models/event_event.py
@@ -0,0 +1,12 @@
+from odoo import models, fields, api
+
+
+class EventEvent(models.Model):
+ _inherit = 'event.event'
+
+ def get_events_visible_in_survey(self, product_id=False):
+ if product_id:
+ event_tickets = self.env['event.event.ticket'].search([('product_id','=',product_id)])
+ return self.env['event.event'].search([('stage_id.visible_in_survey','=',True),('event_ticket_ids','in',event_tickets.id)])
+ return self.env['event.event'].search([('stage_id.visible_in_survey','=',True)])
+
\ No newline at end of file
diff --git a/survey_event_registration_generation/models/event_stage.py b/survey_event_registration_generation/models/event_stage.py
new file mode 100644
index 0000000..b5dae9a
--- /dev/null
+++ b/survey_event_registration_generation/models/event_stage.py
@@ -0,0 +1,7 @@
+from odoo import models, fields, api
+
+
+class EventStage(models.Model):
+ _inherit = 'event.stage'
+
+ visible_in_survey = fields.Boolean('Visible in surveys')
\ No newline at end of file
diff --git a/survey_event_registration_generation/models/product_product.py b/survey_event_registration_generation/models/product_product.py
new file mode 100644
index 0000000..0d6510d
--- /dev/null
+++ b/survey_event_registration_generation/models/product_product.py
@@ -0,0 +1,13 @@
+from odoo import models, fields, api
+
+
+class ProductProduct(models.Model):
+ _inherit = 'product.product'
+
+ def get_event_products_visible_in_survey(self):
+ events = self.env['event.event'].get_events_visible_in_survey()
+ products = set()
+ for event in events:
+ for ticket in event.event_ticket_ids:
+ products.add(ticket.product_id)
+ return list(products)
\ No newline at end of file
diff --git a/survey_event_registration_generation/views/event_stage_views.xml b/survey_event_registration_generation/views/event_stage_views.xml
new file mode 100644
index 0000000..f416b57
--- /dev/null
+++ b/survey_event_registration_generation/views/event_stage_views.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ event.stage.view.form.survey.event.registration.generation
+ event.stage
+
+
+
+
+
+
+
+
+
+ event.stage.view.tree.survey.event.registration.generation
+ event.stage
+
+
+
+
+
+
+
+
+
+