[IMP] survey_event_generation: add event selection in surveys depending on event stage boolean
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
'views/survey_question_views.xml',
|
'views/survey_question_views.xml',
|
||||||
'views/survey_survey_views.xml',
|
'views/survey_survey_views.xml',
|
||||||
'views/survey_templates.xml',
|
'views/survey_templates.xml',
|
||||||
|
'views/event_stage_views.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
],
|
],
|
||||||
'assets': {
|
'assets': {
|
||||||
|
@@ -9,25 +9,22 @@ class Survey(main.Survey):
|
|||||||
|
|
||||||
@http.route(['/survey_event/get_events_from_product'], type='json', auth="public", methods=['POST'])
|
@http.route(['/survey_event/get_events_from_product'], type='json', auth="public", methods=['POST'])
|
||||||
def get_events_from_product(self, product_id, **kw):
|
def get_events_from_product(self, product_id, **kw):
|
||||||
tickets = request.env['event.event.ticket'].sudo().search([('product_id','=',product_id)])
|
if not product_id:
|
||||||
events = set([ticket.event_id for ticket in tickets])
|
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]
|
return [{'id':event.id,'name':event.name} for event in events]
|
||||||
|
|
||||||
|
|
||||||
def _prepare_survey_data(self, survey_sudo, answer_sudo, **post):
|
def _prepare_survey_data(self, survey_sudo, answer_sudo, **post):
|
||||||
result = super(Survey, self)._prepare_survey_data(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)
|
next_event_question = self._get_next_event_question(answer_sudo)
|
||||||
if next_event_question:
|
if next_event_question:
|
||||||
event_product = None
|
event_product_id = None
|
||||||
if next_event_question.event_product_question_id:
|
if next_event_question.event_product_question_id:
|
||||||
event_product = self._get_answer_event_product(next_event_question.event_product_question_id, answer_sudo)
|
event_product_id = self._get_answer_event_product(next_event_question.event_product_question_id, answer_sudo).id
|
||||||
if event_product:
|
result['events'] = request.env['event.event'].sudo().get_events_visible_in_survey(event_product_id)
|
||||||
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([])
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@@ -6,8 +6,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 16.0\n"
|
"Project-Id-Version: Odoo Server 16.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-09-20 07:01+0000\n"
|
"POT-Creation-Date: 2023-10-03 10:07+0000\n"
|
||||||
"PO-Revision-Date: 2023-09-20 07:01+0000\n"
|
"PO-Revision-Date: 2023-10-03 10:07+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -15,12 +15,19 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: \n"
|
"Content-Transfer-Encoding: \n"
|
||||||
"Plural-Forms: \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 "<option>Please select...</option>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__answer_type
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__answer_type
|
||||||
msgid "Answer Type"
|
msgid "Answer Type"
|
||||||
msgstr "Type de réponse"
|
msgstr "Type de réponse"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. 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,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_question__question_type__event
|
||||||
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_user_input_line__answer_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"
|
msgid "Event Registration Allowed Field"
|
||||||
msgstr "Champs autorisés des inscrptions aux événements"
|
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
|
#. 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,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
|
#: 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 "
|
"Si vous indiquez la question du produit d'événement, seuls les événements "
|
||||||
"correspondants seront proposés"
|
"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
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__question_type
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__question_type
|
||||||
msgid "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
|
#: model:ir.model,name:survey_event_registration_generation.model_survey_user_input_line
|
||||||
msgid "Survey User Input Line"
|
msgid "Survey User Input Line"
|
||||||
msgstr "Ligne d'entrée pour l'utilisateur du questionnaire"
|
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"
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
from . import survey_question
|
from . import survey_question
|
||||||
from . import survey_user_input
|
from . import survey_user_input
|
||||||
from . import survey_user_input_line
|
from . import survey_user_input_line
|
||||||
from . import survey_survey
|
from . import survey_survey
|
||||||
|
from . import event_stage
|
||||||
|
from . import event_event
|
||||||
|
from . import product_product
|
12
survey_event_registration_generation/models/event_event.py
Normal file
12
survey_event_registration_generation/models/event_event.py
Normal file
@@ -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)])
|
||||||
|
|
@@ -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')
|
@@ -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)
|
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
<record id="event_stage_view_form_survey_event_registration_generation" model="ir.ui.view">
|
||||||
|
<field name="name">event.stage.view.form.survey.event.registration.generation</field>
|
||||||
|
<field name="model">event.stage</field>
|
||||||
|
<field name="inherit_id" ref="event.event_stage_view_form" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="pipe_end" position="after">
|
||||||
|
<field name="visible_in_survey" />
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="event_stage_view_tree_survey_event_registration_generation" model="ir.ui.view">
|
||||||
|
<field name="name">event.stage.view.tree.survey.event.registration.generation</field>
|
||||||
|
<field name="model">event.stage</field>
|
||||||
|
<field name="inherit_id" ref="event.event_stage_view_tree" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="name" position="after">
|
||||||
|
<field name="visible_in_survey" />
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</odoo>
|
Reference in New Issue
Block a user