diff --git a/.eslintrc.yml b/.eslintrc.yml index d4cc423ccda9db9691205c9da83307af97b2670f..9429bc688aab4993eae460767368f65089afa323 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -4,7 +4,7 @@ env: # See https://github.com/OCA/odoo-community.org/issues/37#issuecomment-470686449 parserOptions: - ecmaVersion: 2017 + ecmaVersion: 2019 overrides: - files: diff --git a/.gitignore b/.gitignore index 818770fb1bdc0a144e924c9a5940f0b035df8a0d..9c283fd41f6cc3330653f1d90a820b85e23caf65 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,6 @@ build/ develop-eggs/ dist/ eggs/ -lib/ lib64/ parts/ sdist/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 732d0c4a644eb444d6b4385643ff32fab19fab52..168470e2ed745631aefb772a4a864cf1de76d3cb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,6 +6,8 @@ exclude: | ^setup/|/static/description/index\.html$| # We don't want to mess with tool-generated files .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/| + # Maybe reactivate this when all README files include prettier ignore tags? + ^README\.md$| # Library files can have extraneous formatting (even minimized) /static/(src/)?lib/| # Repos using Sphinx to generate docs don't need prettying @@ -14,7 +16,7 @@ exclude: | (LICENSE.*|COPYING.*) default_language_version: python: python3 - node: "14.13.0" + node: "14.18.0" repos: - repo: local hooks: @@ -26,7 +28,7 @@ repos: language: fail files: "\\.rej$" - repo: https://github.com/oca/maintainer-tools - rev: 7d8a9f9ad73db0976fb03cbee43d953bc29b89e9 + rev: dfba427ba03900b69e0a7f2c65890dc48921d36a hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons @@ -48,18 +50,18 @@ repos: hooks: - id: black - repo: https://github.com/pre-commit/mirrors-prettier - rev: v2.6.2 + rev: v2.4.1 hooks: - id: prettier name: prettier (with plugin-xml) additional_dependencies: - - "prettier@2.1.2" - - "@prettier/plugin-xml@0.12.0" + - "prettier@2.4.1" + - "@prettier/plugin-xml@1.1.0" args: - --plugin=@prettier/plugin-xml files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$ - repo: https://github.com/pre-commit/mirrors-eslint - rev: v8.15.0 + rev: v7.32.0 hooks: - id: eslint verbose: true @@ -67,7 +69,7 @@ repos: - --color - --fix - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.2.0 + rev: v4.0.1 hooks: - id: trailing-whitespace # exclude autogenerated files @@ -89,12 +91,12 @@ repos: - id: mixed-line-ending args: ["--fix=lf"] - repo: https://github.com/asottile/pyupgrade - rev: v2.32.1 + rev: v2.29.0 hooks: - id: pyupgrade args: ["--keep-percent-format"] - repo: https://github.com/PyCQA/isort - rev: 5.10.1 + rev: 5.9.3 hooks: - id: isort name: isort except __init__.py @@ -106,20 +108,16 @@ repos: hooks: - id: flake8 name: flake8 - additional_dependencies: ["flake8-bugbear==20.1.4"] - - repo: https://github.com/PyCQA/pylint - rev: v2.11.1 + additional_dependencies: ["flake8-bugbear==21.9.2"] + - repo: https://github.com/OCA/pylint-odoo + rev: 7.0.2 hooks: - - id: pylint + - id: pylint_odoo name: pylint with optional checks args: - --rcfile=.pylintrc - --exit-zero verbose: true - additional_dependencies: &pylint_deps - - pylint-odoo==5.0.5 - - id: pylint - name: pylint with mandatory checks + - id: pylint_odoo args: - --rcfile=.pylintrc-mandatory - additional_dependencies: *pylint_deps diff --git a/.pylintrc b/.pylintrc index dc6270e15be0c08da00e768a570f27c785d8630e..d431ca78d44080ba32c20c6991c2655f2ab6423b 100644 --- a/.pylintrc +++ b/.pylintrc @@ -8,7 +8,7 @@ manifest_required_authors=Le Filament manifest_required_keys=license manifest_deprecated_keys=description,active license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid_odoo_versions=14.0 +valid_odoo_versions=15.0 [MESSAGES CONTROL] disable=all @@ -64,6 +64,38 @@ enable=anomalous-backslash-in-string, use-vim-comment, wrong-tabs-instead-of-spaces, xml-syntax-error, + attribute-string-redundant, + character-not-valid-in-resource-link, + consider-merging-classes-inherited, + context-overridden, + create-user-wo-reset-password, + dangerous-filter-wo-user, + dangerous-qweb-replace-wo-priority, + deprecated-data-xml-node, + deprecated-openerp-xml-node, + duplicate-po-message-definition, + except-pass, + file-not-used, + invalid-commit, + manifest-maintainers-list, + missing-newline-extrafiles, + missing-readme, + missing-return, + odoo-addons-relative-import, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + renamed-field-parameter, + resource-not-exist, + str-format-used, + test-folder-imported, + translation-contains-variable, + translation-positional-used, + unnecessary-utf8-coding-comment, + website-manifest-key-not-valid-uri, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute, # messages that do not cause the lint step to fail consider-merging-classes-inherited, create-user-wo-reset-password, @@ -73,6 +105,7 @@ enable=anomalous-backslash-in-string, invalid-commit, missing-manifest-dependency, missing-newline-extrafiles, + missing-readme, no-utf8-coding-comment, odoo-addons-relative-import, old-api7-method-defined, diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index 43ea23947166ff8080219007cfae43ec54a28f8e..189c548631665bef116fc4d0df3b986f9727df31 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -8,7 +8,7 @@ manifest_required_authors=Le Filament manifest_required_keys=license manifest_deprecated_keys=description,active license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid_odoo_versions=14.0 +valid_odoo_versions=15.0 [MESSAGES CONTROL] disable=all @@ -56,7 +56,39 @@ enable=anomalous-backslash-in-string, unreachable, use-vim-comment, wrong-tabs-instead-of-spaces, - xml-syntax-error + xml-syntax-error, + attribute-string-redundant, + character-not-valid-in-resource-link, + consider-merging-classes-inherited, + context-overridden, + create-user-wo-reset-password, + dangerous-filter-wo-user, + dangerous-qweb-replace-wo-priority, + deprecated-data-xml-node, + deprecated-openerp-xml-node, + duplicate-po-message-definition, + except-pass, + file-not-used, + invalid-commit, + manifest-maintainers-list, + missing-newline-extrafiles, + missing-readme, + missing-return, + odoo-addons-relative-import, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + renamed-field-parameter, + resource-not-exist, + str-format-used, + test-folder-imported, + translation-contains-variable, + translation-positional-used, + unnecessary-utf8-coding-comment, + website-manifest-key-not-valid-uri, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute [REPORTS] msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} diff --git a/__init__.py b/__init__.py index 0ae31d94d214966d19df60c54ef75d57fe706bc5..ee5475c4a3ad710641ec1f79798350c41985f64d 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1 @@ -# Copyright 2021 Le Filament (https://le-filament.com) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) - from . import controllers, models, wizard diff --git a/__manifest__.py b/__manifest__.py index a3c08a27c42ad51bbd3d1c0b3c8418a349f4022a..d34ebcf3cef083f35d2d6ec86327859764a6af86 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -1,12 +1,9 @@ -# Copyright 2022 Le Filament (https://le-filament.com) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) - { "name": "Le Filament - Release", "summary": "Gestion des mise en production logicielles", "author": "Le Filament", "website": "https://le-filament.com", - "version": "14.0.1.0.1", + "version": "15.0.1.0.1", "license": "AGPL-3", "depends": [ "web", @@ -18,7 +15,6 @@ # wizard "wizard/multi_partner_release_wizard.xml", # templates - "templates/assets.xml", "templates/header_template.xml", "templates/partner_release_detail.xml", "templates/partner_release_list.xml", @@ -30,9 +26,9 @@ # views menu "views/menus.xml", ], - "qweb": [ - "static/src/xml/*.xml", - ], + "assets": { + "web.assets_frontend": ["lefilament_release/static/src/css/portal.css"], + }, "installable": True, "auto_install": False, } diff --git a/controllers/__init__.py b/controllers/__init__.py index abacf04840d4a28b202898e50c6e7608c743acc9..3512ec93f73fff1dc1885b8a3e42d65980dba163 100644 --- a/controllers/__init__.py +++ b/controllers/__init__.py @@ -1,4 +1 @@ -# Copyright 2022 Le Filament (https://le-filament.com) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) - from . import banner_release, main, portal diff --git a/controllers/main.py b/controllers/main.py index ac60913ba26e2aa500474778ba8ec87a8c46c444..f7951a5ec30803d8a7583266e0ce59fba1d469fb 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -13,7 +13,7 @@ class ReleaseController(http.Controller): ["/post-modules"], type="json", auth="none", - method=["POST"], + methods=["POST"], csrf=False, ) def post_modules(self): diff --git a/models/__init__.py b/models/__init__.py index 14713b01b588a4c44cc4f259decb2d314b4c7924..aeb338537810bef23364dfda7c0332e9137cbc72 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,6 +1,3 @@ -# Copyright 2022 Le Filament (https://le-filament.com) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) - from . import res_partner from . import res_partner_module from . import res_partner_release diff --git a/models/res_partner.py b/models/res_partner.py index 541acee01ebc07d9638f1b6f011fa5674c0cb6f1..211d4e4eae5285f1c3b9487f16da3fb5b3f9cdf6 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1,4 +1,4 @@ -# © 2022 Le Filament (<http://www.le-filament.com>) +# Copyright 2022 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/models/res_partner_release.py b/models/res_partner_release.py index b32e56253602f8b711941896c581df154fb58167..8bc36940433ce619f92e95f9343e9965b58b1cd9 100644 --- a/models/res_partner_release.py +++ b/models/res_partner_release.py @@ -43,7 +43,7 @@ class PartnerRelease(models.Model): string="Modules mis à jour", copy=False, ) - description = fields.Text("Description") + description = fields.Text() access_token = fields.Char("Security Token", copy=False) release_share_link = fields.Char( string="Lien de partage client", diff --git a/templates/assets.xml b/templates/assets.xml deleted file mode 100644 index 884557ddc3c452ebf7cd1457f0c693764a4efbed..0000000000000000000000000000000000000000 --- a/templates/assets.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<odoo> - <!-- Portal CSS --> - <template - id="lefilame,t_assets_frontend" - inherit_id="portal.assets_frontend" - name="Le Filament Release Portal Assets" - priority="15" - > - <xpath expr="//link[last()]" position="after"> - <link - rel="stylesheet" - type="text/scss" - href="/lefilament_release/static/src/css/portal.css" - /> - </xpath> - </template> - -</odoo> diff --git a/views/menus.xml b/views/menus.xml index cb0bcbd4400d3538fefef45c5437fbbd5a637a54..8e1cf38453c2f33be5657e95b667538c628a080e 100644 --- a/views/menus.xml +++ b/views/menus.xml @@ -1,37 +1,33 @@ <?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright 2022 Le Filament +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> + <menuitem + name="Gestion de releases" + id="res_partner_release_menu" + sequence="150" + web_icon="lefilament_release,static/description/menu_icon.png" + /> - <menuitem - name="Gestion de releases" - id="res_partner_release_menu" - sequence="150" - web_icon="lefilament_release,static/description/menu_icon.png" - /> - - <menuitem - name="Gestion de releases" - id="res_partner_release_all_menu" - parent="res_partner_release_menu" - action="res_partner_release_act_window" - sequence="10" - /> - <menuitem - name="Détail par module" - id="res_partner_release_module_menu" - action="res_partner_release_module_act_window" - parent="res_partner_release_menu" - sequence="20" - /> - <menuitem - name="Liste des modules" - id="res_partner_module_menu" - action="res_partner_module_act_window" - parent="res_partner_release_menu" - sequence="30" - /> - - </data> + <menuitem + name="Gestion de releases" + id="res_partner_release_all_menu" + parent="res_partner_release_menu" + action="res_partner_release_act_window" + sequence="10" + /> + <menuitem + name="Détail par module" + id="res_partner_release_module_menu" + action="res_partner_release_module_act_window" + parent="res_partner_release_menu" + sequence="20" + /> + <menuitem + name="Liste des modules" + id="res_partner_module_menu" + action="res_partner_module_act_window" + parent="res_partner_release_menu" + sequence="30" + /> </odoo> diff --git a/views/res_partner.xml b/views/res_partner.xml index 064148de46fdb516d8a05bb27bb444b6b63166dc..70b423629057c56db2c20159291fc5ba8965205d 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -1,76 +1,67 @@ <?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright 2022 Le Filament +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> - - <record id="res_partner_form_inherit" model="ir.ui.view"> - <field name="name">res.partner.form</field> - <field name="model">res.partner</field> - <field name="inherit_id" ref="base.view_partner_form" /> - <field name="priority" eval="110" /> - <field name="arch" type="xml"> - <xpath expr="//page[@name='internal_notes']" position="after"> - <page - name="modules" - attrs="{'invisible': [('is_company', '!=', True)]}" - string="Modules Odoo" - > + <record id="res_partner_form_inherit" model="ir.ui.view"> + <field name="name">res.partner.form</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.view_partner_form" /> + <field name="priority" eval="110" /> + <field name="arch" type="xml"> + <xpath expr="//page[@name='internal_notes']" position="after"> + <page + name="modules" + attrs="{'invisible': [('is_company', '!=', True)]}" + string="Modules Odoo" + > + <group> <group> - <group> - <field name="server_ip" /> - </group> - <group> - </group> + <field name="server_ip" /> </group> - <field name="module_ids"> - <tree editable="top"> - <field name="name" /> - <field name="author_type" /> - <field name="author" /> - <field name="latest_version" /> - </tree> - </field> - </page> - <page - name="release" - attrs="{'invisible': [('is_company', '!=', True)]}" - string="Releases" - > <group> - <field - name="release_share_link" - widget="CopyClipboardChar" - options="{'string': 'Copier le lien'}" - /> </group> + </group> + <field name="module_ids"> + <tree editable="top"> + <field name="name" /> + <field name="author_type" /> + <field name="author" /> + <field name="latest_version" /> + </tree> + </field> + </page> + <page + name="release" + attrs="{'invisible': [('is_company', '!=', True)]}" + string="Releases" + > + <group> <field - name="release_ids" - options="{'no_create': 1, 'no_edit': 1}" - > - <tree> - <field name="release_date" /> - <field name="user_id" /> - <field name="description" /> - <field - name="release_module_ids" - widget="many2many_tags" - /> - </tree> - </field> - </page> - </xpath> - </field> - </record> + name="release_share_link" + widget="CopyClipboardChar" + options="{'string': 'Copier le lien'}" + /> + </group> + <field name="release_ids" options="{'no_create': 1, 'no_edit': 1}"> + <tree> + <field name="release_date" /> + <field name="user_id" /> + <field name="description" /> + <field name="release_module_ids" widget="many2many_tags" /> + </tree> + </field> + </page> + </xpath> + </field> + </record> - <!-- Action Server --> - <record id="model_res_partner_release_action_share" model="ir.actions.server"> - <field name="name">Générer le lien de la release</field> - <field name="model_id" ref="model_res_partner" /> - <field name="binding_model_id" ref="model_res_partner" /> - <field name="state">code</field> - <field name="code">action = records.set_release_url()</field> - </record> + <!-- Action Server --> + <record id="model_res_partner_release_action_share" model="ir.actions.server"> + <field name="name">Générer le lien de la release</field> + <field name="model_id" ref="model_res_partner" /> + <field name="binding_model_id" ref="model_res_partner" /> + <field name="state">code</field> + <field name="code">action = records.set_release_url()</field> + </record> - </data> </odoo> diff --git a/views/res_partner_module.xml b/views/res_partner_module.xml index f793eb065ad03a25b2304305860bd7a49064d6be..94ebfdce5540cb4c50d9173409257fce49db9718 100644 --- a/views/res_partner_module.xml +++ b/views/res_partner_module.xml @@ -1,47 +1,47 @@ <?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> - <!-- Search View --> - <record id="res_partner_module_search_view" model="ir.ui.view"> - <field name="name">res.partner.module.search</field> - <field name="model">res.partner.module</field> - <field name="arch" type="xml"> - <search string="Modules"> - <field name="name" /> - <field name="author_type" /> - <field name="author" /> - <field name="partner_ids" /> - </search> - </field> - </record> + <!-- Search View --> + <record id="res_partner_module_search_view" model="ir.ui.view"> + <field name="name">res.partner.module.search</field> + <field name="model">res.partner.module</field> + <field name="arch" type="xml"> + <search string="Modules"> + <field name="name" /> + <field name="author_type" /> + <field name="author" /> + <field name="partner_ids" /> + </search> + </field> + </record> - <!-- Tree View --> - <record id="res_partner_module_tree_view" model="ir.ui.view"> - <field name="name">res.partner.module.tree</field> - <field name="model">res.partner.module</field> - <field name="arch" type="xml"> - <tree string="Modules"> - <field name="name" /> - <field name="author_type" /> - <field name="author" /> - <field name="latest_version" /> - <field - name="partner_ids" - options="{'no_create': 1,}" - widget="many2many_tags" - /> - <field name="active" /> - </tree> - </field> - </record> + <!-- Tree View --> + <record id="res_partner_module_tree_view" model="ir.ui.view"> + <field name="name">res.partner.module.tree</field> + <field name="model">res.partner.module</field> + <field name="arch" type="xml"> + <tree> + <field name="name" /> + <field name="author_type" /> + <field name="author" /> + <field name="latest_version" /> + <field + name="partner_ids" + options="{'no_create': 1,}" + widget="many2many_tags" + /> + <field name="active" /> + </tree> + </field> + </record> - <!-- Action Window --> - <record id="res_partner_module_act_window" model="ir.actions.act_window"> - <field name="name">Liste Modules</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">res.partner.module</field> - <field name="view_mode">tree</field> - </record> + <!-- Action Window --> + <record id="res_partner_module_act_window" model="ir.actions.act_window"> + <field name="name">Liste Modules</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">res.partner.module</field> + <field name="view_mode">tree</field> + </record> - </data> </odoo> diff --git a/views/res_partner_release.xml b/views/res_partner_release.xml index fee3b93d649db21b67eb088dce048e658a192a7d..a5ad8b76895ca088d6e5a2dc86d892de7e32c23e 100644 --- a/views/res_partner_release.xml +++ b/views/res_partner_release.xml @@ -1,137 +1,134 @@ <?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> - <!-- Search View --> - <record id="res_partner_release_search_view" model="ir.ui.view"> - <field name="name">res.partner.release.search</field> - <field name="model">res.partner.release</field> - <field name="arch" type="xml"> - <search string="Releases Client"> - <field name="partner_id" /> - <field name="user_id" /> - <field name="release_date" /> + <!-- Search View --> + <record id="res_partner_release_search_view" model="ir.ui.view"> + <field name="name">res.partner.release.search</field> + <field name="model">res.partner.release</field> + <field name="arch" type="xml"> + <search string="Releases Client"> + <field name="partner_id" /> + <field name="user_id" /> + <field name="release_date" /> - <group expand="1" string="Group By"> - <filter - string="Client" - name="group_partner" - context="{'group_by':'partner_id'}" - /> - <filter - string="Utilisateur" - name="group_user" - context="{'group_by':'user_id'}" - /> - <filter - string="Date" - name="group_release_date" - context="{'group_by':'release_date'}" - /> - </group> - </search> - </field> - </record> + <group expand="1" string="Group By"> + <filter + string="Client" + name="group_partner" + context="{'group_by':'partner_id'}" + /> + <filter + string="Utilisateur" + name="group_user" + context="{'group_by':'user_id'}" + /> + <filter + string="Date" + name="group_release_date" + context="{'group_by':'release_date'}" + /> + </group> + </search> + </field> + </record> - <!-- Form View --> - <record id="res_partner_release_form_view" model="ir.ui.view"> - <field name="name">res.partner.release.form</field> - <field name="model">res.partner.release</field> - <field name="arch" type="xml"> - <form string="Releases Client"> - <sheet> - <div class="oe_title"> - <h1> - <field name="name" readonly="1" /> - </h1> - </div> - <group> - <group name="partner_details"> - <field name="release_date" /> - <field - name="partner_id" - widget="res_partner_many2one" - options="{'always_reload': True, 'no_create': True, 'no_edit': True}" - /> - </group> - <group name="release_details"> + <!-- Form View --> + <record id="res_partner_release_form_view" model="ir.ui.view"> + <field name="name">res.partner.release.form</field> + <field name="model">res.partner.release</field> + <field name="arch" type="xml"> + <form string="Releases Client"> + <sheet> + <div class="oe_title"> + <h1> + <field name="name" readonly="1" /> + </h1> + </div> + <group> + <group name="partner_details"> + <field name="release_date" /> + <field + name="partner_id" + widget="res_partner_many2one" + options="{'always_reload': True, 'no_create': True, 'no_edit': True}" + /> + </group> + <group name="release_details"> + <field + name="user_id" + options="{'no_create': True, 'no_edit': True}" + /> + <field name="create_date" string="Créé le" /> + <field + name="release_share_link" + widget="CopyClipboardChar" + options="{'string': 'Copier le lien'}" + /> + </group> + <hr /> + <label for="description" class="font-weight-bold" /> + <field name="description" /> + <hr /> + <label for="release_module_ids" class="font-weight-bold" /> + <field + name="release_module_ids" + context="{'default_release_id': active_id}" + > + <tree editable="top"> + <field name="partner_id" invisible="1" /> + <field name="release_id" invisible="1" /> <field - name="user_id" + name="module_id" options="{'no_create': True, 'no_edit': True}" /> - <field name="create_date" string="Créé le" /> - <field - name="release_share_link" - widget="CopyClipboardChar" - options="{'string': 'Copier le lien'}" - /> - </group> - <hr /> - <label for="description" class="font-weight-bold" /> - <field name="description" /> - <hr /> - <label for="release_module_ids" class="font-weight-bold" /> - <field - name="release_module_ids" - context="{'default_release_id': active_id}" - > - <tree editable="top"> - <field name="partner_id" invisible="1" /> - <field name="release_id" invisible="1" /> - <field - name="module_id" - options="{'no_create': True, 'no_edit': True}" - /> - <field name="release_type" /> - <field name="log" /> - </tree> - </field> - </group> - </sheet> - <div class="oe_chatter"> - <field name="message_follower_ids" /> - <field name="activity_ids" /> - <field name="message_ids" /> - </div> - </form> - </field> - </record> + <field name="release_type" /> + <field name="log" /> + </tree> + </field> + </group> + </sheet> + <div class="oe_chatter"> + <field name="message_follower_ids" /> + <field name="activity_ids" /> + <field name="message_ids" /> + </div> + </form> + </field> + </record> - <!-- Tree View --> - <record id="res_partner_release_tree_view" model="ir.ui.view"> - <field name="name">res.partner.release.tree</field> - <field name="model">res.partner.release</field> - <field name="arch" type="xml"> - <tree - string="Releases Client" - banner_route="/lefilament_release/header" - > - <field name="release_date" /> - <field name="user_id" /> - <field name="partner_id" /> - <field name="name" /> - </tree> - </field> - </record> + <!-- Tree View --> + <record id="res_partner_release_tree_view" model="ir.ui.view"> + <field name="name">res.partner.release.tree</field> + <field name="model">res.partner.release</field> + <field name="arch" type="xml"> + <tree banner_route="/lefilament_release/header"> + <field name="release_date" /> + <field name="user_id" /> + <field name="partner_id" /> + <field name="name" /> + </tree> + </field> + </record> - <!-- Pivot View --> - <record id="res_partner_release_pivot_view" model="ir.ui.view"> - <field name="name">res.partner.release.pivot</field> - <field name="model">res.partner.release</field> - <field name="arch" type="xml"> - <pivot string="Releases Client"> - <field name="partner_id" type="row" /> - <field name="release_date" type="col" /> - </pivot> - </field> - </record> + <!-- Pivot View --> + <record id="res_partner_release_pivot_view" model="ir.ui.view"> + <field name="name">res.partner.release.pivot</field> + <field name="model">res.partner.release</field> + <field name="arch" type="xml"> + <pivot string="Releases Client"> + <field name="partner_id" type="row" /> + <field name="release_date" type="col" /> + </pivot> + </field> + </record> - <!-- Action Window --> - <record id="res_partner_release_act_window" model="ir.actions.act_window"> - <field name="name">Releases Client</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">res.partner.release</field> - <field name="view_mode">tree,form,pivot</field> - </record> + <!-- Action Window --> + <record id="res_partner_release_act_window" model="ir.actions.act_window"> + <field name="name">Releases Client</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">res.partner.release</field> + <field name="view_mode">tree,form,pivot</field> + </record> - </data> </odoo> diff --git a/views/res_partner_release_module.xml b/views/res_partner_release_module.xml index 834013b39f46d796ec60e36c16fb9869122c12f8..16da3a700e3ec4a5e176c0b91bfd7ec0854af70d 100644 --- a/views/res_partner_release_module.xml +++ b/views/res_partner_release_module.xml @@ -1,88 +1,85 @@ <?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> - <!-- Search View --> - <record id="res_partner_release_module_search_view" model="ir.ui.view"> - <field name="name">res.partner.release.module.search</field> - <field name="model">res.partner.release.module</field> - <field name="arch" type="xml"> - <search string="Releases"> - <field name="module_id" /> - <field name="release_type" /> + <!-- Search View --> + <record id="res_partner_release_module_search_view" model="ir.ui.view"> + <field name="name">res.partner.release.module.search</field> + <field name="model">res.partner.release.module</field> + <field name="arch" type="xml"> + <search string="Releases"> + <field name="module_id" /> + <field name="release_type" /> - <group expand="1" string="Group By"> - <filter - string="Module" - name="group_module" - context="{'group_by':'module_id'}" - /> - </group> - </search> - </field> - </record> + <group expand="1" string="Group By"> + <filter + string="Module" + name="group_module" + context="{'group_by':'module_id'}" + /> + </group> + </search> + </field> + </record> - <!-- Form View --> - <record id="res_partner_release_module_form_view" model="ir.ui.view"> - <field name="name">res.partner.release.module.form</field> - <field name="model">res.partner.release.module</field> - <field name="arch" type="xml"> - <form string="Releases" create="0" delete="0" edit="0"> - <sheet> - <group> - <group name="module_details"> - <field name="release_date" /> - <field - name="module_id" - options="{'no_create': True, 'no_edit': True}" - /> - </group> - <group name="release_details"> - <field name="release_type" /> - <field name="create_date" string="Créé le" /> - </group> - <hr /> - <label for="log" class="font-weight-bold" /> - <field name="log" /> + <!-- Form View --> + <record id="res_partner_release_module_form_view" model="ir.ui.view"> + <field name="name">res.partner.release.module.form</field> + <field name="model">res.partner.release.module</field> + <field name="arch" type="xml"> + <form string="Releases" create="0" delete="0" edit="0"> + <sheet> + <group> + <group name="module_details"> + <field name="release_date" /> + <field + name="module_id" + options="{'no_create': True, 'no_edit': True}" + /> + </group> + <group name="release_details"> + <field name="release_type" /> + <field name="create_date" string="Créé le" /> </group> - </sheet> - </form> - </field> - </record> + <hr /> + <label for="log" class="font-weight-bold" /> + <field name="log" /> + </group> + </sheet> + </form> + </field> + </record> - <!-- Tree View --> - <record id="res_partner_release_module_tree_view" model="ir.ui.view"> - <field name="name">res.partner.release.module.tree</field> - <field name="model">res.partner.release.module</field> - <field name="arch" type="xml"> - <tree string="Releases" create="0" delete="0" edit="0"> - <field name="release_date" /> - <field name="module_id" /> - <field name="release_type" /> - </tree> - </field> - </record> + <!-- Tree View --> + <record id="res_partner_release_module_tree_view" model="ir.ui.view"> + <field name="name">res.partner.release.module.tree</field> + <field name="model">res.partner.release.module</field> + <field name="arch" type="xml"> + <tree create="0" delete="0" edit="0"> + <field name="release_date" /> + <field name="module_id" /> + <field name="release_type" /> + </tree> + </field> + </record> - <!-- Pivot View --> - <record id="res_partner_release_module_pivot_view" model="ir.ui.view"> - <field name="name">res.partner.release.module.pivot</field> - <field name="model">res.partner.release.module</field> - <field name="arch" type="xml"> - <pivot string="Releases"> - <field name="module_id" type="row" /> - </pivot> - </field> - </record> + <!-- Pivot View --> + <record id="res_partner_release_module_pivot_view" model="ir.ui.view"> + <field name="name">res.partner.release.module.pivot</field> + <field name="model">res.partner.release.module</field> + <field name="arch" type="xml"> + <pivot string="Releases"> + <field name="module_id" type="row" /> + </pivot> + </field> + </record> - <!-- Action Window --> - <record - id="res_partner_release_module_act_window" - model="ir.actions.act_window" - > - <field name="name">Détail Modules</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">res.partner.release.module</field> - <field name="view_mode">tree,form,pivot</field> - </record> + <!-- Action Window --> + <record id="res_partner_release_module_act_window" model="ir.actions.act_window"> + <field name="name">Détail Modules</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">res.partner.release.module</field> + <field name="view_mode">tree,form,pivot</field> + </record> - </data> </odoo> diff --git a/wizard/multi_partner_release_wizard.py b/wizard/multi_partner_release_wizard.py index 35228c6c3ea003bee9cd719664e7542e3c8b8f58..74a69d89d40484c1087aab37063e4ef84f176edc 100644 --- a/wizard/multi_partner_release_wizard.py +++ b/wizard/multi_partner_release_wizard.py @@ -33,7 +33,7 @@ class MultiPartnerReleaseWizard(models.TransientModel): inverse_name="release_id", string="Modules mis à jour", ) - description = fields.Text("Description") + description = fields.Text() # ------------------------------------------------------ # Button actions diff --git a/wizard/multi_partner_release_wizard.xml b/wizard/multi_partner_release_wizard.xml index 436dc3b5f363f98c439f8d2177bdecd0195ddf53..1c48801b855d2f33eddaf314d82d81cadf13d7a5 100644 --- a/wizard/multi_partner_release_wizard.xml +++ b/wizard/multi_partner_release_wizard.xml @@ -1,74 +1,71 @@ <?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright 2022 Le Filament (<https://le-filament.com>) + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> - <data> - <!-- Form View --> - <record id="multi_partner_release_wizard_form_view" model="ir.ui.view"> - <field name="name">multi.partner.release.wizard.form</field> - <field name="model">multi.partner.release.wizard</field> - <field name="arch" type="xml"> - <form string="Releases Client"> - <sheet> - <group> - <group name="partner_details"> - <field name="release_date" /> - <field - name="partner_ids" - widget="many2many_tags" - options="{'always_reload': True, 'no_create': True, 'no_edit': True}" - /> - </group> - <group name="release_details"> - <field - name="user_id" - options="{'no_create': True, 'no_edit': True}" - /> - <field name="create_date" string="Créé le" /> - </group> - <hr /> - <label for="description" class="font-weight-bold" /> - <field name="description" /> - <hr /> - <label for="release_module_ids" class="font-weight-bold" /> + <!-- Form View --> + <record id="multi_partner_release_wizard_form_view" model="ir.ui.view"> + <field name="name">multi.partner.release.wizard.form</field> + <field name="model">multi.partner.release.wizard</field> + <field name="arch" type="xml"> + <form string="Releases Client"> + <sheet> + <group> + <group name="partner_details"> + <field name="release_date" /> <field - name="release_module_ids" - context="{'default_release_id': active_id}" - > - <tree editable="top"> - <field name="release_id" invisible="1" /> - <field - name="module_id" - options="{'no_create': True, 'no_edit': True}" - /> - <field name="release_type" /> - <field name="log" /> - </tree> - </field> + name="partner_ids" + widget="many2many_tags" + options="{'always_reload': True, 'no_create': True, 'no_edit': True}" + /> </group> - <footer> - <button - name="create_releases" - type="object" - string="Créer les releases" - class="btn-primary" + <group name="release_details"> + <field + name="user_id" + options="{'no_create': True, 'no_edit': True}" /> - <button string="Fermer" class="oe_link" special="cancel" /> - </footer> - </sheet> - </form> - </field> - </record> + <field name="create_date" string="Créé le" /> + </group> + <hr /> + <label for="description" class="font-weight-bold" /> + <field name="description" /> + <hr /> + <label for="release_module_ids" class="font-weight-bold" /> + <field + name="release_module_ids" + context="{'default_release_id': active_id}" + > + <tree editable="top"> + <field name="release_id" invisible="1" /> + <field + name="module_id" + options="{'no_create': True, 'no_edit': True}" + /> + <field name="release_type" /> + <field name="log" /> + </tree> + </field> + </group> + <footer> + <button + name="create_releases" + type="object" + string="Créer les releases" + class="btn-primary" + /> + <button string="Fermer" class="oe_link" special="cancel" /> + </footer> + </sheet> + </form> + </field> + </record> - <!-- Action Window --> - <record - id="multi_partner_release_wizard_act_window" - model="ir.actions.act_window" - > - <field name="name">Releases Client</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">multi.partner.release.wizard</field> - <field name="view_mode">form</field> - <field name="target">new</field> - </record> + <!-- Action Window --> + <record id="multi_partner_release_wizard_act_window" model="ir.actions.act_window"> + <field name="name">Releases Client</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">multi.partner.release.wizard</field> + <field name="view_mode">form</field> + <field name="target">new</field> + </record> - </data> </odoo>