diff --git a/survey_event_registration_generation/i18n/fr.po b/survey_event_registration_generation/i18n/fr.po index 250ed3a..cedd4f3 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-10-03 10:07+0000\n" -"PO-Revision-Date: 2023-10-03 10:07+0000\n" +"POT-Creation-Date: 2023-10-24 08:53+0000\n" +"PO-Revision-Date: 2023-10-24 08:53+0000\n" "Last-Translator: \n" "Language-Team: \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_product msgid "Please select..." -msgstr "" +msgstr "Veuillez sélectionner..." #. module: survey_event_registration_generation #: 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 #: 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.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 msgid "Event" -msgstr "Événement" +msgstr "Session de formation" #. module: survey_event_registration_generation #: 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" #. 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.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 msgid "Event product" -msgstr "Produit d'événement" +msgstr "Produit de formation" #. module: survey_event_registration_generation #: 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_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_question_form msgid "Event registration" -msgstr "Inscription à un événement" +msgstr "Inscription à une session de formation" #. 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_answer__event_registration_field msgid "Event registration field" -msgstr "Champ d'inscription à un événement" - -#. 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" +msgstr "Champ d'inscription à une formation" #. module: survey_event_registration_generation #: model_terms:ir.ui.view,arch_db:survey_event_registration_generation.survey_form msgid "Events registrations" -msgstr "Inscriptions aux événements" +msgstr "Inscriptions aux sessions de formation" #. module: survey_event_registration_generation #: 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 #: 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" #. module: survey_event_registration_generation @@ -94,15 +90,22 @@ msgid "" "If you specify question of event product, only events of selected product " "will be proposed." msgstr "" -"Si vous indiquez la question du produit d'événement, seuls les événements " -"correspondants seront proposés" +"Si vous indiquez la question du produit de formation, seuls les sessions de " +"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 #. odoo-javascript #: code:addons/survey_event_registration_generation/static/src/js/survey_form.js:0 #, python-format msgid "Please select..." -msgstr "" +msgstr "Veuillez sélectionner..." #. module: survey_event_registration_generation #: model:ir.model,name:survey_event_registration_generation.model_product_product @@ -119,19 +122,14 @@ msgstr "Type de question" msgid "" "Select the question asking for event product, to filter proposed events." msgstr "" -"Selectionnez la question portant sur le produit de l'événement, afin de " -"filter les événements selectionnés" +"Selectionnez la question portant sur le produit de formation, afin de filter" +" les sessions de formation selectionnées" #. module: survey_event_registration_generation #: model:ir.model,name:survey_event_registration_generation.model_survey_survey msgid "Survey" 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 #: model:ir.model,name:survey_event_registration_generation.model_survey_question msgid "Survey Question" @@ -150,4 +148,4 @@ 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" +msgstr "Visible dans les questionnaires" diff --git a/survey_event_registration_generation/models/survey_question.py b/survey_event_registration_generation/models/survey_question.py index 03cad8a..7ac9ad6 100644 --- a/survey_event_registration_generation/models/survey_question.py +++ b/survey_event_registration_generation/models/survey_question.py @@ -5,7 +5,7 @@ class SurveyQuestion(models.Model): _inherit = 'survey.question' 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 @@ -13,7 +13,7 @@ class SurveyQuestion(models.Model): '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.", domain="[('survey_id', '=', survey_id), \ - '&', ('question_type', '=', 'event_product'), \ + '&', ('question_type', 'in', ['event_product','multiple_event_products']), \ '|', \ ('sequence', '<', sequence), \ '&', ('sequence', '=', sequence), ('id', '<', id)]") #event product question, used by event question, to filter list of events diff --git a/survey_event_registration_generation/models/survey_user_input.py b/survey_event_registration_generation/models/survey_user_input.py index b8290db..07b9e7e 100644 --- a/survey_event_registration_generation/models/survey_user_input.py +++ b/survey_event_registration_generation/models/survey_user_input.py @@ -53,6 +53,8 @@ class SurveyUserInput(models.Model): ]) if question.question_type == 'event_product': 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': self._save_event(question, old_answers, answer) else: @@ -74,6 +76,25 @@ class SurveyUserInput(models.Model): else: 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): """ Save event to user_input.line diff --git a/survey_event_registration_generation/models/survey_user_input_line.py b/survey_event_registration_generation/models/survey_user_input_line.py index 2ef016e..bf3c62e 100644 --- a/survey_event_registration_generation/models/survey_user_input_line.py +++ b/survey_event_registration_generation/models/survey_user_input_line.py @@ -13,10 +13,11 @@ class SurveyUserInputLine(models.Model): _inherit = 'survey.user_input.line' 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_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): """display event product name, or event name, depending on answer type @@ -25,6 +26,8 @@ class SurveyUserInputLine(models.Model): for line in self: if line.answer_type == 'event_product': 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': line.display_name = line.value_event.name \ No newline at end of file diff --git a/survey_event_registration_generation/static/src/js/survey_form.js b/survey_event_registration_generation/static/src/js/survey_form.js index a9662d5..d134ca6 100644 --- a/survey_event_registration_generation/static/src/js/survey_form.js +++ b/survey_event_registration_generation/static/src/js/survey_form.js @@ -18,7 +18,13 @@ SurveyFormWidget.include({ this.$('[data-question-type]').each(function () { if (['event','event_product'].includes($(this).data('questionType'))) { 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); + } + }); + } }); return result; diff --git a/survey_event_registration_generation/views/survey_templates.xml b/survey_event_registration_generation/views/survey_templates.xml index 641f85e..752dbce 100644 --- a/survey_event_registration_generation/views/survey_templates.xml +++ b/survey_event_registration_generation/views/survey_templates.xml @@ -2,6 +2,7 @@ + @@ -31,6 +32,32 @@ + + + + + + + + + + + + + + + + + + + + + + +