From 4530fc244c03a1799f0f00ed0e25dac4786325a8 Mon Sep 17 00:00:00 2001 From: clementthomas Date: Tue, 19 Sep 2023 09:37:43 +0200 Subject: [PATCH] [ADD] survey_event_registration_generation_attachment: add attachment to survey generated event registration --- .../__init__.py | 1 + .../__manifest__.py | 18 +++++++++ .../models/__init__.py | 1 + .../models/survey_user_input.py | 37 +++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 survey_event_registration_generation_survey_contact_generation/__init__.py create mode 100644 survey_event_registration_generation_survey_contact_generation/__manifest__.py create mode 100644 survey_event_registration_generation_survey_contact_generation/models/__init__.py create mode 100644 survey_event_registration_generation_survey_contact_generation/models/survey_user_input.py diff --git a/survey_event_registration_generation_survey_contact_generation/__init__.py b/survey_event_registration_generation_survey_contact_generation/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/survey_event_registration_generation_survey_contact_generation/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/survey_event_registration_generation_survey_contact_generation/__manifest__.py b/survey_event_registration_generation_survey_contact_generation/__manifest__.py new file mode 100644 index 0000000..09298f4 --- /dev/null +++ b/survey_event_registration_generation_survey_contact_generation/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2016-2020 Akretion France () +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Survey event registration generation", + "version": "16.0.0.0.0", + "license": "AGPL-3", + "author": "Elabore", + "website": "https://www.elabore.coop", + "category": "", + "depends": ["survey_contact_generation","survey_event_registration_generation"], + "data": [ + + ], + "installable": True, + "auto_install":True, +} diff --git a/survey_event_registration_generation_survey_contact_generation/models/__init__.py b/survey_event_registration_generation_survey_contact_generation/models/__init__.py new file mode 100644 index 0000000..a690749 --- /dev/null +++ b/survey_event_registration_generation_survey_contact_generation/models/__init__.py @@ -0,0 +1 @@ +from . import survey_user_input \ No newline at end of file diff --git a/survey_event_registration_generation_survey_contact_generation/models/survey_user_input.py b/survey_event_registration_generation_survey_contact_generation/models/survey_user_input.py new file mode 100644 index 0000000..bf995c0 --- /dev/null +++ b/survey_event_registration_generation_survey_contact_generation/models/survey_user_input.py @@ -0,0 +1,37 @@ + +import logging +import textwrap +import uuid + +from dateutil.relativedelta import relativedelta + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError +from odoo.tools import float_is_zero + +_logger = logging.getLogger(__name__) + + +class SurveyUserInput(models.Model): + _inherit = 'survey.user_input' + + + def _mark_done(self): + res = super()._mark_done() + + """Generate registration when the survey is submitted""" + for user_input in self.filtered( + lambda r: r.survey_id.generate_registration and not self.registration_id + ): + vals = user_input._prepare_registration() + + registration = self.env["event.registration"].create(vals) + self._create_registration_post_process(registration) + self.update({"registration_id": registration.id}) + res = super()._mark_done() + + # after all, set partner id of registration as the partner of user input + for user_input in self: + if user_input.registration_id and user_input.partner_id: + user_input.registration_id.partner_id = user_input.partner_id + return res