Commit Graph
140385 Commits
Author SHA1 Message Date
david 9fe8dc50cd [IMP] stock: add names to columns and divs for better inheritance
Closes odoo/odoo#37814

X-original-commit: 38195eb961cc792d116cc6eaf2b149883ca91e37
2020-01-22 12:21:35 +00:00
Victor Feyens 91985eb1a9 [FIX] point_of_sale: use config sequence on order line creation
closes odoo/odoo#43661

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-01-22 10:19:48 +00:00
Victor Feyens d0bcf89c33 [IMP] *: remove 'remove me in master' 2020-01-21 14:43:29 +00:00
wan d8c5cc1335 [IMP] account: add a readonly group
Task 2092079
Accounting firms that want to give access to their customers avoiding
mistakes and risks will love this profile that can't do anything
wrong... Maybe as well as companies auditors..?

closes odoo/odoo#39860

Related: odoo/enterprise#6576
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2020-01-22 11:23:16 +00:00
wan 76a35c125c [IMP] account: reorganize ir.model.access.csv for more clarity 2020-01-22 11:23:16 +00:00
Nicolas Martinelli f77d6d8b5d [FIX] repair: reserve parts
- Create some stock in WH/Stock for product A
- Create some stock in WH/Stock/Shelf 1 for product B
- Create a Repair Order for Product A in WH/Stock
- Add a line in Parts with B, leave the location to WH/Stock
- Process the order until the end

Negative quant is created in WH/Stock for B instead of using the
quantity in WH/Stock/Shelf 1.

We do a best effort in order to reserve the quantity in the
sub-locations.

opw-2177352

closes odoo/odoo#43716

X-original-commit: 2158f07cb2d32480f0db2a8e82aaea73ac266271
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-01-22 08:17:45 +00:00
Hardik Prajapati 46d1dfc826 [FIX] l10n_pl: use correct external id
Introduced at d4d26662fb

closes odoo/odoo#43710

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-01-22 08:45:49 +00:00
Nicolas Martinelli a7e2a7b2ee [FIX] base: correct rounding
Correct the rounding of several currencies which should be 0.001.

opw-2172122

closes odoo/odoo#43715

X-original-commit: 71f01060ea359814ffdb9ef506a01a2543dfc9ea
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-01-22 08:10:29 +00:00
Nicolas Martinelli 5afe4f8853 [FIX] stock_account: no analytic info on COGS
- Create a FIFO product, Automated
- Make some stock
- Create a SO, add the product
- On the SO, add an analytic account
- Validate the picking, create the invoice
  => the analytic info are propagated to the invoice, as expected
- Validate the invoice

The analytic info is propagated on the COGS entries, in particular the
the output account, which is incorrect.

opw-2008567

closes odoo/odoo#43690

X-original-commit: e831868fe648d3a3a4981a1cf9c135e4e4102279
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-01-21 17:07:56 +00:00
Sébastien Theys df18a701f3 [FIX] website_mail_channel: prevent crash in python3 email lib
`AttributeError: 'tuple' object has no attribute 'startswith'`

When given headers that are tuples. They are expected to be string, as per [1].
The issue was introduced with [2], indeed the code was moved from inside a dict
where `,` was the usual dict separator to outside of a dict where `,` at the end
made them tuples.

To reproduce the issue, run the `test_mail` suite after having
`website_mail_channel` installed.

Issue highlighted as part of task-2178641

[1] https://docs.python.org/3/library/email.policy.html#email.policy.Policy.header_store_parse
[2] cae1c3977f

closes odoo/odoo#43698

X-original-commit: 7e5a7245e86d8a3bcdab83c740cb4d188d009a40
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-01-21 18:37:07 +00:00
Martin Trigaux 194ed76c5c [ADD] base: replace Filipino by Tagalog language
This is the second move to replace Filipino by Tagalog language

Using Filipino (code fil_PH) is problematic as conflicts with Finnish
(code fi_FI) and users having their browser in Finnish were redirected
to the Filipino version of the website (cf discussion at opw-2172710).

This problem was also raised in other softwares like in the below
discssion in Mozilla L10N groups
https://groups.google.com/forum/#!topic/mozilla.dev.l10n/TW2qYyDDNoE

Quoting the discussion in above thread:

> Filipino is the national language of the Philippines, but it is
> commonly referred to (and registered as) Tagalog, since most of the
> terms therein were derived from it (Tagalog).

This commit targets the master (future 14.0 as of today), adds a new
Tagalog language and removes the Filipino.
In 12.0, only the Tagalog was added.
As fil_PH is only translated on odoo-com project but remains at 0% in
other Transifex project, it is assumed the language switch won't
impact too many people.

closes odoo/odoo#43634

Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-01-21 13:12:12 +00:00
qsm-odoo ac2a063b28 [FIX] website: restore s_btn style
closes odoo/odoo#43689

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-01-21 16:47:47 +00:00
Romain Derie 98678199a3 [FIX] *: fix translations inconsistency in 't-set'
This commit fix most `t-set` errors that either led to:
  1. unwanted text to be considered as translatable.
     eg: `<t t-set="classes">text-left bg-100 p4</t>` would create an
     `ir.translation`.
  2. text that should be translatable were not.
     eg: `<t t-set="text" t-value="'Both'"/>` would not create an
     `ir.translation` while it should.

If a text should be translatable, it should never be inside a `t-value`:
  - `<t t-set="text">Both</t>`
If a text should not be translatable, it sould either be inside `t-value`,
`t-valuef` or the `<t>` tag should have `t-translation="off"`:
  - `<t t-set="classes" t-translation="off">text-left bg-100 p4</t>`
  - `<t t-set="classes" t-valuef="text-left bg-100 p4"/>`
  - `<t t-set="classes" t-value="'text-left bg-100 p4'"/>`

https://github.com/odoo/odoo/pull/43660
https://github.com/odoo/enterprise/pull/7839
https://github.com/odoo/design-themes/pull/203

closes odoo/odoo#43660

Related: odoo/enterprise#7839
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
2020-01-21 15:32:08 +00:00
15c934a1ab [IMP] (website_)mail: improve routes and management of mail followers
Purpose of this commit is to improve model of followers, notably management
code and its use in routes. Indeed it is quite an old model and code had
to be cleaned a bit to improve code readability and maintenance.

In this commit we

  * remove unnecessary code examples in gamification about followers: using
    that model as example of code for goals is probably not a good idea as it
    is technical;
  * rewrite routes called by JS are simplified to better match JS
    implementation;
  * introduce computed fields to fetch related partner or channel name,
    email (partner only) and active status;

LINKS

Task 1933771
Task 2078313

closes odoo/odoo#39808

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: Remy Voet <ryv@odoo.com>
Co-authored-by: jgi-odoo <jgi@odoo.com>
Co-authored-by: Xavier-Do <xdo@odoo.com>
2020-01-21 16:40:06 +00:00
Thibault DelavalléeandRémy Voet e3ff7a49ae [IMP] mail: make followers API explicit
Purpose of this commit is to always call followers API with explicit parameters
about existing followers management (check_existing and existing_policy
parameters). It makes code easier to read and maintain.

LINKS

Task 1933771
Task 2078313

Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Co-Authored-By: Rémy Voet <ryv@odoo.com>
2020-01-21 16:27:26 +00:00
wan 59619987e9 [FIX] account: multi-post order compare bool and str
The `ref` field on `account.move` is not required and can yield a falsy
value. This produces a TypeError while doing the comparison in sorted().

closes #42434

closes odoo/odoo#43674

X-original-commit: 3bb4c0c99b29bb85916af95361b86e9dc3287546
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2020-01-21 15:30:44 +00:00
Odoo's Mergebot 16bb5795d8 [MERGE] mail, mass_mailing(_sms): split mail and sms marketing activities in systray
PURPOSE

mass_mailing and mass_mailing_sms activities are grouped as 1 item in the systray due to them using the same model name (sms inherits and distinguishes itself with a different field.Selection value). This is confusing behavior because they are 2 separate modules and the default icon ends up mismatching the sms-related activities.

SPECIFICATIONS

Split mass_mailing and mass_mailing_sms activities into 2 separate items in systray. Additionally, make it so when mass_mailing and mass_mailing_sms activities are clicked on, only the relevant activities are shown to prevent confusion. In order to only show relevant activities, an optional "domain" check is needed in __systray_activity_menu.js__ for when overriding _systray_get_activities_ methods provide a domain to apply.

Task: 2169498
PR #43272

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-01-21 16:46:28 +01:00
Adrian Torres 1d13928764 [IMP] core: improve mapped and filtered performance
Previously, mapped was following a very naive approach, which was simply
calling the field name passed as input for every record in a recordset,
sequentially.

The problem with this approach is that we will potentially recompute the
same fields multiple times for differents records, when this could be
done once per field for ALL records, and store this value in cache for
further access.

Another potential problem is that we don't take advantage of the ORM's
prefetching to fetch all the records that are not in cache at once,
instead of doing the same query for every record in the recordset.

Yet another problem is the conversion of each cache value to a record
format and then combining all of the individual records into a single
recordset, which, depending on the size of the recordset, can take an
unbelievable amount of CPU time.

With this new implementation of `mapped()` we take care of all of these
problems:

This is done by first delegating `mapped()` from the model to the field,
this mapped takes a recordset as input and it will try to batch compute
and prefetch as much as possible for the entire recordset, but it will
not keep these values for the actual output, it just stores everything
in cache and then at the end, retrieves everything from the cache to
guarantee the same order.

After the mapped, the conversion from cache format to record format is
delegated to the new `convert_to_record_multi` which will fetch all the
ids and then perform a single browse to encapsulate all of the records
into a single recordset with the least amount of overhead possible.

Part of Task 2170344

closes odoo/odoo#42611

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
2020-01-21 14:06:50 +00:00
Tiffany Chang (tic) dced1d2f70 [IMP] mass_mailing_sms: Add mailing_type domain activity restriction
Restrict the displayed activities when clicking on "Email Marketing"
and "SMS Marketing" modules in the activity systray. Due to their
activities being linked to the same model, we need to distinguish which
activities belong to which module based on their assigned mailing_type
value. Without this domain restriction, users can still filter based on
mailing_type, but it is much less intuitive this way due to them being
separate apps.

Task: 2169498
2020-01-21 12:43:48 +00:00
Tiffany Chang (tic) b786adf2e9 [IMP] Mail: Add optional activity domain for systray
Addition of this optional 'domain' value for systray activity related
lines allows the restriction of which activities will be included in
the view opened when the line is clicked on.

One use case is when a model is split between 2 systray activity lines.
In this case we most likely do not want the same activities of the
model to show up when we click on either line. For example, say we
have 2 modules using the same model, but the module instances of that
model are distingushed by a field.Selection value. Then we would only
want to show the activities related to each module when we click on
their appropriate systray activity lines based on that field.Selection
value.

Task: 2169498
2020-01-21 12:43:41 +00:00
Tiffany Chang (tic) abaae1e463 [IMP] mass_mailing_(sms): split systray activities
Due to 'mass_mailing_sms' inheriting mailing.mailing from
'mass_mailing', activities for these two modules would show up as one
"Mass Mailing" line in the systray. This commit adds additional logic
to remove this "Mass Mailing" line and replace it with 2 lines: "Email
Marketing" and "SMS Marketing" with their appropriately matching module
icon. For consistency, when only the 'mass_mailing' module is installed,
it will still display "Email Marketing".

Task: 2169498
2020-01-21 12:37:58 +00:00
Lucas Lefèvre 9fc1dd538b [IMP] sale_timesheet: Add Other Revenues to project profitability report
Other revenues are revenues that are not from timesheets and that are linked to the
analytic account of the project

Task 2119567
2020-01-21 13:16:58 +01:00
Lucas Lefèvre 7bce19fa88 [IMP] sale_timesheet: Improve project overview UI
1)  Add the following stat buttons on the right of the Tasks one:
- (fa-tasks) Late Tasks: tasks whose deadline is exceeded (do not include tasks that
  don't have a deadline set)
- (fa-tasks) Tasks in Overtime: tasks whose Effective hours are strictly greater than
  their Planned hours (if the latter is stricly greater than 0)

2) Remove the sheet view (should be like financial reports)

3) Add an 'Other Revenues' metric under the Profitability section below 'To Invoice'
- It should represent all the revenues other than from timesheets linked to the analytic
  account of the project.
- Only visible if greater than 0

Task 2119567
2020-01-21 13:16:58 +01:00
Lucas Lefèvre 9acb61c5da [IMP] sale_timesheet: Allow to fold/unfold project overview
Allow to fold/unfold the details by SO. It should be folded by default.

Note: Although qweb views have a generic mechanism to manage fold and unfold, this standard
behavior is not used here.
It would imply refactoring the entire code preparing the template data (700+ lines of
code which are hard to read). The quick and dirty js way is used for now.

Task 2119567
2020-01-21 13:16:58 +01:00
Lucas Lefèvre 3519b9872e [IMP] web: Add support of js_class attribute for qweb views
Task 2119567
2020-01-21 13:16:58 +01:00
Lucas Lefèvre 8b89f63d2c [FIX] sale_timsheet: Consider employees in current companies
In the project overview, "Time by people" shows data from other companies.
One user can be linked to several employees (in different companies).
Because searching the employees is performed in a sudo'ed env, the multicompany
ir.rule is not applied and *all* employees of each assigned users are retrieved.

The employees from other companies should be filtered.

Task 2119567
2020-01-21 13:16:58 +01:00
Victor Feyens 9a9528625f [FIX] sale: discount_amount in sale report
The discount_amount didn't consider the quantity on Sales Order Line.

e.g:

100€ | 10% discount | 8 products

--> discount_amount was 10 € instead of 80€

Fixes #43242

closes odoo/odoo#43624

X-original-commit: b8a1370c7bebe71b968555a6c9e5137c4e7cda8b
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-01-21 09:41:13 +00:00
51b36c3dbb [IMP] base: add default image for users + placeholder if unassigned
1/ When the new database is created without demo data, the admin has a
   'silhouette' as a default picture. When a new user is created without
   picture given by the current user, the new user will have a 'silhouette'
   as a default profile picture.

2/ web: image for fa-user-slash. This image will be used when a record is
   unassigned.

3/ web, *: Change placeholder by default when record is unassigned.
   We want to have a fa-user-slash icon when a record is unassigned instead
   of 'placeholder.png'. A method is created in the BaseModel to have a
   generic method to change easily the placeholder for other models.

4/ Adapt kanban test to keep the same behaviour. Attention the behaviour is
   a bit different. Because, now the default image is given by the server to
   change easily the default image when a record doesn't have an image.
   Thus, we don't say if it's the default placeholder, but we can say it's
   not the same image of the record (in this test, the record, it's the
   partner).

5/ misc: display 'Unassigned' in the hover on kanban cards if record is unassigned

closes odoo/odoo#41356

Taskid: 2060206
Related: odoo/enterprise#7758
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Co-authored-by: jdoutreloux <jud@odoo.com>
Co-authored-by: Yannick Tivisse <yti@odoo.com>
2020-01-21 09:22:46 +00:00
odooqs 279d3ce00b [FIX] point_of_sale: payment method name not displayed
When a payment line is created, and then the order is reloaded, by the
synchronization feature for example, the name displayed on the payment
line is empty.

This happens because the field name is not saved on the server, so
instead of using it, we are directly taking the name of the payment
method linked to the payment line.

closes odoo/odoo#43615

X-original-commit: ae4322cd81814cf4cdc462ff9d271f83ce2870c4
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2020-01-21 09:00:07 +00:00
Jeremy Kersten e18ac0963a [IMP] web: remove unused controller
This controller is no more used, probably used in the past with calendar invitation.

closes odoo/odoo#43657

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-01-21 14:05:28 +00:00
Andrea Grazioso (agr-odoo) 892a7a7b9d [FIX] website_sale_wishlist: fix pricelist assignation
Steps to reproduce:
- Install website_sale_wishlist,stock,sale_management,contacts
- General Settings>Sales>Multiple Sales Prices per Product
- Create or edit a product, assign 2 different prices in pricelists A and B
- Publish it to the website
- If your user is Mitchell Admin, go to its related res.partner, Sales &
Purchases tab/Pricelist, choose pricelist B
- Create a public user and assign it pricelist A
- Go to the website/shop
- Reach out the product and add to the wishlist

When the current user is internal the product page will display price of B,
but if you add the product to the wishlist, whishlist displays public price
Same for the portal user.
This happend because to avoid returning 500 when the product is
unpublished c93f371d67 the product is
filtered using sudo() but the recordset is also returned with the sudo
environment. Using it just to filter solve the issue

opw-2166484

closes odoo/odoo#43646

X-original-commit: 4335f9dbf21447f717874b2d65552dd67c634df0
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-01-21 12:35:14 +00:00
Aaron Bohy 37462d8a11 [FIX] sale_product_configurator: display multiple dialogs
Create a new quotation, add a row with product Customizable desk.
The product configurator dialog opens. Click on 'Add'. A second
dialog opens (to select optional products).

Before this commit, the second dialog was displayed behind the
first one.

This bug is present since the introduction of Owl dialogs
(34bbdd8). It is due to an override of the 'open' function that
doesn't call _super (and thus, doesn't go through the code that
makes the last opened dialog active).

closes odoo/odoo#43424

Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2020-01-21 11:59:22 +00:00
Aaron Bohy 7ab364b627 [IMP] web: properly throw errors in MockServer
Otherwise, they could be catched (by a guardedCatch) and thus would
not make the test fail.
2020-01-21 11:59:22 +00:00
Aaron Bohy 50bf8309f8 [FIX] web,*: fix race condition with m2o quick create
*sale,sale_product_configurator

Let's assume a form view containing a many2one with an onchange
that updates the value of a one2many. Do a quick create in the
many2one. While the name_create request is pending, add a row to
the one2many but do not leave it. When the name_create returns, and
the onchange has been performed, the one2many is reset, and the row
is no longer in edition (worse, it could be invalid, i.e. in a state
that the user could not have reached in a normal situation).

This commit fixes this issue by considering the whole [name_create +
onchange] operation as one. This operation is executed in the mutex
of the model, so the other request (adding a row to the one2many) is
delayed until the many2one value has been correctly set.

This fixes an issue with the sale and rental tours (on sale_order),
that had been deactivated for a while.
2020-01-21 11:59:22 +00:00
mcm-odoo 01e3a5996f [REF] web: pivot: use owl_compatibility tools
This commit changes ControllerAdapter to a mixin that inherits
WidgetAdapterMixin and RendererWrapper now extends ComponentWrapper.

This commit also changes PivotController base class/mixin and uses
the Odoo legacy custom_events because of the adapter.

closes odoo/odoo#43256

Related: odoo/enterprise#7744
Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2020-01-21 10:22:50 +00:00
mcm-odoo 083ba2a811 [IMP] web: WidgetAdapterMixin: add some tests 2020-01-21 10:22:50 +00:00
Aaron Bohy ed0b5c2638 [IMP] web: add a few WidgetAdapterMixin tests 2020-01-21 10:22:50 +00:00
mcm-odoo a8e65f22ed [IMP] web: Owl compatibility: add WidgetAdapterMixin
and ComponentWrapper

This commit adds the necessary tools to use when an Odoo legacy
widget has to instantiate Owl components.
2020-01-21 10:21:08 +00:00
Adrian Torres be01db2f71 [IMP] api: move cache_key to the Environment and cache it
Computing the `cache_key` turned out to be a big factor during the
lifespan of a `BaseModel.mapped` call and a lot of this time is spent
computing the same `cache_key` over and over.

These unnecessary computations can be easily reduced to a couple by
moving the `cache_key` method on the environment (instead of the field)
and by implementing a memo for that method.  The rationale is that the
`cache_key` of a field does not change for a given environment.

The result of this patch is up to 50% faster `Field.__get__` which in
turn means a GLOBAL gain in performance, especially for methods /
functions that rely heavily on `__get__` such as `BaseModel.mapped`.

closes odoo/odoo#42674

Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
2020-01-21 08:28:36 +00:00
Adrian Torres 8645e31863 [FIX] website_sale: do not pollute the environment
Instead of polluting an existing environment, use the method that was
intended for changing the company `with_company` which returns a brand
new environment and leaves the existing one unchanged.
2020-01-21 08:28:36 +00:00
Aaron Bohy 671a5471cd [IMP] web: Owl compatibility: add ComponentAdapter
This commit adds the ComponentAdapter, an Owl component meant to
be used as universal adapter for Owl components that embed Odoo
legacy widgets.

This component will be a precious tool during the transition phase
of converting our JS codebase from the legacy (widget) framework to
Owl.
2020-01-21 07:17:31 +00:00
Aaron Bohy 45246a3b96 [FIX] web: utils: fix typos in patch and unpatch
The use of 'this' to call other utils adds a restriction on the
way utils are called from the outside:

  utils.patch(...); // works fine

  const patch = utils.patch;
  patch(...); // doesn't work
2020-01-21 07:17:31 +00:00
yhu-odoo 1110ea43a4 [FIX] survey: get certification of failure back
PURPOSE

As Certification PDF can be called on failed user input, generate a
certification of failure in that case.

SPECIFICATIONS

In the survey_report_templates.xml, when user_input.quizz_passed is
false, a certification of failure can be generated.

This commit is actually about applying again 57fef7c11c that has been lost
while performing major cleaning in survey templates.

LINKS

PR #42811
Task ID 2148449

closes odoo/odoo#43274

X-original-commit: 6206e0e6213be14a977db028b8f4dc4f755bf11c
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-01-21 12:18:14 +00:00
Jorge Pinna Puissant 7fe7d0acc0 [FIX] account: display name of journal entries
1- create a group payment (10 ~ 15 invoices);
2- Open the created journal entry.

The first issue we see is that the breadcrumb is too big to the size of
the screen.

3- Open the 'Reconciled Entries'.

Before this commit, the screen was completely shifted and not visible.
This occurs also because the breadcrumb is too big.

Now, the references added to the name of the entry is limited to 50
characters.

opw-2166551

closes odoo/odoo#43644

X-original-commit: d679c75bbeaf3e41dcdb8c91996a89ea5080669f
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2020-01-21 12:05:07 +00:00
Damien Bouvy 2f900d4f1c [FIX] account, base: Creating contacts from their parent or setting their parent
Bug in 13.0 regarding company_id field of partners when creating them from
their parent contact or when setting their parent.
The field 'company_id' of res.partner is set by an onchange on 'parent_id'
to that of it's parent; unfortunately the field is readonly if parent_id
is set and not set to force_save.
Furthermore, creating a child partner from the main one (in the 'Contact'
tab of the main partner form view) does not follow the same behaviour
(company_id is unset in that case, meaning that children don't have
the same company as their parent).
Since the company_id is already set by an onchange when we change 'parent_id'
and set to readonly in that case, I assume the expected behaviour is actually
that children partners should have the same company as their parent by default.

Fine tuning of 7b49f5836c

opw:2176384,2167106

closes odoo/odoo#43621

X-original-commit: 92737f21acf9b044df99e111fceffc08e05abe65
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2020-01-21 10:00:55 +00:00
Debauche Stéphane e3ad9c8976 [IMP] web_gantt: add documentation
Add documentation about the new gantt parameter, `dynamic_range`,
The parameters were added in enterprise (odoo/enterprise#7640).

Task #2168740

closes odoo/odoo#43052

Related: odoo/enterprise#7640
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-01-21 07:35:22 +00:00
Xavier Morel d2c7efa9be [FIX] website, test_website: problematic tours
Fix various tours which either have transient failures due to logging
the entire browser lifecycle or don't deal well with the last step
being suppressed if no explicit `run` is provided.

* test_website: add a warning final step for the page reset as there's
  no way to actually run a tour step in the recovery page (because
  it's asset-less)
* website: remove final step's action in reset password tour, it's
  relatively low-value and adding a proper followup is probably not
  worth the effort
* website: add final check step in dashboard tour, as we want to check
  that the dashboard gets loaded, but we don't want that to be dangling
2020-01-21 06:56:15 +00:00
Xavier Morel 9733f6e1ab [FIX] web_tour: never run default action for a tour's final step
A number of steps have a last step which may trigger some async
operation (e.g. reopen a menu, close a modal, ...).

This async operation can span over the cleanup of the browser, in
which case its callback will try running in a seriously broken state.

It's simpler to just assume that the last step's side-effects should
not matter to the test's success and interpret it as a "wait" (used
only for its trigger to wait until a proper end-state).

There was a question of whether we should ignore all final actions,
all non-function actions, or all implicit (default) actions. The
latter seems the least disruptive as hopefully developers having
provided a `run` in the final action have a good use case for it.
2020-01-21 06:56:15 +00:00
Xavier Morel b66a7feb0f [IMP] core: strip log_handler items before splitting them
Allows better formatted and commented log_handler items in
configuration files: configparser allows multiline values and
interspersed comments (stripping out comment lines), but while it
removes indent it leaves the linebreaks, so e.g.

    foo =
      bar,
      # qux
      quux

when parsed and split on "," results in `['\nbar', '\nquux']` which is
obviously an issue for logging (as it assumes the leading `\n` is part
of the logger name proper).

Since log_handler items can be fairly long and are not necessarily
self-descriptive as to *why* they were selected for re-configuration,
allowing one per line & comments is helpful.
2020-01-21 06:56:15 +00:00
Xavier Morel 7b13ce17c2 [IMP] base, test_access_rights: mute ir_rule logging on ACL tests
The tests are willfully triggering ACL failures, logging the
information is noisy and not useful.
2020-01-21 06:56:15 +00:00