[IMP] survey_event_registration_generation:
New type of question : multiple event products
This commit is contained in:
@@ -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-10-03 10:07+0000\n"
|
"POT-Creation-Date: 2023-10-24 08:53+0000\n"
|
||||||
"PO-Revision-Date: 2023-10-03 10:07+0000\n"
|
"PO-Revision-Date: 2023-10-24 08:53+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,7 +19,7 @@ msgstr ""
|
|||||||
#: 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
|
||||||
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.question_event_product
|
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.question_event_product
|
||||||
msgid "<option>Please select...</option>"
|
msgid "<option>Please select...</option>"
|
||||||
msgstr ""
|
msgstr "<option>Veuillez sélectionner...</option>"
|
||||||
|
|
||||||
#. 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
|
||||||
@@ -28,11 +28,12 @@ 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,name:survey_event_registration_generation.model_event_event
|
||||||
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input__event_id
|
||||||
#: 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
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Événement"
|
msgstr "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_question__event_registration_allowed_field_ids
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__event_registration_allowed_field_ids
|
||||||
@@ -45,11 +46,12 @@ msgid "Event Stage"
|
|||||||
msgstr "Étape de session de formation"
|
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__event_product_id
|
||||||
#: 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
|
||||||
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_user_input_line__answer_type__event_product
|
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_user_input_line__answer_type__event_product
|
||||||
msgid "Event product"
|
msgid "Event product"
|
||||||
msgstr "Produit d'événement"
|
msgstr "Produit de formation"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__event_product_question_id
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__event_product_question_id
|
||||||
@@ -60,23 +62,17 @@ msgstr "Question sur les produits d'événements"
|
|||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input__registration_id
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input__registration_id
|
||||||
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_question_form
|
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_question_form
|
||||||
msgid "Event registration"
|
msgid "Event registration"
|
||||||
msgstr "Inscription à un événement"
|
msgstr "Inscription à une 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_question__event_registration_field
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question__event_registration_field
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question_answer__event_registration_field
|
|
||||||
msgid "Event registration field"
|
msgid "Event registration field"
|
||||||
msgstr "Champ d'inscription à un événement"
|
msgstr "Champ d'inscription à une formation"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_question_answer__event_registration_field_resource_ref
|
|
||||||
msgid "Event registration field value"
|
|
||||||
msgstr "Valeur du champs d'inscription à un événement"
|
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_form
|
#: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_form
|
||||||
msgid "Events registrations"
|
msgid "Events registrations"
|
||||||
msgstr "Inscriptions aux événements"
|
msgstr "Inscriptions aux sessions de formation"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_survey__generate_registration
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_survey__generate_registration
|
||||||
@@ -85,7 +81,7 @@ msgstr "Générer une inscription"
|
|||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,help:survey_event_registration_generation.field_survey_survey__generate_registration
|
#: model:ir.model.fields,help:survey_event_registration_generation.field_survey_survey__generate_registration
|
||||||
msgid "Generate registration for selected event"
|
msgid "Generate event registration for selected event"
|
||||||
msgstr "Générer un inscription pour les événements selectionnés"
|
msgstr "Générer un inscription pour les événements selectionnés"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
@@ -94,15 +90,22 @@ msgid ""
|
|||||||
"If you specify question of event product, only events of selected product "
|
"If you specify question of event product, only events of selected product "
|
||||||
"will be proposed."
|
"will be proposed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous indiquez la question du produit d'événement, seuls les événements "
|
"Si vous indiquez la question du produit de formation, seuls les sessions de "
|
||||||
"correspondants seront proposés"
|
"formation correspondantes seront proposés"
|
||||||
|
|
||||||
|
#. module: survey_event_registration_generation
|
||||||
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_survey_user_input_line__value_multiple_event_products
|
||||||
|
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_question__question_type__multiple_event_products
|
||||||
|
#: model:ir.model.fields.selection,name:survey_event_registration_generation.selection__survey_user_input_line__answer_type__multiple_event_products
|
||||||
|
msgid "Multiple event products"
|
||||||
|
msgstr "Multiples produits de formation"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#. odoo-javascript
|
#. odoo-javascript
|
||||||
#: code:addons/survey_event_registration_generation/static/src/js/survey_form.js:0
|
#: code:addons/survey_event_registration_generation/static/src/js/survey_form.js:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please select..."
|
msgid "Please select..."
|
||||||
msgstr ""
|
msgstr "Veuillez sélectionner..."
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model,name:survey_event_registration_generation.model_product_product
|
#: model:ir.model,name:survey_event_registration_generation.model_product_product
|
||||||
@@ -119,19 +122,14 @@ msgstr "Type de question"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Select the question asking for event product, to filter proposed events."
|
"Select the question asking for event product, to filter proposed events."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Selectionnez la question portant sur le produit de l'événement, afin de "
|
"Selectionnez la question portant sur le produit de formation, afin de filter"
|
||||||
"filter les événements selectionnés"
|
" les sessions de formation selectionnées"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model,name:survey_event_registration_generation.model_survey_survey
|
#: model:ir.model,name:survey_event_registration_generation.model_survey_survey
|
||||||
msgid "Survey"
|
msgid "Survey"
|
||||||
msgstr "Questionnaire"
|
msgstr "Questionnaire"
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
|
||||||
#: model:ir.model,name:survey_event_registration_generation.model_survey_question_answer
|
|
||||||
msgid "Survey Label"
|
|
||||||
msgstr "Étiquette du questionnaire"
|
|
||||||
|
|
||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model,name:survey_event_registration_generation.model_survey_question
|
#: model:ir.model,name:survey_event_registration_generation.model_survey_question
|
||||||
msgid "Survey Question"
|
msgid "Survey Question"
|
||||||
@@ -150,4 +148,4 @@ msgstr "Ligne d'entrée pour l'utilisateur du questionnaire"
|
|||||||
#. module: survey_event_registration_generation
|
#. module: survey_event_registration_generation
|
||||||
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_event_stage__visible_in_survey
|
#: model:ir.model.fields,field_description:survey_event_registration_generation.field_event_stage__visible_in_survey
|
||||||
msgid "Visible in surveys"
|
msgid "Visible in surveys"
|
||||||
msgstr "Visible dans les sondages"
|
msgstr "Visible dans les questionnaires"
|
||||||
|
@@ -5,7 +5,7 @@ class SurveyQuestion(models.Model):
|
|||||||
_inherit = 'survey.question'
|
_inherit = 'survey.question'
|
||||||
|
|
||||||
question_type = fields.Selection(
|
question_type = fields.Selection(
|
||||||
selection_add=[('event_product', 'Event product'),('event', 'Event')]) #event_product : List product used in tickets of visible events
|
selection_add=[('event_product', 'Event product'),('event', 'Event'),('multiple_event_products', 'Multiple event products')]) #event_product : List product used in tickets of visible events
|
||||||
#event : List events visible in surveys
|
#event : List events visible in surveys
|
||||||
|
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ class SurveyQuestion(models.Model):
|
|||||||
'survey.question', string="Event product question", copy=False, compute="_compute_event_product_question_id",
|
'survey.question', string="Event product question", copy=False, compute="_compute_event_product_question_id",
|
||||||
store=True, readonly=False, help="If you specify question of event product, only events of selected product will be proposed.",
|
store=True, readonly=False, help="If you specify question of event product, only events of selected product will be proposed.",
|
||||||
domain="[('survey_id', '=', survey_id), \
|
domain="[('survey_id', '=', survey_id), \
|
||||||
'&', ('question_type', '=', 'event_product'), \
|
'&', ('question_type', 'in', ['event_product','multiple_event_products']), \
|
||||||
'|', \
|
'|', \
|
||||||
('sequence', '<', sequence), \
|
('sequence', '<', sequence), \
|
||||||
'&', ('sequence', '=', sequence), ('id', '<', id)]") #event product question, used by event question, to filter list of events
|
'&', ('sequence', '=', sequence), ('id', '<', id)]") #event product question, used by event question, to filter list of events
|
||||||
|
@@ -53,6 +53,8 @@ class SurveyUserInput(models.Model):
|
|||||||
])
|
])
|
||||||
if question.question_type == 'event_product':
|
if question.question_type == 'event_product':
|
||||||
self._save_event_product(question, old_answers, answer)
|
self._save_event_product(question, old_answers, answer)
|
||||||
|
elif question.question_type == 'multiple_event_products':
|
||||||
|
self._save_multiple_event_products(question, old_answers, answer)
|
||||||
elif question.question_type == 'event':
|
elif question.question_type == 'event':
|
||||||
self._save_event(question, old_answers, answer)
|
self._save_event(question, old_answers, answer)
|
||||||
else:
|
else:
|
||||||
@@ -74,6 +76,25 @@ class SurveyUserInput(models.Model):
|
|||||||
else:
|
else:
|
||||||
return self.env['survey.user_input.line'].create(vals)
|
return self.env['survey.user_input.line'].create(vals)
|
||||||
|
|
||||||
|
|
||||||
|
def _save_multiple_event_products(self, question, old_answers, answer):
|
||||||
|
"""
|
||||||
|
Save multiple event products to user_input.line
|
||||||
|
"""
|
||||||
|
vals = self._get_line_answer_values(question, answer, question.question_type)
|
||||||
|
if 'value_multiple_event_products' in vals:
|
||||||
|
if isinstance(vals['value_multiple_event_products'], str) and vals['value_multiple_event_products'].isnumeric():
|
||||||
|
vals['value_multiple_event_products'] = [int(vals['value_multiple_event_products'])]
|
||||||
|
elif type(vals['value_multiple_event_products']) == list:
|
||||||
|
vals['value_multiple_event_products'] = [int(product_id) for product_id in vals['value_multiple_event_products']]
|
||||||
|
else:
|
||||||
|
vals['value_multiple_event_products'] = None
|
||||||
|
if old_answers:
|
||||||
|
old_answers.write(vals)
|
||||||
|
return old_answers
|
||||||
|
else:
|
||||||
|
return self.env['survey.user_input.line'].create(vals)
|
||||||
|
|
||||||
def _save_event(self, question, old_answers, answer):
|
def _save_event(self, question, old_answers, answer):
|
||||||
"""
|
"""
|
||||||
Save event to user_input.line
|
Save event to user_input.line
|
||||||
|
@@ -13,10 +13,11 @@ class SurveyUserInputLine(models.Model):
|
|||||||
_inherit = 'survey.user_input.line'
|
_inherit = 'survey.user_input.line'
|
||||||
|
|
||||||
answer_type = fields.Selection(
|
answer_type = fields.Selection(
|
||||||
selection_add=[('event_product', 'Event product'),('event', 'Event')]) #event_product if answer is a ticket Product, event if answer is an event
|
selection_add=[('multiple_event_products', 'Multiple event products'), ('event_product', 'Event product'),('event', 'Event')]) #event_product if answer is a ticket Product, event if answer is an event
|
||||||
|
|
||||||
value_event = fields.Many2one('event.event', string="Event") #selected event
|
value_event = fields.Many2one('event.event', string="Event") #selected event
|
||||||
value_event_product = fields.Many2one('product.product', string="Event product") #selected product
|
value_event_product = fields.Many2one('product.product', string="Event product") #selected product
|
||||||
|
value_multiple_event_products = fields.Many2many('product.product', string="Multiple event products") #selected products
|
||||||
|
|
||||||
def _compute_display_name(self):
|
def _compute_display_name(self):
|
||||||
"""display event product name, or event name, depending on answer type
|
"""display event product name, or event name, depending on answer type
|
||||||
@@ -25,6 +26,8 @@ class SurveyUserInputLine(models.Model):
|
|||||||
for line in self:
|
for line in self:
|
||||||
if line.answer_type == 'event_product':
|
if line.answer_type == 'event_product':
|
||||||
line.display_name = line.value_event_product.name
|
line.display_name = line.value_event_product.name
|
||||||
|
elif line.answer_type == 'multiple_event_products':
|
||||||
|
line.display_name = ','.join([product.name for product in line.value_multiple_event_products])
|
||||||
elif line.answer_type == 'event':
|
elif line.answer_type == 'event':
|
||||||
line.display_name = line.value_event.name
|
line.display_name = line.value_event.name
|
||||||
|
|
@@ -18,6 +18,12 @@ SurveyFormWidget.include({
|
|||||||
this.$('[data-question-type]').each(function () {
|
this.$('[data-question-type]').each(function () {
|
||||||
if (['event','event_product'].includes($(this).data('questionType'))) {
|
if (['event','event_product'].includes($(this).data('questionType'))) {
|
||||||
params[this.name] = this.value;
|
params[this.name] = this.value;
|
||||||
|
} else if ($(this).data('questionType') == 'multiple_event_products') {
|
||||||
|
$(this).find('input:checked').each(function () {
|
||||||
|
if (this.value !== '-1') {
|
||||||
|
params = self._prepareSubmitAnswer(params, this.name, this.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
<template id="question_container" name="survey_event_registration_generation question container" inherit_id="survey.question_container">
|
<template id="question_container" name="survey_event_registration_generation question container" inherit_id="survey.question_container">
|
||||||
<xpath expr="//div[@role='alert']" position="before">
|
<xpath expr="//div[@role='alert']" position="before">
|
||||||
<t t-if="question.question_type == 'event_product'"><t t-call="survey_event_registration_generation.question_event_product" /></t>
|
<t t-if="question.question_type == 'event_product'"><t t-call="survey_event_registration_generation.question_event_product" /></t>
|
||||||
|
<t t-if="question.question_type == 'multiple_event_products'"><t t-call="survey_event_registration_generation.question_multiple_event_products" /></t>
|
||||||
<t t-if="question.question_type == 'event'"><t t-call="survey_event_registration_generation.question_event" /></t>
|
<t t-if="question.question_type == 'event'"><t t-call="survey_event_registration_generation.question_event" /></t>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
@@ -31,6 +32,32 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Multiple Event product selector -->
|
||||||
|
<template id="question_multiple_event_products" name="Question: event product">
|
||||||
|
<div class="row o_survey_form_choice o_survey_question_multiple_choice"
|
||||||
|
t-att-data-name="question.id"
|
||||||
|
t-att-data-question-type="question.question_type">
|
||||||
|
<t t-set="item_idx" t-value="0"/>
|
||||||
|
<div class="d-flex flex-wrap col-lg-12">
|
||||||
|
<t t-set="has_correct_answer" t-value="scoring_display_correction and any(label.is_correct for label in question.suggested_answer_ids)"/>
|
||||||
|
<t t-foreach="event_products" t-as="event_product">
|
||||||
|
<label t-att-class="'o_survey_choice_btn form-label me-2 py-1 px-3 rounded %s' % ('o_survey_selected' if answer_line else '')">
|
||||||
|
|
||||||
|
<input type="checkbox" t-att-value='event_product.id' class="o_survey_form_choice_item invisible position-absolute"
|
||||||
|
t-att-name="question.id" />
|
||||||
|
<span class="ms-2 text-break" t-field='event_product.name'/>
|
||||||
|
|
||||||
|
<i class="fa fa-check-circle float-end mt-1 position-relative"></i>
|
||||||
|
<i class="fa fa-circle-thin float-end mt-1 position-relative"></i>
|
||||||
|
|
||||||
|
</label>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- Event selector -->
|
<!-- Event selector -->
|
||||||
<template id="question_event" name="Question: event">
|
<template id="question_event" name="Question: event">
|
||||||
<div class="o_survey_comment_container p-0">
|
<div class="o_survey_comment_container p-0">
|
||||||
|
Reference in New Issue
Block a user