Commit Graph
127612 Commits
Author SHA1 Message Date
Pierre Masereel 0ae3e5a8b4 [FIX] stock: change uom on product constraint
When we change the the uom of a product, a user error is triggered if
there are already moves created for this product. But if the product is
archived, the call to mapped('product_variant_ids') doesn't return any
product ids, so no moves are found and you can change the uom.

To fix this behaviour that can lead to bad configurations, because
quants and moves won't be in the same unit than the product's one.
2018-05-07 13:22:14 +02:00
Christophe Simonis 89819c6f42 [MERGE] forward port branch saas-14 up to 1f74b878f4 2018-05-07 12:21:05 +02:00
Christophe Simonis 1f74b878f4 [MERGE] forward port branch 10.0 up to 0aeb92ccbc 2018-05-07 11:54:15 +02:00
Christophe Simonis 0aeb92ccbc [MERGE] forward port branch 9.0 up to 4e5119c6e5 2018-05-07 11:47:44 +02:00
xmo-odoo 4e5119c6e5 [IMP] warn when using logrotate in multiprocess
The built-in log rotation is *very* unreliable in a multiprocess
context, which can lead to significant data loss (up to hours of log
missing) right after rotation[0][1].

Technically, according to the cookbook even filehandler does not
support multiprocess logging[2].

Either way, we should at the very least warn that logrotate is a Bad
Idea in multi-workers scenario. Ideally we'd just fall back on regular
file/stream logging but that likely could & would break existing
deployments, so maybe implement that for master instead?

Alternatively: implement it properly in multi-worker scenario with
only the "root" process actually logging to whatever output was set
up, and all workers sending stuff to log to it via a queue or network
socket or w/e.

[0]
https://stackoverflow.com/questions/34186774/why-doesnt-timedrotatingfilehandler-work-properly-and-how-to-solve-this-issuer
[1] https://github.com/odoo/odoo/issues/16566
[2] https://docs.python.org/3/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes
2018-05-07 11:24:06 +02:00
Christophe Simonis a10240c019 [MERGE] forward port branch 9.0 up to d13ce05c96 2018-05-07 11:02:00 +02:00
Thibault Delavallée 324ae5ed8f [REF] mail: get rid of thread_model context key
message_post and various mail.thread related code still support a thread_model
context key allowing to redirect message post on another model. Purpose of
this commit is to get rid of that context key and support model / res_id
fields coming from either the record on which we run, either parameters of
message_post. Indeed those parameter match the one used as fields on mail
message. It makes sense to support them for customization if necessary
instead of using a context key.

This context key exists since a lot of time. It is difficult to find the
source as history is quite complex when the mail was refactored in 2012.
See notably 6aa4f80b2d and 2c4ed841b9 for example.
2018-05-07 11:00:03 +02:00
Thibault Delavallée 282733cf8d [REF] mail: make notification methods semi-generic
mail.thread mixing class defines several methods used in notification process
that are not specific to mail.thread enabled models. It means some models
could override it while some other models do not even have a direct access
to that method.

When calling those methods we have to manually check for method being
available on a record or call a default implementation from mail.thread
even if the model does not inherit from the mixin.

In this commit we propose to hide this check in generic wrappers located
in mail.thread class. It checks for method existence on record and call
the model-specific implementation or falls back on standard behavior. It
allows to be sure the right method is called.

Functionally behavior should stay globally the same. However when updating
some addons code has been updated. Previous code could lead to records not
having correct alias which should not be the case anymore. This commit is
linked to task ID 47934.
2018-05-07 10:58:54 +02:00
qdp-odoo f5ab17dd53 [FIX] base_vat_autocomplete: vat field label on res.company form view 2018-05-07 10:40:00 +02:00
Nicolas Martinelli 3c743440fd [FIX] account: default partner
- Go on the partner form view
- Click on the stat button 'Invoiced'
- Create an invoice

The partner is not filled in.

Overlook of 1f277a3572

opw-1839867
2018-05-07 10:38:05 +02:00
Christophe Simonis 78e25605ed [FIX] hr_expense: correct demo data about product category 2018-05-07 10:27:18 +02:00
Yannick Tivisse 6cb5052e85 [FIX] fleet: Fix the _name_search override on fleet.vehicle
Actually _search return a list of ids, not a browse record.
2018-05-07 10:11:58 +02:00
Yannick Tivisse 9e261d0f7d [IMP] l10n_be_hr_payroll: Store the Employee Budget 2018-05-07 10:11:58 +02:00
Yannick Tivisse 5731c10a69 Revert "[IMP] hr_contract: Improve the contract tree views"
This reverts commit ec929342eb.

This wasn't the expected result :)
2018-05-07 10:11:58 +02:00
Jeremy Kersten 612cf8acbf [IMP] website_forum: don't index private profile 2018-05-07 09:09:38 +02:00
Jeremy Kersten 6a0274b300 [FIX] website_sale_[wishlist|comparison]: don't try to add 'undefined' product
In case of a combinaison is not possible, the add to should not be shown.

This commit is related to #23397
2018-05-07 09:09:38 +02:00
Odoo Translation Bot 71419844b3 [I18N] Update translation terms from Transifex 2018-05-06 07:03:46 +02:00
Odoo Translation Bot 98a74c613b [I18N] Update translation terms from Transifex 2018-05-06 04:11:15 +02:00
Odoo Translation Bot 370ed2b66f [I18N] Update translation terms from Transifex 2018-05-06 00:26:43 +02:00
Fabien Pinckaers a5c614db57 [IMP] account: name_search / name_get symetry on account.account
That way, pressing down on a many2one already filled will not propose
to create a new account: "20000 Sales Account" should name_search it.
2018-05-05 08:56:30 +02:00
dip-odoo 362613a2fa [IMP] auth_signup: change email invitation condition
Currently if a user has already been invited you cannot invite him again
via the web_settings_dashboard as it automatically tries to create a new
user.
This commit changes that behaviour in case you have the mail app
installed odoo will now send an invitation email to the invited user as
long as this user has never connected.

1) Mail app not installed:
   - if user is active     > display error (this email is already in use)
   - if user not active    > activate the user
   - if user doesn't exist > create new user

2) Mail app installed:
   - if user is active && state confirmed > display popup (this email is
   already in use)
   - if user is active && never connected > resend invitation mail
   - if user is inactive > activate the user
   - if user doesn't exist > create new user and send invitation mail

This commit is related to task #54023
Closes #23081
2018-05-04 18:07:31 +02:00
Christophe Simonis aeef0c5973 [FIX] hr_expense: remove duplicated defined records 2018-05-04 17:57:45 +02:00
Alexandre Kühn 0275c70f78 [FIX] mail: fix composer style for chat windows
Revision on dd8e95cb1a12603940cc32a3d840b6097515df85

The intent of the commit above was to fix the style of the composer,
which was broken when turning the textarea input into a contenteditable
div. While fixing the style for the composer in Discuss or in the Chatter,
it misplaced the initial position of the caret in a chat window.

This commit fixes the issue on chat windows, while also improving the
previous fix.

Known issues:

    In a chat window with more messages than it could be displayed at once,
    when at the bottom of the thread, the line separator of the composer
    and the thread is off by 1 or 2 pixels (vertically).

    > Fixing this issue breaks a lot the alignment of items in the composer
      of Discuss and Chatter, so this small visual glitch is preferred.
2018-05-04 17:23:36 +02:00
Alexandre KühnandNick Booker c3ce712359 [FIX] web: correctly display filename when uploading a file
Before this commit, we had the following issue with binary widget in a form:

Suppose we have a binary field with filename attribute set. When uploading a
new file 'temp.txt' with content 'Cg==', the displayed value is 'Cg=='. When
the changes are saved, the displayed value becomes 'temp.txt'.

It should always display 'temp.txt', which is what is fixed by this commit.

In addition to fixing this issue, we describe what is the expected displayed
value of a binary field. This is based on whether the attribute filename is
provided, and whether the record is in edit or read-only mode.

Fixes #21630
Closes #24275

Co-authored-by: Nick Booker <nick.booker@opusvl.com>
2018-05-04 17:10:29 +02:00
Olivier Colson d13ce05c96 [FIX] account: use company currency in _compute_matched_percentage in case no currency is set on account.move
When a move or move line is supposed to use the company currency, its currency_id field is empty. _compute_matched_percentage did not take this into account, causing the rounding method to sometimes be called with a precision equal to False, resulting in erronous and weird behavior (0 was considered different from 0, causing a division by zero in the following condition).
2018-05-04 16:43:41 +02:00
Christophe Simonis ac63dfc8f4 [MERGE] forward port branch 11.0 up to 8dade01e2c 2018-05-04 16:10:50 +02:00
Christophe Simonis 8dade01e2c [MERGE] forward port branch saas-15 up to 333a58e4ef 2018-05-04 15:13:49 +02:00
Arnold Moyaux 972d8a1108 [FIX] mrp: tracked by product with routing
Use case to reproduce:
- Create a BOM with a byproduct tracked and a routing
- Mark the last workorder as done
- by products move line are not created
With the wizard produce (MO without routing) move lines
are created. Thus there is an inconsistency.

It happpens because workorders and produce button do not use
the same function. commit 1a09bcc622
already fix it for production wizard however it forgets workorders
process.

opw-1838707
2018-05-04 15:03:49 +02:00
Arnold Moyaux aab2ceefec [FIX] stock: prevent to create the reception route over and over when deleted once
When the reception route of a warehouse company is deleted by the user
e.g. My company, Chicago Receipt in 1 step is deleted,
and then changing the given warehouse `Incoming Shipments`
multiple times
e.g. from `one_step` to `two_steps` multiple time,
the reception route is created again and again and again.

This is because the reception route which is created for the
warehouse is not being assigned to the warehouse
as the `reception_route_id` once newly created.

_update_routes should work the same way than _create_routes,
it should return new value to write on the warehouse.

based on preliminary by Denis Ledoux

opw-1836544
2018-05-04 14:20:37 +02:00
Christophe Simonis 333a58e4ef [MERGE] forward port branch saas-14 up to 4e90a676da 2018-05-04 14:19:53 +02:00
Nicolas Lempereur 2b0d68bc41 [FIX] mail: activity in date tz but counts are not
When creating an activity, the date saved will be the choosen one in the
tought in the client timezone.

But when displaying the counts of activities Late/Today/Future, the date
is tought out as the one in the server timezone.

Thus we would have activity today/future/late not corresponding with the
date in the current timezone.

This is solved in this change and follow what was done in 72254129.

A second change is made so the default "Due date" is today in the
timezone and not today in UTC date.

opw-1837894
closes #24554
2018-05-05 00:38:35 +13:00
Nicolas Martinelli c3ddef161e [FIX] account_check_printing: multiple partners
- Create a bill for partner A of an amount X
- Create a bill for partner B of an amount Y
- Validate both bills
- Select both and register a payment by check.

Two payments are created with the same amount in words: X + Y.

In this specific case, we recompute the amount in words automatically.

note: this commit reintroduce the fix c52b18e65 which was lost after
changes in 10.0 (line was removed then brought back with 416d07f0b).

opw-805842
closes #24569
2018-05-04 01:33:55 -10:00
jem-odoo 36b9899ec6 [FIX] sale_timesheet: overview access
On sales order form view, we display a "project overview"
stat button. It redirects to the overview of the only
billable project of the SO.
To avoid access error, and because this dahsboard is usefull
only for project manager, only those ones will have access to
this overview. So, stat button (Sales order) and label on
project kanban are aonly visible for manager.
2018-05-04 13:22:25 +02:00
jem-odoo a7b6462de8 [FIX] sale_timesheet: timesheet from SO
From the stat button of SO form view, we want to
see all the timesheet with the employee on the
list view. So the action used should be "all timesheet"
and not "my timesheet".
After that, we simply remove the defautl filters to
avoid confusion for the current user. And for performance
issue, the domain of the action does not include timesheet
ids, but the SO lines ids (should be less numerous).
2018-05-04 13:22:17 +02:00
jem-odoo 37dab1bc07 [FIX] sale_timesheet: access error during onchange
`compute_sudo=True` execute the compute method as super
user, to avoid access error. This also allow to trigger
other computation in cascade without being stopped by
access right error if the system has job to do.
However, during a onchange, the method is not executed
as super user, so access error can raise. An explicit
`sudo()`in the compute method is required, in addition
to the 'compute_sudo` on the field (usefull when storing
value).
This commit avoid the problem when a user (that is no
timesheet user) try to add a SO line the delivered qty
is based on its related timesheets (analytic lines).
2018-05-04 13:22:11 +02:00
jem-odoo a3372ffa33 [FIX] base: qweb float_time widget negative value
When trying to convert -1.5 into a time format, instead
of displaying -1:30, the widget will show -2:30, which
is confusing. The float time qweb widget does not handle
correclty negative, when its javascript version works
correclty.
This commit fixes this problem.
2018-05-04 13:22:04 +02:00
jem-odoo 851f36f3d0 [FIX] sale_timesheet: default_project_id on plan project
When clicking on task stat button from plan
project, we can create a new task, but no project
is given in the context. This commit fixes it.
2018-05-04 13:21:54 +02:00
Christophe Simonis 4e90a676da [MERGE] forward port branch 10.0 up to 4b7f4f32ea 2018-05-04 13:19:12 +02:00
Yannick Tivisse 2f15a5fa64 [IMP] base: Add support for private addresses
Purpose
=======

Add the possibility to create private addresses, only accessible for a subset
of users.

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

- Add a new 'Private' partner type
- Add a res.groups in base 'Access to Private Addresses'
- Add ir.rules for the following behavior:
    - Every employees/internal users can read non-private addresses
    - Only users in group_private_addresses can access private addresses
- Add in base a simplified form view for private addresses
- A HR Officer is automatically granted in group_private_addresses
- Use the simplified form view to open the address_home_id form on employees
2018-05-04 13:17:25 +02:00
Romain Derie b5516d400e [FIX] website_sale_comparison: use variant id and not product id
Before this commit, the compare button from the customized view "Alternative
Products" would create the URL by joining `alternative_product_ids` which are
ids from product.template.
But the route /shop/compare is supposed to receive variants (product.product)
IDs.
Thus, it would try to search given product.template IDs in product.product
records.
It would then show incorrect items or no items at all if the ID does not exist.

Now, we create the URL with the first variant (product.product) of the
product.template.
Obviously, the first product.product is arbitrary but we can't retrieve all the
variants ids, it would most of the time returns too many items.

opw-1840321
2018-05-04 12:58:20 +02:00
Simon Lejeune 3d8c0df8bf [FIX] stock: quant: reserve and unreserve on duplicated quants
In a situation where there's a negative quant next to a positive one,
they should be merged when the scheduler runs or when the user open its
inventory view. However, if in the meantime the user reserves and
unreserves, there may be some issues.

The system will only reserve on positive quant ;
the system will unreserve on the first encountered quant (even negative)

The issue is the second part of the early break condition:
    float_is_zero(available_quantity, precision_rounding=rounding):

The issue here is `available_quantity`. In a reservation scenario, it
represents the maximum quantity we can reserve across quant. It is
useful so we do not lose time loopin over quants where nothing will be
available. In an unreserve scenario however, it represented the same
thing, which is wrong. In the case you reserved all the quantities,
`available_quantity` will be 0 we'll loop only on the first quant where
we won't do anything.

As the code doesn't check the success or failure of the unreserve, move
lines were unlinked while the reserved quantity on the quants were not
updated, resulting in the desynchronization of the move lines/ reserved
quantities.

This continues the work done at [1] to track down the "cannot unreserve
more than" errors.

[1] cce6030c0d
2018-05-04 11:52:36 +02:00
Christophe Simonis 62705aee69 [FIX] purchase: delay tests with CoA after install 2018-05-04 11:24:24 +02:00
Yannick Tivisse ec929342eb [IMP] hr_contract: Improve the contract tree views
Remove useless/redundant information and add the department_id.
2018-05-04 11:17:59 +02:00
Aaron Bohy 6e15a9cd24 [FIX] web: one2many form view with action button
Assume a one2many field inside a form, displaying field A in its
list view, and a field B in its (dialog) form view. Moreover, there
is an action button in the dialog, which updates the value of B.

Before this rev., B wasn't correctly reloaded when the button was
clicked, because the BasicModel reloaded the fields on the list
view (i.e. field A), whereas it should reload the fields in both
views.

This fix is twofold. First, we force the viewType to 'form' when
the record is reloaded, instead of the default ('list'), so that
fields in the form view are correctly reloaded. Second, when we
open the form view in the dialog, we add the fields of the list
view to the dict of fields of the form view, so that the form
is aware of those fields and can ask the model to reload them
(still without displaying them).

Fixes #24189
2018-05-04 10:42:05 +02:00
Thibault Delavallée 901658df26 [REM] mail: remove duplicated method
This commit remove duplicated code probably due to a forward-port of a backport
or something like that. Or maybe due to a cosmic beam.

See commits https://github.com/odoo/odoo/commit/14f80bfae66f2c81abb0b8acc0ac558c60ef1d44 and https://github.com/odoo/odoo/commit/36141931bf9a57d01747cb219fdcfdfd7978ab42.

Cheers.
2018-05-04 10:27:58 +02:00
Christophe Monniez 7202205688 [FIX] packaging: avoid traceback on virtual machine timeout
When the virtual machine used to build MS Win package takes too much
time (to build or to test the build), a warning is logged and the VM is killed.

Before this commit, the PID of the process was passed as an argument to
the warning method, causing a traceback.
2018-05-04 10:09:31 +02:00
Yannick Tivisse ef721eb9af [IMP] hr_contract: Remove the field 'vehicle_distance'
The field 'km_home_work' already exists in the hr module for the same purpose.
2018-05-04 09:59:52 +02:00
SEINLET Nicolas b0c08a6846 [FIX] api: optimize way to retrieve records to prefetch (#24503)
Instead of searching for ids in the whole cache, search for the ones we will potentially prefetch.

Example: imagine you have 1K records in cache, and only 3 records in your prefetch set. Instead of retrieving the 1K records that have a value in cache, retrieve which of the 3 records that have no value in cache.
2018-05-04 09:59:45 +02:00
Yannick Tivisse a696f84f1f [IMP] hr: Add private information fields on the employees
Add some private information on the employees like:
- Certificate: Bachelor, Master, Other
- Place/Date of birth
- KM Home/Work
- Emergency Number/Contact
- ...

Also move some already existing private information from hr_contract to hr.
2018-05-04 09:59:24 +02:00
Yannick Tivisse 20c967ed19 [MERGE] hr_contract, l10n_be_hr_payroll: Improve employee contracts and payroll
1/ fleet: Improve stages demo data

    Remove the old one and defined stages that are more realistic.

2/ hr_contract: Add a access right group on contracts

    Some private information are on the contracts. Add a special group to display the
    contracts, independant of the other HR access rights.

3/ hr_contract: Add 'reported_to_secretariat' field on contracts

    Informative field to be greened when the related information is sent to
    the secretariat or the government.

4/ l10n_be_hr_payroll: Use the adapted wage as basic salary on payslips

    It's possible to take more holidays days than the allowed legal days.

    In that case the effective wage is the 'wage_with_holidays'.

    This specific wage should be used as basic salary when computing the payslip.

5/ l10n_be_hr_payroll: Track visibility onchange on wage_with_holidays

6/ l10n_be_hr_payroll: Remove cars domain on contracts

    Doesn't make sense to restrict the available cars on backend.

    A HR user is supposed to know what he does.

7/ l10n_be_hr_payroll: Rename 'Total Employer Cost' into 'Employee Budget'

8/ hr_contract: Add 'active' field on contracts

    Add the possibility to archive contracts.

9/ l10n_be_hr_payroll: Remove unnecessary field dependencies

    Since https://github.com/odoo/odoo/commit/2304edd46cc12aaef4fddaa22887ff51f51581bc,
    the total_depreciated_cost field on the fleet.vehicle is stored.

    This commit removes the field dependencies that are not useful anymore.

10/ l10n_be_hr_payroll: Allow to use several transport mode

    It should be possible to use several transport mode between
    - A company car
    - A public transportation
    - Another transport mode

    This commit split the selection field into 3 boolean fields.

    The payroll rules have to be modified too to take all the costs into account
    on payslips.

11/ hr_contract: Rename 'Contract Type' into 'Employee Category'

12/ l10n_be_hr_payroll: Introduce a new 'Intellectual Property' advantage

    Intellectual property rights guarantee their holders a temporary and territorially
    restricted, exclusive exploitation of their intellectual property. This monopoly
    stimulates innovations that are indispensable for economic growth, but can go against
    the right of free competition which is indispensable for the free market economy.

13/ l10n_be_hr_payroll_fleet: Add company car information on employee contracts

    It makes sense to display this piece of information on the employee contract.

    It allows HR users to see users information about the employee company car without
    having access to the whole fleet module.

14/ hr_contract: Add next activities on contracts

    It makes sense to plan activities on contracts like renewals, signatures, ask missing information,...
2018-05-04 09:54:28 +02:00