Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.
Related Task ID : 37311
Two fields number_of_days_display and number_of_hours_display are used to set
a number_of_days field that stores the allocation day count of the allocation.
Those two fields are interface fields. One or another is used depending on the
leave type, depending on how the allocation is done: by hours or by days.
This commit fixes a wrong computation of number of days by correctly setting
a readonly attribute on unused fields as well as removing the inverse on the
interface fields. Using onchange ensure the backend field is correctly
computed. Moreover we could have two times the same tracking message as the
inverse triggers another write and cache could consider the tracking two
times.
In order to implement the next version of the dashboards in enterprise
we need to make some changes in community namely :
* Modify some search views (used in the dashboards)
* Remove the date/datetime filters from the search views as they are
duplicated with the time ranges
* Rename the menu items from Dashboard to Overview
Purpose of this commit is to add kanban views for allocation and leave
request. It is already possible to reach those views notably using the
activities systray. Default view contains only the name which is quite
sad. We therefore add real kanban views for both models.
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to correctly format the allocation or request
display name depending on the mode (employee, department, company or
category).
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to add an option when allocation or requesting
leaves in mass. New option is to do it by company.
Company field used for mass allocation or request is called mode_company_id
to avoid confusion with possible company_id field used for multi company.
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to simplify leave request encoding. We want less
options and more straightforward encoding of leave requests.
Specifications
* taking half-day leaves is limited to one half day. It is not possible
anymore to take leaves in half days that span on several days. WHen
choosing half day the user choose whether he takes the morning or the
afternoon of the given day;
* choosing half-days leaves spanning on several days can be done taking
several leaves if necessary. It is considered as a corner case that should
not bloat the interface;
* taking hours-based leaves is limited to a given day. It is not possible
anymore to take leaves given some start and end hours that span on several
days. When choosing hours the user choose the start and end hours using
a selection for every half-hour for the given day;
* choosing hours-based leaves spanning on several days can be done taking
several leaves if necessary. It is considered as a corner case that should
not bloat the interface;
* taking leaves spanning on several days is necessarily done with full
length days;
Various misc specifications about form view cleaning
* hide "To submit" stage in the stage bar;
* move description below duration information;
* remove display name;
Duration computation, various fields and form view are updated accordingly
to this specification.
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to simplify fields used in leave and allocation
used to store the duration of the requests. We want notably to get rid
of "number of days temp" that, contrary to its name, is not temporary
at all as it stores the real number of days. We also want to clarify
the hours or days encoding that is different on leave and allocation models.
Specifications
* number_of_days on leave and allocation is the master field holding the
leave or allocation duration in days;
* two fields are used for interface that are suffixed by _display in order
to indicate they are UX only: number_of_hours_display and number_of_days_
display. They are interface fields used for the user and correct number
of days is computed and stored in number_of_days;
* more specifically for leave model
* display fields are readonly as it is computed based on dates given by
the user, directly (from / to) or indirectly (half-day leaves for example);
* duration field is computed through an onchange. It could be directly
set by hand by managers if some confusion in the number of days appear;
* more specifically for allocation model
* display fields trigger an inverse as they are the real duration given
by HR officers or managers;
* duration field is computed through the inverse of display fields;
Various reports, data and use of leave / allocation models are updated to
use the correct field.
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to simplify the configuration of leave type and
use the job of HR officers / manager by making options clearer and easier
to use.
Specifications for leave type :
* display name as header;
* remove accrual option from leave type. It is now configured directly
on allocation requests;
* add a "X days allocated" stmart button. If you set a general allocation
of 20 days, the stat button will display 20 days. Even if you go update
the allocation by employee after that. Purpose is to have the value of
main allocation done in group, not individual cases of some employees;
* add a "Group leaves" stmart button. It leads to a new leave requests
in group mode where mode is visible;
* have a unique allocation type field replacing the setting allowing to make
leave or allocation as well as limit and negative fields;
* limit leave duration encoding to two options, either day-based (allowing to
take full days or half a day), either hours-based (allowing to take full
days, half a day or some specific hours in a given day);
More technically
* limit and negative fields are removed. It was confusing as limit set to
True means you can actually exceed the limit). It can be computed based
on allocation_type ('no' meaning you can bypass the limit);
* request_unit is simplified. Day and half are merged into day;
* accrual and balance limit are moved to allocation model;
Specifications for allocation requests
* set accrual specific on allocation itself and not coming from the leave
type configuration anymore. Indeed we now consider accrual to be done
case by case independently from the leave type;
* remove negative and balance_limit. Indeed we now consider people have to
check by hand what is done by accrual;
Leave and allocation are slightly impacted by other changes, such as domain
for default leave types. Changes have been made as small as possible. Future
commits will still improve leave and allocation models and views, going
further in the cleaning process. Some tests are udpated to match the new
configuration of leave type.
This commit is linked to task ID 1876795 and PR #26571.
Purpose of this commit is to clean allocation and request views and prepare
future modifications. We would like to separate personal views (making a
request for myself) from manager views (giving more options).
Specifications
* views under "My" menu should be simplified
* in a general way there should be no action buttons under my. Hide
approve/refuse buttons in personal mode;
* show only leave type, description and duration when asking for an
allocation; hide details about group allocation and accrual; hide
action buttons;
* show only leave type, description and from/to choice as well as duration
when asking for a leave; hide details about group allocation; hide action
buttons;
* in list view hide employee and buttons my menu;
* views under "Manager" menu should be complete
* display complete form view;
* add buttons to approve / refuse directly from the list view in manager
menus;
This commit is linked to task ID 1876795 and PR #26571.
Currently code somehow allows people to create allocation requests on the fly
by writing on the computed remaining_leaves field. It work only under some
conditions that are not likely to happen. Moreover creating and validating
allocation requests should be done under the Leaves application while knowing
it and not hidden in an inverse field.
Let us remove that code and let people use the Leaves application to handle
allocation requests. That code comes from old versions of Leave application.
This commit is linked to task ID 1876795 and PR #26571.
Purpose is to clean a bit the code to prepare some incoming modifications.
More specifically this commit focuses on removing unused views and actions
to lessen future work in shaping them like requested.
This commit contains :
* small linting of leave fields;
* remove some unused and unnecessary views and actions;
* ensure default values for request_unit_all;
* small linting of tests;
This commit is linked to task ID 1876795 and PR #26571.
It seems specifications of new menus implemented at 9af6e9070a were not
totally correct and broke some Odoo conventions. New specification for leaves
application menus are now the following :
* Dashboard
* My leaves (user sees this only)
* New request (calendar view by default)
* Leaves requests (only my, list view by default)
* Allocation requests (only my, list view by default)
* Summary (only my, summary list view by default)
* Managers (HR officers or managers only)
* To approve
* Leaves (default filters: to approve, on my department)
* Allocations (default filters: to approve, on my department)
* All
* Leaves
* Allocations
* Payroll
* Leaves to report (default filters: grey kanban state)
* Reporting (HR officers or managers only)
* Leaves Analysis
* Report by Department
* Configuration
* Leaves Types
This commit is linked to task ID 1876795 and PR #26571.
Purpose
- clean access rights;
- solve some access and security issues;
Access specifications
- an user
- can see all leaves;
- cannot see name field of leaves belonging to other user as it may contain
private information that we don't want to share to other people than
HR people;
- can modify only its own not validated leaves (except writing on state to
avoid bypassing validation);
- can discuss on its leave requests;
- an Officer
- can see all leaves;
- can validate "HR" single validation leaves from people if
- he is the employee manager;
- he is the department manager;
- he is member of the same department;
- target employee has no manager and no department manager;
- can validate "Manager" single validation leaves from people if
- he is the employee manager;
- he is the department manager;
- target employee has no manager and no department manager;
- can first validate "Both" double validation leaves from people like "HR"
single validation, moving the leaves to validate1 state;
- cannot validate its own leaves;
- a Manager
- can do everything he wants
In top of that, multi company rule are correctly added.
In reporting model using in "summary" name field should also be stripped
if you are not an HR officer and if it is not your own request.
Concerning allocation requests: implement same rules except constraint on
name field as it is less private and therefore can be seen.
This commit is linked to task ID 1876795 and PR #26656.
This commit was not correct and was a quick fix to avoid blocking daily use
of odoo saas-11.3. Next commit will fix access rights and enforce their
definition through more detailed tests.
This reverts commit ae34db3221.
This commit is linked to task ID 1876795 and PR #26656 .
Demo data prevent from reinitializing hr_holidays module. Indeed confirming
already confirmed leaves or allocations does not work. Demo data are
updated so that we can initialize hr_holidays several times.
This commit is linked to task ID 1876795 and PR #26423.
Before this, CRUD leaves was limited to department
After this, we go back to what was in 11.2: CRUD for the whole company, and children of it
OPW 1878869
closes#26516
Before the models split in a0f4f65 the Leaves Summary report inherited
the message_needaction from mail.thread. Now the hr.leave.report model
does not have this field and leads to a traceback.
With this commit, the filter is removed from the search view of the
report.
Click on the employee app causes a traceback when hr_holidays is
installed.
With this commit, leave_date_from and leave_date_to receive a date as
expected instead of a datetime when computing the leave status.