Currently, when we create time off and does not add 'Start Date' or
'End Date', it displays a wrong warning.
Issue is occur because date_from is required field at db level and it's
value computed based on visible field request_date_from which is
non-required field and when you keep that empty it will raisse the
contraint instead of required error.
So in this commit, we make request_date_field field required from view
and also make request_date_to visible based on condition so it should
fill the proper value inside the date_from and date_to.
closesodoo/odoo#63222
Taskid: 2352360
X-original-commit: c54f445ceae72518f787f43213ec78a9a7e1b1eb
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
A new calendar view has been added, the "year" view.
Some modifications should be done on this view, more specialy in "Time Off" application.
Problems were the fact that it was hard to see if a time off has been approved or not.
Another was the fact that week-ends & public holidays were not grey.
This commit change year calendar in Time Off module.
More specially, this commit:
- Change default calendar in personal dashboard to "year"
- Gray week-ends & public holiday (based on the worker's calendar)
- Hatch non-approved time off
- Removed a calendar view from My Time Off Requests
- Fix a "cancel" button that doesn't work
- Add a new view that is displayed when there is no filter to show on the filter view for calendars
Task id #2318645
Task id #2317525
Problem
-------
For regular allocation that have an empty date_from
(Allocation existing before 14.0),
it's not possible to save any change since an invisible field is required
and cannot be set.
Solution
--------
The field date from should be only required for type accrual
closesodoo/odoo#61892
X-original-commit: 700e584dd22fb7bc845675b4a49a3e5a85a7253a
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
WHY: it's a copy-paste mistake and doesn't have any meaning, while makes code
less readable
closesodoo/odoo#61091
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Issue
- Install "Time Off"
- Create new time off and approve it
We can no longer refuse it
Cause
The refuse button is invisible if the status is not equal to 'validate', in this case it is equal to 'validate1'
Solution
Change the attrs to display the refuse button when the status is 'validate1'
opw-2361929
closesodoo/odoo#61079
X-original-commit: 80926f582d88aae359a6b35ea521026a3804ce00
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Achraf <abz-odoo@users.noreply.github.com>
In odoo/odoo@d2238de576 the domain of the
action hr_holidays.hr_leave_action_action_approve_department has been
removed, as the addon was reworked and no domain is needed any more.
However, during a migration from a previous version, the older domain is
not overwritten with an empty value.
With this commit, the domain is set to an empty one, which allows the
migration to correctly update the record.
closesodoo/odoo#59673
X-original-commit: 76c2f412c09ef1169b5cf936f0770cd4200f29e2
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Currently, In the time off module when we try to open time off
activity from systray view it will open the wrong form view
so it shows the "Save" and "discard" button in the footer.
So in this commit, Fix it by changing the priority of primary
view which is only used for creating new timeoff from dashboard.
closesodoo/odoo#57578
Task-id: 2329080
X-original-commit: 2154e742418b6a2ff87f120d0338bc30b3d4b4dd
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Remove duplicate fields in tree views / kanban (outside of templates).
A field should not be present twice in a tree view. If one of the nodes has
custom attributes then behavior of other nodes is somehow unpredictable.
Having field present only once gives a more coherent behavior. Xpaths
could also lead to weird results if fields are present several times as
developers generally do not expect fields to be present several times in a
view.
An heuristic to detect duplicate fields will land soon in master. As this
commit targets a stable version only view fixes are provided.
Task ID-2329114
PR odoo/odoo#56946
X-original-commit: 977c2b9d12419fba3bada1ebefcca15f051ca565
The "viewer" should be the "parent" not the view itself. This distinction will
become important in a future commit to allow viewers to not display the view in
some situations.
Rename done as a standalone commit to ease diff readability.
Part of task-2310623
closesodoo/odoo#56751
X-original-commit: f9ee1cf5f904116e4d1d70a8eaf4ee1d58b18a3a
Related: odoo/enterprise#12764
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Make the employee presence icons more descriptive.
Allow to quickly filter the Presence Reports based on the user status.
closesodoo/odoo#54527
Taskid: 2246447
Related: odoo/upgrade#1488
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Improve slightly the layout of some forms related to employee and contracts.
Modified modules:
hr
hr_expense
hr_holidays
timesheet_grid
hr_contract_salary
hr_payroll_account
Task ID 2277298
closesodoo/odoo#52981
Related: odoo/enterprise#11156
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
In the commit, https://github.com/odoo/odoo/commit/3bd345597fa932abdaf780f72bacf331690f549b#diff-4b74c5cd47565e7fbe2a526d12a577c4L300
which convert the onchange to compute, there was onchage on
number_of_hours_display and on number_of_days_display which
going to write the value to number_of_days. but it was missed
in above commit so value was no upated in number_of_days.
So due to that when we try to allocate the duration in terms of days
or hours in time off allocarion and save it, it will be automatically
takes the default value.
So in this commit, Fix the issue and update the number of days based on
number_of_days_display and number_of_hours_display also set the default
value for number of days/hours when change allocation type or holiday
status type.
closes odoo/odoo#54715
Taskid: 2275933
Closes: #53014
X-original-commit: 5fe6ae94bb61cc27f8f3326408d749680e4f79e1
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit sets attribute sample="1" in a bunch of list and
kanban views, to enable the new sample data feature when views are
empty.
Task 2232801
X-original-commit: 5471309b35619f307242c2704c7681ba63d2be42
This commit is a significant rewriting of client-side discuss, chatter,
chat window, and messaging menu using OWL. The behavior should be broadly
the same, with some slight functional changes here and there.
From a technical standpoint, the code of messaging is mainly organized in 2
main groups of modules:
- models, which are logical entities that depict the client-side state of
messaging as a whole.
- components, which are in charge of displaying information from models.
This refactoring also introduces new JS guidelines regarding folder structure
(/static) and naming rules for JS modules.
Community PR: https://github.com/odoo/odoo/pull/39023
Enterprise PR: https://github.com/odoo/enterprise/pull/6249
Task-1914207
This PR is a collaborative work by Alexandre, Julien, Sébastien and Xavier,
with the precious help of Lucas to speed it up towards the end.
closesodoo/odoo#39023
Related: odoo/enterprise#6249
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Co-authored-by: Alexandre Kühn <aku@odoo.com>
Co-authored-by: Julien Giannone <jgi@odoo.com>
Co-authored-by: Lucas Perais <lpe@odoo.com>
Co-authored-by: Sébastien Theys <seb@odoo.com>
Co-authored-by: Xavier Dubuc <xdu@odoo.com>
PURPOSE
=========================
The goal of this task is to set up some kind of guidelines to make
kanban views consistent.
It is fine having different kanban views, but if a UI element is shared
among several kanban views, it should behave/look the same so the user
knows what to expect.
Kanban views can be split into two types:
==> 'documents' kanbans, such as res.partner, crm.lead, etc.
- those records are created/edited often, numerous
- 'opening' the card means accessing the record
==> 'dashboard' kanbans,such as stock.picking.type,account.journal, etc.
- those records are not created/edited often, there are much less numerous
- usually presented as dashboard, where 'opening' the card means
accessing a set of related 'documents' (clicking on a account.journal
to access account.move, or stock.picking.type to access stock.picking)
- configuration of the 'card record' is done through a dropdown to
access configuration
Here are some guidelines for consistency. Bear in mind that those are
not rules, but guidelines for consistency that we'd like to keep in
mind when designing.
==> 'documents' kanbans
- the record is accessed through global click
- the user avatar is at the bottom right
- the activity widget is at the bottom left (in last position if
there are other elements)
==> 'dashboard' kanbans
- the record is accessed through a 'Configuration' option in the card dropdown
- there is no global click, and therefore no focus shadow
- the dropdown icon (o_kanban_manage_toggle_button) is always visible,
with icon fa-ellipsis-v
- the listview counterpart should be presented as a dedicated
configuration menu, and shouldn't be in the 'dashboard action'
- links in the body of the card are structured as follows: link with
<count>+label, then any additional aggregated metrics (not link) to the right
example https://drive.google.com/file/d/1ZP6HDHTtC7cQ6rDWgqLoPs6U8JCeNVkW/view?usp=sharing
==> global guidelines
- the title font color is #212529, with 500 weight
- the subtitle font color is #666666, with 400 weight
- the font size is 1.083rem
- text overflow is handled through linebreak, not ellipsis
- numerical values are aligned to the right
- the kanban state widget is at the bottom right
SPECIFICATION
=================
AS per guidelines Improved follwing kanban/dashbaord view
- hr_job
- hr_department
- hr_work_entry
- hr_appraisal
- fleet_vehicle
- product_template
- sale_subscription_template
- crm_team
- res_partner
- event
- stock_picking_type
- mrp_eco_type
- maintenance_team
- quality_alert_team
- account_journal
Added the department menu on employee with default kanban view
Added sequence in hr_work_entry list view
TaskID: 2206372
Related Enterprise PR: https://github.com/odoo/enterprise/pull/10341Closes: #50536
Purpose
=======
The following task implemented new widgets/features in the listview for better UI.
https://www.odoo.com/web#id=2195254&action=327&model=project.task&view_type=form&cids=1&menu_id=4720
The goal of the current task is to use those to upgrade our listviews
Specification
=============
Below are change requests on various listviews.
Remove decoration-bf="message_needaction==True" from every listview in every module.
PRODUCT - stock.view_stock_product_template_tree (product template)
remove all decorations from <tree>
set the following decorations on 'virtual_available' and 'qty_available'
decoration-danger="virtual_available<0"
decoration-warning="virtual_available==0"
also set decoration-bf on 'virtual_available'
apply the same modifications on stock.view_stock_product_tree for product variants
SUBSCRIPTION - sale_subscription.sale_subscription_view_list
remove all decorations from <tree>
'stage_id' field
set <field name="stage_id" widget="badge" decoration-info="stage_category == 'draft'" decoration-success="stage_category == 'progress'"/>
'recurring_next_date' field
set <field name="recurring_next_date" string="Next Invoice" widget="remaining_days" attrs="{'invisible': [('stage_category', '!=', 'progress')]}"/>
set decoration-bf on 'code' and 'recurring_total_incl'
move 'percentage_satisfaction' before 'recurring_total_incl'
set widget="many2one_avatar_user" on 'user_id'
add <field name="activity_ids" widget="list_activity"/> after 'user_id'
ELEARNING - website_slides.slide_channel_view_tree
set widget="many2one_avatar_user" on 'user_id'
'enroll' field
set <field name="enroll" widget="badge" decoration-success="enroll == 'public'" decoration-info="enroll == 'invite'" decoration-warning="enroll == 'payment'"/>
POS - point_of_sale.view_pos_order_tree
remove all decorations from <tree>
'state' field
make visible and move it at the end of the view
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state not in ('draft','cancel')"/>
set decoration-bf on 'name'
APPRAISAL - hr_appraisal.view_hr_appraisal_tree
'state' field
set <field name="state" widget="badge" decoration-info="state in ('new','pending')" decoration-success="state == 'done'"/>
'date_close' field
set <field name="date_close" widget="remaining_days" attrs="{'invisible': ['|',('state','=','done'),('state','=','cancel')]}"/>
PAYMENT - account.view_account_payment_tree
remove all decorations from <tree>
'state' field
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'posted'"/>
move 'company_id' before 'amount'
CONTRACT - hr_contract.hr_contract_view_tree
remove all decorations from <tree>
'state' field
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-warning="state == 'close'" decoration-success="state == 'open'"/>
set widget="many2one_avatar_employee" on 'employee_id'
PAYSLIPS - hr_payroll.view_hr_payslip_tree
remove all decorations from <tree>
'state' field
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-warning="state == 'verify'" decoration-success="state in ('done','paid')"/>
set decoration-bf on 'number' and 'net_wage'
move 'company_id' before 'basic_wage'
set widget="many2one_avatar_employee" on 'employee_id'
SURVEY - survey.survey_tree
'state' field
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'open'"/>
APPLICATION - hr_recruitment.crm_case_tree_view_job
set widget="date' on 'create_date'
set widget="priority' on 'priority'
set widget="many2one_avatar_user" on 'user_id'
TIME OFF - hr_holidays.hr_leave_view_tree
remove all decorations from <tree>
'state' field
set <field name="state" widget="badge" decoration-info="state == 'draft'" decoration-warning="state in ('confirm','validate1')" decoration-success="state == 'validate'"/>
apply the same changes in hr_holidays.hr_leave_allocation_view_tree
closesodoo/odoo#51305
Taskid: 2256589
Related: odoo/enterprise#10614
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit adapts several views to make them use newly defined
widgets, the new decoration-xxx mechanism on fields, and to adapt
them to the new design of buttons.
Part of task 2195254
Purpose
=======
Avoid to show to much information to leave responsibles.
Specification
=============
- Dynamically add/remove the leave_manager_ids on the group
group_hr_holidays_responsible, on employee creation/modification
- Retrict the available employees when creating a leave. For
manager/users : Everyone. For responsibles: The employee for
who the user is responsible. Otherwise: Only me.
- Don't obfuscate the leave name on employees for who I'm the
responsible.
- Add a new SQL view for "Everyone" report. To select only the
information we want to share instead of showing the hr.leave
model directly.
closesodoo/odoo#47659closesodoo/odoo#49765
Taskid: 2206862
Related: odoo/enterprise#9239
Related: odoo/enterprise#10021
X-original-commit: 781147dcaf1552b8f2ab687ed73034b8fd1f7352
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently it was not possible select start date for accruals
leave allocation. it was default taken as today's date.
So purpose of this task is to make start date field of accrual
time off visible so user do not have to wait until day to add a day off
In this commit, we make start date field of accrual time off visible with
default value as today and also check for the start date in cron method.
closes odoo/odoo#46811
Taskid: 2199326
Closes: #46811
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- Switch position of leaves taken / remaining
- Change the "To" date when requesting a leave
- Take into account the leaves to be validated in the dashboard
- UX improvements to the popover
closesodoo/odoo#46210
Taskid: 2198615
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
When user apply half day leave in Leaves, the approver should be able to check
whether it's morning or afternoon on the approval page.
closesodoo/odoo#48429
X-original-commit: 3d3de2bf991bf4a10566599d3bb9011e4c09d21f
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Alex Tuyls <alt-odoo@users.noreply.github.com>
Purpose of the task is, when the accrual is selected, the field for
duration is hidden but the feature allows to use it.
So in this commit,when accrual is selected, display number of days
(duration) to provide an intial allocation while accrual is selected.
Also change label and tooltip according to allocation type.
closes odoo/odoo#48354
Taskid: 2199324
Closes: #47598
X-original-commit: 74df5cbaf37d3cc6da0b15efa9d7f4a4ec265ec5
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose of this task is to prevent users from setting portal users on
internal documents by mistake, and preventing noise and performance
issues resulting from loading all the portal users in those fields.
This commit fixes internal many2x fields to res.users which are now
restricted to internal users by setting domain (share=false) on form view.
closesodoo/odoo#47553
Taskid: 2172779
Related: https://github.com/odoo/enterprise/pull/9204
Related: odoo/enterprise#9204
Closes: #47553
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Issue
- Time Off
- Managers > All > Time Off
- Any form > Schedule Activity > Any activity > Schedule
- Mark as Done > Done & Schedule Next
Traceback "field can_reset does not exist"
Cause
In ir.ui.view the postprocess_and_fields tries
to return an architecture and a description of all the fields
of mail model (with view=False) but as we have a context
key 'form_view_ref' with value hr_holidays.hr_leave_view_form_manager
It loads the field of this view's model too and then it compare
them to the mail model fields.
Solution
Move the view ref into view_ids
OPW-2205031
closes#46150closesodoo/odoo#46552
X-original-commit: 88104afaa07f80261d3198abd71b7bea7c1cf3f4
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
The 'name' field (Description) has been removed from the 'group by' definition in the allocation search view
because this is useless to group by this field as each value will be different from the others.
closesodoo/odoo#46478
X-original-commit: 2f6abba160b5e2dac73ba2c56dcb139d10f20273
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Currently when click on "NEW TIME OFF REQUESTS" from the dashboard,
popup with save and discard buttons visible,
after create/save new time off request, the dialog is not closed.
the dialog is still there with footer buttons "Edit" & "Create".
After this commit, The dialog will be cloased when user click on save button.
Creted new form view because previous form view is used at other
place so we can not add buttons directly on that view.
closes odoo/odoo#45137
Task-id: 2183096
Closes: #45137
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
In multi-company, the group by "company" refers to the field
"mode_company_id" and not to the company of the employee so due to
that there is a confusion.
So for the field model_company_id:
- on the views, name the field "Company"(Functionally it doesn't change)
- on the model, name it "Company Mode".
closesodoo/odoo#45181
Taskid: 2168320
Closes: odoo#45181
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Issue
- Install Time Off & Studio
- Set up your language to English with format date
to %d/%m/%y instead of %m/%d/%y
- Enable Kanban view in Time Off dashboard with Studio
- Compare Kanban and List view
The list view dates is correctly formatted but not
the kanban view dates
Cause
We use momentjs which doesn't take the user date format
in account, only the locale.
Solution
Use a field with datetime widget which handle this case.
OPW-2195584
closesodoo/odoo#45272
X-original-commit: 69b3578b3d00c8b6284c40f91ffb117a8bd3eec4
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The order of the view is gantt,calendar,list but if you come form the saas-12.3 the view_id will remain defined with a calendar view
So we need to erase that value to have the gantt view by default
closesodoo/odoo#43829
X-original-commit: 3415ebd5702094d6903b1f4aa550c45d8d74da32
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This reverts commit 802817c925.
The new test was crashing when current weekday is Friday.
This is easy to fix, but some other considerations are missing in
the original commit, like taking into account timezones.
We will add a proper fix later, and revert now in the meantime.
closesodoo/odoo#41123
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Before this commit, when a user was on leave, the out of office
message displayed the current leave-in-progress date-to.
This information was misleading when the user on leave used different
types of leaves, because other users would expect their colleague to
come back from vacation sooner.
For instance, suppose that user is on vacation on October from 18-22
(included), and from 25-28 (incl.), with a week-end from 23-24:
+--------------------------------------+
| OCTOBER calendar |
+--------------------------------------+
| Mo. Tu. We. Th. Fr. Sa. Su. |
| |
| |
| on-leave week-end |
| <--------------------> <------> |
| 18 19 20 21 22 23 24 |
| |
| on-leave |
| <---------------> |
| 25 26 27 28 29 30 31 |
+--------------------------------------+
On November 20, other users would see "On leave until _November
22_ included", instead of _November 28_.
This commit fixes the issue by taking into account consecutive
holidays to compute the actual end date of vacation.
Task-2002525
closesodoo/odoo#38388
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Purpose
=======
We want to allow different approvals for allocations and leaves of a same type.
e.g. In case of compensation days, a manager would approve the
allocation request, but would later not approve leave requests.
Specification
=============
Allocation modes
----------------
No change here except renames.
1. No limit (employee doesn't need an allocation to request a leave)
2. Allow employee requests
3. Fixed by Time Off Officer
Allocation approval
-------------------
A radio field to choose the approval mechanism
appears if the employee is allowed to request an allocation.
The following approval modes are possible:
1. Time Off Officer
2. Employee's Time Off Manager (leave_responsible_id)
3. Employee's Time Off Manager and Time Off Officer
These options are the same as leave approval options
(except the missing "No Validation").
If option 1 or 2 is selected, a o2m field should
allow to select which Time Off Officer is responsible
for approving those allocations.
Allocation approval policy is the same as the leave approval policy.
Task id: 1936742
Access rights based on task 1950998