From 6c5f35c0124817a0a65620ce93b0bb028f19dd50 Mon Sep 17 00:00:00 2001 From: Juliana <juliana@le-filament.com> Date: Tue, 25 Jul 2023 19:03:53 +0200 Subject: [PATCH] [UPD]Pre commit --- .copier-answers.yml | 24 + .editorconfig | 20 + .eslintrc.yml | 187 +++++++ .flake8 | 12 + .gitignore | 74 +++ .isort.cfg | 13 + .pre-commit-config.yaml | 128 +++++ .prettierrc.yml | 8 + .pylintrc | 123 +++++ .pylintrc-mandatory | 98 ++++ __init__.py | 3 +- __manifest__.py | 4 +- .../__pycache__/__init__.cpython-310.pyc | Bin 196 -> 0 bytes controllers/__pycache__/main.cpython-310.pyc | Bin 2135 -> 0 bytes controllers/main.py | 11 +- models/__pycache__/__init__.cpython-310.pyc | Bin 213 -> 0 bytes .../__pycache__/acc_operation.cpython-310.pyc | Bin 1159 -> 0 bytes models/acc_operation.py | 7 +- static/src/css/acc_style.scss | 30 +- static/src/js/canvas.js | 501 +++++++++--------- templates/operation_templates_page.xml | 113 ++-- templates/portal_layout.xml | 2 +- 22 files changed, 1034 insertions(+), 324 deletions(-) create mode 100644 .copier-answers.yml 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 controllers/__pycache__/__init__.cpython-310.pyc delete mode 100644 controllers/__pycache__/main.cpython-310.pyc delete mode 100644 models/__pycache__/__init__.cpython-310.pyc delete mode 100644 models/__pycache__/acc_operation.cpython-310.pyc diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 0000000..c13a05f --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,24 @@ +# Do NOT update manually; changes here will be overwritten by Copier +_commit: v1.14.2 +_src_path: https://github.com/OCA/oca-addons-repo-template.git +ci: false +dependency_installation_mode: PIP +generate_requirements_txt: false +github_check_license: false +github_ci_extra_env: {} +github_enable_codecov: false +github_enable_makepot: false +github_enable_stale_action: false +github_enforce_dev_status_compatibility: false +include_wkhtmltopdf: false +odoo_version: 16.0 +org_name: Le Filament +org_slug: lefilament +rebel_module_groups: [] +repo_description: null +repo_name: Module Template +repo_slug: template_module +repo_website: https://le-filament.com +travis_apt_packages: [] +travis_apt_sources: [] + 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..9429bc6 --- /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: 2019 + +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..9c283fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +/.venv +/.pytest_cache + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +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..10acf1e --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,128 @@ +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: "16.17.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$" + - id: en-po-files + name: en.po files cannot exist + entry: found a en.po file + language: fail + files: '[a-zA-Z0-9_]*/i18n/en\.po$' + - repo: https://github.com/oca/maintainer-tools + rev: 4cd2b852214dead80822e93e6749b16f2785b2fe + 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.6.1 + 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: 22.8.0 + hooks: + - id: black + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + name: prettier (with plugin-xml) + additional_dependencies: + - "prettier@2.7.1" + - "@prettier/plugin-xml@2.2.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.24.0 + hooks: + - id: eslint + verbose: true + args: + - --color + - --fix + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.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.38.2 + hooks: + - id: pyupgrade + args: ["--keep-percent-format"] + - repo: https://github.com/PyCQA/isort + rev: 5.12.0 + hooks: + - id: isort + name: isort except __init__.py + args: + - --settings=. + exclude: /__init__\.py$ + - repo: https://github.com/PyCQA/flake8 + rev: 3.9.2 + hooks: + - id: flake8 + name: flake8 + additional_dependencies: ["flake8-bugbear==21.9.2"] + - repo: https://github.com/OCA/pylint-odoo + rev: 7.0.2 + hooks: + - id: pylint_odoo + name: pylint with optional checks + args: + - --rcfile=.pylintrc + - --exit-zero + verbose: true + - id: pylint_odoo + args: + - --rcfile=.pylintrc-mandatory 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..71c476d --- /dev/null +++ b/.pylintrc @@ -0,0 +1,123 @@ + + +[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=16.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, + 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, + external-request-timeout, + # 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-manifest-dependency, + missing-newline-extrafiles, + missing-readme, + 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..ed2c217 --- /dev/null +++ b/.pylintrc-mandatory @@ -0,0 +1,98 @@ + +[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=16.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, + 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, + external-request-timeout + +[REPORTS] +msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} +output-format=colorized +reports=no diff --git a/__init__.py b/__init__.py index 6ea0080..09e3e28 100644 --- a/__init__.py +++ b/__init__.py @@ -1,5 +1,4 @@ # Copyright 2023 Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -from . import controllers -from . import models +from . import controllers, models diff --git a/__manifest__.py b/__manifest__.py index 69db56a..3fbb491 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -21,8 +21,8 @@ "installable": True, "auto_install": False, "assets": { - 'web.assets_frontend': [ - 'oacc_portal_overview_cdc/static/src/js/canvas.js', + "web.assets_frontend": [ + "oacc_portal_overview_cdc/static/src/js/canvas.js", ], }, } diff --git a/controllers/__pycache__/__init__.cpython-310.pyc b/controllers/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index dde1548f3599afcec4ab823d5d8aa68f529396b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmd1j<>g{vU|`U@xh!QW0|Ucj5C<7EF)%PVFfcF_3otM+q%fo~<}l<kMlmunq%Z|D zXfnTKWME*>WW2?ao0ysBr^$4Sp$Md7B|{Ml0|SKk<)t55oLW?@pH+}wnv!3tpP!PS z4<-!F^pi`AOY(E|^AnSk!9;vPeo;wcj(&1}UP)1YP7X+4e0*kJW=VX!UP0w84x8Nk Ql+v73JCMD_AgctJ0ddYSrT_o{ diff --git a/controllers/__pycache__/main.cpython-310.pyc b/controllers/__pycache__/main.cpython-310.pyc deleted file mode 100644 index 4d415a7cce5c94f1d2b01d25fefadcbf37204d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2135 zcmd1j<>g{vU|{(6aDPe-9|OZ<5C<8vFfcGUFfcF_yD%^?q%fo~<}l<kMlmvi*i1Q0 zxy(__U^a6OOD<~^E11oa!<Ne)#m>m!&XB^I!q&o&!j{U~%pAp<!XC_^$?+0oz9!=> zmW+~;0!_wS>_w@CrK!awnvA#joJ)&K@^e#*0`iMW5_2>eZwX`;$CnnT7R6`gm82Hs zCFUf9bR%Onm<tma7#LC+q8L*cqL@;dvsh9X(-~8kQkYX%QdoOgQrJ@1TNs)dqgcUm z94K;}DO_MVHn1EwiX2Z0FIbK}g)f*vlfMWQB2|X^`30#(i6xo&dHOcF`6;P68cK=D z$$D^6B~2?h+fKhAH@}F9fq~%`3&<}an#{LYN-7IdZ?PnnmSo&wFHcP>&MZky1}TAg zjgx_aft!JW!JC1B;d2oK14AZ5EprXy0)`aEg^V#wwJf!)U>*~g$5zW;!@htqg?S-k zEqe{)0;YuwwH!4ZP!WzA<^>?VEDISHGBPqicr}bEEHx}OtTh}p>?w>XtaCU(awV(_ z*izVPm=`hyGib8=-C`+EP0hZ=oRV1ii$gU<Uo}@>HS!j7L2mv^j$52?AKv25P0Y-T z&rixqO)j~`S&*2X8lRV#n|g~YC9xzmzPKc@sN@z0n4OxJ0%hf9=D}Er6}MQ6lM{1N ztJLxnlau2Mz|kL{UzS=_mYG@}pPYgewDBO@*>CZrr<TO$Bo>#%rzBS1;wUaDN-N3C zO})hn5>Lx4f=aNJ7J%%%B?=NQOUx-vEsoF3%PfgcFG?)PC}IZ13R_WXUP@}wO3qs> z#i==IMFJo}rtI=tyby_ah`u6W1_p*A5s)OrFDa=>MPeW^Q3eKvl?+8H3=9mvg7rg- zQ;UlAvkLM{Q}Rpo^HcKk!Gxiielj?D>x29VCa`%_KRG|Iq$ocp2V@8+SoI1ji})BA z82CXcL5+cdfrX2YiI0hkk%N(ok&lUmiHV7c5gD@lVENC(TP1{=ne+;B^Q+8AOSj4S zdBvr<sYNI$6I5XEKvQOM19ej-V-_g=u`Fb)<pifv&KkxV#uQehbjmh|6P!-j7jUGo zL(?gTUlAy)6oFh-#0!cau7bp(k~~nckrKrU@<qNTXA~!h0rE~UIEIS^K~X0JBH$5Q z1d2&WoQg9rFjQ%Sq6%9qA#!>=%v4RzB1w>8QXoPaM96>$S&(}KK&d(<H7BzywWu;a zGo|<zTW(@OL23#(0T#(IFfeFx6)Aw!gA!knB8a5~A`nhf265rZEs6(bFUUA>(t{AH zAp1CAlE$F2TMHx6@L)+cOpGkwS^o3zRf(e|9GF>E=A@;bf};GC(&UnS)a1j7RIn9+ z(vl`SM)a|Ov=)I9e3cFnF#u8xwx~z~6h`tO0+bh#0)!K;CJH1A%0^WZX#RvN@zdnE z#SsrK!Q$g@amB~y=BJeAq{heJ;)#zhEKSS-m2L6ykRqM6D8IBM6`VthKmlE(1F`^N zJ(vZG6mZP}N}a_<3=9k$4B(9WpNSciby<FKaj?iRF)<<Y<&pV(9ANz*r?G&F6o}=V zAf_IuA_XU;C=D<_F(oBGuUHQ$<n)jV6+KX)0yZp45m|Y8Y7&aF(vr-a;v!ZYzPZH# as`pBBQtcQ)NemQ`Jj^_dJj^^yBFq3iOEo$G diff --git a/controllers/main.py b/controllers/main.py index 45e3d3b..35ddb40 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -7,11 +7,8 @@ from odoo.http import request # from odoo.addons.portal.controllers.portal import CustomerPortal as CustomerPortal from odoo.addons.oacc_portal.controllers.main import CustomerPortal as CustomerPortal -from odoo.addons.web.controllers.utils import is_user_internal - class CustomerPortal(CustomerPortal): - @http.route( [ '/operation/<model("acc.operation"):operation>/pmo', @@ -85,7 +82,9 @@ class CustomerPortal(CustomerPortal): } ) - return request.render("oacc_portal_overview_cdc.operation_consumer", render_values) + return request.render( + "oacc_portal_overview_cdc.operation_consumer", render_values + ) @http.route( [ @@ -121,4 +120,6 @@ class CustomerPortal(CustomerPortal): } ) - return request.render("oacc_portal_overview_cdc.operation_productor", render_values) + return request.render( + "oacc_portal_overview_cdc.operation_productor", render_values + ) diff --git a/models/__pycache__/__init__.cpython-310.pyc b/models/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index c87b3b9315c9a2c142e8727bd002fdf357b83d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmd1j<>g{vU|^8nw?AbD0|Ucj5C<7EF)%PVFfcF_3otM+q%fo~<}l<kMlmunq%Z|D zXfnTKWME*>WW2?jn4BD+UyxdqSdy8a=cmbZi=halbtOX)3j+g$_!XodTAW%`te;ho zUz(C%s-K^dpARMs&GeH?i%arz_45;xlfguML4Hw5VorR1S!z*PW@>qSa!Rs(ZhlH? kPO*M`d}dx|NqoFsLFFwDo80`A(wtN~kVA?=Rthi!0CPe&hX4Qo diff --git a/models/__pycache__/acc_operation.cpython-310.pyc b/models/__pycache__/acc_operation.cpython-310.pyc deleted file mode 100644 index c9cfd1704e44c5c9d66e4eb29f1bc7ccebe9eb98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmd1j<>g{vU|=XXzCXp6hk@ZSh=Yt-7#J8F7#J9ewHO!}QW#Pga~N_NqZo6UqL^}- zqnH^P+!<1sQkYv9QkYYjvRIm#qgYc|f*CYfUxG~0WWL3gmYJH9QhbXoH$Npcr}!3g zVnJpyNDdh@!EBLWU|>jPh+<4(h+;}%jADkE9mN7M^A?X|a<YFxYEfcIW`153Z(?$? zUOtSQ%!p*7AOiyfCj$e6Gsx-N7#J987#1)rWME{-WT<7VVOYSJ!nlwzhN+gRmbr#$ z0aFUoLdIIA8fGYq8LWaCtb(PMwT1;M&Qik)WwC-)uz*#t)w0*HLB-i>*r6<TunJbN z3XWRN8V;y9M-3;G#aY8t!(78s!&<{u!(PKt!<oW1hohFOhO34#h24gshB25ylf&;8 zb4p@m6^Cl1u4=BXYRWB^^3>GqTdcYHc_kUQSSnK!i!?cI@ueh|q{gQtR>l{XBo>w2 z;(_y1^HOf{gLxo*P-$L-07zZ{%mteWRRA#$A_7tYF#%*5Q~|^UumDJ&J0-CsF}^G@ zr!=)#ljRmyYF=?^QEGgCUg|BL^wg60oW$Z1kn?VF6qgjGm1O3o-r@y`r)3sFBs2wY zu@tA~q}^hJ7*YgEl||eP3=Bm)Ac7Y}@PP<^5Fr2}Kyh3o#K6FCiwo=lh}Sv5Y>=ZM ztd!KGTM$-mVg-zqnRkn&EHS5eB}0)s0|UdaaQ)EY)S_bjtb+W~l>Act{FMBBFkxt> zpIlm8lAo)epO~BsCgKb7i%Jr6;`7T=i^?)n%j1(%lJy~pTR$;5IUb%M^$IF)iGq9y z@lt$dUS>&rdQoCQh9)Rg8Zj_1a4@kj@iB5SaxwBTaWSEiOw3G-$dK&^2R932l@f9m z(8FrHpC;=qj`;Yz#N5>Q_*-1@@wxdar8yurPkek~X<`mkh9f>RFC(=mv!qB76rS>^ zgaU}m%D}+D4stCU$h8bCj68}(ATd8pwp%QqP$~jt-6Cd?T2N7Oi`5sD&B1EGL5oCy W47|l*196NUD7O}aw1_Z^F#`a|<vu9@ diff --git a/models/acc_operation.py b/models/acc_operation.py index 0f2bf2d..6c6c6a7 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -1,11 +1,11 @@ # Copyright 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, api +from odoo import models class AccOperation(models.Model): - _inherit = 'acc.operation' + _inherit = "acc.operation" # ------------------------------------------------------ # Fields declaration @@ -76,7 +76,6 @@ class AccOperation(models.Model): values["data_values"] = data_values return values - date_start, date_end = self.get_last_day("week") date_deb, date_max = self.get_last_day("day") @@ -90,4 +89,4 @@ class AccOperation(models.Model): "date_start": date_start, } - return vals \ No newline at end of file + return vals diff --git a/static/src/css/acc_style.scss b/static/src/css/acc_style.scss index bb0b829..52ccce8 100644 --- a/static/src/css/acc_style.scss +++ b/static/src/css/acc_style.scss @@ -10,31 +10,31 @@ Commons } .tooltip-oacc { - position: relative; - display: inline-block; + position: relative; + display: inline-block; } .tooltip-oacc .tooltiptext { - visibility: hidden; - width: 200px; - background-color: black; - color: #fff; - text-align: center; - border-radius: 6px; - padding: 5px 10px; + visibility: hidden; + width: 200px; + background-color: black; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px 10px; - /* Position the tooltip */ - position: absolute; - z-index: 1; + /* Position the tooltip */ + position: absolute; + z-index: 1; } .tooltip-oacc .tooltiptext { - top: -5px; - right: 105%; + top: -5px; + right: 105%; } .tooltip-oacc:hover .tooltiptext { - visibility: visible; + visibility: visible; } /************************** diff --git a/static/src/js/canvas.js b/static/src/js/canvas.js index 1bd6372..33aba79 100644 --- a/static/src/js/canvas.js +++ b/static/src/js/canvas.js @@ -1,265 +1,260 @@ -odoo.define('oacc_portal_overview_cdc.canvas', function (require) { -'use strict'; +odoo.define("oacc_portal_overview_cdc.canvas", function (require) { + "use strict"; -var core = require('web.core'); -const rpc = require("web.rpc"); -var publicWidget = require('web.public.widget'); + var core = require("web.core"); + var publicWidget = require("web.public.widget"); -var _t = core._t; -var concurrency = require('web.concurrency'); -var dp = new concurrency.DropPrevious(); + var concurrency = require("web.concurrency"); -publicWidget.registry.oaccPortalOverviewCdc = publicWidget.Widget.extend({ - jsLibs: [ - '/web/static/lib/Chart/Chart.js', - ], - selector: '.oe_website_canvas', - events: { -// 'change select[name="shipping_id"]': '_onSetAddress', - 'click .btn-period': '_onBtnPeriodClick', - }, + publicWidget.registry.oaccPortalOverviewCdc = publicWidget.Widget.extend({ + jsLibs: ["/web/static/lib/Chart/Chart.js"], + selector: ".oe_website_canvas", + events: { + // 'change select[name="shipping_id"]': '_onSetAddress', + "click .btn-period": "_onBtnPeriodClick", + }, - /** - * @constructor - */ - init: function (parent, options) { - this._super.apply(this, arguments); - this.scale = "week"; - this.minDate = null; - this.maxDate = null; -// console.log("---- INIT -----"); -// console.log(this); -// console.log("parent"); -// console.log(parent); -// console.log("options"); -// console.log(options); -// this._rpc({ -// model: 'acc.operation', -// method: 'get_values_init_graph', -// args: [some, args], -// }); - }, + /** + * @class + */ + init: function () { + this._super.apply(this, arguments); + this.scale = "week"; + this.minDate = null; + this.maxDate = null; + // Console.log("---- INIT -----"); + // console.log(this); + // console.log("parent"); + // console.log(parent); + // console.log("options"); + // console.log(options); + // this._rpc({ + // model: 'acc.operation', + // method: 'get_values_init_graph', + // args: [some, args], + // }); + }, - /** - * @override - */ - start: function () { - var self = this; - console.log("---- START -----"); - console.log(self); - return this._super().then(function () { -// self.render_dashboards(); - self.render_graphs(); -// self.$el.parent().addClass('oe_background_grey'); - }); + /** + * @override + */ + start: function () { + var self = this; + console.log("---- START -----"); + console.log(self); + return this._super().then(function () { + // Self.render_dashboards(); + self.render_graphs(); + // Self.$el.parent().addClass('oe_background_grey'); + }); + }, + render_graphs: function () { + var self = this; + self.render_line_graph(); + // Self.render_donuts_graph(); + // self.render_histo_graph(); + }, - }, - render_graphs: function () { - var self = this; - self.render_line_graph(); -// self.render_donuts_graph(); -// self.render_histo_graph(); - }, + render_line_graph: function () { + var self = this; + var ctx_line_conso = self.$(".line_chart_conso"); + var ctx_line_prod = self.$(".line_chart_prod"); + var ctx_donuts_conso = self.$(".donuts_chart_conso"); + var ctx_donuts_prod = self.$(".donuts_chart_prod"); + var ctx_histo_conso = self.$(".histo_chart_conso"); + var ctx_histo_prod = self.$(".histo_chart_prod"); + this._rpc({ + model: "acc.operation", + method: "graph_view_global", + args: [1, self.scale, "2023-02-01", "2023-03-01"], + }).then(function (chart_data) { + var chart_line_conso = new Chart( + ctx_line_conso, + chart_data.line_chart_conso_line + ); + var chart_donuts_conso = new Chart( + ctx_donuts_conso, + chart_data.donuts_chart_conso + ); + var chart_histo_conso = new Chart( + ctx_histo_conso, + chart_data.histo_chart_conso + ); + var chart_line_prod = new Chart( + ctx_line_prod, + chart_data.line_chart_prod_line + ); + var chart_donuts_prod = new Chart( + ctx_donuts_prod, + chart_data.donuts_chart_prod + ); + var chart_histo_prod = new Chart( + ctx_histo_prod, + chart_data.histo_chart_prod + ); + }); + }, + // Start: function () { + // console.log("TEST"); + // var self = this; + // // var $carriers = $('#delivery_carrier input[name="delivery_type"]'); + // // var $payButton = $('button[name="o_payment_submit_button"]'); + // // // Workaround to: + // // // - update the amount/error on the label at first rendering + // // // - prevent clicking on 'Pay Now' if the shipper rating fails + // // if ($carriers.length > 0) { + // // if ($carriers.filter(':checked').length === 0) { + // // $payButton.prop('disabled', true); + // // var disabledReasons = $payButton.data('disabled_reasons') || {}; + // // disabledReasons.carrier_selection = true; + // // $payButton.data('disabled_reasons', disabledReasons); + // // } + // // $carriers.filter(':checked').click(); + // // } + // // + // // // Asynchronously retrieve every carrier price + // // _.each($carriers, function (carrierInput, k) { + // // self._showLoading($(carrierInput)); + // // self._rpc({ + // // route: '/shop/carrier_rate_shipment', + // // params: { + // // 'carrier_id': carrierInput.value, + // // }, + // // }).then(self._handleCarrierUpdateResultBadge.bind(self)); + // // }); + // + // return this._super.apply(this, arguments); + // }, - render_line_graph: function () { - var self = this; - var ctx_line_conso = self.$(".line_chart_conso"); - var ctx_line_prod = self.$(".line_chart_prod"); - var ctx_donuts_conso = self.$(".donuts_chart_conso"); - var ctx_donuts_prod = self.$(".donuts_chart_prod"); - var ctx_histo_conso = self.$(".histo_chart_conso"); - var ctx_histo_prod = self.$(".histo_chart_prod"); - this._rpc({ - model: "acc.operation", - method: "graph_view_global", - args: [ - 1, - self.scale, - "2023-02-01", - "2023-03-01", - ], - }).then(function (chart_data) { - var chart_line_conso = new Chart(ctx_line_conso, - chart_data.line_chart_conso_line - ); - var chart_donuts_conso = new Chart(ctx_donuts_conso, - chart_data.donuts_chart_conso - ); - var chart_histo_conso = new Chart(ctx_histo_conso, - chart_data.histo_chart_conso); - var chart_line_prod = new Chart(ctx_line_prod, - chart_data.line_chart_prod_line - ); - var chart_donuts_prod = new Chart(ctx_donuts_prod, - chart_data.donuts_chart_prod - ); - var chart_histo_prod = new Chart(ctx_histo_prod, - chart_data.histo_chart_prod); - }); - }, -// start: function () { -// console.log("TEST"); -// var self = this; -//// var $carriers = $('#delivery_carrier input[name="delivery_type"]'); -//// var $payButton = $('button[name="o_payment_submit_button"]'); -//// // Workaround to: -//// // - update the amount/error on the label at first rendering -//// // - prevent clicking on 'Pay Now' if the shipper rating fails -//// if ($carriers.length > 0) { -//// if ($carriers.filter(':checked').length === 0) { -//// $payButton.prop('disabled', true); -//// var disabledReasons = $payButton.data('disabled_reasons') || {}; -//// disabledReasons.carrier_selection = true; -//// $payButton.data('disabled_reasons', disabledReasons); -//// } -//// $carriers.filter(':checked').click(); -//// } -//// -//// // Asynchronously retrieve every carrier price -//// _.each($carriers, function (carrierInput, k) { -//// self._showLoading($(carrierInput)); -//// self._rpc({ -//// route: '/shop/carrier_rate_shipment', -//// params: { -//// 'carrier_id': carrierInput.value, -//// }, -//// }).then(self._handleCarrierUpdateResultBadge.bind(self)); -//// }); -// -// return this._super.apply(this, arguments); -// }, + // -------------------------------------------------------------------------- + // Private + // -------------------------------------------------------------------------- - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- + /** + * @private + * @param {jQuery} $carrierInput + */ + // _showLoading: function ($carrierInput) { + // $carrierInput.siblings('.o_wsale_delivery_badge_price').empty(); + // $carrierInput.siblings('.o_wsale_delivery_badge_price').append('<span class="fa fa-circle-o-notch fa-spin"/>'); + // }, + /** + * Update the total cost according to the selected shipping method + * + * @private + * @param {float} amount : The new total amount of to be paid + */ + // _updateShippingCost: function(amount){ + // core.bus.trigger('update_shipping_cost', amount); + // }, + /** + * @private + * @param {Object} result + */ + // _handleCarrierUpdateResult: function (result) { + // this._handleCarrierUpdateResultBadge(result); + // var $payButton = $('button[name="o_payment_submit_button"]'); + // var $amountDelivery = $('#order_delivery .monetary_field'); + // var $amountUntaxed = $('#order_total_untaxed .monetary_field'); + // var $amountTax = $('#order_total_taxes .monetary_field'); + // var $amountTotal = $('#order_total .monetary_field, #amount_total_summary.monetary_field'); + // + // if (result.status === true) { + // $amountDelivery.html(result.new_amount_delivery); + // $amountUntaxed.html(result.new_amount_untaxed); + // $amountTax.html(result.new_amount_tax); + // $amountTotal.html(result.new_amount_total); + // var disabledReasons = $payButton.data('disabled_reasons') || {}; + // disabledReasons.carrier_selection = false; + // $payButton.data('disabled_reasons', disabledReasons); + // $payButton.prop('disabled', _.contains($payButton.data('disabled_reasons'), true)); + // } else { + // $amountDelivery.html(result.new_amount_delivery); + // $amountUntaxed.html(result.new_amount_untaxed); + // $amountTax.html(result.new_amount_tax); + // $amountTotal.html(result.new_amount_total); + // } + // if (result.new_amount_total_raw !== undefined) { + // this._updateShippingCost(result.new_amount_total_raw); + // } + // }, + /** + * @private + * @param {Object} result + */ - /** - * @private - * @param {jQuery} $carrierInput - */ -// _showLoading: function ($carrierInput) { -// $carrierInput.siblings('.o_wsale_delivery_badge_price').empty(); -// $carrierInput.siblings('.o_wsale_delivery_badge_price').append('<span class="fa fa-circle-o-notch fa-spin"/>'); -// }, - /** - * Update the total cost according to the selected shipping method - * - * @private - * @param {float} amount : The new total amount of to be paid - */ -// _updateShippingCost: function(amount){ -// core.bus.trigger('update_shipping_cost', amount); -// }, - /** - * @private - * @param {Object} result - */ -// _handleCarrierUpdateResult: function (result) { -// this._handleCarrierUpdateResultBadge(result); -// var $payButton = $('button[name="o_payment_submit_button"]'); -// var $amountDelivery = $('#order_delivery .monetary_field'); -// var $amountUntaxed = $('#order_total_untaxed .monetary_field'); -// var $amountTax = $('#order_total_taxes .monetary_field'); -// var $amountTotal = $('#order_total .monetary_field, #amount_total_summary.monetary_field'); -// -// if (result.status === true) { -// $amountDelivery.html(result.new_amount_delivery); -// $amountUntaxed.html(result.new_amount_untaxed); -// $amountTax.html(result.new_amount_tax); -// $amountTotal.html(result.new_amount_total); -// var disabledReasons = $payButton.data('disabled_reasons') || {}; -// disabledReasons.carrier_selection = false; -// $payButton.data('disabled_reasons', disabledReasons); -// $payButton.prop('disabled', _.contains($payButton.data('disabled_reasons'), true)); -// } else { -// $amountDelivery.html(result.new_amount_delivery); -// $amountUntaxed.html(result.new_amount_untaxed); -// $amountTax.html(result.new_amount_tax); -// $amountTotal.html(result.new_amount_total); -// } -// if (result.new_amount_total_raw !== undefined) { -// this._updateShippingCost(result.new_amount_total_raw); -// } -// }, - /** - * @private - * @param {Object} result - */ + // -------------------------------------------------------------------------- + // Handlers + // -------------------------------------------------------------------------- + /** + * @private + * @param {Event} ev + */ + // _onAddIconClick: function(event){ + // var self = this; + // this._rpc({ + // model: record.model, + // method: 'save_record', + // context: { + // model: record.model, + // record: record, + // }, + // }).then(function () { + // self._render() + // }); + // + // } + _onBtnPeriodClick: function (ev) { + var $iframe = $(ev.currentTarget).val(); + console.log($iframe); + var objquote = $iframe.replaceAll("'", '"'); + console.log(objquote); + const obj = JSON.parse(objquote); + var first_day = obj.first_day; + var last_day = obj.last_day; - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @private - * @param {Event} ev - */ -// _onAddIconClick: function(event){ -// var self = this; -// this._rpc({ -// model: record.model, -// method: 'save_record', -// context: { -// model: record.model, -// record: record, -// }, -// }).then(function () { -// self._render() -// }); -// -// } - _onBtnPeriodClick: function (ev) { - - var $iframe = $(ev.currentTarget).val(); - console.log($iframe); - var objquote = $iframe.replaceAll("'", '"'); - console.log(objquote); - const obj = JSON.parse(objquote); - var first_day = obj.first_day; - var last_day = obj.last_day; - -// var maxPage = $iframe.contents().find('#page_count').val(); -// this._rpc({ -// route: "/shop/cart/update_json", -// params: { -// line_id: line_id, -// product_id: parseInt($input.data('product-id'), 10), -// set_qty: value -// }, -// }).then(function (data) { -// var $radio = $(ev.currentTarget).find('input[type="radio"]'); -// this._showLoading($radio); -// $radio.prop("checked", true); -// var $payButton = $('button[name="o_payment_submit_button"]'); -// $payButton.prop('disabled', true); -// var disabledReasons = $payButton.data('disabled_reasons') || {}; -// disabledReasons.carrier_selection = true; -// $payButton.data('disabled_reasons', disabledReasons); -// dp.add(this._rpc({ -// route: '/shop/update_carrier', -// params: { -// carrier_id: $radio.val(), -// }, -// })).then(this._handleCarrierUpdateResult.bind(this)); - }, - /** - * @private - * @param {Event} ev - */ -// _onSetAddress: function (ev) { -// var value = $(ev.currentTarget).val(); -// var $providerFree = $('select[name="country_id"]:not(.o_provider_restricted), select[name="state_id"]:not(.o_provider_restricted)'); -// var $providerRestricted = $('select[name="country_id"].o_provider_restricted, select[name="state_id"].o_provider_restricted'); -// if (value === 0) { -// // Ship to the same address : only show shipping countries available for billing -// $providerFree.hide().attr('disabled', true); -// $providerRestricted.show().attr('disabled', false).change(); -// } else { -// // Create a new address : show all countries available for billing -// $providerFree.show().attr('disabled', false).change(); -// $providerRestricted.hide().attr('disabled', true); -// } -// }, -}); + // Var maxPage = $iframe.contents().find('#page_count').val(); + // this._rpc({ + // route: "/shop/cart/update_json", + // params: { + // line_id: line_id, + // product_id: parseInt($input.data('product-id'), 10), + // set_qty: value + // }, + // }).then(function (data) { + // var $radio = $(ev.currentTarget).find('input[type="radio"]'); + // this._showLoading($radio); + // $radio.prop("checked", true); + // var $payButton = $('button[name="o_payment_submit_button"]'); + // $payButton.prop('disabled', true); + // var disabledReasons = $payButton.data('disabled_reasons') || {}; + // disabledReasons.carrier_selection = true; + // $payButton.data('disabled_reasons', disabledReasons); + // dp.add(this._rpc({ + // route: '/shop/update_carrier', + // params: { + // carrier_id: $radio.val(), + // }, + // })).then(this._handleCarrierUpdateResult.bind(this)); + }, + /** + * @private + * @param {Event} ev + */ + // _onSetAddress: function (ev) { + // var value = $(ev.currentTarget).val(); + // var $providerFree = $('select[name="country_id"]:not(.o_provider_restricted), select[name="state_id"]:not(.o_provider_restricted)'); + // var $providerRestricted = $('select[name="country_id"].o_provider_restricted, select[name="state_id"].o_provider_restricted'); + // if (value === 0) { + // // Ship to the same address : only show shipping countries available for billing + // $providerFree.hide().attr('disabled', true); + // $providerRestricted.show().attr('disabled', false).change(); + // } else { + // // Create a new address : show all countries available for billing + // $providerFree.show().attr('disabled', false).change(); + // $providerRestricted.hide().attr('disabled', true); + // } + // }, + }); }); diff --git a/templates/operation_templates_page.xml b/templates/operation_templates_page.xml index b67c22f..2bc7977 100644 --- a/templates/operation_templates_page.xml +++ b/templates/operation_templates_page.xml @@ -8,20 +8,20 @@ <div id="wrap" t-attf-class="wrap mt-0"> <div class="container oe_website_canvas text-center mb-5"> <div class="row mt-4 text-center"> - <t t-call="oacc_portal_overview_cdc.nav_button"/> + <t t-call="oacc_portal_overview_cdc.nav_button" /> <div class="col-6"> <h2>La consommation</h2> - <t t-call="oacc_portal_overview_cdc.profil_conso"/> - <t t-call="oacc_portal_overview_cdc.bilan_conso"/> - <t t-call="oacc_portal_overview_cdc.cdc_conso"/> + <t t-call="oacc_portal_overview_cdc.profil_conso" /> + <t t-call="oacc_portal_overview_cdc.bilan_conso" /> + <t t-call="oacc_portal_overview_cdc.cdc_conso" /> </div> <div class="col-6"> <h2>La Production</h2> - <t t-call="oacc_portal_overview_cdc.profil_prod"/> - <t t-call="oacc_portal_overview_cdc.bilan_prod"/> - <t t-call="oacc_portal_overview_cdc.cdc_prod"/> + <t t-call="oacc_portal_overview_cdc.profil_prod" /> + <t t-call="oacc_portal_overview_cdc.bilan_prod" /> + <t t-call="oacc_portal_overview_cdc.cdc_prod" /> </div> </div> @@ -39,17 +39,26 @@ <div class="row mt-4"> <div class="col-3"> <h3>La Consommation</h3> - <ul - class="nav nav-tabs o_wslides_nav_tabs flex-column" - > + <ul class="nav nav-tabs o_wslides_nav_tabs flex-column"> <li class="nav-item"><a href="#">Globale</a></li> <li class="nav-item" t-foreach="consumers" t-as="cons"> - <a href="cons.name"><t t-out="cons.name"/></a> - <ul class="nav nav-tabs o_wslides_nav_tabs flex-column"> - <t t-set="prm_ids" t-att-value="operation.acc_delivery_ids.filtered( - lambda r: r.partner_id == cons)" /> - <li t-foreach="prm_ids" t-as="prm" class="nav-item" > - <a href="prm.name"><t t-out="prm.name"/> </a> + <a href="cons.name"><t t-out="cons.name" /></a> + <ul + class="nav nav-tabs o_wslides_nav_tabs flex-column" + > + <t + t-set="prm_ids" + t-att-value="operation.acc_delivery_ids.filtered( + lambda r: r.partner_id == cons)" + /> + <li + t-foreach="prm_ids" + t-as="prm" + class="nav-item" + > + <a href="prm.name"><t + t-out="prm.name" + /> </a> </li> </ul> </li> @@ -69,17 +78,23 @@ </div> <div class="col-9"> <div class="row"> - <t t-call="oacc_portal_overview_cdc.nav_button"/> + <t t-call="oacc_portal_overview_cdc.nav_button" /> <div class="row mb32"> <div class="col-md-6 col-12"> - <t t-call="oacc_portal_overview_cdc.profil_conso"/> + <t + t-call="oacc_portal_overview_cdc.profil_conso" + /> </div> <div class="col-md-6 col-12"> - <t t-call="oacc_portal_overview_cdc.bilan_conso"/> + <t + t-call="oacc_portal_overview_cdc.bilan_conso" + /> </div> <div class="col-12"> - <t t-call="oacc_portal_overview_cdc.cdc_conso"/> + <t + t-call="oacc_portal_overview_cdc.cdc_conso" + /> </div> </div> </div> @@ -106,25 +121,27 @@ id="profile_extra_info_tablist" > <li class="nav-item"> - <a t-att-class="'nav-link %s' % ('active' if active_tab == 'other' else '')" - id="other-tab" - data-bs-toggle="pill" - href="#other" - role="tab" - aria-controls="other" - t-att-aria-selected="'true' if active_tab == 'other' else 'false'" + <a + t-att-class="'nav-link %s' % ('active' if active_tab == 'other' else '')" + id="other-tab" + data-bs-toggle="pill" + href="#other" + role="tab" + aria-controls="other" + t-att-aria-selected="'true' if active_tab == 'other' else 'false'" > Globale </a> </li> <li class="nav-item"> - <a t-att-class="'nav-link %s' % ('active' if active_tab == 'other' else '')" - id="other-tab" - data-bs-toggle="pill" - href="#other" - role="tab" - aria-controls="other" - t-att-aria-selected="'true' if active_tab == 'other' else 'false'" + <a + t-att-class="'nav-link %s' % ('active' if active_tab == 'other' else '')" + id="other-tab" + data-bs-toggle="pill" + href="#other" + role="tab" + aria-controls="other" + t-att-aria-selected="'true' if active_tab == 'other' else 'false'" > Globale </a> @@ -143,17 +160,25 @@ aria-labelledby="other-tab" > <div class="row"> - <t t-call="oacc_portal_overview_cdc.nav_button"/> + <t + t-call="oacc_portal_overview_cdc.nav_button" + /> <div class="row mb32"> <div class="col-md-6 col-12"> - <t t-call="oacc_portal_overview_cdc.profil_prod"/> + <t + t-call="oacc_portal_overview_cdc.profil_prod" + /> </div> <div class="col-md-6 col-12"> - <t t-call="oacc_portal_overview_cdc.bilan_prod"/> + <t + t-call="oacc_portal_overview_cdc.bilan_prod" + /> </div> <div class="col-12"> - <t t-call="oacc_portal_overview_cdc.cdc_prod"/> + <t + t-call="oacc_portal_overview_cdc.cdc_prod" + /> </div> </div> </div> @@ -215,7 +240,8 @@ <template id="profil_conso"> <div class="text-center"> <h3 class="mt-3">Profil</h3> - <p>Cliquez sur les termes « AutoProd » ou « AlloConso » pour faire apparaître ou disparaître les données correspondantes.</p> + <p + >Cliquez sur les termes « AutoProd » ou « AlloConso » pour faire apparaître ou disparaître les données correspondantes.</p> <canvas id="line_chart_conso" class="line_chart_conso" @@ -240,7 +266,8 @@ <template id="cdc_conso"> <div class="text-center"> <h3 class="mt-3">Courbe de charge</h3> - <p>Cliquez sur les termes « Conso », « Production solaire » ou « AutoProd » pour faire apparaître ou disparaître les courbes correspondantes.</p> + <p + >Cliquez sur les termes « Conso », « Production solaire » ou « AutoProd » pour faire apparaître ou disparaître les courbes correspondantes.</p> <canvas id="histo_chart_conso" class="histo_chart_conso" @@ -253,7 +280,8 @@ <template id="profil_prod"> <div class="text-center"> <h3 class="mt-3">Profil</h3> - <p>Cliquez sur les termes « AutoConso » ou « Surplus » pour faire apparaître ou disparaître les données correspondantes.</p> + <p + >Cliquez sur les termes « AutoConso » ou « Surplus » pour faire apparaître ou disparaître les données correspondantes.</p> <canvas id="line_chart_prod" class="line_chart_prod" @@ -278,7 +306,8 @@ <template id="cdc_prod"> <div class="text-center"> <h3 class="mt-3">Courbe de charge</h3> - <p>Cliquez sur les termes « AutoConso » ou « Surplus » pour faire apparaître ou disparaître les courbes correspondantes.</p> + <p + >Cliquez sur les termes « AutoConso » ou « Surplus » pour faire apparaître ou disparaître les courbes correspondantes.</p> <canvas id="histo_chart_prod" class="histo_chart_prod" diff --git a/templates/portal_layout.xml b/templates/portal_layout.xml index 3751d96..caaef76 100644 --- a/templates/portal_layout.xml +++ b/templates/portal_layout.xml @@ -2,7 +2,7 @@ <odoo> <!-- Layout operation --> - <template id="layout_op" inherit_id="oacc_portal.layout_op" > + <template id="layout_op" inherit_id="oacc_portal.layout_op"> <xpath expr="//li[@id='menu-accueil']" position="after"> <li t-attf-class="nav-link"> <a -- GitLab