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
+
+
+
+
+
+
+
+
+
+
+
+
+ Push Template descritpion
+
+
+
+ code
+ record.push_description_type()
+
+
+
+
+
\ No newline at end of file
diff --git a/event_type_description/views/event_type.xml b/event_type_description/views/event_type.xml
new file mode 100644
index 0000000..f4596d8
--- /dev/null
+++ b/event_type_description/views/event_type.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ event.type.view.form.inherit
+ event.type
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file