Skip to content

Commit

Permalink
Merge PR #989 into 15.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed Nov 16, 2022
2 parents 13992ea + cdcf601 commit 85f2fe4
Show file tree
Hide file tree
Showing 83 changed files with 29,645 additions and 0 deletions.
165 changes: 165 additions & 0 deletions project_timesheet_time_control/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
==============================
Project timesheet time control
==============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fproject-lightgray.png?logo=github
:target: https://github.com/OCA/project/tree/15.0/project_timesheet_time_control
:alt: OCA/project
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/140/15.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

Allow to track the exact moment when a timesheet line is started (not only
the day, but also the minute and second) and let users start and stop timers
easily.

**Table of contents**

.. contents::
:local:

Installation
============

This module depends on modules found in these repositories:

* `OCA/timesheet <https://github.com/OCA/timesheet>`__
* `OCA/web <https://github.com/OCA/web>`__

Usage
=====

You can access via timesheets:

#. Go to *Timesheets > Timesheet > All Timesheets*.
#. Create a new record.
#. You will see now that the *Date* field contains also time information.
#. If you don't select any "project", you will be able to select any "task",
opened or not.
#. Selecting a "task", the corresponding "project" is filled.
#. Selecting a "project", tasks are filtered for only allow
to select opened tasks for that project. Remember that an opened task is
a task whose stage doesn't have "Closed" mark checked.
#. At the end of the line, you will see a stop button.
#. When you press this button, the difference between *Date* field and the
current time is saved in the "Duration" field.
#. You can modify the *Date* field for altering the computation of the
duration.
#. After a record is stopped, you see a *Resume* button, which will open a
wizard that inherits all relevant values from that timesheet line and lets
you duplicate it to indicate you start working in the same thing.
#. If you didn't stop the timer, but still hit *Resume* in any other, the
wizard will tell you that you have a running timer and that starting a new
one will stop the other one that is running.

To access the wizard directly:

#. Go to *Timesheet > Timesheet > Start work*.
#. You will be able to enter a new timesheet line from scratch, but by using
this wizard, you avoid problems with old or duplicate running timers.

Or via projects:

#. Go to *Project > Projects*.
#. If a project has a running timesheet line, it will display a *Stop* button.
#. Other projects that have enabled timesheets will display a *Start* button
that will open the same wizard as the timesheet lines, but duplicating
project's last timesheet line without a task.
#. You can see the same in list and form views.

Or via tasks:

#. Go to *Project > All Tasks*.
#. If a task has a running timesheet line, it will display a *Stop* button.
#. Other tasks that have enabled timesheets will display a *Start* button
that will open the same wizard as the timesheet lines, duplicating task's
last timesheet line.
#. You can see the same in list view.
#. Click on any existing task or create a new one.
#. You can see the same feature in the action buttons box.
#. On the *Timesheets* page, you will be able to handle records the same way
as you do in the above explanation (except the task selection part, which
in this case doesn't appear as it's the current one).

Note: All the *Start/Resume/Stop* features are disabled if you don't belong to
the *Timesheets/User* group or if you are viewing a timesheet that belongs
to another user.

Known issues / Roadmap
======================

* Rename to ``hr_timesheet_time_control``.
* Move to `OCA/timesheet <https://github.com/OCA/timesheet>`__.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/project/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 <https://github.com/OCA/project/issues/new?body=module:%20project_timesheet_time_control%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Tecnativa

Contributors
~~~~~~~~~~~~

* `Tecnativa <https://www.tecnativa.com>`_:

* Pedro M. Baeza
* Antonio Espinosa
* Carlos Dauden
* Sergio Teruel
* Luis M. ontalba
* Ernesto Tejeda
* Jairo Llopis
* Carlos Roca

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.

.. |maintainer-ernestotejeda| image:: https://github.com/ernestotejeda.png?size=40px
:target: https://github.com/ernestotejeda
:alt: ernestotejeda

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ernestotejeda|

This module is part of the `OCA/project <https://github.com/OCA/project/tree/15.0/project_timesheet_time_control>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions project_timesheet_time_control/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from . import models
from . import wizards
from .hooks import post_init_hook
30 changes: 30 additions & 0 deletions project_timesheet_time_control/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2016 Tecnativa - Antonio Espinosa
# Copyright 2016 Tecnativa - Sergio Teruel
# Copyright 2016-2018 Tecnativa - Pedro M. Baeza
# Copyright 2018 Tecnativa - Ernesto Tejeda
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

{
"name": "Project timesheet time control",
"version": "15.0.1.0.0",
"category": "Project",
"author": "Tecnativa," "Odoo Community Association (OCA)",
"maintainers": ["ernestotejeda"],
"website": "https://github.com/OCA/project",
"depends": [
"hr_timesheet_task_domain",
"hr_timesheet_task_stage",
"web_ir_actions_act_multi",
"web_ir_actions_act_view_reload",
],
"data": [
"security/ir.model.access.csv",
"views/account_analytic_line_view.xml",
"views/project_project_view.xml",
"views/project_task_view.xml",
"wizards/hr_timesheet_switch_view.xml",
],
"license": "AGPL-3",
"installable": True,
"post_init_hook": "post_init_hook",
}
13 changes: 13 additions & 0 deletions project_timesheet_time_control/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2016-2017 Tecnativa - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html


def post_init_hook(cr, registry):
"""Put the date with 00:00:00 as the date_time for the line."""
cr.execute(
"""UPDATE account_analytic_line
SET date_time = to_timestamp(date || ' 00:00:00',
'YYYY/MM/DD HH24:MI:SS')
WHERE date(date_time) != date
"""
)
Loading

0 comments on commit 85f2fe4

Please sign in to comment.