diff --git a/.eslintrc.yml b/.eslintrc.yml
index fed88d70d23ecb3297ea28854b320c4d62ee3c26..0b382039586ae1303994e343dfca336fe46b0bdd 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: 2019
+  ecmaVersion: 2022
 
 overrides:
   - files:
diff --git a/.gitignore b/.gitignore
index d99361a24aa02c2d19d8165c3a057b84bc575166..c9f42387ef7051b2a868a9361f4f3cb6d562d4ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,15 @@ var/
 *.eggs
 .copier-answers.yml
 
+# Debian packages
+*.deb
+
+# Redhat packages
+*.rpm
+
+# MacOS packages
+*.dmg
+
 # Installer logs
 pip-log.txt
 pip-delete-this-directory.txt
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 3efb4d9157dc36d84e372eec5fc21e7f4a417a58..f58f2c6608a042bb13f2c7559889e33bf3f46733 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -16,6 +16,8 @@ exclude: |
   readme/.*\.(rst|md)$|
   # Ignore build and dist directories in addons
   /build/|/dist/|
+  # Ignore test files in addons
+  /tests/samples/.*|
   # You don't usually want a bot to modify your legal texts
   (LICENSE.*|COPYING.*)
 default_language_version:
@@ -35,9 +37,14 @@ repos:
         name: en.po files cannot exist
         entry: found a en.po file
         language: fail
-        files: '[a-zA-Z0-9_]*/i18n/en\.po$'
+        files:
+          '[a-zA-Z0-9_]*/i18n/en\.po$'
+          #  - repo: https://github.com/sbidoul/whool
+          #    rev: v0.5
+          #    hooks:
+          #      - id: whool-init
   - repo: https://github.com/oca/maintainer-tools
-    rev: f71041f22b8cd68cf7c77b73a14ca8d8cd190a60
+    rev: d5fab7ee87fceee858a3d01048c78a548974d935
     hooks:
       # update the NOT INSTALLABLE ADDONS section above
       - id: oca-update-pre-commit-excluded-addons
@@ -46,11 +53,13 @@ repos:
       - id: oca-gen-addon-readme
         args:
           - --addons-dir=.
-          - --branch=16.0
+          - --branch=17.0
           - --org-name=lefilament
           - --repo-name=template_module
           - --if-source-changed
           - --keep-source-digest
+          - --convert-fragments-to-markdown
+      # - id: oca-gen-external-dependencies
   - repo: https://github.com/OCA/odoo-pre-commit-hooks
     rev: v0.0.25
     hooks:
@@ -104,7 +113,7 @@ repos:
         args: [--fix, --exit-non-zero-on-fix]
       - id: ruff-format
   - repo: https://github.com/OCA/pylint-odoo
-    rev: v8.0.19
+    rev: v9.0.4
     hooks:
       - id: pylint_odoo
         name: pylint with optional checks
diff --git a/.pylintrc b/.pylintrc
index 71c476d4f10ac08a7333729b93705c9573d240d5..4fb9ba5362fb402b42c1a587d56b28ed71e8f933 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -5,12 +5,12 @@ 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
+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=17.0
 
 [MESSAGES CONTROL]
 disable=all
diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory
index 99064933ef82c469ba5fda5b2904447c05c99dbe..42885e9b5eb0cde47fa65d308683c29504934143 100644
--- a/.pylintrc-mandatory
+++ b/.pylintrc-mandatory
@@ -9,7 +9,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=16.0
+valid-odoo-versions=17.0
 
 [MESSAGES CONTROL]
 disable=all
diff --git a/README.rst b/README.rst
index 00f82a7939edd76a43b528931c56ab7b6d8958f4..f5203fa9046a9d0312984c8f35d6178eb2403d99 100644
--- a/README.rst
+++ b/README.rst
@@ -11,6 +11,7 @@ Description
 ===========
 
 This module depends upon *hr_timesheet* and disallow project and task creation from timesheet.
+Also, timesheet creation is made from top of tree view instead of bottom by default.
 
 
 Credits
diff --git a/__init__.py b/__init__.py
index 2bd2117aa8675a2e7eedb28380393a8ee2cfdf29..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,2 +0,0 @@
-# © 2020 Le Filament (<https://www.le-filament.com>)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
diff --git a/__manifest__.py b/__manifest__.py
index 7819cf17e6dfbc3dedca61fa4675640d9460dd86..fab88671181fe6204a5d2c16b0a0b1aab99a4d14 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -1,9 +1,6 @@
-# Copyright 2021-2022 Le Filament (https://le-filament.com)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
 {
     "name": "HR Timesheet no create",
-    "version": "16.0.1.0.0",
+    "version": "17.0.1.0.0",
     "author": "Le Filament",
     "category": "Services/Timesheets",
     "summary": "Disallow project and task creation from timesheet",
@@ -14,6 +11,7 @@
     "data": [
         "views/hr_timesheet_view.xml",
     ],
+    "website": "https://le-filament.com",
     "demo": [],
     "installable": True,
 }
diff --git a/views/hr_timesheet_view.xml b/views/hr_timesheet_view.xml
index b0ca8fdb43fdb6ae365fb273588ff2740a8fdcbd..a499ddd3952de0f2e78c92fa4b6889d990cfcb0a 100644
--- a/views/hr_timesheet_view.xml
+++ b/views/hr_timesheet_view.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" ?>
-<!-- Copyright 2020-2022 Le Filament (https://le-filament.com)
+<!-- Copyright 2020- Le Filament (https://le-filament.com)
      License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
 <odoo>