From 6b69e4b5b1583023049194ce7cc6ce8c297dd5f1 Mon Sep 17 00:00:00 2001 From: CRogos Date: Thu, 10 Nov 2022 10:07:15 +0100 Subject: [PATCH 1/4] [MIG] hr_timesheet_activity_begin_end: Update to 15.0 --- hr_timesheet_begin_end/README.rst | 83 ++++ hr_timesheet_begin_end/__init__.py | 3 + hr_timesheet_begin_end/__manifest__.py | 16 + hr_timesheet_begin_end/i18n/cs_CZ.po | 71 +++ hr_timesheet_begin_end/i18n/de.po | 69 +++ hr_timesheet_begin_end/i18n/es.po | 71 +++ hr_timesheet_begin_end/i18n/fr.po | 70 +++ .../i18n/hr_timesheet_begin_end.pot | 65 +++ hr_timesheet_begin_end/i18n/it.po | 71 +++ hr_timesheet_begin_end/i18n/nl_NL.po | 71 +++ hr_timesheet_begin_end/i18n/sv.po | 68 +++ hr_timesheet_begin_end/i18n/sv_SE.po | 66 +++ hr_timesheet_begin_end/models/__init__.py | 3 + .../models/account_analytic_line.py | 90 ++++ .../readme/CONTRIBUTORS.rst | 10 + hr_timesheet_begin_end/readme/DESCRIPTION.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 430 ++++++++++++++++++ hr_timesheet_begin_end/tests/__init__.py | 3 + .../tests/test_timesheet_begin_end.py | 82 ++++ .../views/hr_analytic_timesheet.xml | 14 + 21 files changed, 1357 insertions(+) create mode 100644 hr_timesheet_begin_end/README.rst create mode 100644 hr_timesheet_begin_end/__init__.py create mode 100644 hr_timesheet_begin_end/__manifest__.py create mode 100644 hr_timesheet_begin_end/i18n/cs_CZ.po create mode 100644 hr_timesheet_begin_end/i18n/de.po create mode 100644 hr_timesheet_begin_end/i18n/es.po create mode 100644 hr_timesheet_begin_end/i18n/fr.po create mode 100644 hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot create mode 100644 hr_timesheet_begin_end/i18n/it.po create mode 100644 hr_timesheet_begin_end/i18n/nl_NL.po create mode 100644 hr_timesheet_begin_end/i18n/sv.po create mode 100644 hr_timesheet_begin_end/i18n/sv_SE.po create mode 100644 hr_timesheet_begin_end/models/__init__.py create mode 100644 hr_timesheet_begin_end/models/account_analytic_line.py create mode 100644 hr_timesheet_begin_end/readme/CONTRIBUTORS.rst create mode 100644 hr_timesheet_begin_end/readme/DESCRIPTION.rst create mode 100644 hr_timesheet_begin_end/static/description/icon.png create mode 100644 hr_timesheet_begin_end/static/description/index.html create mode 100644 hr_timesheet_begin_end/tests/__init__.py create mode 100644 hr_timesheet_begin_end/tests/test_timesheet_begin_end.py create mode 100644 hr_timesheet_begin_end/views/hr_analytic_timesheet.xml diff --git a/hr_timesheet_begin_end/README.rst b/hr_timesheet_begin_end/README.rst new file mode 100644 index 000000000..6089561c5 --- /dev/null +++ b/hr_timesheet_begin_end/README.rst @@ -0,0 +1,83 @@ +====================================== +Timesheet Activities - Begin/End Hours +====================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftimesheet-lightgray.png?logo=github + :target: https://github.com/OCA/timesheet/tree/14.0/hr_timesheet_activity_begin_end + :alt: OCA/timesheet +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/timesheet-14-0/timesheet-14-0-hr_timesheet_activity_begin_end + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/117/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Adds starting and ending hours fields on the timesheet activities. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* Guewen Baconnier +* `Tecnativa `_: + + * Luis M. Ontalba + * Ernesto Tejeda + +* `Onestein `_: + + * Andrea Stirpe +* Sunanda Chhatbar + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/timesheet `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_timesheet_begin_end/__init__.py b/hr_timesheet_begin_end/__init__.py new file mode 100644 index 000000000..e87e85c4c --- /dev/null +++ b/hr_timesheet_begin_end/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import models diff --git a/hr_timesheet_begin_end/__manifest__.py b/hr_timesheet_begin_end/__manifest__.py new file mode 100644 index 000000000..29feee97d --- /dev/null +++ b/hr_timesheet_begin_end/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2015 Camptocamp SA - Guewen Baconnier +# Copyright 2017 Tecnativa, S.L. - Luis M. Ontalba +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + "name": "Timesheet - Begin/End Hours", + "version": "15.0.1.0.0", + "author": "Camptocamp, Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "category": "Human Resources", + "depends": ["hr_timesheet"], + "website": "https://github.com/OCA/timesheet", + "data": ["views/hr_analytic_timesheet.xml"], + "installable": True, + "auto_install": False, +} diff --git a/hr_timesheet_begin_end/i18n/cs_CZ.po b/hr_timesheet_begin_end/i18n/cs_CZ.po new file mode 100644 index 000000000..703bdd64a --- /dev/null +++ b/hr_timesheet_begin_end/i18n/cs_CZ.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +# Translators: +# Lukáš Spurný , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-23 01:55+0000\n" +"PO-Revision-Date: 2018-02-23 01:55+0000\n" +"Last-Translator: Lukáš Spurný , 2018\n" +"Language-Team: Czech (Czech Republic) (https://www.transifex.com/oca/" +"teams/23907/cs_CZ/)\n" +"Language: cs_CZ\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Analytická linka" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Počátek hodiny" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Koncová hodina" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Linky se nemohou překrývat:\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "Počáteční hodina (%(html_start)s) musí předcházet koncovou hodinu (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "Doba trvání (%(html_unit_amount)s) musí být rovna rozdílu mezi hodinami (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/de.po b/hr_timesheet_begin_end/i18n/de.po new file mode 100644 index 000000000..637b914e5 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/de.po @@ -0,0 +1,69 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-07-11 12:43+0000\n" +"Last-Translator: Maria Sparenberg \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.7.1\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Kostenstellenbuchung" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Startzeit" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Endzeit" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Die Zeilen dürfen sich nicht überschneiden:\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "Die Startzeit (%(html_start)s) muss vor der Endzeit (%(html_stop)s) liegen." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "" +"Die Dauer (%(html_unit_amount)s) muss gleich der Differenz zwischen den Stunden (%(html_hours)s) sein." diff --git a/hr_timesheet_begin_end/i18n/es.po b/hr_timesheet_begin_end/i18n/es.po new file mode 100644 index 000000000..4a8aa2813 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/es.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +# Translators: +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-17 05:23+0000\n" +"PO-Revision-Date: 2019-02-01 16:03+0000\n" +"Last-Translator: Marta Vázquez Rodríguez \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.4\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Línea analítica" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Hora de inicio" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Hora de finalización" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Las líneas no pueden solaparse:\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "La hora de inicio (%(html_start)s) debe preceder a la hora final (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "La duración (%(html_unit_amount)s) debe ser igual a la diferencia entre las horas (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/fr.po b/hr_timesheet_begin_end/i18n/fr.po new file mode 100644 index 000000000..57aa2550b --- /dev/null +++ b/hr_timesheet_begin_end/i18n/fr.po @@ -0,0 +1,70 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-18 00:44+0000\n" +"PO-Revision-Date: 2017-08-18 00:44+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Ligne analytique" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Heure de début" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Heure de fin" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Les lignes ne peuvent pas se chevaucher :\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "L'heure de début (%(html_start)s) doit précéder l'heure de fin (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "La durée (%(html_unit_amount)s) doit être égale à la différence entre les heures (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot b/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot new file mode 100644 index 000000000..26183e97e --- /dev/null +++ b/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "" diff --git a/hr_timesheet_begin_end/i18n/it.po b/hr_timesheet_begin_end/i18n/it.po new file mode 100644 index 000000000..4fd5553f1 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/it.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +# Translators: +# Marco Calcagni , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-31 04:45+0000\n" +"PO-Revision-Date: 2018-10-28 23:03+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.2.1\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Riga analitica" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Ora inizio" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Ora fine" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "ID" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Le righe non possono sovrapporsi:\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "L'ora di inizio (%(html_start)s) deve essere antecedente all'ora di fine (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "La durata (%(html_unit_amount)s) deve essere uguale alla differenza tra gli orari (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/nl_NL.po b/hr_timesheet_begin_end/i18n/nl_NL.po new file mode 100644 index 000000000..632bc70d8 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/nl_NL.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-18 00:44+0000\n" +"PO-Revision-Date: 2017-08-18 00:44+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Begintijd" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Eindtijd" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Regels kunnen elkaar niet overlappen.\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "De begintijd (%(html_start)s) moet vooraf gaan aan de eindtijd (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "De duur (%(html_unit_amount)s) moet gelijk zijn aan het verschil tussen tijden (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/sv.po b/hr_timesheet_begin_end/i18n/sv.po new file mode 100644 index 000000000..3c7243b59 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/sv.po @@ -0,0 +1,68 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-11-16 15:36+0000\n" +"Last-Translator: Simon S \n" +"Language-Team: none\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "Objektrad" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "Starttid" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "Visningsnamn" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "Sluttid" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "ID" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "Senast ändrad den" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "Rader får inte överlappa varandra:\n" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "Starttiden (%(html_start)s) måste föregå sluttimmen (%(html_stop)s)." + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "Varaktigheten (%(html_unit_amount)s) måste vara lika med skillnaden mellan tiderna (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/sv_SE.po b/hr_timesheet_begin_end/i18n/sv_SE.po new file mode 100644 index 000000000..997f10434 --- /dev/null +++ b/hr_timesheet_begin_end/i18n/sv_SE.po @@ -0,0 +1,66 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_timesheet_begin_end +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: sv_SE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: hr_timesheet_begin_end +#: model:ir.model,name:hr_timesheet_begin_end.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start +msgid "Begin Hour" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop +msgid "End Hour" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id +msgid "ID" +msgstr "" + +#. module: hr_timesheet_begin_end +#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "Lines can't overlap:\n" +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgstr "" + +#. module: hr_timesheet_begin_end +#: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 +#, python-format +msgid "" +"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +msgstr "" diff --git a/hr_timesheet_begin_end/models/__init__.py b/hr_timesheet_begin_end/models/__init__.py new file mode 100644 index 000000000..86ea6ad61 --- /dev/null +++ b/hr_timesheet_begin_end/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import account_analytic_line diff --git a/hr_timesheet_begin_end/models/account_analytic_line.py b/hr_timesheet_begin_end/models/account_analytic_line.py new file mode 100644 index 000000000..8d06e093a --- /dev/null +++ b/hr_timesheet_begin_end/models/account_analytic_line.py @@ -0,0 +1,90 @@ +# Copyright 2015 Camptocamp SA - Guewen Baconnier +# Copyright 2017 Tecnativa, S.L. - Luis M. Ontalba +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from datetime import timedelta + +from odoo import _, api, exceptions, fields, models +from odoo.tools.float_utils import float_compare + + +class AccountAnalyticLine(models.Model): + _inherit = "account.analytic.line" + _order = "date desc, time_start desc, id desc" + + time_start = fields.Float(string="Begin Hour") + time_stop = fields.Float(string="End Hour") + + @api.constrains("time_start", "time_stop", "unit_amount") + def _check_time_start_stop(self): + for line in self: + value_to_html = self.env["ir.qweb.field.float_time"].value_to_html + start = timedelta(hours=line.time_start) + stop = timedelta(hours=line.time_stop) + if stop < start: + value_to_html(line.time_start, None) + value_to_html(line.time_stop, None) + + raise exceptions.ValidationError( + _( + "The beginning hour (%(html_start)s) must " + "precede the ending hour (%(html_stop)s)." + ) + % { + "html_start": value_to_html(line.time_start, None), + "html_stop": value_to_html(line.time_stop, None), + } + ) + hours = (stop - start).seconds / 3600 + rounding = self.env.ref("uom.product_uom_hour").rounding + if hours and float_compare( + hours, line.unit_amount, precision_rounding=rounding + ): + raise exceptions.ValidationError( + _( + "The duration (%(html_unit_amount)s) must be equal to the difference " + "between the hours (%(html_hours)s)." + ) + % { + "html_unit_amount": value_to_html(line.unit_amount, None), + "html_hours": value_to_html(hours, None), + } + ) + # check if lines overlap + others = self.search( + [ + ("id", "!=", line.id), + ("user_id", "=", line.user_id.id), + ("date", "=", line.date), + ("time_start", "<", line.time_stop), + ("time_stop", ">", line.time_start), + ] + ) + if others: + message = _("Lines can't overlap:\n") + message += "\n".join( + [ + "%s - %s" + % ( + value_to_html(other.time_start, None), + value_to_html(other.time_stop, None), + ) + for other in (line + others).sorted(lambda l: l.time_start) + ] + ) + raise exceptions.ValidationError(message) + + @api.onchange("time_start", "time_stop") + def onchange_hours_start_stop(self): + start = timedelta(hours=self.time_start) + stop = timedelta(hours=self.time_stop) + if stop < start: + return + self.unit_amount = (stop - start).seconds / 3600 + + def merge_timesheets(self): # pragma: no cover + """This method is needed in case hr_timesheet_sheet is installed""" + lines = self.filtered(lambda l: not l.time_start and not l.time_stop) + if lines: + return super(AccountAnalyticLine, lines).merge_timesheets() + return self[0] diff --git a/hr_timesheet_begin_end/readme/CONTRIBUTORS.rst b/hr_timesheet_begin_end/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..4ad5c9a17 --- /dev/null +++ b/hr_timesheet_begin_end/readme/CONTRIBUTORS.rst @@ -0,0 +1,10 @@ +* Guewen Baconnier +* `Tecnativa `_: + + * Luis M. Ontalba + * Ernesto Tejeda + +* `Onestein `_: + + * Andrea Stirpe +* Sunanda Chhatbar diff --git a/hr_timesheet_begin_end/readme/DESCRIPTION.rst b/hr_timesheet_begin_end/readme/DESCRIPTION.rst new file mode 100644 index 000000000..cf8d36001 --- /dev/null +++ b/hr_timesheet_begin_end/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Adds starting and ending hours fields on the timesheet activities. diff --git a/hr_timesheet_begin_end/static/description/icon.png b/hr_timesheet_begin_end/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/hr_timesheet_begin_end/static/description/index.html b/hr_timesheet_begin_end/static/description/index.html new file mode 100644 index 000000000..ef381a36c --- /dev/null +++ b/hr_timesheet_begin_end/static/description/index.html @@ -0,0 +1,430 @@ + + + + + + +Timesheet Activities - Begin/End Hours + + + +
+

Timesheet Activities - Begin/End Hours

+ + +

Beta License: AGPL-3 OCA/timesheet Translate me on Weblate Try me on Runbot

+

Adds starting and ending hours fields on the timesheet activities.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/timesheet project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/hr_timesheet_begin_end/tests/__init__.py b/hr_timesheet_begin_end/tests/__init__.py new file mode 100644 index 000000000..a45ded176 --- /dev/null +++ b/hr_timesheet_begin_end/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import test_timesheet_begin_end diff --git a/hr_timesheet_begin_end/tests/test_timesheet_begin_end.py b/hr_timesheet_begin_end/tests/test_timesheet_begin_end.py new file mode 100644 index 000000000..a70b9b73b --- /dev/null +++ b/hr_timesheet_begin_end/tests/test_timesheet_begin_end.py @@ -0,0 +1,82 @@ +# Copyright 2015 Camptocamp SA - Guewen Baconnier +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import exceptions, fields +from odoo.tests import common + + +class TestBeginEnd(common.TransactionCase): + def setUp(self): + super(TestBeginEnd, self).setUp() + self.timesheet_line_model = self.env["account.analytic.line"] + self.analytic = self.env.ref("analytic.analytic_administratif") + self.user = self.env.ref("base.user_root") + self.base_line = { + "name": "test", + "date": fields.Date.today(), + "time_start": 10.0, + "time_stop": 12.0, + "user_id": self.user.id, + "unit_amount": 2.0, + "account_id": self.analytic.id, + "amount": -60.0, + } + + def test_onchange(self): + line = self.timesheet_line_model.new( + {"name": "test", "time_start": 10.0, "time_stop": 12.0} + ) + line.onchange_hours_start_stop() + self.assertEqual(line.unit_amount, 2) + + def test_onchange_no_update(self): + line = self.timesheet_line_model.new( + {"name": "test", "time_start": 13.0, "time_stop": 12.0} + ) + line.onchange_hours_start_stop() + self.assertEqual(line.unit_amount, 0) + + def test_check_begin_before_end(self): + line = self.base_line.copy() + line.update({"time_start": 12.0, "time_stop": 10.0}) + with self.assertRaises(exceptions.ValidationError): + self.timesheet_line_model.create(line) + + def test_check_wrong_duration(self): + message_re = ( + r"The duration \(\d\d:\d\d\) must be equal to the " + r"difference between the hours \(\d\d:\d\d\)\." + ) + line = self.base_line.copy() + line.update({"time_start": 10.0, "time_stop": 12.0, "unit_amount": 5.0}) + with self.assertRaisesRegex(exceptions.ValidationError, message_re): + self.timesheet_line_model.create(line) + + def test_check_overlap(self): + line1 = self.base_line.copy() + line1.update({"time_start": 10.0, "time_stop": 12.0, "unit_amount": 2.0}) + line2 = self.base_line.copy() + line2.update({"time_start": 12.0, "time_stop": 14.0, "unit_amount": 2.0}) + self.timesheet_line_model.create(line1) + self.timesheet_line_model.create(line2) + + message_re = r"overlap" + + line3 = self.base_line.copy() + + line3.update({"time_start": 9.0, "time_stop": 11, "unit_amount": 2.0}) + with self.assertRaisesRegex(exceptions.ValidationError, message_re): + self.timesheet_line_model.create(line3) + + line3.update({"time_start": 13.0, "time_stop": 15, "unit_amount": 2.0}) + with self.assertRaisesRegex(exceptions.ValidationError, message_re): + self.timesheet_line_model.create(line3) + + line3.update({"time_start": 8.0, "time_stop": 15, "unit_amount": 7.0}) + with self.assertRaisesRegex(exceptions.ValidationError, message_re): + self.timesheet_line_model.create(line3) + + def test_check_precision(self): + line1 = self.base_line.copy() + line1.update({"time_start": 19.0, "time_stop": 20.314, "unit_amount": 1.314}) + self.timesheet_line_model.create(line1) diff --git a/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml b/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml new file mode 100644 index 000000000..3a5d2d07e --- /dev/null +++ b/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml @@ -0,0 +1,14 @@ + + + + hr.analytic.timesheet.tree + account.analytic.line + + + + + + + + + From 419770439f34c3120373749026dfbf2499d84100 Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Wed, 15 Feb 2023 11:33:23 +0000 Subject: [PATCH 2/4] [IMP] hr_timesheet_begin_end: black, isort, prettier --- hr_timesheet_begin_end/README.rst | 16 ++++---- hr_timesheet_begin_end/i18n/cs_CZ.po | 32 +++++---------- hr_timesheet_begin_end/i18n/de.po | 30 ++++---------- hr_timesheet_begin_end/i18n/es.po | 32 +++++---------- hr_timesheet_begin_end/i18n/fr.po | 32 +++++---------- .../i18n/hr_timesheet_begin_end.pot | 26 +++--------- hr_timesheet_begin_end/i18n/it.po | 41 +++++++++---------- hr_timesheet_begin_end/i18n/nl_NL.po | 32 +++++---------- hr_timesheet_begin_end/i18n/sv.po | 37 ++++++++--------- hr_timesheet_begin_end/i18n/sv_SE.po | 24 +++-------- .../static/description/index.html | 12 +++--- .../odoo/addons/hr_timesheet_begin_end | 1 + setup/hr_timesheet_begin_end/setup.py | 6 +++ 13 files changed, 122 insertions(+), 199 deletions(-) create mode 120000 setup/hr_timesheet_begin_end/odoo/addons/hr_timesheet_begin_end create mode 100644 setup/hr_timesheet_begin_end/setup.py diff --git a/hr_timesheet_begin_end/README.rst b/hr_timesheet_begin_end/README.rst index 6089561c5..1bbb4a4fb 100644 --- a/hr_timesheet_begin_end/README.rst +++ b/hr_timesheet_begin_end/README.rst @@ -1,6 +1,6 @@ -====================================== -Timesheet Activities - Begin/End Hours -====================================== +=========================== +Timesheet - Begin/End Hours +=========================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! @@ -14,13 +14,13 @@ Timesheet Activities - Begin/End Hours :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftimesheet-lightgray.png?logo=github - :target: https://github.com/OCA/timesheet/tree/14.0/hr_timesheet_activity_begin_end + :target: https://github.com/OCA/timesheet/tree/15.0/hr_timesheet_begin_end :alt: OCA/timesheet .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/timesheet-14-0/timesheet-14-0-hr_timesheet_activity_begin_end + :target: https://translation.odoo-community.org/projects/timesheet-15-0/timesheet-15-0-hr_timesheet_begin_end :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/117/14.0 + :target: https://runbot.odoo-community.org/runbot/117/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,7 +38,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -78,6 +78,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/timesheet `_ project on GitHub. +This module is part of the `OCA/timesheet `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_timesheet_begin_end/i18n/cs_CZ.po b/hr_timesheet_begin_end/i18n/cs_CZ.po index 703bdd64a..b9b13e78a 100644 --- a/hr_timesheet_begin_end/i18n/cs_CZ.po +++ b/hr_timesheet_begin_end/i18n/cs_CZ.po @@ -26,31 +26,14 @@ msgstr "Analytická linka" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Počátek hodiny" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Koncová hodina" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -60,12 +43,19 @@ msgstr "Linky se nemohou překrývat:\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "Počáteční hodina (%(html_start)s) musí předcházet koncovou hodinu (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"Počáteční hodina (%(html_start)s) musí předcházet koncovou hodinu " +"(%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "Doba trvání (%(html_unit_amount)s) musí být rovna rozdílu mezi hodinami (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"Doba trvání (%(html_unit_amount)s) musí být rovna rozdílu mezi hodinami " +"(%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/de.po b/hr_timesheet_begin_end/i18n/de.po index 637b914e5..d9f8562a2 100644 --- a/hr_timesheet_begin_end/i18n/de.po +++ b/hr_timesheet_begin_end/i18n/de.po @@ -23,31 +23,14 @@ msgstr "Kostenstellenbuchung" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Startzeit" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Endzeit" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -57,13 +40,18 @@ msgstr "Die Zeilen dürfen sich nicht überschneiden:\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "Die Startzeit (%(html_start)s) muss vor der Endzeit (%(html_stop)s) liegen." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"Die Startzeit (%(html_start)s) muss vor der Endzeit (%(html_stop)s) liegen." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." msgstr "" -"Die Dauer (%(html_unit_amount)s) muss gleich der Differenz zwischen den Stunden (%(html_hours)s) sein." +"Die Dauer (%(html_unit_amount)s) muss gleich der Differenz zwischen den " +"Stunden (%(html_hours)s) sein." diff --git a/hr_timesheet_begin_end/i18n/es.po b/hr_timesheet_begin_end/i18n/es.po index 4a8aa2813..289fe647e 100644 --- a/hr_timesheet_begin_end/i18n/es.po +++ b/hr_timesheet_begin_end/i18n/es.po @@ -26,31 +26,14 @@ msgstr "Línea analítica" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Hora de inicio" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Hora de finalización" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -60,12 +43,19 @@ msgstr "Las líneas no pueden solaparse:\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "La hora de inicio (%(html_start)s) debe preceder a la hora final (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"La hora de inicio (%(html_start)s) debe preceder a la hora final " +"(%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "La duración (%(html_unit_amount)s) debe ser igual a la diferencia entre las horas (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"La duración (%(html_unit_amount)s) debe ser igual a la diferencia entre las " +"horas (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/fr.po b/hr_timesheet_begin_end/i18n/fr.po index 57aa2550b..352d926d2 100644 --- a/hr_timesheet_begin_end/i18n/fr.po +++ b/hr_timesheet_begin_end/i18n/fr.po @@ -25,31 +25,14 @@ msgstr "Ligne analytique" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Heure de début" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Heure de fin" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -59,12 +42,19 @@ msgstr "Les lignes ne peuvent pas se chevaucher :\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "L'heure de début (%(html_start)s) doit précéder l'heure de fin (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"L'heure de début (%(html_start)s) doit précéder l'heure de fin " +"(%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "La durée (%(html_unit_amount)s) doit être égale à la différence entre les heures (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"La durée (%(html_unit_amount)s) doit être égale à la différence entre les " +"heures (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot b/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot index 26183e97e..e81d24b9e 100644 --- a/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot +++ b/hr_timesheet_begin_end/i18n/hr_timesheet_begin_end.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -20,31 +20,14 @@ msgstr "" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -54,12 +37,15 @@ msgstr "" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." msgstr "" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." msgstr "" diff --git a/hr_timesheet_begin_end/i18n/it.po b/hr_timesheet_begin_end/i18n/it.po index 4fd5553f1..e4b544339 100644 --- a/hr_timesheet_begin_end/i18n/it.po +++ b/hr_timesheet_begin_end/i18n/it.po @@ -26,31 +26,14 @@ msgstr "Riga analitica" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Ora inizio" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Ora fine" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "ID" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "Ultima modifica il" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -60,12 +43,28 @@ msgstr "Le righe non possono sovrapporsi:\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "L'ora di inizio (%(html_start)s) deve essere antecedente all'ora di fine (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"L'ora di inizio (%(html_start)s) deve essere antecedente all'ora di fine " +"(%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "La durata (%(html_unit_amount)s) deve essere uguale alla differenza tra gli orari (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"La durata (%(html_unit_amount)s) deve essere uguale alla differenza tra gli " +"orari (%(html_hours)s)." + +#~ msgid "Display Name" +#~ msgstr "Nome visualizzato" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" diff --git a/hr_timesheet_begin_end/i18n/nl_NL.po b/hr_timesheet_begin_end/i18n/nl_NL.po index 632bc70d8..319e74caa 100644 --- a/hr_timesheet_begin_end/i18n/nl_NL.po +++ b/hr_timesheet_begin_end/i18n/nl_NL.po @@ -26,31 +26,14 @@ msgstr "" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Begintijd" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Eindtijd" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -60,12 +43,19 @@ msgstr "Regels kunnen elkaar niet overlappen.\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." -msgstr "De begintijd (%(html_start)s) moet vooraf gaan aan de eindtijd (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." +msgstr "" +"De begintijd (%(html_start)s) moet vooraf gaan aan de eindtijd " +"(%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "De duur (%(html_unit_amount)s) moet gelijk zijn aan het verschil tussen tijden (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"De duur (%(html_unit_amount)s) moet gelijk zijn aan het verschil tussen " +"tijden (%(html_hours)s)." diff --git a/hr_timesheet_begin_end/i18n/sv.po b/hr_timesheet_begin_end/i18n/sv.po index 3c7243b59..64f2ae721 100644 --- a/hr_timesheet_begin_end/i18n/sv.po +++ b/hr_timesheet_begin_end/i18n/sv.po @@ -23,31 +23,14 @@ msgstr "Objektrad" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "Starttid" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "Visningsnamn" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "Sluttid" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "ID" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "Senast ändrad den" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -57,12 +40,26 @@ msgstr "Rader får inte överlappa varandra:\n" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." msgstr "Starttiden (%(html_start)s) måste föregå sluttimmen (%(html_stop)s)." #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." -msgstr "Varaktigheten (%(html_unit_amount)s) måste vara lika med skillnaden mellan tiderna (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." +msgstr "" +"Varaktigheten (%(html_unit_amount)s) måste vara lika med skillnaden mellan " +"tiderna (%(html_hours)s)." + +#~ msgid "Display Name" +#~ msgstr "Visningsnamn" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Senast ändrad den" diff --git a/hr_timesheet_begin_end/i18n/sv_SE.po b/hr_timesheet_begin_end/i18n/sv_SE.po index 997f10434..60f1ca909 100644 --- a/hr_timesheet_begin_end/i18n/sv_SE.po +++ b/hr_timesheet_begin_end/i18n/sv_SE.po @@ -21,31 +21,14 @@ msgstr "" #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_start -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_start msgid "Begin Hour" msgstr "" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__display_name -msgid "Display Name" -msgstr "" - #. module: hr_timesheet_begin_end #: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__time_stop -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_hr_timesheet_switch__time_stop msgid "End Hour" msgstr "" -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line__id -msgid "ID" -msgstr "" - -#. module: hr_timesheet_begin_end -#: model:ir.model.fields,field_description:hr_timesheet_begin_end.field_account_analytic_line____last_update -msgid "Last Modified on" -msgstr "" - #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format @@ -55,12 +38,15 @@ msgstr "" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format -msgid "The beginning hour (%(html_start)s) must precede the ending hour (%(html_stop)s)." +msgid "" +"The beginning hour (%(html_start)s) must precede the ending hour " +"(%(html_stop)s)." msgstr "" #. module: hr_timesheet_begin_end #: code:addons/hr_timesheet_begin_end/models/account_analytic_line.py:0 #, python-format msgid "" -"The duration (%(html_unit_amount)s) must be equal to the difference between the hours (%(html_hours)s)." +"The duration (%(html_unit_amount)s) must be equal to the difference between " +"the hours (%(html_hours)s)." msgstr "" diff --git a/hr_timesheet_begin_end/static/description/index.html b/hr_timesheet_begin_end/static/description/index.html index ef381a36c..ab7876f09 100644 --- a/hr_timesheet_begin_end/static/description/index.html +++ b/hr_timesheet_begin_end/static/description/index.html @@ -4,7 +4,7 @@ -Timesheet Activities - Begin/End Hours +Timesheet - Begin/End Hours -
-

Timesheet Activities - Begin/End Hours

+
+

Timesheet - Begin/End Hours

-

Beta License: AGPL-3 OCA/timesheet Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/timesheet Translate me on Weblate Try me on Runbot

Adds starting and ending hours fields on the timesheet activities.

Table of contents

@@ -386,7 +386,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -421,7 +421,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/timesheet project on GitHub.

+

This module is part of the OCA/timesheet project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/setup/hr_timesheet_begin_end/odoo/addons/hr_timesheet_begin_end b/setup/hr_timesheet_begin_end/odoo/addons/hr_timesheet_begin_end new file mode 120000 index 000000000..56082418b --- /dev/null +++ b/setup/hr_timesheet_begin_end/odoo/addons/hr_timesheet_begin_end @@ -0,0 +1 @@ +../../../../hr_timesheet_begin_end \ No newline at end of file diff --git a/setup/hr_timesheet_begin_end/setup.py b/setup/hr_timesheet_begin_end/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/hr_timesheet_begin_end/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From 8b6beb2b43e98fe8e953e0abba3d9fbcabf09033 Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Thu, 16 Mar 2023 09:55:22 +0000 Subject: [PATCH 3/4] [MIG] hr_timesheet_begin_end: Migration to 16.0 --- hr_timesheet_begin_end/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hr_timesheet_begin_end/__manifest__.py b/hr_timesheet_begin_end/__manifest__.py index 29feee97d..25fdd5a8c 100644 --- a/hr_timesheet_begin_end/__manifest__.py +++ b/hr_timesheet_begin_end/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Timesheet - Begin/End Hours", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "author": "Camptocamp, Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Human Resources", From 8e8268fbaa14c0cc0dcce6155823111157f9c9cd Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Mon, 22 May 2023 10:38:36 +0000 Subject: [PATCH 4/4] [IMP] hr_timesheet_begin_end: missing form fields --- hr_timesheet_begin_end/__manifest__.py | 2 +- .../views/hr_analytic_timesheet.xml | 13 ++++++++++ hr_timesheet_begin_end/views/project_task.xml | 26 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 hr_timesheet_begin_end/views/project_task.xml diff --git a/hr_timesheet_begin_end/__manifest__.py b/hr_timesheet_begin_end/__manifest__.py index 25fdd5a8c..b6b05c8a2 100644 --- a/hr_timesheet_begin_end/__manifest__.py +++ b/hr_timesheet_begin_end/__manifest__.py @@ -10,7 +10,7 @@ "category": "Human Resources", "depends": ["hr_timesheet"], "website": "https://github.com/OCA/timesheet", - "data": ["views/hr_analytic_timesheet.xml"], + "data": ["views/hr_analytic_timesheet.xml", "views/project_task.xml"], "installable": True, "auto_install": False, } diff --git a/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml b/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml index 3a5d2d07e..d818c10c7 100644 --- a/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml +++ b/hr_timesheet_begin_end/views/hr_analytic_timesheet.xml @@ -4,6 +4,19 @@ hr.analytic.timesheet.tree account.analytic.line + + + + + + + + + account.analytic.line.form (in hr_timesheet_begin_end) + account.analytic.line + diff --git a/hr_timesheet_begin_end/views/project_task.xml b/hr_timesheet_begin_end/views/project_task.xml new file mode 100644 index 000000000..5cf0a21e6 --- /dev/null +++ b/hr_timesheet_begin_end/views/project_task.xml @@ -0,0 +1,26 @@ + + + + project.task.form.inherited (in hr_timesheet_begin_end) + project.task + + + + + + + + + + + + +