Purpose
=======
This PR is in continuity of #62360 and #62900 done in 14.0.
The goal of this PR essentially updates and improves the changes done in 14.0.
## Details
- Remove the context key added in 14.0 to keep the 'Create Sale Order' button in task and helpdesk.ticket. Because at the end we remove this button in these models.
- Remove non_allow_billable field in tasks and timesheets.
- Remove the partner_email from task form view.
- Remove timesheet_product_id from task form view
- Merge sale_timesheet_edit module with sale_timesheet module.
- Remove timesheet table in portal sales order and invoice (deprecated templates in #62900).
- Remove override of project kanban controller (deprecated file from #62360).
- Store remaining_hours field in sale.order.line model (this field has been introduced in the following PR #62900).
- Remove _onchange_task_id_employee_id, the process in the method is done in _compute_so_line.
- Merge bill_type and pricing_type in project.project.
- Move partner_id field in project form view.
- Remove value selected in SO and SOL in project if the customer does not fit with the SO selected.
- Changes SOL in mapping when the pricing type of the current project is "employee rate" if the customer changes.
- Hide the timesheet_product_id field if the project is not a fsm project.
- Move sql constraint for timesheet_product_id in industry_fsm_sale, because this field is no longer mandatory in project which is not fsm project.
- Changes the search of timesheets in portal > timesheets.
- we allows the user to search with name of SO and invoice to find the timesheets about the wanted SO or invoice rathan than the id of SOL and invoice.
- Move View Timesheets button in portal > invoice
- Remove deprecated codes.
- Miscellaneous fixes.
Task-2424382
closesodoo/odoo#64474
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Laurent Stukkens (LTU) <ltu@odoo.com>
Before this commit, when the user can only see his own timesheets, this
user can see more than his own timesheets in timesheets portal
(/my/timesheets). It is because we use the domain defined for portal and
we don't use the access rights defined for this intenal user.
This commit uses the access right if the user has the lowest group for
Timesheet App. Otherwise, we use the domain for portal as before.
Co-authored-by: Laurent Stukkens (LTU) <ltu@odoo.com>
task-2424382
Restore Project Kanban view for mobile.
Added a name for the default stage of the tasks in the Internal project
Removal of redundancy for the creation of the Internal project and its tasks
Fix task_reccurrence for the type 'after'. (too much task created or bad task created)
Task-2326258
closesodoo/odoo#64607
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Before this commit the fields project_id and task_id on
account.analytic.line were sharing the same compute method which was not
triggered when one of those fields were changed.
Here the fields get their very own compute method.
closesodoo/odoo#63043
Taskid: 2389727
X-original-commit: bb1611fef1d1e78b3c38e92d40c31fa915128295
Related: odoo/enterprise#15192
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
With this commit, all instances of errors being raised inside
`BaseModel.unlink` overrides are moved into methods decorated with
`api.ondelete` which is safer.
1) forbid deletion of main uoms & categories
2) warn modifications of main uoms data.
Except for the working Hours uom, which isn't a strict UoM
representation and could change between countries (and/or be deleted).
3) Also move the Dozen UoM to demo datas, it's a confusing UoM and isn't
used by the majority of databases.
4) Restrict deletion of used uoms on main models.
On sale orders and account moves the uoms couldn't be deleted thanks to the
SQL constraint covering the display_type logic, but the generic error message
is more clear for a user when deleting an uom.
This change allows uninstallation of hr_timesheet from the configuration of
Project.
Previously, attempting to disable the Timesheets feature from the configuration
of Project resulted in a user error that requested the user to first remove
tasks in projects that were linked to analytic accounts. This was caused by the
removal of demo data during the uninstallation of hr_timesheet, which attempted
to unlink analytic accounts before unlinking the projects that were referencing
those accounts. The order in which demo data are removed during uninstallation
of a module is currently not fixed. This change avoids the problem by instead
removing the explicit creation of analytic accounts as demo data.
Furthermore, hr_timesheet would be immediately re-installed upon uninstallation
through project_timesheet_synchro and project_timesheet_holidays. Disabling
those modules along with hr_timesheet fixes this.
Task 2339016
closesodoo/odoo#60134
X-original-commit: 43db576b7f0efed563ee597ab087e4d7ef5c74d9
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
If a portal user was a customer but not a follower of a project
he didn't have access to the timesheets linked to the project.
Task-2299286
closesodoo/odoo#59252
X-original-commit: 13fc0ab18eb1e1d4ba47b7a1e66cd5079d692d8b
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently, method _apply_timesheet_label will add label on field
unit_amount with widget timesheet_uom but the widget on this
field is changed in another module as timesheet_uom_timer so it will
not work when that module is installed.
So in this method pass the view_type as argument so it can be easily
override in another module based on view_type.
closesodoo/odoo#57847
Taskid: 2287390
Related: https://github.com/odoo/enterprise/pull/11884
Related: odoo/enterprise#13279
X-original-commit: 6ce434b6d6ab686c91c111d2f86503176fec6517
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Before this commit:
The field `planned_hours` and `subtask_planned_hours` are present
twice. This causes problems with widget: different widgets are put
on different fields, but only the last on was put on all of them.
Code to edit label with hours/days is not flexible, we need to
write each possibilities.
After this commit:
All fields are present only once in the view. A new widget is
created to manage days with a factor. In this new widget, instead
of having a toggle button, we can insert a float.
When the widget timesheet_uom is set on a field, we modify his string
with hours/days.
closesodoo/odoo#57557
Taskid: 2326216
X-original-commit: 5b3804402b3ebee5abe7004b8f8caccadaabfe1e
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- Go to Timesheets > Configuration > Settings and select Days as Encoding Unit
- Go to Project and create a Project with Timesheets activated
- Open the created Project and create a Task
- Edit the task and encode a timesheet line with 1 Day duration
"Hours Spent" and "Remaining Hours" have incorrect values.
The 1 day encoded is computed as 1 hour.
Reverting: https://github.com/odoo/odoo/commit/2a7ec79c6a4563b608a4525ebccdea5978799caa
opw-2328603
closesodoo/odoo#57379
X-original-commit: 8b3eed7418d6eea870f5e65ae238a304c88bd9f5
Signed-off-by: Anh Thao PHAM <kitan191@users.noreply.github.com>
PURPOSE
Clean code. Be more performance oriented.
SPECIFICATIONS
Improvements applied in this commit
* not all() --> any(not) for earlier returns;
* all([generator]) --> all(generator) to avoid unnecessary list casting.
This code construct is better managed by all;
This commit will probably not have a big performance effect on standard
production databases. However each performance and cleaning improvement
is welcomed.
LINKS
Task ID-2328619
closesodoo/odoo#56810
X-original-commit: 1cc6bb1231401ea7f501d2f5b5e9641ec8734850
Related: odoo/enterprise#12802
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Replace wrong usages of any(list|recordset), by any(generator)
to speed up computations, avoiding list creations and/or looping twice on a recordset
for nothing.
any([generator]) => any(generator)
any(filtered) => any(generator)
closesodoo/odoo#55768
Related: odoo/enterprise#12360
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
- Install hr_timesheet and sales;
- Create a product, set it as a service product with units of
measurement in days.
- Set the product as a task will be created from SO;
- Add a timesheet for one day to a task in a project (8 hours for
instance);
- The smart button on the sales order shows the time logged for that
project.
Before this commit, when the timesheet encoding unit is 'Hours', the
smart button shows the correct logged time (8 hours). But, when the
timesheet encoding unit is changed to 'Days', the samrt button shows
0.125 Days instead of 1 Day. This occurs because the uom used to create
the uom factor for the widget is not the Timesheet encoding unit.
opw-2301510
closesodoo/odoo#55544
X-original-commit: 2a7ec79c6a4563b608a4525ebccdea5978799caa
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
Currently, In timesheet module when we update the description of
existing entry and if the description is empty then it generates
required field error.
So in this commit, when a description updated as an empty then we
set a default '/' in the description.
closes odoo/odoo#55370
Taskid: 2301377
Closes: #54726
X-original-commit: 10cecadd05f0349765dc9cdb111e91c2d6d423b4
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
There are several places where the duration is expressed in hours even though the encoding unit is in Days.
Specifications
===========
The duration should be expressed in days instead of hours in the following places:
[x] Timesheet Entries
[x] Portal > Tickets
[x] Portal > Timesheets
[x] Portal > Tasks
[x] Portal > Sales Orders
[x] Project Overview
[x] Project task form view (in this case, the label of the field should be 'Planned Days')
[x] Timesheets > HR Timesheet/Attendence Report
[x] Project > All Tasks
Hide the following elements if the encoding unit is in days:
[x] 'Timesheet Timer' feature on the project form view
[x] 'Timesheet Timer' feature on the Helpdesk team form view
[x] the 'Round timesheets' feature in the settings of Timesheets (except if the 'Awesome Timesheet' feature is enabled)
Bonus point:
[x] Timesheet form view: 0.00 Days should be displayed in read-only if the duration = 0
Some labels need to be adapted to explicit the unit of measure (is it carrots? potatoes?): e.g. Duration (Days) or Time Spent (Hours) :
[x] Timesheet entries report
[x] on the portal
[x] Project overview: add 'recorded' next to Hours/Days
[x] Project overview: add 'Days/hours Spent' above the total by employee
[x] task form view: make sure the 'sub-tasks days spent' button/label stays on one line
[x] hide the 'start' button on project tasks and helpdesk tickets if the encoding unit is in days
Task ID : 2152322
closesodoo/odoo#46184
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
[IMP] hr_timesheet: hide the "Timesheet Timer" feature in the project form if encoding unit is not Hours
[IMP] hr_timesheet: clean display of Days for timesheets
A computed field has to be added to retrieve the encoding uom of the current company and be used in the views.
FieldTimesheetFactor field has to be registered to "float_factor" widget for the "planned_hours" field to work correctly with Days
(for the conversion from hours to days to be computed and to be able to set a greater value than 1 day)
If encoding unit for timesheets is set to Days:
- Display Days instead of Hours in Portal > Timesheets
- Display Days instead of Hours in Portal > Tasks
- Display Days instead of Hours in Portal > Invoices & Bills
- Display Days instead of Hours in Portal > Tickets
[IMP] hr_timesheet: display clean duration in Timesheet Entries
Display Days instead of Hours in Timesheet Entries (print action) if encoding unit for timesheets is set to Days
[IMP] hr_timesheet: correctly display timesheets in Days if configured to
- correctly display remaining days in project.task kanban and list view
- hide timer start button if timesheet is configured in Days
- update several column names
[IMP] hr_timesheet: clean code
[IMP] hr_timesheet: small improvements when displaying timesheets in days
- Rename some labels
- Fixes style
- Prevent fields displayed with widget "timesheet_uom" to change when timer is on
- Display correctly "Initially Planned Days" field in task creation form
- The HR staff may not be able to accept/refuse/cancel leaves if the
module `project_timesheet_holidays` is installed.
This is due to the commit c9da157149
introducing a manual check on the current user's group without
checking if the current environment is in superuser mode.
- Also fix the test verifying the access restriction, which meant to use
a different user, but did that with sudo(), obviously defeating
the fix. sudo is not used to switch user anymore, that `with_user`.
closesodoo/odoo#55274
X-original-commit: 75a166f1d115cc712bb39e7711d0fcb173732650
Related: odoo/enterprise#12149
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
Before this commit:
In helpdesk_timesheet, we have a compute_task_id with super.
But in hr_timesheet, task_id is not a compute field, so this
compute has no effect.
After this commit:
Task_id is changed to compute stored field.
taskId 2285926
closesodoo/odoo#54117
Related: odoo/enterprise#11682
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit fixes all issues detected by the new pylint
gettext-variable test.
It converts some calls to the new syntax
_("Foo %s", bar)
to progressively migrate the code to the new syntax.
A few calls were not technically incorrect but still detected by the
linter.
_("Foo" +
"Bar")
has been converted to
_("Foo"
"Bar")
as it has the same effect and make sure the argument is of type
asteroid.Const instead of BinOp).
closesodoo/odoo#53683
Related: odoo/enterprise#11467
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
1. Generic timesheets improvements
- Portal /my/timesheets
- Add a group bys task, date, employee
- Add search in project, name, employee, task
* The task column should not be visible if none of the timesheets have the Task field set
- If a group by task, date, employee or project is applied, the corresponding column should not be visible
2. Timesheets from sub-tasks on parent tasks
- Portal /my/tasks
- Display the 'Total Hours' spent on a task at the end of the list of timesheets
- Below the list of timesheets for the task, display another table detailing the respective timesheets (and total hours) of each sub-task linked to this task (= 1 table/list per sub-task)
* Title should be: 'Timesheets for sub-task: xyz'
* only visible if there are sub-tasks linked to this task
* only visible if total hours > 0
3. Timesheets on Invoices
- Portal /my/invoices
- Add Project + task fields
* Task field only visible if set on one of the timesheet entries
* Project field only visible if there are at least 2 different projects in these timesheet entries
4. Correct visibility for the portal users
- Portal users is allowed to see timesheets if the users are added in allowed portal users list in the project
- When a portal user is added as the message follower of the project, the user is added to allowed portal users as well
- When a portal user is removed from allowed portal users, the user is also removed from message followers
closesodoo/odoo#47248
Taskid: 2201908
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Allow user that have a employee in a company A
and that is allowed on company A and B to timesheet
on company B
Problem:
A user have access on company A and B but is link to
an employee that belong to company A. He want to timesheet on a
project from the company B. He gets an error
"Incompatible companies on records".
Since most users are linked to only one employee that belongs
to one company. It's impossible to have consistent companies.
Solution:
The employee shouldn't be checked on the timesheet
closesodoo/odoo#55074
X-original-commit: 7eada96b8fc1c370801ff42231167885cc8e46bc
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
The fields 'project_id' and 'user_id' have been converted to
stored-editable computed fields.
Convert the 'allow_timesheets' field.
Improvement of the _compute_task_id method to check the task_id field before using it.
Update hr_timesheet tests by removing calls to onchange methods because
now, compute methods are always called.
Get back the onchange on the 'project_id' to compute the task_id field due to a complex
bug found in sale_timesheet tests.
When more than one parameter is present in a message, it helps the
translation to use named placeholder. This way, the order can be
changed. It also helps the comprehension of the message.
mixin method should not return in the middle of the loop
Use the value updated on the record instead
super() is called with self at every iteration
which is not very efficient and can be wrong
Solution call super for each specific record
and only when needed
write is not a good practice in compute method
closesodoo/odoo#52858
X-original-commit: 7e19ed98d18305370b5c14edd3d310cfea5df714
Related: odoo/enterprise#11100
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently, when the unit amount of line is zero and the timer time
spent on entry is less than one minutes then entries are unlinked
once the timer is stopped and due to that the entry disappear from the
kanban view and traceback is generated.
After this commit, we fix the issue by preventing the deletion of
entries by setting options 'prevent_deletion' on widget so we should
no allow to delete the entry if the option is set on widget.
closes odoo/odoo#50395
Taskid: 2230155
Closes: #49128
X-original-commit: 64b9a9b4deaee5a8139b0afbe3f222a476a038f9
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
When we change the project on task, we change it also on
timesheet line if this line is not yet invoiced and if it
has no sale order line or the sale order line is the same
as sol of task.
closesodoo/odoo#45154
Taskid: 2169290
Related: odoo/enterprise#9471
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently the code for default name is inside the timesheet_grid
so on community the name(description) of the analytic line is
required.
so move the default name code from timesheet_grid to hr_timesheet.
TaskID: 2176065
Related Enteprise PR: https://github.com/odoo/enterprise/pull/9561
closes odoo/odoo#48657
Closes: #48657
Related: odoo/enterprise#9561
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Because.
Mighty PO said: "We'll need this in internal"
Don't ask me, it's changing every two days.
Task 2204084
closesodoo/odoo#48097
Related: odoo/enterprise#9394
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
It might look weird if the play button is displayed on some lines and not others.
It might seem even weirder if we have the Timer functionalities (such as the
timer bar we'll introduce with task 2217930) available even though the timer
is disabled on all projects. In this case, if we wanted something clean, we
would need to introduce a setting to disable the feature in Timesheets as well,
but that seems overkill. At last, you may not want the timer on the task form
view but find it still useful in the Timesheets app.
Specification
=============
Always display the start button, even if allow_timsheet_timer is False on the
selected project.
Task 2204084
In order to avoid losing some timesheets after tasks/projects deletion,
a warning message is displayed to the user to inform him that before
deleting tasks/projects, he has to delete timesheets associated to these
tasks/projects.
To ease this process, a button on the warning form allows him to directly
see the list of timesheets associated to selected tasks/projects (using
RedirectWarning exception).
TaskID: 2168071
The 'allow_timesheet_timer' field should not have a default value as it is
computed according to the 'allow_timesheets' field value.
Some tests have been added to check the coherency between 'allow_timesheets'
and 'allow_timesheet_timer' fields, at project creation and update.
closesodoo/odoo#46692
Taskid: 2206820
Related: odoo/enterprise#8923
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
Now that we have a new timer mixin that offers more possibilities
than what was currently implemented, we can reuse it in the timesheet
management module.
TaskID: 2149450
Purpose
=======
Currently, it is only possible to set an Analytic Account for a whole Project, there
is no distinction by task. However, if the user has 1 task per customer, he cannot
track the costs and revenues for that specific customer easily. He has to manually
change the AA of the timesheets' analytic lines. An option would be to set a
different AA on the SO generating the task, but the AA of the project takes over
anyway.
Specifications
==============
If the user sets an AA on the SO, it should bypass the one set on the project
Add an AA field below the Email cc one on tasks in debug mode
- should be related to the AA field from the SO
- it should also bypass the AA set on the project
All the timesheets from this task should be related to the AA field set on the SO/Task
closesodoo/odoo#40844
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
In Project, the configuration has to be done twice: in the settings of the
app and on each project.
During the onboarding, the user won't understand that a feature has to be
enabled at both places and will think that the system just doesn't work.
If the user enabled a feature, he most likely intends on using it for most
of his projects. Therefore, having to do a double configuration for each
new project is annoying.
By the way, sub-tasks is the only global feature (it can't be enabled or
disabled by project), so we are breaking it down by project to remain
consistent with the rest.
Specification
=============
1/ Enable subtasks per project
Before this commit, sub-tasks were a global feature (i.e. once enabled
they were enabled for all projects). This commit gives the ability to
enable/disable sub-tasks per project.
2/ Make project_id on planning required
3/ Change default rating status on new projects
4/ Default value for allow_subtasks
5/ Enable timesheets on existing projects
6/ Hide Total Hours if subtasks are disabled
7/ Create project in the company context.
Otherwise some records generation could use a default company which is not
the company for which we want to create a project.
8/ Default value for allow_forecast, is_fsm
9/ Change reference to timesheet product
10/ Fix tracback on industry_fsm_report.
Before this commit, there was a traceback when enabling "Worksheets"
(industry_fsm_report) after "Time and Material" (industry_fsm_sale).
11/ Convert some onchange method into computed editable stored fields
closesodoo/odoo#41218
Taskid: 2146474
Related: odoo/enterprise#6998
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Yannick Tivisse <yti@odoo.com>
Purpose
=======
The various buttons in FSM are currently displayed based on a set
of attributes. As there are many different configurations possible
for projects, it makes a lot of conditions (= the code is a living
nightmare). This task aims at replacing these attributes by computed
fields in order to gain clarity and to avoid the various bugs we
recently faced + add python tests to ensure their robustness.
Specification
=============
START/STOP/PAUSE/RESUME
-----------------------
- should not be visible if the task is marked as done
- should be visible in non-primary if Time > 0
- should be visible in primary if Time = 0
- when the timer is running, do not display the following
buttons: Create Sales Order, Mark as done, Create Invoice,
Sign report, Send report
- only visible if the 'Timesheet Timer' feature is enabled
on the project
SIGN REPORT
-----------
- should not be visible
- if Time = 0 AND Worksheet = 0 AND Products = 0
- OR if the report already is signed
- should be visible in non primary if Time > 0 OR
Worksheet > 0 OR Products > 0
- should be visible in primary if Time > 0 AND Worksheet > 0
AND Products > 0
- once the report is signed, display an 'fa-globe Customer Preview'
stat button redirecting to the webpage with the report
- only visible if the 'worksheets' feature is enabled on the project
SEND REPORT
-----------
- should not be visible if Time = 0 AND Worksheet = 0 AND
Products = 0
- should be visible in non primary if Time > 0 OR Worksheet > 0
OR Products > 0 OR if the report was already sent
- should be visible in primary if
- Time > 0 AND Worksheet > 0 AND Products > 0
- AND the report is signed
- only visible if the 'worksheets' feature is enabled on the project
MARK AS DONE
------------
- should not be visible if the task is marked as done
- should be visible in non primary if
- Time > 0 OR Worksheet > 0 OR Products > 0
- OR if Time = 0 OR Worksheet = 0 OR Products = 0
- should be visible in primary if Time > 0 AND Worksheet > 0 AND
Products > 0
- only visible if is_fsm is true on the project
CREATE INVOICE
--------------
- should not be visible if the task is not marked as done OR if
the SO linked to the task has the 'Fully invoiced' invoice status
- should be visible in non primary if the SO linked to the task has
the 'Nothing to invoice' invoice status
- should be visible in primary if the SO linked to the task has one
of the following invoice status: To Invoice, Upselling
- only visible if the Bill from tasks feature is enabled on
the project
EXTRA QUOTATION + CREATE SALES ORDER
------------------------------------
no change of behavior
closesodoo/odoo#42508
Taskid: 2126857
Related: odoo/enterprise#6918
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Yannick Tivisse <yti@odoo.com>
1) Add the following stat buttons on the right of the Tasks one:
- (fa-tasks) Late Tasks: tasks whose deadline is exceeded (do not include tasks that
don't have a deadline set)
- (fa-tasks) Tasks in Overtime: tasks whose Effective hours are strictly greater than
their Planned hours (if the latter is stricly greater than 0)
2) Remove the sheet view (should be like financial reports)
3) Add an 'Other Revenues' metric under the Profitability section below 'To Invoice'
- It should represent all the revenues other than from timesheets linked to the analytic
account of the project.
- Only visible if greater than 0
Task 2119567
Purpose fo the task is to improve the UX of timesheet, project and task.
Done the chages for below point:
- improve the stage demo data to unified the project stage
- on the task timesheet 'sub-tasks hours spent' should be clickable
and on click, it will display the list of subtask timesheet.
- display in warning tasks for which Remaining Hours < 0 if Planned Hours > 0 in task list view
- improve the settings of collabrative pad and planning and project form view
Task-2129052
closes odoo/odoo#41092
Closes: #41092
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
=======
Purpose
=======
Currently for a user to be allowed to see a private project they must follow the
project. This means that they will be added as a follower of all new tasks in the
project which causes them to receive 1000000 notifications, especially if there are a
lot of tasks in a project.
==============
Specifications
==============
1) Add an Employee m2m field on project next to 'Invited Employees'
- only visible if the 'Invited Employees' option is selected
- the project should only be visible to employees selected there (regardless if they
are followers or not)
2) Add an Employee m2m field on tasks below the 'Email cc' one in debug mode
- only visible if the 'Invited Employees' option is selected on the related project
- should be pre-filled with what is set on the project
- the task should be visible to employees selected there (regardless if they are
followers or not)
3) Add a Portal users m2m field on project next to 'Portal users and all employees'
- only visible if the 'Portal users and all employees' option is selected
- the project should only be visible to portal users selected there (regardless if
they are followers or not)
- rename the option into 'Invited portal users and all employees'
4) Add a Portal users m2m field on tasks below the 'Email cc' one in debug mode
- only visible if the 'Portal users and all employees' option is selected
- should be pre-filled with what is set on the project
- the task should be visible to portal users selected there (regardless if they are
followers or not)
5) Following a project/task should not grant the user/employee the ability to see the
project/task
Task 2031527
closesodoo/odoo#40505
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This removes the measure_type field which has become unused and
causes issues when users try to add new uom categories.
Task-2043927
closesodoo/odoo#41056
Related: odoo/enterprise#6945
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
TaskID: 2088586
When we launch the timer, if the clock of the client isn't correctly synchronize
with internet, we can't correctly display the timer,
because the clock of the server can be in advance.
The solution is to call the server to have this time and use the timer
only with the time of the server.