[NEW] training-tools addons

This commit is contained in:
clementthomas
2023-06-15 11:55:37 +02:00
parent e96bc23168
commit 387f068fd5
44 changed files with 2329 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
from . import event_event
from . import event_speaker
from . import event_speaker_stage

View File

@@ -0,0 +1,33 @@
# Copyright 2018 Nicolas JEUDY
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import logging
from odoo import api, fields, models, _
_logger = logging.getLogger(__name__)
class EventEvent(models.Model):
_inherit = ["event.event"]
speaker_ids = fields.One2many("event.speaker", "event_id", string="Speakers")
nb_speakers = fields.Integer(
string="Number of speaker", readonly=True, compute="_compute_nb_speakers"
)
@api.depends("speaker_ids")
def _compute_nb_speakers(self):
for event in self:
event.nb_speakers = len(event.speaker_ids)
class EventDiscipline(models.Model):
_name = "event.discipline"
_description = "Discipline"
name = fields.Char("Name")
class EmployeeDiscipline(models.Model):
_inherit = "hr.employee"
discipline_ids = fields.Many2many("event.discipline", string="Disciplines")

View File

@@ -0,0 +1,52 @@
# Copyright 2018 Nicolas JEUDY
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
# import barcode
# from barcode.writer import ImageWriter
import base64
import logging
from io import BytesIO
import re
import unicodedata
from odoo import api, fields, models, _
from odoo.addons import decimal_precision as dp
class HrEmployee(models.Model):
_name = "event.speaker"
_inherit = ["mail.thread", "mail.activity.mixin"]
def _get_default_stage_id(self):
event_stages = self.env["event.speaker.stage"].search([])
return event_stages[0] if event_stages else False
name = fields.Char("Name", compute="_compute_name", store="True")
employee_id = fields.Many2one("hr.employee", string="Speaker")
discipline_id = fields.Many2one("event.discipline", string="Discipline")
working_hours = fields.Float("Working hours")
has_extra = fields.Boolean("Has Extra ?")
event_id = fields.Many2one("event.event", string="Event")
stage_id = fields.Many2one(
"event.speaker.stage",
ondelete="restrict",
default=_get_default_stage_id,
group_expand="_read_group_stage_ids",
tracking=True,
)
discipline_ids = fields.Many2many(
"event.discipline", string="discipline", related="employee_id.discipline_ids"
)
@api.model
def _read_group_stage_ids(self, stages, domain, order):
return self.env["event.speaker.stage"].search([])
@api.depends("employee_id", "discipline_id")
def _compute_name(self):
for record in self:
name = ""
if record.employee_id:
name += record.employee_id.name
if record.discipline_id:
name += " (%s)" % record.discipline_id.name
record.name = name

View File

@@ -0,0 +1,38 @@
from odoo import _, fields, models
class EventSpeakerStage(models.Model):
_name = "event.speaker.stage"
_description = "Speaker Stage"
_order = "sequence, name"
name = fields.Char(string="Stage Name", required=True, translate=True)
description = fields.Text(string="Stage description", translate=True)
sequence = fields.Integer("Sequence", default=1)
fold = fields.Boolean(string="Folded in Kanban", default=False)
pipe_end = fields.Boolean(
string="End Stage",
default=False,
help="Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.",
)
legend_blocked = fields.Char(
"Red Kanban Label",
default=lambda s: _("Blocked"),
translate=True,
required=True,
help="Override the default value displayed for the blocked state for kanban selection.",
)
legend_done = fields.Char(
"Green Kanban Label",
default=lambda s: _("Ready for Next Stage"),
translate=True,
required=True,
help="Override the default value displayed for the done state for kanban selection.",
)
legend_normal = fields.Char(
"Grey Kanban Label",
default=lambda s: _("In Progress"),
translate=True,
required=True,
help="Override the default value displayed for the normal state for kanban selection.",
)