Commit Graph
165 Commits
Author SHA1 Message Date
Nimesh Jethva a308506051 [IMP]hr_*: Improvement in model description
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
2018-09-21 11:45:15 +02:00
Thibault Delavallée c59d6d2329 [FIX] hr_holidays: correctly update number of days of allocation
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.
2018-09-20 08:13:01 +02:00
Christophe Simonis 86ff929ad6 [MERGE] forward port branch saas-11.4 up to 1199451606 2018-09-10 17:06:18 +02:00
Yannick Tivisse 7978d4ba0f Revert "[IMP] *: Define groups on res.users models"
This reverts commit 99f497b390.
2018-09-10 14:23:42 +02:00
Thibault Delavallée 63951ea2c1 [IMP] hr_holidays: improve allocation and request display name
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.
2018-09-10 13:09:08 +02:00
Thibault Delavallée 04250cff1b [IMP] hr_holidays: allow allocation and request per company
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.
2018-09-10 13:09:04 +02:00
Thibault Delavallée 744de4ee1c [REF] hr_holidays: improve leave form view and simplify duration encoding
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.
2018-09-10 13:09:00 +02:00
Thibault Delavallée 14491e8f9b [REF] hr_holidays: clean fields used to store and display duration
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.
2018-09-10 13:08:57 +02:00
Thibault Delavallée bd5b2c9466 [REF] hr_holidays: simplify leave type configuration
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.
2018-09-10 13:08:53 +02:00
Thibault Delavallée af7901ca29 [REM] hr_holidays: remove inverse on employee leaves fields
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.
2018-09-10 13:08:46 +02:00
Thibault Delavallée 3522fe1b89 [REF] hr_holidays: remove unused views and lint some bits of code
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.
2018-09-10 13:08:43 +02:00
Christophe Simonis 68d36512ef [MERGE] forward port branch saas-11.4 up to d78f23df84 2018-09-07 20:20:45 +02:00
RomainLibert f63bf09cdd [FIX] hr_holidays: make related fields readonly
In the allocations we have two related fields on hr.leave.type but a
user cannot write on these fields hence we should make them readonly
2018-09-07 17:28:09 +02:00
Christophe Simonis 49c3264ce0 [MERGE] forward port branch saas-11.3 up to 4850fb0838 2018-09-07 14:43:48 +02:00
Thibault Delavallée 0f3281e3b1 [REF] hr_holidays: clean leave and allocation access rights
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.
2018-08-31 14:19:23 +02:00
Thibault Delavallée 0113d989a8 [REV] hr_holidays: revert "[FIX] hr_holidays: officers can CRUD leaves for their companies"
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 .
2018-08-31 14:19:23 +02:00
Christophe Simonis a7a30791de [MERGE] forward port branch saas-11.4 up to a5187cef10 2018-08-27 11:16:44 +02:00
Lucas Perais (lpe) ae34db3221 [FIX] hr_holidays: officers can CRUD leaves for their companies
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
2018-08-27 10:37:44 +02:00
Christophe Simonis 9f99eb9cb0 [MERGE] forward port branch saas-11.3 up to 3be46428cc 2018-08-24 22:12:20 +02:00
Toufik Benjaa 7f775f0677 [FIX] hr_expense/holidays: approval issue if manager in different company
- When trying to retrieve the manager of an employee who is in a
different company, an access right error appears.
  This commit fixes this issue.
2018-08-22 12:17:44 +02:00
Christophe Simonis 4f62d6dd8f [MERGE] forward port branch saas-11.4 up to ef6b574eda 2018-08-22 12:02:30 +02:00
Christophe Simonis ef6b574eda [MERGE] forward port branch saas-11.3 up to 6cc7d3f945 2018-08-21 18:48:13 +02:00
Toufik Benjaa 21430a4d02 [FIX] hr_holidays: Leaves approval fails on multicompany
- When trying to approve a leave with a manager in a different company
an access rights error is triggered.
2018-08-20 12:52:58 +02:00
Christophe Monniez 0da58f4133 [FIX] hr_holidays: fix _compute_leave_status
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.
2018-08-20 11:16:19 +02:00
Martin Trigaux d97e69ff02 [FIX] mail: schedule activity with user's today
The activity was incorrectly scheduled with a deadline as the now in UTC while
the state was computed using "today" in the user's timezone.
This made the nightly test fail (run at 23:30 UTC with the user in UTC+2).

Use context_today instead of today for all activity_schedule calls
To make it easier, use on the context_today default value instead of setting
context_today everywhere (which is more error prone in the future)

Never use datetime, only date objects
add a warning to detect potential errors when passing a datetime

Closes #26411
2018-08-17 13:46:39 +02:00
Thibault Delavallée 5ee535f297 [IMP] hr_holidays: improve leave type form view
Purpose: according to tasks's specifications

 * place elements in order it is not changing according what you select
 * https://drive.google.com/a/odoo.com/file/d/18gat1lw8mo9NTqU3mDuXqvuZXlMRzASX/view?usp=drivesdk
 * https://drive.google.com/a/odoo.com/file/d/1fLKpnW6RcaQetYJ0Ep7vZ7YHr_pW8-x_/view?usp=drivesdk

This commit is linked to task ID 1871812 and PR #26180.
2018-08-08 16:28:52 +02:00
Thibault Delavallée 8edae4200f [FIX] hr_holidays: yet another date/datetime fix
Still fixing some side effects of https://github.com/odoo-dev/odoo/commit/960360afe478a8f7b9c456721b5591154952a37d.
2018-08-07 16:45:16 +02:00
Thibault Delavallée 689a496f1c [REF] mail: propagate recipient data through notification process
Purpose of this commit is to avoid browsing and prefetching data about
recipients when notifying a message to partners and channels. Mail message
_notify computes all necessary data in a single query. This commit allow
to re-use this data by propagating it through the call chain.

Addons inheriting from classification methods used when sending notification
emails are updated accordingly to the API and data update.

This commit is linked to task ID 47934 and PR #24033. No functional change
should occur with this commit.
2018-08-07 15:43:06 +02:00
Thibault Delavallée 40922cc027 [FIX] hr_holidays: fix date computation
Since date / datetime refactoring done at 960360afe4 we cannot
encode new leave requests or new allocation requests anymore. This commit
fixes that by correctly setting date / datetime on date / datetime field
and correctly computing one from the other.
2018-08-07 15:39:36 +02:00
Raphael Collet 960360afe4 [REF] *: use native date/datetime for Date/Datetime fields
From this commit onwards, Date fields will return datetime.date objects and Datetime fields will return datetime.datetime objects, this implies a number of things that are clearly explained both in the ORM API for master.

This commit also introduces a number of helper functions for dates and datetimes that are exposed in tools.date_utils and fields.Date[time], explained in the documentation as well.

Task-ID: 47189
2018-08-06 14:37:19 +02:00
RomainLibert da15493d14 [FIX] hr_holidays: remove double label and fix default value
Default value of interval_number and number_per_interval was overriden
and set to 0 by _onchange_holiday_status_id this would then crash at
creation because of the sql constraint.

In the form view of allocations, the duration label was duplicated,
solution was to remove labels and simplify the view.
2018-07-20 11:58:35 +02:00
RomainLibert 2d8ba22b4e [FIX] hr_holidays: add a constraint on interval numbers
Before that commit we could ask for an accrual allocation of 0 hours
every 0 weeks for instance.
As it means nothing to ask for this, we add an sql constraint on these
fields and a default value of 1.
2018-07-03 17:19:00 +02:00
Christophe Simonis c8bb02141d [MERGE] forward port branch saas-11.3 up to 3cdcbce93c 2018-06-28 19:01:52 +02:00
RomainLibert 0f02aed0be [FIX] hr_holidays: always make leave type visible to holiday manager
A holiday manager should always see the leave types whatever the value
of employee_applicability is.
2018-06-19 11:15:07 +02:00
Christophe Simonis 73652a0b19 [MERGE] forward port branch saas-11.3 up to 50860317cc
Note: 1aacc96262 has been ignored and will
be forward-ported later
2018-06-15 13:27:27 +02:00
Christophe Simonis 50860317cc [MERGE] forward port branch saas-11.2 up to b170a753e1 2018-06-15 11:30:27 +02:00
RomainLibert dff3cd6319 [FIX] hr_holidays: avoid execution of onchange when no employee linked
If the current user is not linked to any employee we cannot retrieve his
calendar and so we cannot compute default times for the leave.
2018-06-14 16:38:18 +02:00
Priyanka Kakadiya a4290faebf [FIX] hr_holidays: set fallback timezone when user has none
Field tz is not mandatory on res.partners, so we need a fallback in case
it is not defined.

Related to Issue : 1856843
Closes #25206
2018-06-14 16:12:53 +02:00
Christophe Simonis af1853775f [MERGE] forward port branch 11.0 up to e3658d6f56 2018-06-12 16:49:11 +02:00
RomainLibert a8aa0bcbbe [IMP] hr_holidays: add accrual allocations support
We need to support the accrual allocation for leaves.
This is a special type of allocations that adds some leaves to the
allocation every X amount of time worked.

This kind of allocations is especially used in the USA, but can also be
used in other contexts (eg: In Belgium we could allocate 20 days per
year for the legal leaves)

These allocations have support for :

  * A max balance limit
  * Going in negative (if set on the leave_type and the manager
    approves the leaves)
  * Removing the unpaid leaves from the quantity of days worked
  * Setting an end date after which it does not allocate anymore leaves

Task #46114
Closes #22292
2018-06-08 14:41:05 +02:00
Swapnesh Shah 59bfef4c27 [Fix] hr_holidays: do not copy parent_id
When creating an allocation by employee tag if you copied any allocation
made, it was still linked to the parent allocation, hence when
confirming/refusing the parent allocation it would confirm/refuse the
copied one too.

Closes: #25106
2018-06-07 17:02:09 +02:00
RomainLibert b6642f1b70 [IMP] hr_holidays: add support for taking leaves differently
We would like to be able to take leaves using different units, currently
we only support taking leaves by hours because we use datetimes.

We need to support three units:
 * days
 * half days
 * hours

These units will be defined on the leave type.

Task #40995
Closes #21760
2018-06-06 17:04:07 +02:00
Raphael Collet 975c6c8639 [REF] resource calendar (#24717)
Refactor resource calendar and resource mixin:
 - add a required timezone field on models 'resource.calendar' and 'resource.resource';
 - resource calendar attendances are now computed in the timezone of the resource
   or the calendar;
 - improve API of 'resource.calendar' and 'resource.mixin';
 - avoid other modules from using the implementation methods of 'resource.calendar';
 - refactor implementation of 'resource.calendar' to make it more efficient.
2018-05-31 20:28:12 +02:00
Christophe Simonis e008ef302a [MERGE] forward port branch saas-11.3 up to 53300648ed 2018-05-30 12:18:52 +02:00
Christophe Simonis c2c9a60466 [MERGE] forward port branch saas-11.2 up to a2f275dfc4 2018-05-29 21:05:26 +02:00
Christophe Simonis f36e6917bd [MERGE] forward port branch saas-11.3 up to 37eed7c509 2018-05-29 17:34:43 +02:00
Richard Mathot c88da086b5 [FIX] hr_holidays: missing model renaming/split after a0f4f6548b 2018-05-29 13:34:52 +02:00
Benjamin Stiens 6383120f3b [IMP] all: Improve error messages
Many error messages are misleading or too "vague"
This task aims to improve all error message.

Task #47042
PR #23321
2018-05-28 16:45:48 +02:00
Christophe Simonis 644f0959d0 [MERGE] forward port branch saas-11.2 up to 1655202924 2018-05-17 14:23:37 +02:00
Christophe Simonis fa8a67ee5f [MERGE] forward port branch 11.0 up to 5a943390f2 2018-05-15 20:18:14 +02:00