Skip to content
Extraits de code Groupes Projets
Valider c0cd7fd8 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[IMP] refactor template & CSS - add config option - add fields for config and reports

parent 8f63d198
Branches
Aucune étiquette associée trouvée
2 requêtes de fusion!2Refactor report,!1Refactor reports
Affichage de
avec 104 ajouts et 13 suppressions
...@@ -58,6 +58,7 @@ repos: ...@@ -58,6 +58,7 @@ repos:
rev: v2.7.1 rev: v2.7.1
hooks: hooks:
- id: prettier - id: prettier
exclude: ^templates/
name: prettier (with plugin-xml) name: prettier (with plugin-xml)
additional_dependencies: additional_dependencies:
- "prettier@2.7.1" - "prettier@2.7.1"
...@@ -101,14 +102,14 @@ repos: ...@@ -101,14 +102,14 @@ repos:
- id: pyupgrade - id: pyupgrade
args: ["--keep-percent-format"] args: ["--keep-percent-format"]
- repo: https://github.com/PyCQA/isort - repo: https://github.com/PyCQA/isort
rev: 5.10.1 rev: 5.12.0
hooks: hooks:
- id: isort - id: isort
name: isort except __init__.py name: isort except __init__.py
args: args:
- --settings=. - --settings=.
exclude: /__init__\.py$ exclude: /__init__\.py$
- repo: https://gitlab.com/PyCQA/flake8 - repo: https://github.com/PyCQA/flake8
rev: 3.9.2 rev: 3.9.2
hooks: hooks:
- id: flake8 - id: flake8
......
...@@ -16,19 +16,23 @@ ...@@ -16,19 +16,23 @@
# datas # datas
"data/ir_module_category.xml", "data/ir_module_category.xml",
"data/training_data.xml", "data/training_data.xml",
# templates
"templates/report_config_settings.xml",
"templates/report_agreement.xml",
"templates/report_attestation.xml",
"templates/report_attendance_sheet.xml",
"templates/report_convocation.xml",
"templates/report_program.xml",
# views # views
"views/account_move_view.xml", "views/account_move_view.xml",
"views/res_company_view.xml", "views/res_company_view.xml",
"views/res_config_settings_view.xml",
"views/res_partner_view.xml", "views/res_partner_view.xml",
"views/sale_order_view.xml", "views/sale_order_view.xml",
"views/training_course_view.xml", "views/training_course_view.xml",
"views/training_training_view.xml", "views/training_training_view.xml",
"views/training_session_view.xml", "views/training_session_view.xml",
# templates "views/menus.xml",
"report/report_agreement.xml",
"report/report_attestation.xml",
"report/report_attendance_sheet.xml",
"report/report_program.xml",
], ],
"assets": { "assets": {
"web.report_assets_common": [ "web.report_assets_common": [
......
from . import account_move from . import account_move
from . import res_partner from . import res_partner
from . import res_company from . import res_company
from . import res_company_training_logo
from . import res_config_settings
from . import sale_order from . import sale_order
from . import training_course from . import training_course
from . import training_session from . import training_session
......
...@@ -7,4 +7,39 @@ from odoo import fields, models ...@@ -7,4 +7,39 @@ from odoo import fields, models
class ResCompany(models.Model): class ResCompany(models.Model):
_inherit = "res.company" _inherit = "res.company"
training_number = fields.Integer("N° Organisme de formation") training_number = fields.Char("N° Organisme de formation")
agreement_special_condition = fields.Html("Conditions spéciales de la convention")
title_color = fields.Char("Couleur du titre", default="#ffffff")
title_bg_color = fields.Char("Couleur arrière plan du titre", default="#00b495")
title_font = fields.Selection(
[
("Lato", "Lato"),
("Roboto", "Roboto"),
("Open_Sans", "Open Sans"),
("Montserrat", "Montserrat"),
("Oswald", "Oswald"),
("Raleway", "Raleway"),
],
string="Police des titres",
default="Lato",
required=True,
)
subtitle_color = fields.Char("Couleur sous-titre", default="#1c2f82")
text_font = fields.Selection(
[
("Lato", "Lato"),
("Roboto", "Roboto"),
("Open_Sans", "Open Sans"),
("Montserrat", "Montserrat"),
("Oswald", "Oswald"),
("Raleway", "Raleway"),
],
string="Police du texte",
default="Lato",
required=True,
)
logo_ids = fields.One2many(
comodel_name="res.company.training.logo",
inverse_name="company_id",
string="Logos",
)
# © 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class ResCompanyTrainingLogo(models.Model):
_name = "res.company.training.logo"
_description = "Logos à afficher sur les documents de formation"
logo = fields.Binary(required=True)
name = fields.Char("Nom du logo")
company_id = fields.Many2one(
comodel_name="res.company",
string="Company",
required=True,
default=lambda self: self.env["res.company"]._company_default_get(),
ondelete="cascade",
)
# © 2023 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
training_number = fields.Char(related="company_id.training_number", readonly=False)
agreement_special_condition = fields.Html(
related="company_id.agreement_special_condition", readonly=False
)
title_color = fields.Char(related="company_id.title_color", readonly=False)
title_bg_color = fields.Char(related="company_id.title_bg_color", readonly=False)
title_font = fields.Selection(related="company_id.title_font", readonly=False)
subtitle_color = fields.Char(related="company_id.subtitle_color", readonly=False)
text_font = fields.Selection(related="company_id.text_font", readonly=False)
logo_ids = fields.One2many(related="company_id.logo_ids", readonly=False)
...@@ -22,6 +22,7 @@ class TrainingProgram(models.Model): ...@@ -22,6 +22,7 @@ class TrainingProgram(models.Model):
nature = fields.Text(string="Nature de l'action") nature = fields.Text(string="Nature de l'action")
acquis = fields.Text(string="Acquis de la formation") acquis = fields.Text(string="Acquis de la formation")
students_profile = fields.Text(string="Profil des stagiaires") students_profile = fields.Text(string="Profil des stagiaires")
prerequisites = fields.Text(string="Pré-requis")
session_ids = fields.Many2many( session_ids = fields.Many2many(
comodel_name="training.course.session", comodel_name="training.course.session",
relation="program_course_rel", relation="program_course_rel",
......
...@@ -49,13 +49,13 @@ class Training(models.Model): ...@@ -49,13 +49,13 @@ class Training(models.Model):
students_nb_prev = fields.Char(string="Nb Stagiaires Prévisionnel") students_nb_prev = fields.Char(string="Nb Stagiaires Prévisionnel")
convention = fields.Binary(attachment=True) convention = fields.Binary(attachment=True)
signin_person = fields.Char( signin_person = fields.Char(
string="Signataire", string="Signataire", help="Signataire de la convention et des attestations"
help="Signataire de la convention et des attestations"
) )
signin_function = fields.Char( signin_function = fields.Char(
string="Fonction Signataire", string="Fonction Signataire",
help="Fonction du signataire de la convention et des attestations" help="Fonction du signataire de la convention et des attestations",
) )
date_convocation = fields.Date()
date_convention = fields.Date() date_convention = fields.Date()
place_convention = fields.Char( place_convention = fields.Char(
"Lieu signature convention", "Lieu signature convention",
...@@ -114,8 +114,16 @@ class Training(models.Model): ...@@ -114,8 +114,16 @@ class Training(models.Model):
readonly=True, readonly=True,
default=lambda self: self.env["res.company"]._company_default_get(), default=lambda self: self.env["res.company"]._company_default_get(),
) )
file_number = fields.Char(string="N° Dossier") file_number = fields.Char(string="N° Dossier OPCO")
plan = fields.Char(string="Dispositif") plan = fields.Char(string="Dispositif OPCO")
meanings = fields.Text("Dispositif formation")
is_vat = fields.Boolean("TVA 20% applicable", default=True)
payment_term_id = fields.Many2one(
comodel_name="account.payment.term",
string="Condition de règlement",
check_company=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]",
)
# ------------------------------------------------------ # ------------------------------------------------------
# Override ORM # Override ORM
......
...@@ -4,3 +4,5 @@ access_training_session_group_user,training.session,model_training_session,group ...@@ -4,3 +4,5 @@ access_training_session_group_user,training.session,model_training_session,group
access_training_student_group_user,training.student,model_training_student,group_training,1,1,1,1 access_training_student_group_user,training.student,model_training_student,group_training,1,1,1,1
access_training_course_group_user,training.course,model_training_course,group_training,1,1,1,1 access_training_course_group_user,training.course,model_training_course,group_training,1,1,1,1
access_training_course_session_group_user,training.course.session,model_training_course_session,group_training,1,1,1,1 access_training_course_session_group_user,training.course.session,model_training_course_session,group_training,1,1,1,1
admin_res_company_training_logo,admin_res_company_training_logo,model_res_company_training_logo,group_training,1,1,1,1
access_res_company_training_logo,access_res_company_training_logo,model_res_company_training_logo,base.group_user,1,0,0,0
static/description/icon.png

8,95 ko | W: | H:

static/description/icon.png

7,59 ko | W: | H:

static/description/icon.png
static/description/icon.png
static/description/icon.png
static/description/icon.png
  • 2-up
  • Swipe
  • Onion skin
static/description/training.png

7,59 ko

Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
Fichier supprimé
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter