Commit Graph
118485 Commits
Author SHA1 Message Date
Géry Debongnie 9756109e67 [IMP] web: add tz_offset function in python eval context 2018-07-06 14:09:09 +02:00
Mathieu Duckerts-Antoine 5d3f42a9ad [IMP] web: implement assemble domain utility function
In this commit, we implement a function which allow to combine
a list of domains into a single normalized using a 'OR' or an
'AND' operator.
We also refactor slightly py_utils.
2018-07-06 14:09:09 +02:00
Géry Debongnie 0194d85b67 [IMP] web: implement normalize domain utility function
In this commit, we implement a function which normalize a domain
represented as a py.js syntax tree.
2018-07-06 14:09:09 +02:00
Géry Debongnie 3248498f48 [IMP] web: implement formatAST utility function
In this commit, we implement a function which format a py.js abstract
syntax tree into a string.  This is really useful whenever we need to
manipulate python expressions.
2018-07-06 14:09:09 +02:00
Géry Debongnie eed4d586a0 [REF] *: rename web.pyeval into web.py_utils
The pyeval name is quite confusing, given that there is already an eval
and an evaluate function in py.js, and that the web.pyeval exports two
evaluate functions.

Since this file is more about odoo specific customization to py.js, it
is renamed in py_utils to better express its intended use.
2018-07-06 14:09:09 +02:00
Géry Debongnie dcc4d71623 [REF] web: move some code from pyeval to lib py_extras
Some functions that were in web.pyeval were actually "odoo independant".
To make them easier to manage/understand, this commit move them in the
library py.js, as an extra file.
2018-07-06 14:09:09 +02:00
Mathieu Duckerts-Antoine 64f3580af7 [IMP] web: add support of modulo in pyeval 2018-07-06 14:09:09 +02:00
Mathieu Duckerts-Antoine c71148cc70 [DOC] web: amelioration of inline documentation 2018-07-06 14:09:09 +02:00
Christophe Simonis 8a1dad3da4 [MERGE] forward port branch saas-11.4 up to 8db9865c2d 2018-07-05 20:11:59 +02:00
Christophe Simonis 8db9865c2d [MERGE] forward port branch saas-11.3 up to 2214bffefb 2018-07-05 19:33:14 +02:00
Christophe Simonis 2214bffefb [MERGE] forward port branch saas-11.2 up to 45329c0cf2 2018-07-05 18:53:17 +02:00
Christophe Simonis 45329c0cf2 [MERGE] forward port branch 11.0 up to 84210074e5 2018-07-05 17:21:01 +02:00
wangting d4578794a8 [CLA] signature for tanghulu0608
Closes #25625
2018-07-05 16:30:57 +02:00
Christophe Simonis 84210074e5 [MERGE] forward port branch saas-15 up to b06c09db60 2018-07-05 16:23:47 +02:00
Christophe Simonis b06c09db60 [MERGE] forward port branch saas-14 up to 92e5da6b8f 2018-07-05 15:35:24 +02:00
Martin Trigaux a978a3647a [FIX] mail: multi-company access to TZ
- Create 2 Companies A & B
- Set User B in Company B
- Record some `mail.activity` for User B on a lead belonging to Company
  B.
- With a manager user in Company A, go to Kanban view of leads and
  remove filters => all leads, including leads in Company B, are
  displayed

An access error occurs.

`read_progress_bar` method, tries to access the field `activity_state`
which is: `states = record.activity_ids.mapped('state')`. The state of
a `mail.activity` is using the tz of the partner. To read the
`activity_state` of a lead, one needs to access
`record.activity_ids.user_id.partner_id.tz`
=> multi-company security rules raised

opw: 1850984, 1859470
2018-07-05 15:29:34 +02:00
qdp-odoo 73d664f7f7 [FIX] l10n_generic_coa: bank statement demo data 2018-07-05 15:28:55 +02:00
Christophe Simonis 92e5da6b8f [MERGE] forward port branch 10.0 up to 26e7d5d8ee 2018-07-05 15:05:21 +02:00
len-odoo 7764db7a34 [FIX] web: handle onchange on a on2many with an embedded one2many on multiple pages
Suppose there is a one2many field embedded in a one2many,
(say we are viewing record A with one2many field B itself with a one2many C).
Furthermore, there is a second page of the one2many field B.
If an onchange is applied on B, then the server replies with a 1 command for all
B records attached to the currently viewed object A.
This includes a list of commands [[5], [4, C_id]*] for each B record,
in particular B records that are on the second page.
Since they are on the second page, they might not have been fetched by the
frontend; in that case the corresponding C_ids are thus unknown.
As a consequence, on save the frontend sends a command 0 to create the records
for all unknown C_ids.
Since it doesn't have any value to give to the 0 command, the row creation
usually crash in the backend.

Another wrong behaviour is fixed at the same time: if the server sends an update
on the list of C ids with 4 commands.
In that case, if the record has not been prefetched, we have no way to know
if the list changed or not.

To solve this, when we receive the 4 commands by the server, we send back 4
commands.

coauthored by @aab-odoo

opw 1835936
2018-07-05 15:03:37 +02:00
Christophe Simonis 26e7d5d8ee [MERGE] forward port branch 9.0 up to b5c50fa824 2018-07-05 14:19:33 +02:00
Géry Debongnie a1778ed5a1 [FIX] web: make the kanban view wait on async field widgets
Before this commit, the kanban view ignored the fact that a field widget
could be asynchronous.  Worse, some preliminary support was done in
kanban record, but this would crash if an async widget was used.

With this commit, we properly synchronize the kanban
records/columns/renderer.  If for some reason a widget needs to be
added to the DOM before it is ready, it can simply returns an empty
value in the willStart/start methods.
2018-07-05 14:08:04 +02:00
Alexandre Kühn 7af09db878 [FIX] web: no concurrent reload on basic model
Before this commit, there was a traceback in the following scenario:

Let's have a kanban view with groupby and a domain.
If we clear the domain then clear the groupby, there could be a crash.

This crash occurs because when we clear the groupby, it performs a `reload`,
and assumes that the datapoint contains grouped data. However, if this
computation takes some time, it is possible to overwrite the datapoint so that
there is no longer grouped data.

This commit fixes the issue by enforcing at most 1 execution of the method
`reload` active at any time. Consequently, successive reloads operations are
now much slower.

Note that it uses the single non-reentrant mutex on the basic_model to enforce
this rule, which means:

  - No more concurrent `reload` and `save`.
  - If an execution having the mutex in `reload` come accross the same mutex,
    it is blocked forever. This is hopefully not the case at the moment,
    however a reentrant mutex should be considered in the future.
2018-07-05 14:04:33 +02:00
Nicolas Lempereur b27d009ab4 [FIX] barcodes: documentation in description
The barcodes modules had documentation only available on apps.odoo.com,
following a recent change, odoo modules are not displayed on
apps.odoo.com anymore.

Thus this commit merges the documentation onto the module description so
it is available on the module page.

opw-1846035
closes #25621
2018-07-05 13:00:28 +02:00
Romain Derie 21f1a593a1 [FIX] website: new content links not triggered
Clicking outside the new content options should close the overlay.
Every options are triggering a JS event (mostly opening a modal) that works
fine.

But the 'New Job offer' options is simply a href link which is not going
through anymore since there was a call to `preventDefault`.

opw-1860196
2018-07-05 12:42:01 +02:00
Christophe Simonis b5c50fa824 [FIX] core: set up registry before running migration scripts
As `pre-` migration scripts may use the registry, we must ensure that
all fields are set up before execution in order to have a consistent
registry.

This is required when loading a registry which contains modules to
install/upgrade without `-u` flag. In this case, the setup was only done
*after* module loading.
2018-07-05 12:26:28 +02:00
Pierre Masereel 6bdc654176 [FIX] stock: fix api multi method
Method was using self instead of line in the loop for.

introduced in rev: https://github.com/odoo/odoo/commit/ba5918ffcbe5fe9155308c53e014e5e93c588ca6
2018-07-05 10:54:25 +02:00
jem-odoo ceaa6562a5 [FIX] hr_timesheet: dynamic domain when encoding timesheet
To have a better encoding timesheet, we want for the user:
1/ when selecting project first, the task proposed will be
the ones in the project. When changing project, it reset the
task to empty.
2/ when selecting the task first, the project will be the
one from the task
2018-07-05 10:16:42 +02:00
Gert Pellin b7bcbddccb [imp] fleet: Allow to filter/group by Make on vehicles
Add grouping possibility on model make for vehicles in the fleet.
Deleted redundent controll on make image for vehicles if model changed.
fixed _name_search for FleetVehicle

project : RD for Dummies
task : [Fleet] Allow to filter/group by Make on vehicles
2018-07-05 09:45:17 +02:00
Fabien Pinckaers bed29a4aea [IMP] product: Unify/Clean product demo data
PURPOSE
=======

1. Unified product demo data
2. Less demo: one per use case
3. Demo data for all models

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

1. Refactor all the brol in the demo data
2. Adapt the tests to make them green, as some products are
   renamed, removed, created in python instead of as demo data
   ...
2018-07-05 08:57:41 +02:00
RomainLibert 0f48701384 [DOC] web_cohort: documents mode attribute
Closes #25512
2018-07-04 16:42:08 +02:00
Florent de Labarre 4206aba48b [FIX]product: force_company doesn't work to get property
When forcing the company C in the context, the company C was not
taken into account in function _get_partner_pricelist

opw:1861989
2018-07-04 16:24:17 +02:00
Shubham Johar 26d384ef61 [FIX] website: leave 'create screen' when click outside
The purpose of this commit is to hide the Create menu when the user click on
any area other than the link icons.

Note: It was already the case in V10.0 since the options were inside a modal.
      Natively bootstrap would close the modal when clicking outside of it.
      We lost that behavior while refactoring in V11.0 with 297297696 that
      replaced the modal by a pseudo-dropdown

opw-1860196
Closes #25389
2018-07-04 16:04:00 +02:00
sed-odoo f56ad6daf8 [IMP] base,*: Improve the res.partner form view UX
Purpose
=======

The Contact form is one of the most used/important view. It is quite
important to find the piece of information easily and to navigate in
a few clicks to the related views.

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

Stat buttons
------------

- Restructure stat buttons with the following order:
Opportunities  -> sales user
Meetings    -> sales users
Sales    -> Sales users
POS Sales -> pos users
Subscriptions   -> Subscription users
Events    -> event user
Tasks -> project user
TIckets -> helpdesk user
Purchases   -> purchase user
Due -> billing: user
Invoiced     -> billing: user
Vendor Bills -> billing: user
Customer/Vendor Partner Ledger -> accounting: billing
Analytic Accounts -> accounting: billing
Credit Cards -> sales user
Direct Debit Mandates -> accounting: billing user
Publish
- Use better/more relevant icons
- Check that the proper access rights are set
- Remove the bank accounts stat buttons and replace it by a one2many
  tree on the Invoicing page.

Fields
------

Move some res.partner fields from the "Accouting" page to the
"sale & Purchase" page:
- Fiscal positions
- Payment terms

Miscellaneous
-------------

- Remove dead code.
- Display nothing instead "Please complete customer's informations and email"
  on the popup when sending an email to a contact without email address.
2018-07-04 15:43:25 +02:00
Pierre Masereel 4edcc1f322 [FIX] stock: package location only in multi location
When we open the form view of a package_level, the location_id and
location_dest_id fields are visible evene if multi location is not
enabled on the database. We add the corresponding groups to avoid such a
behavior.
2018-07-04 14:54:57 +02:00
Pierre Masereel eae6ce7b6b [FIX] stock: move lines attributes on package_level
When you see move lines in a package level, the lots and owner are not
displayed, we added them in the view.
2018-07-04 14:54:57 +02:00
Ankit Joshi 47384a4244 [FIX] stock, delivery: picking fields readonly when cancelled
When a picking is cancelled, most of fields must be readonly it was
remaining some that were not. We fixed them here.
2018-07-04 14:54:57 +02:00
Pierre Masereel 94dec61301 [FIX] stock: move lines readonly when in entire package
When a move line is in an entire package and the entire package option
is enabled, you shouldn't be able to modify them in the move form view.

So we make all fields of the move lines readonly when it has a
package_level_id and its picking_type has 'Show entire package' option
enabled
2018-07-04 14:54:57 +02:00
Pierre Masereel 63a98846b1 [FIX] stock: quant_package unpack
When you unpack a quant package, you have to invalidate the reservation
on the move lines reserved on this package and then remove the quants
from it. We need to do it as sudo because, no one has rights on quants.
2018-07-04 14:54:57 +02:00
Pierre Masereel 64b67c7f91 [FIX] stock, delivery: packaging_id displayed in delivery
The field 'packaging_id' of quant package was displayed in tree view,
even if it was impossible to fullfill it because it is added in the form
in module delivery. So the field in the tree view is moved in the module
delivery to be shown whan you can set it.
2018-07-04 14:54:57 +02:00
Pierre Masereel 4308c5fa02 [FIX] stock: error message typo 2018-07-04 14:54:57 +02:00
Pierre Masereel 7a46cf5021 [FIX] stock: hide put in pack button when picking draft 2018-07-04 14:54:57 +02:00
Darshil Trivedi 1b9ec90490 [IMP] stock: improve backorder message.
This commit is related to task ID 1860538.
2018-07-04 14:34:39 +02:00
Darshil Trivedi 436c95baef [IMP] stock: remove useless filter
Inventory report list all products in stock and the available quantity.
By default, the list is filtered on "stockable product". This filter is
useless as only stockable product are listed in the report.

This commit is related to task ID 1860538.
2018-07-04 14:34:39 +02:00
Goffin Simon 30ede6a16a [FIX] pos_sale, sales_team: Timezone problem in dashboard graph
The function _get_graph computing the dashboard graph must take the timezone of the user
into account to compute the right start_date S and the right end_date E.

The query  made on model 'report.pos.order' by read_group in _graph_data must take the
timezone of the user into account to substract the right offset to compute the start_date S
and end_date E in UTC because the result returned by read_group is formated in the timezone
of the user afterwards.

Example:

In function _get_graph:

Start_date in 'Asia/Ulaanbaatar' timezone = 2018-06-05
End_date in 'Asia/Ulaanbaatar' timezone = 2018-07-04

So End_date - Start_date + 1 = 30

In function _graph_data:

Start_date in 'Asia/Ulaanbaatar' timezone = 2018-06-05 00:00:00
End_date in 'Asia/Ulaanbaatar' timezone = 2018-07-04 23:59:59

So in UTC -9 hours:

Start_date in UTC = 2018-06-04 15:00:00
End_date in UTC = 2018-07-04 14:59:59

SELECT min("report_pos_order".id) AS id,
       count("report_pos_order".id) AS "date_count" ,
       sum("report_pos_order"."price_total") AS "price_total" ,
       date_trunc('day', timezone('Asia/Ulaanbaatar',
       timezone('UTC',"report_pos_order"."date"))) as "date:day"
FROM "report_pos_order"
WHERE (((("report_pos_order"."date" >= Start_date)  AND
      ("report_pos_order"."date" <= End_date))  AND
      ("report_pos_order"."config_id" in (1,2,3)))  AND
      ("report_pos_order"."state" in ('paid','done','invoiced')))
GROUP BY date_trunc('day', timezone('Asia/Ulaanbaatar', timezone('UTC',"report_pos_order"."date")))
ORDER BY "date:day"

And the result of this request will be between 2018-06-05 00:00:00 and 2018-07-04 23:59:59 but
before the fix the result was between 2018-06-05 00:09:00 and 2018-07-05 08:59:59 and then
End_date - Start_date + 1 was equal to 31. That's why a "IndexError: list index out of range"
can be raised in _get_graph.

In this way, no mismatch is possible between the datas computed by _graph_data and the dict
"values" allocated by _get_graph.

opw:1862996
2018-07-04 13:21:46 +02:00
Goffin Simon ab5fcb2965 [FIX]purchase: A duplicated shipment is not associated with the original PO
When duplicating a shipment, the shipment was not linked to the original PO.

opw:1854387
2018-07-04 11:42:41 +02:00
Mykhailo Panarin 80b325bbb2 [CLA] create mpanarin
Backport to 9.0 of #23708

Closes #25595
2018-07-04 10:58:44 +02:00
Olivier Dony 43e4d63d06 [IMP] mass_mailing: add missing indexes
These two columns are used to compute the mailing statistics, to be
displayed in the kanban dashboards. Adding them makes the dashboards
a lot faster on large databases (e.g. a few milliseconds instead of
several seconds)
2018-07-04 10:16:38 +02:00
Olivier Dony a5edf6e0f3 [IMP] mass_mailing; speed up kanban view
The kanban view displays mailing statistics for all mailings that are
sending or done. To compute these statistics, it uses the `total` as the
expected number of emails to send. This `total` used to be computed as
the number of records matching the mailing filter.
This is both slow (filters are seldom written in an optimized way), and
incorrect because the recipients were frozen when the email was sent.
The number of matching records may have changed since then.

To fix both problems, introduce a new `expected` computed field that
simply returns the number of emails that were put in queue at the time
of sending, and thus represent the real number of expected emails.
This field is computed along with the rest of the statistics.
2018-07-04 10:11:32 +02:00
Olivier Dony c1de5b8419 [IMP] mass_mailing: simplify read_group column expansion
The framework supports a special `group_expand` attribute on fields,
to provide a helper method that expands the list of columns in a
read_group (typically meant to display empty columns in kanban views)
See rev. 580e78ad37

More efficient, and less code.
2018-07-04 10:11:32 +02:00
Maulik Raval 578edc0458 [CLA] signature for maulik-raval
Closes #25489
2018-07-04 10:08:44 +02:00