Skip to content

Conversation

@CRogos
Copy link
Contributor

@CRogos CRogos commented Nov 3, 2025

Migration and changes according to roadmap.

sergio-teruel and others added 30 commits November 2, 2025 21:56
* Decorate methods correctly + README imp
* Add tests
* Add button on tasks
* Better README
* open/close behaviour
Update README
Adapt tests
Redefine the new kanban and form view of account.analytic.line
to add 'Close/Open task' button and 'Stop' button
We need to override standard onchange, as it resets the previously
introduced task.
Currently translated at 100.0% (8 of 8 strings)

Translation: project-12.0/project-12.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-12-0/project-12-0-project_timesheet_time_control/pt_BR/
This is a huge improvement in this module's usability, although basic functionality stays the same. Let me summmarize:

- In `account.analytic.line` views, the *Stop* button is replaced by colorful *Resume/Stop* buttons.
- The new *Resume* button will display a wizard that will duplicate all meaningful fields from the previous `account.analytic.line` record and auto-stop the previous running timer, if any.
- If the previous running timer is very old, some warnings will be displayed.
- In `project.project` and `project.task` views, I added the same buttons (well... it's *Start* instead of *Resume*, because you could not have worked before in that project or task, but it behaves the same).
- If using it from a `project.task`, *Start* will duplicate meaningful fields from your latest line in that task.
- If using it from a `project.project`, *Start* will duplicate meaningful fields your latest line in that project that had no task associated.
- All kanban, kanban mobile, list and form views are covered.
- Access the new wizard directly from a menu item if you prefer.
- I removed, BTW, some Bootstrap 3 and bad replacements in some views.
…as found

Imagine this scenario:

1. In tab 1 of the browser, you have opened task 1.
2. In tab 2 of the browser, you have opened task 2.
3. You go to tab 1 and start a timer.
4. Work, work, work...
5. You go to tab 2 and start a timer, stopping that of task 1.
6. Work, work, work...
7. You go to tab 1 and see that timer as running (it is not, but you didn't refresh). You hit stop.

Before this commit, it just seemed like the timer was actually stopped. What did happen behind the scenes is that your view was refreshed, but no timer was touched fortunately.

After this commit, you get a message telling you that there's no timer to stop and that your browser is most likely out of sync. This mimics the behavior previously found when doing the same, but directly in the AAL. Now it's present in projects and tasks too.
Models related to timesheet time controls now inherit from a mixin that adds most needed logic automatically.
Currently translated at 32.3% (20 of 62 strings)

Translation: project-12.0/project-12.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-12-0/project-12-0-project_timesheet_time_control/sl/
Currently translated at 7.9% (5 of 63 strings)

Translation: project-12.0/project-12.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-12-0/project-12-0-project_timesheet_time_control/de/
- Standard procedure
- README regeneration
- Start new timer little adjustment
- Avoid new check for shared m2m tables
…imesheet_activity_begin_end + field for end time

- take users timezone into account when setting date field
- Prior to this commit, trying to resume an activity which had a start
  time or end time set would cause the newly created timesheet to throw
  a validation error because time_stop - time_start must equal duration.
  This commit fixes that issues by adding those fields to the ignore list
- Adds a field to the timesheet to store the end time. It is not
  required to enter the end time, if it is not entered it is calculated
  automatically by comparing the start time and the duration, if only a
  start time and end time are entered, then the duration is calculated
  accordingly. The end time field is set to optional in the tree view.
Currently translated at 100.0% (67 of 67 strings)

Translation: project-13.0/project-13.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-13-0/project-13-0-project_timesheet_time_control/he_IL/
Currently translated at 16.4% (11 of 67 strings)

Translation: project-13.0/project-13.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-13-0/project-13-0-project_timesheet_time_control/de/
Currently translated at 67.1% (45 of 67 strings)

Translation: project-13.0/project-13.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-13-0/project-13-0-project_timesheet_time_control/nl/
Currently translated at 100.0% (67 of 67 strings)

Translation: project-14.0/project-14.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control/es_AR/
Currently translated at 88.0% (59 of 67 strings)

Translation: project-14.0/project-14.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control/nl/
Currently translated at 95.5% (64 of 67 strings)

Translation: project-14.0/project-14.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control/fr/
Currently translated at 14.9% (10 of 67 strings)

Translation: project-14.0/project-14.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control/it/
Currently translated at 100.0% (76 of 76 strings)

Translation: project-14.0/project-14.0-project_timesheet_time_control
Translate-URL: https://translation.odoo-community.org/projects/project-14-0/project-14-0-project_timesheet_time_control/es_AR/
jdebetaz and others added 6 commits November 2, 2025 22:47
[IMP] project_timesheet_time_control: pre-commit execution

[MIG] project_timesheet_time_control: Migration to 18.0

[MIG] project_timesheet_time_control: Migration to 18.0

[MIG] project_timesheet_time_control: Migration to 18.0

[MIG] project_timesheet_time_control: Migration to 18.0
In odoo 17+ tree/list view now uses column_invisible instead of invisible to hide the entire column.

TT55789
Changes done:
- Use BaseCommon
- Define TestProjectTimesheetTimeControlBase to be able to inherit it in other modules (crm_timesheet for example)
- Don't use admin user and create a user for the tests

TT56039
@CRogos CRogos mentioned this pull request Nov 3, 2025
41 tasks
@CRogos CRogos force-pushed the 19.0-mig-hr_timesheet_time_control branch from bcfb558 to 0a12d69 Compare November 3, 2025 08:27
Copy link

@christian-ramos-tecnativa christian-ramos-tecnativa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@christian-ramos-tecnativa

@CRogos CRogos force-pushed the 19.0-mig-hr_timesheet_time_control branch 2 times, most recently from 33801aa to 0dadf09 Compare November 19, 2025 09:58
Copy link
Contributor

@bosd bosd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Funcional test :+1

@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@CRogos CRogos force-pushed the 19.0-mig-hr_timesheet_time_control branch from 0dadf09 to b6970f3 Compare November 26, 2025 14:29
@CRogos
Copy link
Contributor Author

CRogos commented Nov 26, 2025

Updated code from PR: OCA/project#1588

I also would like to add this PR OCA/project#1609, but than I get this depreciation warning.

2025-11-26 14:35:29,241 131608 WARNING db18_test_hr_timesheet_time_control odoo.domains: The domain condition ('date_time', '<', SQL("%s - account_analytic_line.unit_amount * (select 1 / factor * %s from uom_uom where id = account_analytic_line.product_uom_id) * interval '1 hour'", datetime.datetime(2023, 1, 10, 11, 0, 1), 1.0)) should use the 'any' or 'not any' operator. 

@CRogos CRogos force-pushed the 19.0-mig-hr_timesheet_time_control branch 2 times, most recently from 6a102e3 to 4974320 Compare November 26, 2025 15:11
@CRogos CRogos force-pushed the 19.0-mig-hr_timesheet_time_control branch from 4974320 to 8d72c2e Compare December 10, 2025 21:16
@NICO-SOLUTIONS
Copy link
Member

@CRogos
hey.
What do you think about including a time rounding feature with minimal duration and round up like in enterprise?
I just saw, that this module is an altenative for hr_timesheet_begin_end and i am checking, if it makes sense to switch to the new structure.

@CRogos
Copy link
Contributor Author

CRogos commented Dec 23, 2025

@NICO-SOLUTIONS I also changed the module with version 18 and like it alot.

We are using the enterprise version and also the rounding method, therefore we do not have a need. I think @pedrobaeza is not a fan to add this to this module, either.

But maybe we can add it to hr_timesheet_calendar . There I've already added an alternate start time behavior ("timenow()" vs "after previous entry"). If implemented and configured correctly, two rounding (oca + enterprise) should not be a problem. If you don't want the calendar dependency a new module is also an option.

PS: @pedrobaeza can you merge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.