From 1c52c1ca4b5a1c85c25052aa5a78aa70a747648d Mon Sep 17 00:00:00 2001 From: RemiFr82 Date: Tue, 17 Oct 2023 12:35:58 +0200 Subject: [PATCH] [ADD] event_type_description module --- event_type_description/__manifest__.py | 1 + event_type_description/models/event_event.py | 81 ++++++++++++++++++++ event_type_description/models/event_type.py | 2 +- event_type_description/views/event_event.xml | 39 ++++++++++ event_type_description/views/event_type.xml | 26 +++++++ 5 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 event_type_description/models/event_event.py create mode 100644 event_type_description/views/event_event.xml create mode 100644 event_type_description/views/event_type.xml diff --git a/event_type_description/__manifest__.py b/event_type_description/__manifest__.py index 9bcfd15..61a7521 100644 --- a/event_type_description/__manifest__.py +++ b/event_type_description/__manifest__.py @@ -28,6 +28,7 @@ ], "data": [ "views/event_event.xml", + "views/event_type.xml", ], "css": [], "images": [], diff --git a/event_type_description/models/event_event.py b/event_type_description/models/event_event.py new file mode 100644 index 0000000..dceca97 --- /dev/null +++ b/event_type_description/models/event_event.py @@ -0,0 +1,81 @@ +from odoo import models, fields, api, _ +from odoo.tools import is_html_empty +from odoo.exceptions import UserError + + +class EventEvent(models.Model): + _inherit = "event.event" + + description = fields.Html( + compute="_compute_description", + store=True, + readonly=False, + # default="", + ) + can_push = fields.Boolean( + "Can push description", + compute="_get_can_push", + ) + can_pull = fields.Boolean( + "Can pull description", + compute="_get_can_pull", + ) + + @api.depends("event_type_id") + def _compute_description(self): + for event in self: + if event.event_type_id and not is_html_empty( + event.event_type_id.description + ): + event.description = event.event_type_id.description + + # Pull from template + + def _get_can_pull(self): + for event in self: + event_type = event.event_type_id + event.can_pull = event_type and not is_html_empty(event_type.description) + + def pull_description_type(self): + self.ensure_one() + if self.can_pull: + self.write({"description": self.event_type_id.description}) + + # Push to template + + def _get_can_push(self): + for event in self: + event.can_push = event.event_type_id and not is_html_empty( + event.description + ) + + def push_description_type(self): + self.ensure_one() + event_type = self.event_type_id + if self.can_push: + event_type.write({"description": self.description}) + else: + raise UserError( + _( + "The web description of this event is empty, you cannot push it to the template." + ) + ) + + # Push to source + + # def push_description_default(self): + # self.ensure_one() + # if not is_html_empty(self.description): + # self.env.ref("event.event_default_descripton").write( + # { + # "arch_base": '\n' + # + self.description + # + "\n" + # } + # ) + # else: + # raise UserError( + # _( + # "The web description of this event is empty, you cannot push it as the new default description value (for new events and templates)." + # ) + # ) diff --git a/event_type_description/models/event_type.py b/event_type_description/models/event_type.py index 254609c..d9163fb 100644 --- a/event_type_description/models/event_type.py +++ b/event_type_description/models/event_type.py @@ -1,4 +1,4 @@ -from odoo import models, fields, api, _ +from odoo import models, fields, _ from odoo.tools.translate import html_translate diff --git a/event_type_description/views/event_event.xml b/event_type_description/views/event_event.xml new file mode 100644 index 0000000..4d03b79 --- /dev/null +++ b/event_type_description/views/event_event.xml @@ -0,0 +1,39 @@ + + + + + event.event.view.form.inherit + event.event + + + +