Commit Graph
139108 Commits
Author SHA1 Message Date
Xavier Morel 7051a628c8 [FIX] core: PyPDF2 suppresses warnings
By default, PdfFileReader will monkeypatch the `warnings` module even
if it has no reason whatsoever to do so and suppress the
`captureWarnings` behavior.

This means as soon as we've loaded a PDF file, `warnings.warn` don't
trigger `logging` warnings anymore, and become invisible.

This can lead to non-deterministic behaviors depending as warnings may
or may not be suppressed depending when they occur relative to loading
a PDF e.g. load a module which runs a test which loads a PDF before a
module triggering a warning and the warning won't be visible, other
way around it will.

Except ofc while we have an override to PdfFileReader it's not
used *everywhere*, so need to monkeypatch the init.

closes odoo/odoo#60132

X-original-commit: 6b04dbcd4204a75d6bd68fc0b3010a2297779b32
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-10-15 17:34:57 +00:00
Arnaud Joset fb875a3852 [IMP] account: add compute_fiscalyear_dates method on res.company
[IMP] account: add compute_fiscalyear_dates method on res.company

The following commits
  https://github.com/odoo/odoo/commit/576a69e29e98532aa5de78eb3fcbff0b94cea32d
  https://github.com/odoo-dev/enterprise/commit/ed383522791276b17ba68a4f0d08f9e3ed4e783c

move the  compute_fiscalyear_dates method from the community account module to the enterprise one account_accounting.

This commit ensures that the method can be used when account_accounting is not installed.
As the fiscal year is irrelevant when account_accounting is not installed, this commit displays the calendar year.

taskid: 2329108
See also: taskid 220194

closes odoo/odoo#60140

X-original-commit: 544cb3682033e9f644b48b97dd5197eaf9282ff5
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 20:23:20 +00:00
fw-bot 2be103239f [MERGE] l10n_be_hr_payroll: Validate the CP200 different payslips
Purpose
=======

In Belgium, the job market is divided into "sectors": chemicals, metals, banks,
department stores, pharmacies ... This breakdown is made on the basis of the
activities of the company. In order to be able to ensure the functioning of the
sectors, each sector has its own consultation body, called the "joint commission".

A joint committee is a consultation body in which representatives of employers
and unions set, after negotiation, the minimum wage conditions as well as the
working conditions in legal texts, called “collective labor agreements”. These
are applicable to all employees in a specific sector.

These are agreements that employers and workers in a given sector must make and
respect. These agreements may be different from one sector to another. Each sector
has its label and number.

The CP 200 is the auxiliary joint committee of employees (CPAE). About a quarter
of private sector companies and employees in Belgium are found in CP 200. This
makes it the largest and most diverse CP in the country!

TaskID: 2352568

Specification
=============

Most of the different use cases that we can face in belgian payroll for CP200
have been tested and validated by a fiscal expert.  Briefly, it covers the following
use cases:

- Unpaid time off
- Legal time off
- Credit time
    - Classical
    - With paid time off
    - With unpaid time off
    - With sick time off
    - Starting in the middle of a month
    - Full time (O hours / week)
- Half-days in working hours
    - Classical
    - With full-day time off
    - With half-day time off
- Low salaries
- Back-to-work - Sick time off
    - Relapse
    - Guaranteed salary
    - Long sick off (+1 month)
- Student contracts
- Posted Employess
    - Without ONSS
    - Wihtout withholding taxes
- Public Holiday
    - Classical (during the working hours)
    - Compensation (during the week end)
    - After the end of the contract
    - Note: Variable compensation is not handled yet, but it's planned
- Brief Holiday (In french: "Petit Chômage")
    - 1 day
    - 1 week
    - Note: Variable compensation is not handled yet, but it's planned
    - 1 day for unpredictable reason
- End of contract in the middle of the month
- Half-days time off
- New design of the payslip to improve readability

The detailed list of the fixes/improvements is the following:

- 1/ hr_work_entry_contract: Define 1 leave work entry per presence

    Purpose:
    Some sick time off have to be defined into different work entry types, according
    to the type of sick leaves.

    Example: after 30 calendar days of sick leaves, the employee is not paid by the
    same organism and therefore, the time off should be reported into different work
    entry types.

    Specification:
    Instead of creating a big work entry per time off, create as many work entries
    as there should have been presence work entries.

- 2/ hr_work_entries: Prevent users deleting work entries

    Prefer to archive them instead.

- 3/ hr_work_entry: Display work entry type on calendar views

- 4/ web: Add styling classes for report

    Purpose:
    Those classes are useful for the payslip printed pdf reports, but some
    of them are useless for any kind of report, and thus the classes have
    been defined in the web addons.
    Task-2341886

- 5/ resources: Take company attendances/global leaves on creation

    Purpose:
    When creating a new calendar (38 hours/week) on a Belgian company,
    the new calendar is prefilled on a 40 hours/week basis, even if the
    company calendar is correctly defined.

    Specification:
    Copy the global time off + the attendances on the company calendar
    on company modification

- 6/ hr_holidays: Allow to refuse overlapping time offs

    Purpose:
    It's normally not possible to create 2 time off that overlaps on the
    same period.

    But, if for a given reason it happens on a production database, it should
    be possible to refuse those time off. Otherwise, the user is stuck with
    this wrong configuration.

- 7/ hr_holidays: Prevent creating time off of 0 hours

    Purpose:
    It makes no sense + it could cause conflicts when generating the work
    entries

- 8/ resource: Add method to retrieve the longest work day

    Purpose:
    Add a method on the calendar to retrieve the maximum number of hours
    an employee is supposed to work.

    Example:
    Monday: 8-12, 13-17
    Tuesday: 8-12, 13-17
    Wednesday: 8-12
    Thurday: Off
    Friday: Off

    The method will return 8

- 9/ hr_holidays: Adapt query counter due to changes on hr_payroll

    See: https://github.com/odoo/enterprise/pull/13848/

- 10/ hr_payroll: Update translations

    Lots of new terms have been added on the printed reports, etc...

- 11/ l10n_be_hr_payroll: Consider out of contract public holiday

    Purpose:
    If there is a public holiday less than 30 days after the end of the
    contract, the employee should be paid for that day too

- 12/ l10n_be_hr_payroll_posted_employee: Add an easy way to create a public time off

    Purpose:
    Public time off should be created via the calendar (at least for belgian companies using payroll).

    The reason behind this is that there should be a resource.calendar.leaves available even if the
    employee ends its contract. If it's created using a hr.leave, there won't be any
    resource.calendar.leave as the employee is not supposed to work anymore at that time.

    When an employee leaves the company, it's possible that he's paid for public time off if it
    occurs less than 30 days after the end of his contract.

- 13/ l10n_be_hr_payroll: Rename bank holiday into Public holiday

    Purpose:
    A bank holiday is a specific holiday name, not the generic one.

- 14/ hr_work_entry_contract: Add menuitem to access calendars

    It shouldn't be required to enter debug mode to access this information.

- 15/ l10n_be_hr_payroll_posted_employee: Add support for posted employees

    Purpose:
    https://www.socialsecurity.be/citizen/fr/travailleur-salarie-occupe-en-belgique-detache-a-l-etranger

- 16/ l10n_be_hr_payroll: Implement guaranteed wage/relapse for sick leaves

    Purpose:

    Guaranteed salary for employees:
    The employee who is incapacitated for work as a result of a work accident, an accident on
    the way to work or an occupational disease retains, at the employer's expense, the right to
    his remuneration for the first 30 days of incapacity for work. The daily allowances relating
    to this period are paid to the employer by the body responsible for industrial accidents or
    by the Fund for Occupational Diseases.

    Successive disabilities - relapse:
    It is possible that a worker will be unable to work during different successive periods.

    When two incapacities follow one another without interruption (for example, accident followed by
    illness; successive illnesses of a different nature), there is only one period of incapacity and
    the guaranteed remuneration is not due again. time.

    On the other hand, we talk about relapse when a new disability occurs after the worker has returned
    to work normally.

    In this case, the guaranteed remuneration is not due again when the new incapacity for work occurs
    within the first 14 days following the end of a period of incapacity for work giving rise to the
    payment of the guaranteed remuneration.

    However, there is still a right to the guaranteed salary for the part remaining to run, if the first
    period of incapacity has not exhausted the entire right to the guaranteed salary during the first
    period of incapacity. A new guaranteed wage is also due again when the worker establishes by a
    medical certificate that this new incapacity for work is due to another illness or to another
    accident.

- 17/ hr_work_entry_contract: Define 1 leave work entry per presence

    Purpose:
    Some sick time off have to be defined into different work entry types, according
    to the type of sick leaves.

    Example: after 30 calendar days of sick leaves, the employee is not paid by the
    same organism and therefore, the time off should be reported into different work
    entry types.

    Specification:
    Instead of creating a big work entry per time off, create as many work entries
    as there should have been presence work entries.

- 18/ test_l10n_be_hr_payroll: Add test for full time credit time

- 19/ test_l10n_be_hr_payroll: Add test for out of contract credit time

- 20/ test_l10n_be_hr_payroll: Avoid undeterministic bug on generated tests

- 21/ hr_payroll: Don't display out of contract line on pdf

- 22/ test_l10n_be_hr_payroll: Fix undeterministic test crashes

- 23/ payroll : Improve the printed payslip report

    Improves the design of the payslip report
    Generates the report in the employee's language (add a message if the lang is not official)
    Adds some data to Laurie Poiret
    Task-2341886

- 24/ test_l10n_be_hr_payroll_account: Add test for unjustified reasons

- 25/ test_l10n_be_hr_payroll_account: Add tests for small unemployment

- 26/ test_l10n_be_hr_payroll_account: Add tests for half days time off

- 27/ test_l10n_be_hr_payroll_account: Fix false positive

- 28/ hr_holidays: Prevent creating time off of 0 hours

    Purpose:
    It makes no sense + it could cause conflicts when generating the work
    entries

- 29/ test_l10n_be_hr_payroll_account: Add test for end of contract

- 30/ test_l10n_be_hr_payroll_account: Add tests for public holidays

- 31/ hr_payroll: Display amount if hourly wage

- 32/ hr_work_entry_contract: Allow creating record on gantt view

- 33/ l10n_be_hr_payroll: Add new structure for student employees

    Purpose:
    Also bring some fixes on fields display + hours/days counts
    TaskID: 2347843

- 34/ test_l10n_be_hr_payroll_account: Add test for low salaries

    Ensure the correct computation of the employment bonus.

- 35/ l10n_be_hr_payroll: Make separate lines for half/full worked days

    Purpose:
    Worked days should be separated between the complete full days and the
    half days.

    Example:
    I work on Monday, Tuesday, Wednesday (half day)

    The calculation is OK, but the number of days is, in principle, 14 in the month of
    September 2020 (9 full and 5 in half-days). This number of days should be the subject
    of 2 separate lines:

    9 days - 68.4 hours - € 1,100.77
    5 days (in the form of half-days) - 19 hours - 224.33 €.

    In this case, we cannot use the hourly formula since the monthly salary must always be
    the same, without having an identical number of working days.

    The worker benefits from 14 meal vouchers. The number of days must however correspond
    to the number of meal vouchers so that the worker can check.

- 36/ test_l10n_be_hr_payroll: Test credit time with sick leaves

- 37/ test_l10n_be_hr_payroll_account: Test credit time with unpaid leaves

- 38/ l10n_be_hr_payroll: Don't consider time off as credit times

    Purpose:
    When generating the work entries, we compare the standard attendances
    (i.e. the full time contract) and the credit time attendances to
    deduct the intervals on which the employee is on credit time.

    But if the employee is on a time off during a period, those intervals
    will be removed from the supposed attendances, and then those periods
    are considered as credit time.

- 39/ l10n_be_hr_payroll: Fix credit time amount on payslip computation

    Purpose:
    The time credit days must not include a corresponding amount.

    In fact, no remuneration is linked to the taking of time credits. The necessary modifications
    are:
    Code LEAVE300 -> no amount

- 40/ hr_payroll: Export standard calendar if needed on payslip export

- 41/ l10n_be_hr_payroll: Fix worked days lines amount computation

    Purpose:
    The amount was computed as a simple ratio based on the number of days.

    To be correct and compliant with the law, we should consider the hourly
    equivalent wage, and compute the amount based on the worked hours.

- 42/ l10n_be_hr_payroll: Fix unpaid worked days amount computation

    Purpose:
    Don't use the normal wage which is an integer btw.

    Compute the worked days amount using the classic hourly computation formula

- 43/ l10n_be_hr_payroll: Fix unpaid leaves retenues formula

    Purpose:
    Unpaid leave must be deducted from the usual gross monthly salary
    up to the number of working hours concerned.

    The formula is in principle the following:
    gross monthly salary * 3/12/38 -> “usual” hourly salary.

    So, in the case of 2 days of unpaid leave, corresponding to 15.2 hours,
    the formula is as follows: 2650 * 3/13/38 * 15.2 = 244.61 €.

    The gross for the days actually worked is € 2,650 - € 244.61, or € 2,405.39

- 44/ hr_payroll: Generate python test from arbitrary payslip

    When the payroll is incorrect, the feedback that we receive is
    generally: "this doesn't work".

    This commit add a route in the controller of hr_payroll, to export
    in a python file, all data useful to reproduce the exact employee
    situation about the incorrect payslip.

    Before testing and fixing the incorrect payslip, we need to anonymize all
    sensitive data about the employee. This commit converts all sensitive
    data into demo data.

    This commit add a button in payslip form view to use the new route to
    export all data about the incorrect payroll.

    This button is only displayed when we are in debug mode and the current
    user is a payroll manager.
    task-2337786

closes odoo/odoo#60136

X-original-commit: 60eaecb749ad68429e4d8ba00ff0200c3360cdcb
Related: odoo/enterprise#14147
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 19:54:53 +00:00
Hiral Bhavsar 23ffc7f5b6 [FIX] mail, website_slides: fix while accept the request from the new attendee
Before this commit:

We have a new feature that if the course is private, and attendee make the
request to access the course it will create an activity for 'course responsible'.

Currently, after accepting the invitation request from the new user, it is still
not considered the user as an attendee and not displaying like 'You're enrolled'
to the respective users

After this commit:

The features of access invitation on courses will be workable.

Task-2328389

closes odoo/odoo#60135

X-original-commit: becf051f38fcf08d4a0aea758cb2758ad0f25bc3
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-15 19:40:29 +00:00
Loan (lse) e45767db3e [FIX] models.py: performance on filtered_domain on big recordset
Performance issue arise when the recordset is very large due to the union operator which apply at worst `len(self)` times.
By storing the ids then browse on them we avoid the union operation execution.

PySpy: https://drive.google.com/file/d/1jnxuSWGf2WmqeRz7zQOpBpmeRE5YnTwS/view?usp=sharing
filtered_domain (odoo/models.py:5398) take 65.6% of the graph (55.7% of the 85% of button_confirm)

To confirm a RFQ with 10 000 of the same product:
Before this commit: ~42s
After this commit:  ~10s

OPW-2347525

closes odoo/odoo#60131

X-original-commit: 8b0eeb5076ed5387ca7132d79182800e10c6895e
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2020-10-15 17:28:05 +00:00
SEINLET Nicolas 5a03cc64d3 [IMP] website_visitor: avoid double indexing
unique constraint create an btree unbique index:
``` # \d website_visitor [...] Indexes:     "website_visitor_pkey"
PRIMARY KEY, btree (id)     "website_visitor_access_token_unique" UNIQUE
CONSTRAINT, btree (access_token)     "website_visitor_partner_uniq"
UNIQUE CONSTRAINT, btree (partner_id) ``` removing index=True avoid this
double indexing.

closes odoo/odoo#60120

X-original-commit: efb33e783bd04d542009ef0f57eba6a4aacbca65
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
Signed-off-by: Nicolas Seinlet (nse) <nse@odoo.com>
2020-10-15 15:50:31 +00:00
Adrian Torres ece40d83fb [FIX] doc: warn about pitfalls of inverse batching
This commit updates the documentation surrounding compute and inverse
methods for fields, explicitly warning API consumers that grouping
multiple compute fields under a single inverse method is error-prone and
could not work at all (it can still work under specific conditions but
henceforth it shall be considered bad practice).

This case was found at https://github.com/odoo/enterprise/pull/13815/commits/a651413df915f166697d26a83084582207405858

closes odoo/odoo#60115

X-original-commit: 1d21924c1da0bed59cd105a3d9bf9b60fa2d7bc4
Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
2020-10-15 15:05:00 +00:00
Nasreddin (bon) bc4e06106d [FIX] mail: mail not sent because partner not find in chatter + unit test
Issue

	- Install "Project" module
	- Go to the chatter of any Task
	- Log the following message (by selecting the partner) then send:
	"test@test.com
	@marc Demo "

	Message is not sent.

Cause

	When parsing the content, the match result is "@test.com\n@Marc Demo" due
	to no space between the two mentions

Solution

	Add space after line break (only when parsing selection).
	In this case, it will match with 2 mentions instead:
	"@test.com\n" and "@marc Demo "

	For _generateMentionsLinks step, add a space after '</br>',
	it will match 2 mentions but we remove the ones that end
	with '</br>'. This last fix is to avoid having a non-mention
	string containing '</br>' (for example), and therefore not
	having them escaped in final message content.

opw-2322577

closes odoo/odoo#60128

X-original-commit: 8f12c025e05e5a3a7cf3c5fa8c2696ec99e2fa07
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-15 16:51:34 +00:00
Aurélien (avd) cd26051496 [FIX] hr_expense: fix traceback on expense sheet post multiple entries
closes odoo/odoo#60125

X-original-commit: 72f39f240579fc21cde33ce4b50f875d71ac9052
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 16:40:40 +00:00
Kamesh Patel 7297aa0319 [FIX] sale_timesheet, web: disable autofocus on create invoce action
Before this commit:

The date range widget opened by default when the 'create invoices'
the wizard is opened. because the default focus is 'Timesheets Period'
field.

After this commit:

Disable autofocus on 'create invoice' action, after this changes The
date range widget is not opened by default when the 'create invoices'
the wizard is opened.

Task-2344289

closes odoo/odoo#60122

X-original-commit: cf8545e10062ba89ac0de5441cfcbdb65d921eaa
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 16:06:08 +00:00
Prakash Prajapati 1edd61c160 [IMP] web: The float_toggle widget button appear in the kanban view
Currently, float_toggle widget is not applied in kanban view because kanban
the view has read-only mode.

So in this commit, enable the button to the kanban view.

closes odoo/odoo#53782

Task-id: 2264613
Related: https://github.com/odoo/enterprise/pull/11497
Related: odoo/enterprise#11497
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-09-23 09:48:15 +00:00
Prakash Prajapati 418c3b78a6 [IMP] hr_timesheet: Improve the usability of timesheet Kanban view
Purpose of the task is to improve the usability of the
timesheet kanban view.

So in this commit, Improve the kanban view in such a way that it
should be compatible with timer on kanban card.

TaskID: #2264613
Related: https://github.com/odoo/enterprise/pull/11497
2020-09-23 09:27:34 +00:00
Nicolas Lempereur 748155a41c [FIX] point_of_sale,pos_sale: currency_rate more digits
In 857c485175 currency_rate precision was changed to keep more digits
for the currency rate.

This commit reflects that in the point of sale.

Also this change fixes an update issue that could recreate sale.report
uncomplete because:

=> point_of_sale and pos_sale had different definition of
   pos.order().currency_rate field

=> this caused the field to be recreated (to change from double precison
   to numeric) on a given module update (pos_hr)

=> this caused the sale.report view to be dropped

=> this caused the sale.report view to be recreated before modules (that
   added fields to sale.report) were fully loaded

opw-2306523

closes odoo/odoo#60110

X-original-commit: a73030b3d71d835145b01b81515a21e23187687c
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-10-15 14:27:14 +00:00
Nisha patel e51c341aa0 [IMP] iap: Link to the IAP Portal from each service setting
Purpose of this task is, the current link to the IAP portal is very
well hidden in the general settings, so we are confident most users
won't find it.

So in this commit, we added 'View my Services' link below the
'Buy credits' in various IAP settings like: crm, account
and settings.

closes odoo/odoo#57063

Taskid: 2157984
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-09-11 10:47:13 +00:00
Laurent Smet 423f0c7148 [FIX] account: Fix price_unit with fiscal position to price included tax
Suppose two price_included taxes: 10%, 20%, a product having a sale price of 110.0 and a fiscal position tax 10% => tax 20%:

When onchange_product_id is called, the price_unit is computed as follow:
110 / 1.1 = 100
100 * 1.2 = 120
So price_unit = 120 and balance = 100.0

But in onchange_uom_id, we do the same thing and we call _get_fields_onchange_balance_model with balance=100.0.
However, in this method, an empty dictionary is returned because price_subtotal == balance.
Then, {}.get('price_unit', price_unit) will return the original price_unit (110.0) instead of the new computed one (120.0).

closes odoo/odoo#60108

X-original-commit: f2a5476c52c1312d3dfc558f92b4a678d6aa5e25
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2020-10-15 14:19:55 +00:00
Giacomello Nathan (ngi) 497778b69a [FIX] Expense: Cancel activity for manager if expense is reset to draft
If we submit an expense to the manager, a next activity is created for him.
If we reset to draft, it is not cancelled.
So if we resubmit expense, a second next activity is created for the manager.

This commit will cancel created activities when we put the expense in draft

Task id: 2350168

closes odoo/odoo#60107

X-original-commit: 107ac15687befccf59527730cc776d5ad68cac44
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 14:19:10 +00:00
Dominik RuboandKevin Baptiste a93f1e8d9b [IMP] project: enable config-selected features in projects
This change ensures that when the user activates optional features of the
project app, they are enabled in existing projects as well as newly created
projects automatically, which is likely what the user expects.

For most optional features, this behavior was already in place. It was not in
place yet for the sub-tasks and timesheets features, which this change fixes.

Two added tests check the behavior described above for features that are
activated through a `group_*` field on `res.config.settings` (sub-tasks,
recurring tasks and ratings). The tests do not cover features that are
activated through a `module_*` field, as such fields require the installation
of further modules and we cannot simulate this.

Task 2297054

closes odoo/odoo#60106

X-original-commit: 8dd0edae898a532dbe7e4f18c9118b9b68e57900
Related: odoo/enterprise#14119
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: Kevin Baptiste <50135801+kba-odoo@users.noreply.github.com>
2020-10-15 14:18:30 +00:00
shivam shah 765a4201eb [FIX] hr_expense: Fix design issue of hr expense banner
purpose of task is to solve the design issue on hr expense banner
when there is horizontal scrolling on tree view then the banner on
top will not adapt it so there is empty space at last.

So in this commit, Fix the position of the expense header so it should
not scroll with the tree.

closes odoo/odoo#60105

Taskid:  2336309
X-original-commit: 7ba0bc47d1404d5ac4bbf8cb5dcca7937558bd1a
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 14:17:44 +00:00
Kairis 05043848a9 [FIX] expense: fix generated QRCode
When there is no expense, a messages is shown: "Did you try the mobile app?"
When clicking on the "Download on the App Store"
or on the "Get it on Google Play" buttons, generated QR codes have some invalid data before it:
- 002
- 1
- <the url>

This commit removes datas that are before the url so only the url is displayed.

closes odoo/odoo#60104

Taskid: 2326303
X-original-commit: a130784131c84326b2482ab3c4eea6e0bb3d881c
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 14:16:53 +00:00
Adrien Horgnies 3ee5bedcf9 [FIX] doc: active is auto installed
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

closes odoo/odoo#59916

X-original-commit: 89c301b445cc415140367314bc5a858b4431b922
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Adrien Horgnies <AdrienHorgnies@users.noreply.github.com>
2020-10-15 13:56:19 +00:00
Paul Morelle dfa3f9a3c4 [FIX] point_of_sale: avoid Gui undefined when connection failed
Since odoo/odoo@c6397ab3b3, the printer.js
file has been refactored, and if the connection to the IoTBox failed,
the error popup could not be displayed because Gui was undefined.

Steps to reproduce on the runbot:
- Configure your POS session with an IoTBox with receipt printer and
  cashdrawer
- Open your POS session
- Skip the connection to the IoTBox
- Proceed to payment
- Open the cashbox
- Error: Gui is not defined

This commit fixes the behavior by displaying the error properly.

In line with this fix, we are also putting the printing assets back in
the point_of_sale.assets because pos printing in the backend is no
longer needed.

closes odoo/odoo#60087

X-original-commit: 063e617a832d582d460dee0fcb54d837f3cafb1c
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2020-10-15 13:05:06 +00:00
William Henrotin f27369f757 [FIX] purchase(_stock): track qty_received changes
Commit 0f80e69b8d tracked all changes on
qty_received on the purchase order. But did that wrongly by calling
`write` inside a compute.
Commit b7cc3b068f685d1339f9fe7e47d0c564de1708e7 fixed this `write`
by an `=` to avoid error when the compute is called on virtual records.
This fix result on forgetting to track the quantity delivered.

This commit sends a message to post in `write` AND in the
`compute_qty_received` to be sure it is posted. This way, we do not call
write in compute anymore.

closes odoo/odoo#60067

X-original-commit: 3d592649970df3d755ccb57d68c074acdff67894
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2020-10-15 10:14:01 +00:00
Rémy Voet (ryv) ca9a12ff2a [FIX] sale_stock: fix color forecasted popover
Before, the `virtual_available_at_date` was used to
describe the `free_qty_today` when the forecasted is calculated
via the forecasted of stock move. This issue
create a difference of color when SO become confirmed
(if the `free_qty_today < 0`).

To fix this, use the `free_qty_today` to compute the `will_be_fulfilled`
(in the js widget) and fill `free_qty_today` instead
of `virtual_available_at_date` when SO is confirmed.

opw-2360024

closes odoo/odoo#60072

X-original-commit: 94c10df77643ad9a7806c4967911717692db91ce
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-10-15 11:00:20 +00:00
Arnaud Joset 44d43ace64 [FIX] sale_product_configurator,website_sale,website_sale_product_configurator: tests were failing
Before this commit,
 * the website_sale tests used the field optional_product_ids on product_template even if it is defined on sale_product_configurator.
 * the website_sale_product_configurator test added some steps to the website_sale tour.

This commit removes the faulty fields in the website_sale test and fix the website_sale_product_configurator tests.
After this commit, sale_product_configurator and website_sale_product_configurator have a test classes to setup all the parameters needed during the flow.
This prevent duplicated code for similar workflow.

closes odoo/odoo#60081

Taskid: 2340918
X-original-commit: f7ca48e9d1ff56ae53ab156114f9dc29534ac3f6
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-15 12:02:47 +00:00
Nicolas Galler c04891cbe0 [FIX] base: correct unit test for compatibility with PIL 7.0
The unit test in `test_base_document_layout` does not pass with
version 7.0.0 of PIL, which is loaded by default on Ubuntu 20.04.
The reason is that the color obtained from the image is slightly
different.  This fix slightly relaxes the test (in fact we don't care
about the exact color obtained in this test, we just want to make sure
that it doesn't crash)

opw-2342394 (original ticket)

closes odoo/odoo#60071

X-original-commit: 99b3f0be1b322ee469871f9496527e8dc3e778bb
Signed-off-by: Thomas Dieuzeide <tdi-odoo@users.noreply.github.com>
Signed-off-by: Nicolas Galler <nicocrm@users.noreply.github.com>
2020-10-15 10:57:33 +00:00
wan 1c30b8a95c [FIX] account: do not auto install modules that depend on Accounting
Moved in the post init hook of account_accountant

closes odoo/odoo#60068

X-original-commit: f997bc8f6e9d5138de6faed80e9774d359bfbe8d
Related: odoo/enterprise#14100
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Signed-off-by: wan <william-andre@users.noreply.github.com>
2020-10-15 10:14:25 +00:00
Prakash Prajapati fb261e7b03 [IMP] hr_timesheet: chrome app icon should not be displayed on mobile
The icon of the chrome app from the timesheet setting should not be
displayed on mobile.

closes odoo/odoo#59564

Task-id: 2323254
Related: odoo/enterprise#13935
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-10-09 05:18:37 +00:00
nie 54e116269c [FIX] web: Find key in stringified JSON
Steps to reproduce the bug:
- In Projects, switch to the calendar view
- Click a task

Bug:
Traceback here: https://github.com/odoo/odoo/blob/7ba47e7215df69b6556a848532e4f33ef4243e83/addons/web/static/src/js/fields/basic_fields.js#L2181

TypeError: Cannot use 'in' operator to search for 'invisible' in {}

Explanation:
We could change the inherited model of CalendarView from AbstractView to BasicView but it would be adding 400 lines of code to every calendar view. So, for now, and to keep it simple, we just parse the modifiers where it's needed to.

opw:2352436
opw:2352890
opw:2354039

closes odoo/odoo#59876

X-original-commit: 422c52a0823b1a53eeb974e76d08a44cacf4ea0a
Signed-off-by: backspac <backspac@users.noreply.github.com>
2020-10-15 10:04:59 +00:00
Simon Lejeune ffdc64a57d [REM] stock,mrp,purchase: outdated documentation
An updated and user friendly documentation is available at
https://www.odoo.com/documentation/user/14.0

closes odoo/odoo#46185

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-10-15 09:20:05 +00:00
qsm-odoo c7f28395af [FIX] website: show the correct value for hoverable dropdown option
Before this commit, the hoverable dropdown option was broken because
we changed the option selector to the navbar element instead of the
header element. But we forgot to care about the data-select-class
which adds a class on the header. This commit fixes the issues by
changing the $target back to the header element for the related option
as the fact it is linked to the navbar element is only so that the
options appear in a different section, on navbar click.

Part of https://github.com/odoo/odoo/pull/60031
task-2312878

closes odoo/odoo#60031

X-original-commit: e1f8d549895cd9c459e6350430f30d541d02838a
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-10-15 08:51:01 +00:00
qsm-odoo bd5b19023b [FIX] website, *: restore navbar options for 'Boxed' header
*: web_editor

The selector targeting the navbar for the related editor options was
not correct to target the navbar of the 'Boxed' version of the header.

Part of https://github.com/odoo/odoo/pull/60031
task-2312878

X-original-commit: 6a4587022ced3e1d72ff8c34a64c7a39e7572520
2020-10-15 08:50:52 +00:00
xO-Tx afa80ec149 [FIX] website: fix invisible parallax snippet issue
When the height not forced (50% or 100% screen's height), the snippet
simply disappear if there is no content inside (default).

The 4e220bf commit makes parallax snippet empty by default and the
main goal of a8f0cee was to make "DRAG BUILDING BLOCK HERE" placeholders
appear only on drag, that's why we need to add a "min-height" for parallax
to keep it visible when the "Height" selected is auto.

task-2327025

closes odoo/odoo#60032

X-original-commit: f019cd677e68312f90604be6abd04a1b1755ae4d
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-10-14 16:45:10 +00:00
Thibault Delavallée fa11872330 [FIX] event: split unstored / stored fields computation
Otherwise computing unstored fields forces to compute all other already
stored fields. When being in a high charge context this may have a big
impact on DB use.

Task ID-2351463

closes odoo/odoo#59845

X-original-commit: fbde9dd183472237f12014315f063af736950b6c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-10-13 11:02:17 +00:00
Xavier Morel 23ef558689 [FIX] account: improve warnings.warn call
As-is, the warning will reports that post() is called from within
post, which is not very convenient when trying to find what calls
post() (as there are other "post" methods in the system).

By increasing the stacklevel from 1 (default) to 2, the warning will
report the method's caller, which is a lot more useful.

closes odoo/odoo#60043

X-original-commit: 5bc6eb9b387112138ac118726ff746bad6d00f8d
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-10-15 06:50:13 +00:00
Thibault Delavallée 17e30c988a [IMP] test_mail: add tests about alias defaults management
Purpose of this commit is simply to add tests about alias defaults.
Code protects it against being badly formatted. However having
tests ensuring it is always a good idea to avoid regression.

Task ID-2361179

closes odoo/odoo#60026

X-original-commit: 0075cc02f9a11dcddaf9ca7d70cc1adf7596f6d3
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-10-14 15:57:32 +00:00
Nicolas Martinelli 3319803a93 [FIX] account: wrong rounding with multi-currency
- Create a tax:
  5%
  Included in price
- Set the company currency to USD
- Set the currency rounding of CHF to 0.05
- Set the rate for CHF to 0.654065014
- Create the following invoice in CHF:
  Set a payment term
  Prod 1, 1 unit,  5.0 CHF, tax 5%
  Prod 2, 1 unit, 10.0 CHF, tax 5%
  Prod 3, 1 unit, 50.0 CHF, tax 5%

It is not possible to save the invoice because of an unbalanced journal
entry.

Indeed, the Receivable line is $99.30 while it should be $99.29. This
happens because we round the `total_balance` with the rounding precision
of the invoice currency while it is in the company currency.

closes odoo/odoo#58798

closes odoo/odoo#60035

X-original-commit: dad5e2a575448b68cc1b59880fecfe48dbe30a4e
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-10-14 17:24:32 +00:00
Nicolas Martinelli fa60131f9c [FIX] account: wrong computation with currency rounding 0.05
- Create a tax:
  5%
  Included in price
- Set the currency rounding of the company to 0.05 (e.g. CHF)
- Create the following invoice
  Prod 1, 1 unit,  5.0 CHF, tax 5%
  Prod 2, 1 unit, 10.0 CHF, tax 5%
  Prod 3, 1 unit, 50.0 CHF, tax 5%

The total amount of the invoice is 64.95 CHF instead of 65.00 CHF, even
in a 'Round per line' configuration.

It happens because `compute_all` rounds the amounts following the number
of digits of the currency instead of using the `rounding` field.

Note that there is a discrepancy between the POS computation and the
Account computation: the POS already uses the `rounding` field instead
of the number of digits:

https://github.com/odoo/odoo/blob/80073c5430f0ab562dfc27572c108114161ebb25/addons/point_of_sale/static/src/js/models.js#L1855-L1991

opw-2341566

X-original-commit: 94353ebd6b47a286157f0559b194ff03ea49ff68
2020-10-14 17:24:31 +00:00
IEL 60572d6597 [FIX] stock: keep previously set result package in pickings
Steps to reproduce:

* In Inventory, activate multiple warehouses and storage locations, multi-step routes, Delivery packages
* On the main warehouse, activate 3 steps delivery
* Create a stockable product A
* Update quantity on hand: 100 units in a package PACK1 in Stock/Shelf 1
* Create a new Pick transfer with one move: 120 product A
* Set the transfer as todo and check availability: a move line for the 100 units from PACK1 is created
* Edit the move line: set a destination location, **change the result package to PACK2** and set a qty_done
* On product A, update the quantity on hand: add a *new* package PACK3 of 20 in Stock/Shelf 1
* On the transfer, click on check availability

Current behavior:

* A new move line is created for the 20 units from PACK3 to PACK3: ok
* The move line edited before for the 100 units has its result package **reset to PACK1**

Expected behavior:

* A new move line is created for the 20 units from PACK3 to PACK3: ok
* The move line edited before for the 100 units has its result package kept to **PACK2 as edited by the user** who decided to open the package already

Short analysis:

At the end of `StockMove._action_assign()`, the method `StockPicking._check_entire_pack()` is called. For each package moved by a move line, this method checks if the package is entirely moved (sum of quants == sum of move lines). The check is done by `StockPicking._check_move_lines_map_quant_package`. When the sums match, the package level of the move lines is created or updated. When it happens, it writes the package in the `result_package_id` of the related lines.

It should not change the result_package_id if it was already set.

Thinking further, maybe it should not consider lines with a `qty_done` in `_check_move_lines_map_quant_package`: users already picked these lines, if they decided to empty or change the `result_package_id`, a new check of availability for the remaining quantities should not change these lines.

opw-2346608
Fixes #58491

closes odoo/odoo#60025

X-original-commit: db262912eb716aed1c42be8a9d59c25bdfa400e0
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-10-14 15:56:51 +00:00
Xavier Morel 34575ceaa8 [IMP] core: make post-install tests deterministic
`registry._init_modules` is a set so its iteration order is
non-deterministic (it's randomised on interpreter initialisation
unless PYTHONHASHSEED is provide through the environment). This can
lead to annoying non-deterministic behavior: while the non-determinism
is only at the module level, it's easy enough for modules to have
python-level side-effects (e.g. patch methods, update globals, ...),
which may only be surfaced by an other module executing after them,
but not if said module executes before.

By sorting the modules we should make this much more reliable one way
or another.

closes odoo/odoo#60028

X-original-commit: f9169a468a2328a691ec4f32233ba3bad3622282
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2020-10-14 16:10:58 +00:00
Sébastien Theys 1ff12ed7d1 [FIX] mail: open mentions below composer in chatter
opw-2358094

closes odoo/odoo#60019

X-original-commit: 8c9792d811feeb3080fa1106d358112c630d19f7
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-14 15:13:09 +00:00
Kamesh Patel c8ba009c6c [FIX] crm,mail: clear breadcrumb when redirecting to activities from systray
Before this commit:

When accessing activities from the systray, any existing breadcrumb-item should
be clearer.

After this commit:

Clear breadcrumb-item when access activities from the systray.

Task-2342246

closes odoo/odoo#60018

X-original-commit: a9b32448c4a6227ef8e729436cb793ea9c24c289
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-14 15:12:42 +00:00
Thanh Dodeur 840728b4dc [FIX] mail: adds shadow to RPCs
This commit adds shadow to RPCs that are not supposed to be blocking.

task-2352703

closes odoo/odoo#60017

X-original-commit: 4274a061ff1498f647580c38c7048da8a8cb0a9c
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-14 15:11:58 +00:00
Thanh Dodeur c8ed4697f6 [FIX] mail: inverts the zoom scroll direction of the attachment viewer
This commit inverts the zoom direction of the scroll wheel in the
attachment viewer to respect the behaviour of before the refactor.

part of task-2171884

closes odoo/odoo#60009

X-original-commit: 3d9e2e031ea2e92a50769cc69fe37741d32b6820
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-14 14:27:19 +00:00
Dharmraj Jhala aaa1f6c237 [FIX] crm: update 'Default Values' on alias while updating sales team
Whenever when change the 'Leads' of 'Pipeline' boolean field on sales team,
it should also update the linked alias. Mainly, if 'Lead' is checked, the
'Default Values' on the alias should also be updated.

It used to work before a recent refactoring (see commit [1] and [2] for more
information).

This commit adapts the changes done in refacotring and updates the alias values
while updating the sales team.

[1] - https://github.com/odoo/odoo/commit/7cfd364db54e88970ef51c798df3bd4df44222b3
[2] - https://github.com/odoo/odoo/commit/186cfb5ebd35d572d0f635cd7975de7cff0d1055

TaskId - 2357573

closes odoo/odoo#60008

X-original-commit: 0669ee36e195e8e0f98131219b59fcc5cba4cea7
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-10-14 14:26:57 +00:00
Thanh Dodeur 461c3fa91b [FIX] mail: corrects wrong url formatting for attachment download
This commit changes the url formatting of the `services.navigate` in
the attachment viewer. Before this commit, the resulting URL was
erroneous which prevented download and lead to a 404 error.

part of task-2171884

closes odoo/odoo#60003

X-original-commit: b11535bb26ad9a1fd96ec616201eb67c89597cdc
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-10-14 13:37:09 +00:00
Thibault Francois 3af61a49f4 [FIX] sms: fix name_search
Problem
-------

_search_is_mail_thread_sms is looking for ir.model
in the database and then fetch them from the registry
without verification. This can lead to key error
when a model is present in the database but not in
the python anymore. This situation can happen
after a migration.

Solution
--------
Check the model is present in the registry

closes odoo/odoo#60001

X-original-commit: 448626d86a1f06b9f8a7a88111f7cb01600488cd
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-10-14 13:33:49 +00:00
Odoo's Mergebot 347f4413d1 [MERGE] web_editor,web,website,mass_mailing: new Jabberwock editor
This PR replaces Summernote by Odoo's new editor: [Jabberwock](https://github.com/odoo-dev/jabberwock).

closes odoo/odoo#59828

Related: odoo/enterprise#14012
Related: odoo/upgrade#1845
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2020-10-14 15:06:56 +02:00
Jorge Pinna Puissant d5242066bd [FIX] account: do not set default account
Do not set a default `account_id` for section and note lines. Indeed,
when set the constraint `check_non_accountable_fields_null` will raise.

fine-tuning of c22f99dd09

opw-2357415
opw-2355559
opw-2359283

closes odoo/odoo#59988

X-original-commit: b6791a5183ef1015b47312785501a99ed68e5718
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2020-10-14 11:24:34 +00:00
Sébastien Delafond 1767b6eedc [CLA] signature for sdelafond
closes odoo/odoo#59987

X-original-commit: 76ea1a25dd9db414f042f70ef68b8a375d6e7758
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2020-10-14 11:24:12 +00:00
Sébastien Delafond 43fb019fe3 [FIX] packaging: update debian file for 14.0.0 release
X-original-commit: af29d603d721c4a6960096abad9b971f65c998b8
2020-10-14 11:24:12 +00:00