Commit Graph
140385 Commits
Author SHA1 Message Date
Raphael Collet 9920f20e4c [IMP] models: ORM speedup
This branch is the combination of several optimizations in the ORM:

* store field values once in the cache: the cache reflects more
faithfully the database, only fields that explicitly depend on the
context have an extra indirection in the cache;

* delay recomputations by default: use method `recompute` to explicitly
flush out pending recomputations;

* delay updates in method `write`: updates are stored in a data
structure that can be flushed efficiently to the database with method
`flush` (which also flush out recomputations);

* make method `modified` take advantage of inverse fields to inverse
dependencies;

* filter records by evaluating a domain on records in Python;

* a computed field with `readonly=False` behaves like a normal field
with an onchange method;

* computed fields are computed in superuser mode by default.

Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien
Pinckaers.

closes odoo/odoo#35659

Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2019-08-20 12:43:59 +00:00
Hiral Bhavsar e28d3aa4d3 [IMP] crm: merge lead and opportunity form views
When redirecting to record, the wrong 'form' view will sometimes be
loaded. A 'hack' has been done in crm_lead.py to redirect the user to
the relevant 'form' view based on the value of the 'type' field.

However, this solution is not clean as it does not solve all cases
(multiple crm.lead records loaded from the activity systray, reloading
the page after redirection, etc.)

Goal of this task is to solve those issues by merging crm.lead.form.lead and
crm.lead.form.opportunity form views. That way multi records actions will
always display the relevant information according to record type.

Note: Here some fields used as a twice in the form view just to stay
close to the current design. Still few things which are not possible
here for 'lead' and 'opportunity', that is
* A dynamic 'placeholder' on 'name' field.
* A 'domain' on 'partner_id' field.
* A 'widget' on 'probability' field.

Task 47118

closes odoo/odoo#32248

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-08-20 08:38:52 +00:00
Hiral Bhavsar b63b8e0a11 [IMP] crm: remove useless code
In this commit useless code is removed

  * method 'close_dialog' and 'edit_dialog' from crm.lead;
  * actions: crm_opportunity_report_action_graph,
    create_opportunity_simplified, crm_lead_action_activities,
	merge_opportunity_act;
  * views: view_create_opportunity_simplified

Indeed this is dead code and can be removed to clean a bit module.

Task 47118
2019-08-20 08:37:59 +00:00
David Tran df0cff2628 [IMP] sale: split _create_analytic_account() for potential inheritance
analytic account data preparation is now a hook method
This allows to modify the creation method without unecessary updates

closes odoo/odoo#35784

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-08-20 08:54:18 +00:00
Hetashree Chauhan c0d3d7e994 [IMP] stock,_account: usability changes
This commit will change,
1. tooltip for stock valuation accounts and costing method
2. change message when on-hand quantity is zero.
task-2006467

closes : https://github.com/odoo/odoo/pull/35328

closes odoo/odoo#35328

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-08-20 08:06:32 +00:00
wan 646a6d5a73 [IMP] account: improve the onboarding
Task 2031686

* Change some labels on the dashboard
* Move the action "Take money In/Out" to a button because it was also dsplayed in bank journals and we only want it for cash journals
* Add reconciliation param on the first account config list, as well as a button to go to the form (it is an editable list)
* Add an action to duplicate accounts in batch
* Smartly detect when a cash statement can be extended instead of creating a new one, making it more obvious to the user that he may need to validate his previous statement(s)

closes odoo/odoo#35137

Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2019-08-19 10:17:47 +00:00
jem-odoo dc066a54f1 [FIX] mail: context to read follower
As the 'allow_company_ids' are now depending on the context and impact
the access to some data, we need to provide them to some controller
(route). Json route auto-pop the context when given (0322f77279)
into the environment. In the 'read_follower' route, the `check_access_rules`
raises when you want to access a document of another company (even if
this one is in your allowed companies), simply because their is no
'allowed_company_ids' key in the context. This context key is automatically
added when calling the `rpc` method in JS (as explain in session.js
of a5b6f31cf2).
To fix the wrong access error on followers reading, we simly have to give
an empty context when calling `_rpc` in the follower widget.

Task-1999686

closes odoo/odoo#35705

Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
2019-08-20 06:51:55 +00:00
jem-odoo 070174658d [IMP] project: default company of a task
In Project app, we now ensure the company of a task. Indeed, since that
model can be billed, and is important in some business, we need to ensure
its link to a company. A task can live outside a project, so the company
of a task can not be related. Task company can be set by user, but must
be the same as the project (is set), as the task can be billed depending
on project properties.

Task-1999686
2019-08-20 06:51:55 +00:00
jem-odoo 0c5d6498d5 [FIX] sale_timesheet: created task company depends on its project
When confirming a SO creates a task, the task is in a project. The
company from the task should be the one from the project, as we will
(in the next commit) restrict the company of a task: it will only
allow a project to have task in the same company as its.

Task-1999686
2019-08-20 06:51:55 +00:00
David Monjoie 307db30067 [FIX] web: add view id in optional fields local storage key
Since the renderer does not know the view id, we moved the local
storage key computation up to the basic controller, which makes
more sense since the renderer is supposed to be inert.

The _processColumns function had to be moved in willStart however,
since it now needs the controller to respond to the trigger_up
and the controller is not present during the init of the renderer.

closes odoo/odoo#34051

Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-07-30 06:37:23 +00:00
David Monjoie 321a3699ed [FIX] web: fix mock_server tree_view_ref support 2019-07-30 06:37:22 +00:00
Priyanka Kakadiya de0d9f3339 [FIX] *: fix UI glitch of kanban dropdown.
purpose of this commit is to show dropdown inside the kanban box with proper UI

By default, bootstrap use Popper.js for dynamic positioning. so, We need to
disable this issue with display static for removing glitch.

expected behaviour:
after applied this commit, kanban dropdown position will be inside of kanban box.

closes odoo/odoo#27150

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2019-07-30 05:13:50 +00:00
Goffin Simon 83b8e2d962 [FIX] l10n_ae: Reverse charge with Vendor Bill
The reverse charge was counted twice in the VAT Return Summary Report

A reverse charge tax is a group of taxes with:
- Reverse Charge TVA +5%(Purchase)
- Reverse Charge TVA -5%(Purchase)

When buying a product P with a reverse charge tax on it.
The only tax that must appear in the VAT Return Summary Report is
the Reverse Charge TVA -5%(Purchase)

opw:2041877

closes odoo/odoo#35499

Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2019-08-06 13:21:29 +00:00
Odoo Translation Bot 344d20a6c4 [I18N] Update translation terms from Transifex 2019-08-11 01:17:49 +02:00
Jorge Pinna Puissant 0e9d200d09 [FIX] point_of_sale: automatic selection of customer pricelist when using barcode
When using barcode to change the customer to a customer with a different
pricelist than the pos default, the customer pricelist was not
automatically selected.

This is a fine-tuning on 5603b778f6

opw-2047070

closes odoo/odoo#35602

Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2019-08-09 12:55:38 +00:00
Christophe Simonis f6ce242b0f [MERGE] forward port branch saas-11.3 up to 7321c8e260 2019-08-09 14:53:59 +02:00
Alexandre Kühn 9269e876fd [FIX] mail: notify other tabs on document thread message post
Before this commit, most new messages added to the mail manager were
handled as if recently posted from a document thread. As a result, it
was frequently setting a new item in the local storage to notify
other tabs from these new messages.

The intent of this behaviour is to notify other tabs of newly posted
messages in a document thread, without using a longpolling
notification. That means this logic should only apply on messages
that have been recently posted on a document thread.

Sometimes, this issue was breaking the local storage on Firefox.
It showed the error message "Quota Exceeded Error" whenever `setItem`
was used, even when items were removed beforehand. The capacity of
the storage was only a few Kbs on this domain, far from reaching the
maximum capacity. We think that this error comes from the concurrent
`setItem` on multiple tabs, but this is very hard to reproduce.

This commit fixes the issue by limiting the `setItem` to the tab
that really posted the message. Tests have been adapted in order to
pass only with this fix.

note: backport of 12.2 4bde721f9

opw-2031960
closes #35588

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2019-08-09 09:21:19 +00:00
Antoine Prieels b515d54232 [FIX] hw_escpos: Cash drawer doesn't always open
With some printers (ex: Epson TM-m30), the cash drawer only opens 50%
of the time if you just send the kick command.

A fix has already been made (odoo/odoo#33328). In the previous fix, we
retried up to five times to send the pulse, checking the status of the
drawer between each pulse. The problem was that, when we read the value
of the status, the pulse was not yet done and the status was not yet
updated. The pulse was then always sent five times, even if the first
pulse worked, making a lot of noise.

For some reason, if you read the status right after sending the pulse,
the drawer always opens and the loop is not needed anymore.

TaskID: 2045581

closes odoo/odoo#35368

Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2019-08-01 07:58:24 +00:00
Martin Trigaux 9a16198862 [IMP] account: add helper on fields
It was not clear the difference between taxex and tax

opw-1968163

closes odoo/odoo#35575

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-08-09 07:14:57 +00:00
Martin Trigaux 496d2c30ad [FIX] account,iap,sale,mail,portal: translate error messages
The error were untranslatables

Courtesy of Moises Lopez

closes odoo/odoo#35573

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-08-08 13:56:25 +00:00
Nicolas Martinelli 5b83f7214f [FIX] purchase_stock: UoM rounding
- Set the rounding of Unit(s) to 1.0
- Create a PO for 1.4 Unit(s), validate => the picking contains
1.4 Unit(s)
- Validate the picking

The backorder wizard is displayed, and if no backorder is selected, a
crash occurs.

The quantity should be rounded when the picking is created. Otherwise,
inconsistencies will appears when it is rounded in subsequent processes.

opw-2046965

closes odoo/odoo#35560

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-08-08 11:28:29 +00:00
xmo-odoo 542e9640e2 [FIX] base: incorrect _on_login_cooldown return
_on_login_cooldown is documented as being disabled when
"base.login_cooldown_after" is set to 0, however the incorrect return
value meant setting this parameter to 0 would put every user on login
cooldown permanently.

Closes odoo/odoo#35544 reported by @rodrig92

closes odoo/odoo#35555

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-08-08 09:43:59 +00:00
Nicolas Martinelli fde3b69656 [FIX] tools: epsilon magnitude
The following rounding is incorrect:
```
>>> float_round(6.6 * 0.175, precision_digits=2)
1.15
```

Indeed, 6.6 * 0.175 = 1.155 ≈ 1.16.

In this specific case, the `epsilon` computed is not sufficient. A
precision of 53 gives:
normalized_value = 115.49999999999997
epsilon = 1.2823075934420547e-14
=> new normalized_value = 115.49999999999999

Bad luck, this is just not enough to tip the value in the right
direction.

However, a precision of 52 is sufficient:
normalized_value = 115.49999999999997
epsilon = 2.5646151868841094e-14
=> new normalized_value = 115.5

The value of 53 was chosen from the `binary64` number format precision.
In case of Python, the corresponding machine epsilon is 2^-52 [1].
Therefore, using 52 instead of 53 does make sense.

It is worth noting that the value of the machine epsilon
2^-52 = 2.2204460492503131e-16, which is still 2 orders of magnitude
below our dynamic estimation.

[1] https://en.wikipedia.org/wiki/Machine_epsilon
[2] `numpy.finfo(float).eps = 2.2204460492503131e-16`

opw-2047368

closes odoo/odoo#35521

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-08-07 08:25:53 +00:00
amoyaux af3f6e596d [FIX] stock : webplanner link to product does not work.
In the planner the url are generated by prepare_backend_url that takes
an action's xml id as argument. The id passed should have the format
'module_name_where_the_action_is.action_name'. In this case the id passed
was product.product_template_action_product but the action is defined in
stock thus the prepare_backend_url was not able to find the associate action
and return a wrong(default) url.

This commit change the action id passed with the correct module.

closes odoo/odoo#18812

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-07-29 12:49:26 +00:00
Olivier Colson 03daf7f360 [IMP] account: add constraint on tax report lines to avoid duplicate tag name in the same country
closes odoo/odoo#34172

Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2019-07-29 11:37:35 +00:00
Olivier Colson b29c8d4dd9 [FIX] l10n_ae: avoid duplicate tag names in tax report
Having duplicate tag names is bad for usability, as the user will ne be able to differenciate between tags when performing tax configuration.
2019-07-29 11:37:35 +00:00
Olivier Colson 710c2b91b4 [FIX] l10n_de: reintroduce view, removed by mistake
closes odoo/odoo#35224

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-08-02 23:07:22 +00:00
Olivier Colson f5653603a5 [FIX] l10n_de: fix reference to an old field in tax form 2019-08-02 23:07:22 +00:00
Olivier Colson 333c22edd9 [FIX] l10n_*: fix taxes repartition so that 12.3 matches what is defined in 12.2
[IMP] l10n_*: don't define accounts or tags on tax repartition line templates anymore for 0% taxes

[FIX] account: remove old function used to migrate the former tax model, incompatible with the new one
2019-08-02 23:07:22 +00:00
Laurent Smet 3efefd2171 [FIX] l10n_mx: Reintroduce missing tag for CFDI
closes odoo/odoo#35101

Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
2019-08-01 08:50:00 +00:00
jem-odoo ed4d14a31b [FIX] account: analytic lines access with timesheet manager
When validating a invoice, the billing user should have access (read) for all analytic
lines. A problem appears when timesheet is installed, since there is a mismatch with
ir.rule (a timesheet is an analytic line with a project set).
The rule "account.analytic.line.billing.user" already exists for this problem, but should
be extended to work in any case.

To reproduce:
- set a user as timesheet manager and billing user
- try to validate an invoice (or post an expense)
- got an access error with "account.analytic.line.timesheet.manager"

opw-2041615

closes odoo/odoo#35297

Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
2019-07-30 12:59:20 +00:00
Mathieu Duckerts-Antoine 1631c9dbc9 [FIX] web: date filter options unselected after facet deletion
Select the option 'This Month' of a date filter
in the filter menu and then remove the facet created
correctly toggles the filter from the query but the
option is still shown as selected. This commit fixes
that situation.

closes odoo/odoo#35340

Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
2019-07-31 12:35:48 +00:00
Nans Lefebvre 47587de19b [FIX] payment_authorize: save payment token from form validated transaction
https://docs.python.org/3/library/stdtypes.html#truth
By default, an object is considered true unless
its class defines either a __bool__() method that returns False
or a __len__() method that returns zero

Since etree elements are iterator, they define a len function.
However it turns out that customerProfileId has always no children.
So bool(find(x)) is always False; the intended meaning was find(x) is None.

opw 1999427

closes odoo/odoo#34922

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>

closes odoo/odoo#35246

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-07-29 08:10:42 +00:00
Katherine Zaoral 30b09d4e77 [ADD] base_vat: Add Argentinian vat validation
closes odoo/odoo#35218

Signed-off-by: Josse Colpaert <jco@openerp.com>
2019-07-26 12:36:17 +00:00
Simon Lejeune fd6aa428ce [REF] stock: immediate transfer by default
Immediate transfer (no reservation, auto-confirmation, etc) should be
the default mode when creating manually a picking. The rationale is that
"the user wants to quickly encode stuff" and "it's better for the
onboarding".

As the default mode was already changed back to "planned transfer" because
users complained, this time we adapted the code so that the default mode
could be changed in python.

- re-order the imports of stock_picking.py.
- made all links to the picking from the picking type go through
_get_action (it wasn't the case for ready).
- adapt the context in the xml so that they are parse-able by
literal_eval.
- remove three actions that weren't used anymore.
- the user can create an ir config "stock.no_default_immediate_tranfer"
fill it with anything to get back the planned mode.

task-2043846

closes odoo/odoo#35550

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-08-08 08:46:38 +00:00
Géry Debongnie 8ce97d144d [FIX] web: remove flickering in calendar popover
Before this commit, the calendar popover was opened before the popover
widget was ready.  This is not usually the way it is done in odoo.

closes odoo/odoo#31874

Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
2019-08-08 12:32:30 +00:00
Jigar Patel a3376f2909 [IMP] calendar: allow a user to accept/decline meeting from calendar view popover 2019-08-07 12:30:55 +00:00
sri-odoo a50023c158 [IMP] *: adapted to the new calendar view
Task 1919926
2019-08-07 12:30:55 +00:00
Jigar Patel 56cf4f8125 [IMP] web: add new many2many_tags_avatar field widget to show avatar with tags 2019-08-07 12:30:55 +00:00
Jigar Patel f4194d53aa [FIX] web: add missing 'selection' key to create selection field using makeRecord 2019-08-07 12:30:55 +00:00
sri-odooandjat-odoo 369c20a99b [REF] web: refactor the calendar view
Improve design and introducing several usability improvements:
- Removed customization of an event card, just display event title.
- Added popover, popover consist of two sections:
    1) Show the title, date and time of an event. Date and time are
       automatically computed according to the user timing preferences,
       language and event duration. Can be hidden with hide_date/hide_time
       attribute respectively.
    2) Display all the fields specified inside the <calendar/> element.
       fields can be specified with a widget and its options.
       e.g. <field name="name" string="Custom Name" widget="char" options="{}"/>
- Show avatar in popover for filters.
- Removed hide sidebar feature.
- Increase readability using a better color selection.
- Better UI in mobile.

And, Adapted test cases

Task 1919926

Co-authored-by: jat-odoo <jat@openerp.com>
2019-08-07 12:30:55 +00:00
wan aca0e700ac [FIX] account: show partner in invoice list view
The customers were removed from the invoice list view in
https://github.com/odoo/odoo/commit/317802d69e6236a43b2249b38d2f352813644f20

This was probably because the name of the variables
invoice_vendor_display_name was missleading as it was only for vendors
beofre but also for customers now. So this commit also renames related
variables.
While we are at renaming things, I also renamed the type in variables
supsense -> suspense.

closes odoo/odoo#35531

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-08-07 13:59:55 +00:00
svs-odoo 302338cea5 [FIX] stock: duplicate inventory
Before this commit, when you duplicate a validated inventory, the new
one has the inventory lines of the original one.
Now, the duplicate inventory is created without inventory lines.

Task #2043851

closes odoo/odoo#35402

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-08-02 11:55:14 +00:00
svs-odoo f6f141559f [IMP] stock: add new filter for inv.adj. lines
New search filter to display of inventory lines with `difference_qty`
(diff. between `theoretical_qty` and `product_qty`) different than zero.

Task #2043851
2019-08-02 11:55:14 +00:00
svs-odoo cf737c2623 [IMP] stock: refresh On Hand qty button on line
Add a button in the inventory adjustment lines view to update the
`theoretical_qty`. This button appears beside the On Hand quantity when
this quantity is outdated.

Note: it's not possible to define explicitly width of non-field column,
so we cannot define width of button's column. The hack is to constrain
width of other columns to manage a little space to display the button.

Task #2043851
2019-08-02 11:55:14 +00:00
svs-odoo 8371299710 [IMP] stock: visual changes on inventory adjustment
On Inventory Adjustment lines view:
    - Changes some fields name...
    - The column Inventory Date has been moved between Location and
      Lot/Serial Number.
    - The columns Lot/Serial Number, On Hand, Difference, UoM and
      Inventory Date are now optional.
      Only Inventory Date is hide by default.

Task #2043851
2019-08-02 11:55:14 +00:00
svs-odoo 96ebfea37d [IMP] stock: prefill_counted_quantity as selection
Changes the type of `prefill_counted_quantity` from boolean to selection
to have a label for each option.
This change is only for a functional purpose.

Task #2043851
2019-08-02 11:55:14 +00:00
Robot Odoo 2679f45cc7 [MERGE][REF] website_slides: revamp channel form view and inline slide categories
PURPOSE

This PR completely reworks the slide.channel form view. Notably slide categories
management should be simplified like SO or invoices sections.

SPECIFICATIONS

This merge

* improves the content management from the form itself by adding a tree view
of slides with the possibility of drag and dropping slides from category to
category;
* adds buttons to quickly add content or certifications in the slide tree
views;
* reorders the tabs and fields on channel view and update some labels;
* adds a custom float field widget so that the ratings are actually displayed
as stars;
* contains some fixes and light improvements related to recent merges in
elearning application, especially backend;

In order to implement the content management in the channel form, the model
slide.category has been removed. Instead of having a fully fledged model for
the categories we now use slide.slide with a is_category flag.

LINKS

Task 1978731
PR #33255

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-08-08 15:25:08 +02:00
Victor Feyens a461e5ea17 [IMP] sale_product_matrix : product UI
closes odoo/odoo#35562

Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2019-08-08 10:05:05 +00:00
Aurélien Warnon 0daf434ed8 [FIX] website_slides: correctly resolve course fullscreen YT Promise 2019-08-08 08:37:31 +00:00