diff --git a/event_track_speaker_book/README.rst b/event_track_speaker_book/README.rst new file mode 100644 index 000000000..cac6417ff --- /dev/null +++ b/event_track_speaker_book/README.rst @@ -0,0 +1,70 @@ +======================== +Event Track Speaker Book +======================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b68a380bf957a04f6f20f29ec5d8d1c62121548ca3853a7735dc98e82229043a + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-coopiteasy%2Faddons-lightgray.png?logo=github + :target: https://github.com/coopiteasy/addons/tree/16.0/event_track_speaker_book + :alt: coopiteasy/addons + +|badge1| |badge2| |badge3| + +Manage Books Presented by Speakers + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Coop IT Easy SC + +Contributors +~~~~~~~~~~~~ + +* `Coop IT Easy SC `_: + + * Victor Champonnois + +Maintainers +~~~~~~~~~~~ + +.. |maintainer-victor-champonnois| image:: https://github.com/victor-champonnois.png?size=40px + :target: https://github.com/victor-champonnois + :alt: victor-champonnois + +Current maintainer: + +|maintainer-victor-champonnois| + +This module is part of the `coopiteasy/addons `_ project on GitHub. + +You are welcome to contribute. diff --git a/event_track_speaker_book/__init__.py b/event_track_speaker_book/__init__.py new file mode 100644 index 000000000..7fbcfccdd --- /dev/null +++ b/event_track_speaker_book/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later +from . import models diff --git a/event_track_speaker_book/__manifest__.py b/event_track_speaker_book/__manifest__.py new file mode 100644 index 000000000..a2b498802 --- /dev/null +++ b/event_track_speaker_book/__manifest__.py @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +{ + "name": "Event Track Speaker Book", + "summary": """Manage Books Presented by Speakers""", + "version": "16.0.1.0.0", + "category": "Event", + "website": "https://github.com/coopiteasy/addons", + "author": "Coop IT Easy SC", + "maintainers": ["victor-champonnois"], + "license": "AGPL-3", + "application": False, + "depends": ["event_track_multi_speaker"], + "excludes": [], + "data": [ + "security/ir.model.access.csv", + "views/event_track.xml", + "views/event_track_speaker.xml", + "views/event_track_speaker_book.xml", + "views/menuitems.xml", + ], + "demo": [], + "qweb": [], +} diff --git a/event_track_speaker_book/models/__init__.py b/event_track_speaker_book/models/__init__.py new file mode 100644 index 000000000..735df014a --- /dev/null +++ b/event_track_speaker_book/models/__init__.py @@ -0,0 +1,4 @@ +from . import event_track +from . import event_track_speaker +from . import event_track_speaker_book +from . import event_track_speaker_book_provider diff --git a/event_track_speaker_book/models/event_track.py b/event_track_speaker_book/models/event_track.py new file mode 100644 index 000000000..23bdc7f4d --- /dev/null +++ b/event_track_speaker_book/models/event_track.py @@ -0,0 +1,19 @@ +# Copyright 2024 Coop IT Easy +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class EventTrack(models.Model): + _inherit = "event.track" + + book_ids = fields.Many2many( + comodel_name="event.track.speaker.book", + string="Books", + ) + + @api.onchange("speaker_ids") + def get_book_domain(self): + for rec in self: + speakers_book_ids = rec.speaker_ids._origin.mapped("book_ids").mapped("id") + return {"domain": {"book_ids": [("id", "in", speakers_book_ids)]}} diff --git a/event_track_speaker_book/models/event_track_speaker.py b/event_track_speaker_book/models/event_track_speaker.py new file mode 100644 index 000000000..ffcb13d4d --- /dev/null +++ b/event_track_speaker_book/models/event_track_speaker.py @@ -0,0 +1,10 @@ +# Copyright 2024 Coop IT Easy +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class EventTrackSpeaker(models.Model): + _inherit = "event.track.speaker" + + book_ids = fields.Many2many("event.track.speaker.book", string="Books") diff --git a/event_track_speaker_book/models/event_track_speaker_book.py b/event_track_speaker_book/models/event_track_speaker_book.py new file mode 100644 index 000000000..14d167b62 --- /dev/null +++ b/event_track_speaker_book/models/event_track_speaker_book.py @@ -0,0 +1,29 @@ +# Copyright 2024 Coop IT Easy +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class EventTrackSpeakerBook(models.Model): + _name = "event.track.speaker.book" + _description = "Track Speaker Book" + _inherit = ["mail.thread", "mail.activity.mixin"] + + name = fields.Char(string="Title") + author_ids = fields.Many2many(comodel_name="res.partner", string="Authors") + editor_id = fields.Many2one(comodel_name="res.partner", string="Editor") + user_id = fields.Many2one("res.users", string="Referent") + speaker_ids = fields.Many2many("event.track.speaker", string="Speakers") + provider_id = fields.Many2one( + "event.track.speaker.book.provider", + string="Provider", + ) + status = fields.Selection( + selection=[ + ("asked", "Asked"), + ("received", "Received"), + ("reading", "Reading"), + ("done", "Done"), + ], + default="asked", + ) diff --git a/event_track_speaker_book/models/event_track_speaker_book_provider.py b/event_track_speaker_book/models/event_track_speaker_book_provider.py new file mode 100644 index 000000000..f595ee518 --- /dev/null +++ b/event_track_speaker_book/models/event_track_speaker_book_provider.py @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from odoo import fields, models + + +class EventTrackSpeakerBookProvider(models.Model): + _name = "event.track.speaker.book.provider" + _description = "Track Speaker Book Provider" + + name = fields.Char() diff --git a/event_track_speaker_book/readme/CONTRIBUTORS.rst b/event_track_speaker_book/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..146abeb90 --- /dev/null +++ b/event_track_speaker_book/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Coop IT Easy SC `_: + + * Victor Champonnois diff --git a/event_track_speaker_book/readme/DESCRIPTION.rst b/event_track_speaker_book/readme/DESCRIPTION.rst new file mode 100644 index 000000000..d4ffc2343 --- /dev/null +++ b/event_track_speaker_book/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Manage Books Presented by Speakers diff --git a/event_track_speaker_book/security/ir.model.access.csv b/event_track_speaker_book/security/ir.model.access.csv new file mode 100644 index 000000000..5c90db0cc --- /dev/null +++ b/event_track_speaker_book/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_event_track_speaker_book_registration,event.track.speaker.book.user,event_track_speaker_book.model_event_track_speaker_book,event.group_event_registration_desk,1,0,0,0 +access_event_track_speaker_book_user,event.track.speaker.book.user,event_track_speaker_book.model_event_track_speaker_book,event.group_event_user,1,1,1,1 +access_event_track_speaker_book_provider_registration,event.track.speaker.book.provider.user,event_track_speaker_book.model_event_track_speaker_book_provider,event.group_event_registration_desk,1,0,0,0 +access_event_track_speaker_book_provider_user,event.track.speaker.book.provider.user,event_track_speaker_book.model_event_track_speaker_book_provider,event.group_event_user,1,1,1,1 diff --git a/event_track_speaker_book/static/description/index.html b/event_track_speaker_book/static/description/index.html new file mode 100644 index 000000000..b1ef34ae9 --- /dev/null +++ b/event_track_speaker_book/static/description/index.html @@ -0,0 +1,421 @@ + + + + + +Event Track Speaker Book + + + +
+

Event Track Speaker Book

+ + +

Beta License: AGPL-3 coopiteasy/addons

+

Manage Books Presented by Speakers

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Coop IT Easy SC
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

Current maintainer:

+

victor-champonnois

+

This module is part of the coopiteasy/addons project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + diff --git a/event_track_speaker_book/views/event_track.xml b/event_track_speaker_book/views/event_track.xml new file mode 100644 index 000000000..98939dda1 --- /dev/null +++ b/event_track_speaker_book/views/event_track.xml @@ -0,0 +1,23 @@ + + + + event.track + + + + + + + + + + + + + + + + + + + diff --git a/event_track_speaker_book/views/event_track_speaker.xml b/event_track_speaker_book/views/event_track_speaker.xml new file mode 100644 index 000000000..766ef1fac --- /dev/null +++ b/event_track_speaker_book/views/event_track_speaker.xml @@ -0,0 +1,28 @@ + + + + event.track.speaker.form + event.track.speaker + + + + + + + + + + + + + + + + + + + + diff --git a/event_track_speaker_book/views/event_track_speaker_book.xml b/event_track_speaker_book/views/event_track_speaker_book.xml new file mode 100644 index 000000000..951e4ee75 --- /dev/null +++ b/event_track_speaker_book/views/event_track_speaker_book.xml @@ -0,0 +1,85 @@ + + + + + event.track.speaker.book.tree + event.track.speaker.book + + + + + + + + + + + + + + + event.track.speaker.book.form + event.track.speaker.book + +
+
+ +
+ + + + + + + + + + + + +
+ + + +
+
+
+
+ + + event.track.speaker.book.search + event.track.speaker.book + + + + + + + + + + + + + + + + + + event.track.speaker + Event Speakers Books + tree,form,activity + + +
diff --git a/event_track_speaker_book/views/menuitems.xml b/event_track_speaker_book/views/menuitems.xml new file mode 100644 index 000000000..494b23b25 --- /dev/null +++ b/event_track_speaker_book/views/menuitems.xml @@ -0,0 +1,32 @@ + + + + + Books + event.track.speaker.book + tree,form + + + + Book Providers + event.track.speaker.book.provider + tree,form + + + + + + + diff --git a/setup/event_track_speaker_book/odoo/addons/event_track_speaker_book b/setup/event_track_speaker_book/odoo/addons/event_track_speaker_book new file mode 120000 index 000000000..e5b9f4b81 --- /dev/null +++ b/setup/event_track_speaker_book/odoo/addons/event_track_speaker_book @@ -0,0 +1 @@ +../../../../event_track_speaker_book \ No newline at end of file diff --git a/setup/event_track_speaker_book/setup.py b/setup/event_track_speaker_book/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/event_track_speaker_book/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)