From 7313e0bd5a3b95835dd0c9795fb5bd72678e4287 Mon Sep 17 00:00:00 2001 From: Juliana <juliana@le-filament.com> Date: Mon, 2 May 2022 17:03:04 +0200 Subject: [PATCH] [UPD]Pass pre commit --- .editorconfig | 20 ++ .eslintrc.yml | 187 ++++++++++++++++++ .flake8 | 12 ++ .gitignore | 75 +++++++ .isort.cfg | 13 ++ .pre-commit-config.yaml | 127 ++++++++++++ .prettierrc.yml | 8 + .pylintrc | 86 ++++++++ .pylintrc-mandatory | 64 ++++++ data/mail_data.xml | 129 ++++++------ models/__pycache__/__init__.cpython-37.pyc | Bin 266 -> 0 bytes models/__pycache__/res_company.cpython-37.pyc | Bin 506 -> 0 bytes .../res_config_settings.cpython-37.pyc | Bin 574 -> 0 bytes models/__pycache__/res_partner.cpython-37.pyc | Bin 3499 -> 0 bytes models/res_company.py | 2 +- 15 files changed, 659 insertions(+), 64 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintrc.yml create mode 100644 .flake8 create mode 100644 .gitignore create mode 100644 .isort.cfg create mode 100644 .pre-commit-config.yaml create mode 100644 .prettierrc.yml create mode 100644 .pylintrc create mode 100644 .pylintrc-mandatory delete mode 100644 models/__pycache__/__init__.cpython-37.pyc delete mode 100644 models/__pycache__/res_company.cpython-37.pyc delete mode 100644 models/__pycache__/res_config_settings.cpython-37.pyc delete mode 100644 models/__pycache__/res_partner.cpython-37.pyc diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..bfd7ac5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,20 @@ +# Configuration for known file extensions +[*.{css,js,json,less,md,py,rst,sass,scss,xml,yaml,yml}] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{json,yml,yaml,rst,md}] +indent_size = 2 + +# Do not configure editor for libs and autogenerated content +[{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}] +charset = unset +end_of_line = unset +indent_size = unset +indent_style = unset +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..d4cc423 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,187 @@ +env: + browser: true + es6: true + +# See https://github.com/OCA/odoo-community.org/issues/37#issuecomment-470686449 +parserOptions: + ecmaVersion: 2017 + +overrides: + - files: + - "**/*.esm.js" + parserOptions: + sourceType: module + +# Globals available in Odoo that shouldn't produce errorings +globals: + _: readonly + $: readonly + fuzzy: readonly + jQuery: readonly + moment: readonly + odoo: readonly + openerp: readonly + owl: readonly + +# Styling is handled by Prettier, so we only need to enable AST rules; +# see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890 +rules: + accessor-pairs: warn + array-callback-return: warn + callback-return: warn + capitalized-comments: + - warn + - always + - ignoreConsecutiveComments: true + ignoreInlineComments: true + complexity: + - warn + - 15 + constructor-super: warn + dot-notation: warn + eqeqeq: warn + global-require: warn + handle-callback-err: warn + id-blacklist: warn + id-match: warn + init-declarations: error + max-depth: warn + max-nested-callbacks: warn + max-statements-per-line: warn + no-alert: warn + no-array-constructor: warn + no-caller: warn + no-case-declarations: warn + no-class-assign: warn + no-cond-assign: error + no-const-assign: error + no-constant-condition: warn + no-control-regex: warn + no-debugger: error + no-delete-var: warn + no-div-regex: warn + no-dupe-args: error + no-dupe-class-members: error + no-dupe-keys: error + no-duplicate-case: error + no-duplicate-imports: error + no-else-return: warn + no-empty-character-class: warn + no-empty-function: error + no-empty-pattern: error + no-empty: warn + no-eq-null: error + no-eval: error + no-ex-assign: error + no-extend-native: warn + no-extra-bind: warn + no-extra-boolean-cast: warn + no-extra-label: warn + no-fallthrough: warn + no-func-assign: error + no-global-assign: error + no-implicit-coercion: + - warn + - allow: ["~"] + no-implicit-globals: warn + no-implied-eval: warn + no-inline-comments: warn + no-inner-declarations: warn + no-invalid-regexp: warn + no-irregular-whitespace: warn + no-iterator: warn + no-label-var: warn + no-labels: warn + no-lone-blocks: warn + no-lonely-if: error + no-mixed-requires: error + no-multi-str: warn + no-native-reassign: error + no-negated-condition: warn + no-negated-in-lhs: error + no-new-func: warn + no-new-object: warn + no-new-require: warn + no-new-symbol: warn + no-new-wrappers: warn + no-new: warn + no-obj-calls: warn + no-octal-escape: warn + no-octal: warn + no-param-reassign: warn + no-path-concat: warn + no-process-env: warn + no-process-exit: warn + no-proto: warn + no-prototype-builtins: warn + no-redeclare: warn + no-regex-spaces: warn + no-restricted-globals: warn + no-restricted-imports: warn + no-restricted-modules: warn + no-restricted-syntax: warn + no-return-assign: error + no-script-url: warn + no-self-assign: warn + no-self-compare: warn + no-sequences: warn + no-shadow-restricted-names: warn + no-shadow: warn + no-sparse-arrays: warn + no-sync: warn + no-this-before-super: warn + no-throw-literal: warn + no-undef-init: warn + no-undef: error + no-unmodified-loop-condition: warn + no-unneeded-ternary: error + no-unreachable: error + no-unsafe-finally: error + no-unused-expressions: error + no-unused-labels: error + no-unused-vars: error + no-use-before-define: error + no-useless-call: warn + no-useless-computed-key: warn + no-useless-concat: warn + no-useless-constructor: warn + no-useless-escape: warn + no-useless-rename: warn + no-void: warn + no-with: warn + operator-assignment: [error, always] + prefer-const: warn + radix: warn + require-yield: warn + sort-imports: warn + spaced-comment: [error, always] + strict: [error, function] + use-isnan: error + valid-jsdoc: + - warn + - prefer: + arg: param + argument: param + augments: extends + constructor: class + exception: throws + func: function + method: function + prop: property + return: returns + virtual: abstract + yield: yields + preferType: + array: Array + bool: Boolean + boolean: Boolean + number: Number + object: Object + str: String + string: String + requireParamDescription: false + requireReturn: false + requireReturnDescription: false + requireReturnType: false + valid-typeof: warn + yoda: warn diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..e397e8e --- /dev/null +++ b/.flake8 @@ -0,0 +1,12 @@ +[flake8] +max-line-length = 88 +max-complexity = 16 +# B = bugbear +# B9 = bugbear opinionated (incl line length) +select = C,E,F,W,B,B9 +# E203: whitespace before ':' (black behaviour) +# E501: flake8 line length (covered by bugbear B950) +# W503: line break before binary operator (black behaviour) +ignore = E203,E501,W503 +per-file-ignores= + __init__.py:F401 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..818770f --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +/.venv +/.pytest_cache + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg +*.eggs + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Translations +*.mo + +# Pycharm +.idea + +# Eclipse +.settings + +# Visual Studio cache/options directory +.vs/ +.vscode + +# OSX Files +.DS_Store + +# Django stuff: +*.log + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Rope +.ropeproject + +# Sphinx documentation +docs/_build/ + +# Backup files +*~ +*.swp + +# OCA rules +!static/lib/ diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000..0ec187e --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,13 @@ +[settings] +; see https://github.com/psf/black +multi_line_output=3 +include_trailing_comma=True +force_grid_wrap=0 +combine_as_imports=True +use_parentheses=True +line_length=88 +known_odoo=odoo +known_odoo_addons=odoo.addons +sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER +default_section=THIRDPARTY +ensure_newline_before_comments = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..1c6434b --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,127 @@ +exclude: | + (?x) + # NOT INSTALLABLE ADDONS + # END NOT INSTALLABLE ADDONS + # Files and folders generated by bots, to avoid loops + ^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 + ^docs/_templates/.*\.html$| + # You don't usually want a bot to modify your legal texts + (LICENSE.*|COPYING.*) +default_language_version: + python: python3 + node: "14.13.0" +repos: + - repo: local + hooks: + # These files are most likely copier diff rejection junks; if found, + # review them manually, fix the problem (if needed) and remove them + - id: forbidden-files + name: forbidden files + entry: found forbidden files; remove them + language: fail + files: "\\.rej$" + - repo: https://github.com/oca/maintainer-tools + rev: ab1d7f6 + hooks: + # update the NOT INSTALLABLE ADDONS section above + - id: oca-update-pre-commit-excluded-addons + - id: oca-fix-manifest-website + args: ["https://le-filament.com"] + - repo: https://github.com/myint/autoflake + rev: v1.4 + hooks: + - id: autoflake + args: + - --expand-star-imports + - --ignore-init-module-imports + - --in-place + - --remove-all-unused-imports + - --remove-duplicate-keys + - --remove-unused-variables + - repo: https://github.com/psf/black + rev: 20.8b1 + hooks: + - id: black + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.1.2 + hooks: + - id: prettier + name: prettier (with plugin-xml) + additional_dependencies: + - "prettier@2.1.2" + - "@prettier/plugin-xml@0.12.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: v7.8.1 + hooks: + - id: eslint + verbose: true + args: + - --color + - --fix + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + # exclude autogenerated files + exclude: /README\.rst$|\.pot?$ + - id: end-of-file-fixer + # exclude autogenerated files + exclude: /README\.rst$|\.pot?$ + - id: debug-statements + - id: fix-encoding-pragma + args: ["--remove"] + - id: check-case-conflict + - id: check-docstring-first + - id: check-executables-have-shebangs + - id: check-merge-conflict + # exclude files where underlines are not distinguishable from merge conflicts + exclude: /README\.rst$|^docs/.*\.rst$ + - id: check-symlinks + - id: check-xml + - id: mixed-line-ending + args: ["--fix=lf"] + - repo: https://github.com/asottile/pyupgrade + rev: v2.7.2 + hooks: + - id: pyupgrade + args: ["--keep-percent-format"] + - repo: https://github.com/PyCQA/isort + rev: 5.5.1 + hooks: + - id: isort + name: isort except __init__.py + args: + - --settings=. + exclude: /__init__\.py$ + - repo: https://gitlab.com/PyCQA/flake8 + rev: 3.8.3 + hooks: + - id: flake8 + name: flake8 + additional_dependencies: ["flake8-bugbear==20.1.4"] + - repo: https://github.com/PyCQA/pylint + rev: pylint-2.5.3 + hooks: + - id: pylint + name: pylint with optional checks + args: + - --rcfile=.pylintrc + - --exit-zero + verbose: true + additional_dependencies: &pylint_deps + - pylint-odoo==3.5.0 + - id: pylint + name: pylint with mandatory checks + args: + - --rcfile=.pylintrc-mandatory + additional_dependencies: *pylint_deps diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 0000000..5b6d4b3 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1,8 @@ +# Defaults for all prettier-supported languages. +# Prettier will complete this with settings from .editorconfig file. +bracketSpacing: false +printWidth: 88 +proseWrap: always +semi: true +trailingComma: "es5" +xmlWhitespaceSensitivity: "strict" diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..d2466a0 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,86 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +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 + +[MESSAGES CONTROL] +disable=all + +# This .pylintrc contains optional AND mandatory checks and is meant to be +# loaded in an IDE to have it check everything, in the hope this will make +# optional checks more visible to contributors who otherwise never look at a +# green travis to see optional checks that failed. +# .pylintrc-mandatory containing only mandatory checks is used the pre-commit +# config as a blocking check. + +enable=anomalous-backslash-in-string, + api-one-deprecated, + api-one-multi-together, + assignment-from-none, + attribute-deprecated, + class-camelcase, + dangerous-default-value, + dangerous-view-replace-wo-priority, + development-status-allowed, + duplicate-id-csv, + duplicate-key, + duplicate-xml-fields, + duplicate-xml-record-id, + eval-referenced, + eval-used, + incoherent-interpreter-exec-perm, + license-allowed, + manifest-author-string, + manifest-deprecated-key, + manifest-required-author, + manifest-required-key, + manifest-version-format, + method-compute, + method-inverse, + method-required-super, + method-search, + openerp-exception-warning, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + redundant-modulename-xml, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + sql-injection, + too-few-format-args, + translation-field, + translation-required, + unreachable, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + # messages that do not cause the lint step to fail + consider-merging-classes-inherited, + create-user-wo-reset-password, + dangerous-filter-wo-user, + deprecated-module, + file-not-used, + invalid-commit, + missing-newline-extrafiles, + no-utf8-coding-comment, + odoo-addons-relative-import, + old-api7-method-defined, + redefined-builtin, + too-complex, + unnecessary-utf8-coding-comment + + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory new file mode 100644 index 0000000..43ea239 --- /dev/null +++ b/.pylintrc-mandatory @@ -0,0 +1,64 @@ +[MASTER] +load-plugins=pylint_odoo +score=n + +[ODOOLINT] +readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +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 + +[MESSAGES CONTROL] +disable=all + +enable=anomalous-backslash-in-string, + api-one-deprecated, + api-one-multi-together, + assignment-from-none, + attribute-deprecated, + class-camelcase, + dangerous-default-value, + dangerous-view-replace-wo-priority, + development-status-allowed, + duplicate-id-csv, + duplicate-key, + duplicate-xml-fields, + duplicate-xml-record-id, + eval-referenced, + eval-used, + incoherent-interpreter-exec-perm, + license-allowed, + manifest-author-string, + manifest-deprecated-key, + manifest-required-author, + manifest-required-key, + manifest-version-format, + method-compute, + method-inverse, + method-required-super, + method-search, + openerp-exception-warning, + pointless-statement, + pointless-string-statement, + print-used, + redundant-keyword-arg, + redundant-modulename-xml, + reimported, + relative-import, + return-in-init, + rst-syntax-error, + sql-injection, + too-few-format-args, + translation-field, + translation-required, + unreachable, + use-vim-comment, + wrong-tabs-instead-of-spaces, + xml-syntax-error + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no diff --git a/data/mail_data.xml b/data/mail_data.xml index ab20938..cbc65a2 100644 --- a/data/mail_data.xml +++ b/data/mail_data.xml @@ -9,46 +9,48 @@ <field name="email_to">${object.email}</field> <field name="body_html" type="html"> <table - border="0" - cellpadding="0" - cellspacing="0" - style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;" - ><tr><td align="center"> + border="0" + cellpadding="0" + cellspacing="0" + style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;" + ><tr><td align="center"> <table - border="0" - cellpadding="0" - cellspacing="0" - width="590" - style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;" - > + border="0" + cellpadding="0" + cellspacing="0" + width="590" + style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;" + > <tbody> <!-- HEADER --> <tr> <td align="center" style="min-width: 590px;"> <table - border="0" - cellpadding="0" - cellspacing="0" - width="590" - style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" - > + border="0" + cellpadding="0" + cellspacing="0" + width="590" + style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" + > <tr><td valign="middle"> - <span style="font-size: 10px;">Votre compte</span><br /> + <span + style="font-size: 10px;" + >Votre compte</span><br /> <span style="font-size: 20px; font-weight: bold;"> ${object.name} </span> </td><td valign="middle" align="right"> <img - src="/logo.png?company=${object.company_id.id}" - style="padding: 0px; margin: 0px; height: auto; width: 80px;" - alt="${object.company_id.name}" - /> + src="/logo.png?company=${object.company_id.id}" + style="padding: 0px; margin: 0px; height: auto; width: 80px;" + alt="${object.company_id.name}" + /> </td></tr> <tr><td colspan="2" style="text-align:center;"> <hr - width="100%" - style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;" - /> + width="100%" + style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;" + /> </td></tr> </table> </td> @@ -57,33 +59,34 @@ <tr> <td align="center" style="min-width: 590px;"> <table - border="0" - cellpadding="0" - cellspacing="0" - width="590" - style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" - > + border="0" + cellpadding="0" + cellspacing="0" + width="590" + style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" + > <tr><td valign="top" style="font-size: 13px;"> <div> Bonjour ${object.lastname or ''} ${object.firstname or ''},<br - /> <br /> + /> <br /> Vous avez été autorisé à accéder au portail de la plateforme d'Autoconsommation Collective Enercoop.<br - /> + /> Les données de votre compte de connexion sont: <ul> - <li>Nom d'utilisateur: ${object.email or ''}</li> + <li + >Nom d'utilisateur: ${object.email or ''}</li> <li>Portail: <a - href="${'portal_url' in ctx and ctx['portal_url'] or ''}" - >${'portal_url' in ctx and ctx['portal_url'] or ''}</a></li> + href="${'portal_url' in ctx and ctx['portal_url'] or ''}" + >${'portal_url' in ctx and ctx['portal_url'] or ''}</a></li> </ul> Vous pouvez définir ou modifier votre mot de passe. </div> </td></tr> <tr><td style="text-align:center;"> <hr - width="100%" - style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" - /> + width="100%" + style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" + /> </td></tr> </table> </td> @@ -109,7 +112,7 @@ cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;" - ><tr><td align="center"> + ><tr><td align="center"> <table border="0" cellpadding="0" @@ -122,12 +125,12 @@ <tr> <td align="center" style="min-width: 590px;"> <table - border="0" - cellpadding="0" - cellspacing="0" - width="590" - style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" - > + border="0" + cellpadding="0" + cellspacing="0" + width="590" + style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" + > <tr><td valign="middle"> <span style="font-size: 10px;">Votre compte</span><br /> <span style="font-size: 20px; font-weight: bold;"> @@ -136,9 +139,9 @@ </td></tr> <tr><td colspan="2" style="text-align:center;"> <hr - width="100%" - style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" - /> + width="100%" + style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" + /> </td></tr> </table> </td> @@ -147,36 +150,36 @@ <tr> <td align="center" style="min-width: 590px;"> <table - border="0" - cellpadding="0" - cellspacing="0" - width="590" - style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" - > + border="0" + cellpadding="0" + cellspacing="0" + width="590" + style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" + > <tr><td valign="top" style="font-size: 13px;"> <div> Bonjour ${object.name},<br /><br /> Nous avons reçu une demande de réinitialisation de mot de passe pour votre compte de la plateforme d'Autoconsommation Enercoop. Cliquez sur ce lien, valable 24 heures, pour le changer::<br - /> + /> <div style="margin: 16px 0px 16px 0px;"> <a - href="${'portal_url' in ctx and ctx['portal_url'] or ''}" - style="background-color: #95073e; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;" - > + href="${'portal_url' in ctx and ctx['portal_url'] or ''}" + style="background-color: #95073e; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;" + > Changer mot de passe </a> </div> Si vous n'êtes pas à l'origine de cette demande, ignorez cet email.<br - /><br /> + /><br /> Merci, </div> </td></tr> <tr><td style="text-align:center;"> <hr - width="100%" - style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" - /> + width="100%" + style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" + /> </td></tr> </table> </td> diff --git a/models/__pycache__/__init__.cpython-37.pyc b/models/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 892faa3d1fbc9e94159cc25da987d7f5f04af30a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmZ?b<>g{vU|^8cNl3cHz`*br#DQTZ1_lNP1_p*=4F(2=6owSW9EM!RC`LvQn<<AO zmnn(~%x2DE$YqXVW@JcV31-k_eaXncz@W)^i@PYbIKCjUs3b472*yp$&n-yItJGw? zB@B{H&d*EBOph;4Eh)*&OE31*WVyvq1hTe>nSp_!h=qZHVI@Nm8;A`eemU!h7N-^! z>t_|@m!{;G>gT8A=Yt7D6aD1U;*$Ja{lw&C5RNa%FDgmQ(a+6KNzEzNkB`sH%PfhH b*DI*J#bJ}1pHiBWY6mjD7)0<e@-PAbNSi}$ diff --git a/models/__pycache__/res_company.cpython-37.pyc b/models/__pycache__/res_company.cpython-37.pyc deleted file mode 100644 index e3f9c595d8dcf5d05ed2cd831c4813acf5c6308b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmZ?b<>g{vU|>kpPDpyl%E0g##DQTJ1_lNP1_p*=Ed~aL6owSW9EM!RD8^i-D5hNI zC}u_mcZL+E6y_F&6y{W>ES6^GDAp8~U<OUrmmm`~nQyVBWv1q&6yIXY%}+_qDZa&= zSdf_vl7nGpm<=)v3=F9ZQH&`JQA{a}QOv0<S*#$ldl{qHAZFg;3Q8?@&d)7K%&V;8 zE=n!dONMgvLW^<~90LLrQc@Li5)}$^5=&Ck@{4j)K>`Iu`6;EzC7Jno3YmE&sYQ9I znvA#Dic5+z^V0n^*>7>g$LA&HrpCwL;);*Y%}*)K0kL`F;|og@bD%OD@tJuUsYRJ3 zMNA9~47XUEGZKrU*h`CY;u8xBRx%XvFfc%fUvB!L#i>Qb`dJ0}r78KP`uQpO`C!7( zL_fK-xFkPUKQTEOgyReHi%Jr6^dTXmUzA!L5A}~;L1hsu0|Ns)DC9v=z`@AE3KsFx uWV^)zG7{{LB2eHJffU?g^#z45SPjB45Ed`U#T+&epV@&_7lS+@!VCaRYl7YY diff --git a/models/__pycache__/res_config_settings.cpython-37.pyc b/models/__pycache__/res_config_settings.cpython-37.pyc deleted file mode 100644 index 837db4a3dd5f5cb850c32ab1aeeb6cb116cca8e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmZ?b<>g{vU|<l|Nl0>HV_<j;;=nKq0|SEt0|P^`8Uq7E3PTEG4nr<u6k{$^6cZzZ zJ3|Un3UdoX3Uew`7IQOm6iW(AFoP!ROOS3&rdw=jnW;G`#kbgU^HWlDijzUYFw6=w zSb>3oA(bJDF@+(DDTOhLIh7@g6=ZA*OA2c*a}-+&TQGwr`z^ts)MDrSytK^p;M9_m z%)IpCD&eBkV!dRrm|ihVP$)S+w;(aEGCng!ue2y9KCz&nN-wl1N5Qe6Kp`bnAtzCx zASbaTH7&m=Hx(pMP?Voinp~2ZpQn(SSCU$km+Gd;e2cv(6{ITV7F%&iQD$EHEsmnp z#FYHJoJv1U_FEkB@p*~4sqyi*xZ>k;^HWN5Ky04)_`=e}9H<OOd}dxoYEfoM5fcLg z!z~u)jKrc_>`*7IWGLceV1N+6{PaVMQ;UlAvkLM{Q}Rpo^HcKk!GxiSesXDXNq(+= zVsbJF#~0)ml_ciqL&8(PD782q;{SM<|Mdzgi$HP44vI5Sv~n=AFtIQ)F)}fN#r-r{ yZ?S+Z0K2M)8RRs+kfOxA;>^^%5?@d}fz=_L2VwDp6mr-={AvfXp%~;X0cHSC-<@y( diff --git a/models/__pycache__/res_partner.cpython-37.pyc b/models/__pycache__/res_partner.cpython-37.pyc deleted file mode 100644 index 095b2f271d1aa820164d89fc02baf2320d583084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3499 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 diff --git a/models/res_company.py b/models/res_company.py index 7e5a7ab..2ad0cb9 100644 --- a/models/res_company.py +++ b/models/res_company.py @@ -1,7 +1,7 @@ # Copyright 2021 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, api +from odoo import fields, models class ResCompany(models.Model): -- GitLab