From 0d58b2db0b2eb748278974cf14c0e48728587756 Mon Sep 17 00:00:00 2001 From: clementthomas Date: Tue, 5 Mar 2024 20:53:02 +0100 Subject: [PATCH] [NEW] event_sequence --- event_sequence/__init__.py | 1 + event_sequence/__manifest__.py | 22 ++++++ event_sequence/data/event_sequence_data.xml | 62 +++++++++++++++++ event_sequence/models/__init__.py | 3 + event_sequence/models/event_event.py | 9 +++ event_sequence/models/event_sequence.py | 9 +++ event_sequence/models/event_track.py | 32 +++++++++ event_sequence/security/ir.model.access.csv | 2 + event_sequence/views/event_event_views.xml | 19 ++++++ event_sequence/views/event_sequence_menu.xml | 8 +++ event_sequence/views/event_sequence_views.xml | 20 ++++++ event_sequence/views/event_track_views.xml | 68 +++++++++++++++++++ 12 files changed, 255 insertions(+) create mode 100644 event_sequence/__init__.py create mode 100644 event_sequence/__manifest__.py create mode 100644 event_sequence/data/event_sequence_data.xml create mode 100644 event_sequence/models/__init__.py create mode 100644 event_sequence/models/event_event.py create mode 100644 event_sequence/models/event_sequence.py create mode 100644 event_sequence/models/event_track.py create mode 100644 event_sequence/security/ir.model.access.csv create mode 100644 event_sequence/views/event_event_views.xml create mode 100644 event_sequence/views/event_sequence_menu.xml create mode 100644 event_sequence/views/event_sequence_views.xml create mode 100644 event_sequence/views/event_track_views.xml diff --git a/event_sequence/__init__.py b/event_sequence/__init__.py new file mode 100644 index 0000000..9a7e03e --- /dev/null +++ b/event_sequence/__init__.py @@ -0,0 +1 @@ +from . import models \ No newline at end of file diff --git a/event_sequence/__manifest__.py b/event_sequence/__manifest__.py new file mode 100644 index 0000000..6d64c29 --- /dev/null +++ b/event_sequence/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2016-2020 Akretion France () +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Event sequences", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "author": "Elabore", + "website": "https://www.elabore.coop", + "category": "", + "depends": ["event", "website_event_track"], + "data": [ + 'security/ir.model.access.csv', + 'views/event_sequence_views.xml', + 'views/event_track_views.xml', + 'views/event_event_views.xml', + 'views/event_sequence_menu.xml', + 'data/event_sequence_data.xml', + ], + "installable": True, +} diff --git a/event_sequence/data/event_sequence_data.xml b/event_sequence/data/event_sequence_data.xml new file mode 100644 index 0000000..c05c588 --- /dev/null +++ b/event_sequence/data/event_sequence_data.xml @@ -0,0 +1,62 @@ + + + + Séquence 1 + 1 + + + + Séquence 2 + 2 + + + + Séquence 3 + 3 + + + + Séquence 4 + 4 + + + + Séquence 5 + 5 + + + + Séquence 6 + 6 + + + + Séquence 7 + 7 + + + + Séquence 8 + 8 + + + + Séquence 9 + 9 + + + + Séquence 10 + 10 + + + + Séquence 11 + 11 + + + + Séquence 12 + 12 + + diff --git a/event_sequence/models/__init__.py b/event_sequence/models/__init__.py new file mode 100644 index 0000000..2c5c008 --- /dev/null +++ b/event_sequence/models/__init__.py @@ -0,0 +1,3 @@ +from . import event_sequence +from . import event_track +from . import event_event \ No newline at end of file diff --git a/event_sequence/models/event_event.py b/event_sequence/models/event_event.py new file mode 100644 index 0000000..94fed2e --- /dev/null +++ b/event_sequence/models/event_event.py @@ -0,0 +1,9 @@ +from odoo import _, api, Command, fields, models +from lxml import etree, html +from odoo.tools import format_time + +class EventEvent(models.Model): + _inherit = "event.event" + + sequence_number = fields.Integer('Number of sequences', default="5") + current_sequence_id = fields.Many2one('event.sequence', 'Current sequence') \ No newline at end of file diff --git a/event_sequence/models/event_sequence.py b/event_sequence/models/event_sequence.py new file mode 100644 index 0000000..b84fcc9 --- /dev/null +++ b/event_sequence/models/event_sequence.py @@ -0,0 +1,9 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class EventSequence(models.Model): + _name = "event.sequence" + + name = fields.Char("name") + sequence = fields.Integer("Sequence") diff --git a/event_sequence/models/event_track.py b/event_sequence/models/event_track.py new file mode 100644 index 0000000..05cbcbe --- /dev/null +++ b/event_sequence/models/event_track.py @@ -0,0 +1,32 @@ +from odoo import _, api, Command, fields, models +from lxml import etree, html +from odoo.tools import format_time + +class EventTrack(models.Model): + _inherit = "event.track" + + sequence_id = fields.Many2one('event.sequence', 'Sequence', group_expand='_read_group_stage_ids') + sequence = fields.Integer('Sequence') + + @api.model_create_multi + def create(self, vals_list): + if vals_list and 'sequence' not in vals_list[0]: + vals_list[0]['sequence'] = 999 + tracks = super(EventTrack, self).create(vals_list) + return tracks + + + + @api.model + def _read_group_stage_ids(self, stages, domain, order): + event_id = None + for d in domain: + if d[0] == "event_id" and d[1] == "=" and d[2]: + event_id = d[2] + + if event_id: + event = self.env['event.event'].browse(event_id) + return stages.search([], order="sequence", limit=event.sequence_number) + + return stages.search([], order="sequence") + \ No newline at end of file diff --git a/event_sequence/security/ir.model.access.csv b/event_sequence/security/ir.model.access.csv new file mode 100644 index 0000000..0fd4d2c --- /dev/null +++ b/event_sequence/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_event_sequence,event.sequence,model_event_sequence,event.group_event_manager,1,1,1,1 \ No newline at end of file diff --git a/event_sequence/views/event_event_views.xml b/event_sequence/views/event_event_views.xml new file mode 100644 index 0000000..a77a9c7 --- /dev/null +++ b/event_sequence/views/event_event_views.xml @@ -0,0 +1,19 @@ + + + + + event.event.form.event.sequence + event.event + + + +

+

+
+
+ +
diff --git a/event_sequence/views/event_sequence_menu.xml b/event_sequence/views/event_sequence_menu.xml new file mode 100644 index 0000000..a035945 --- /dev/null +++ b/event_sequence/views/event_sequence_menu.xml @@ -0,0 +1,8 @@ + + + + diff --git a/event_sequence/views/event_sequence_views.xml b/event_sequence/views/event_sequence_views.xml new file mode 100644 index 0000000..a590dfb --- /dev/null +++ b/event_sequence/views/event_sequence_views.xml @@ -0,0 +1,20 @@ + + + + event.sequence + event.sequence + + + + + + + + + + Sequences + event.sequence + tree + + + diff --git a/event_sequence/views/event_track_views.xml b/event_sequence/views/event_track_views.xml new file mode 100644 index 0000000..0ae8042 --- /dev/null +++ b/event_sequence/views/event_track_views.xml @@ -0,0 +1,68 @@ + + + + event.track.by.sequence.kanban + event.track + + + + + + + + + + + + + + + +
+ +
+
+

+
+
+ hours + +
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+
+ + + + kanban + + + +