Commit Graph
127612 Commits
Author SHA1 Message Date
Lucas Perais (lpe) 7ecd750a77 [FIX] web: moment lib: update es locale
The parsing/formatting of abbreviated month name was broken.
The locale es in its version for moment 2.22.0 fixes it

OPW 1931272

closes odoo/odoo#31104
2019-02-13 13:01:04 +00:00
Jeremy Kersten 8eb1abf760 [FIX] website: reset template
Create new env with current user instead of admin.
Avoid to show odoo bot as connected into the exceptions pages.
2019-02-14 12:15:48 +01:00
Romain Derie"Romain Derie <rde@odoo.com>""Jérémy Kersten <jke@openerp.com>"
ef03db9edd [FIX] website: restore reset_templates functionality
Since AST was introduced to compile Qweb templates, the reset templates
functionality is not working anymore.
Actually, it does not even appear anymore as the conditions to trigger and show
the reset view behavior can't be True anymore.
Indeed, the code is still importing the old QWebException from odoo.exceptions
which is now just an empty class.
The QWebException that should now be used is the one from odoo.base.models.qweb

More than just a wrong import, the QWebException properties have completely
changed.

Since its last working version (Odoo 9.0), a lot of changes occured, mostly:
  - Odoo 11.0: new model website.page, which completely changed the pages
    behavior and changed the models.
  - Odoo 12.0: multi-website, which introduced the Copy On Write (COW) that
    redefined how we write on view in a website context. We now need to reset
    copied/specific views that have no model_data_id.

This fix is for a stable version. There is some flows that can't be fixed
without a refactoring or new fields (mainly because of the arch_fs being
erased when writing on `arch`, plus we can't introduce a module reload in
stable).
The goal of this commit is to fix the basic and standard case of broken views,
which is when non-technical users are breaking the views through HTML editor.

To reset the views, we will read the original arch in the XML file, as the
dev mode is doing.
To be eligible for the reset, the broken view need an `arch_fs` set. If the
view arch has been modified anywhere else than the frontend, the `arch_fs`
will be erased and the view wont be able to be reset.
As the broken views will be specific views, we will simply read the generic
view in the XML file and write it on the specific. We can't simply remove the
specific view as we might be on a specific tree.

Specific case, in case of custom views create dropping a snippet in an oe_struc
we just delete this inehrited view to allow end user to have their page back.

In some case of bad compilation in sub template, we try to guess which inherited
view, t-called view is broken by string matching based on 'last_path_node' xpath.

Add new module test_website to add tests, it will be usefull for futur test of
install/uninstall and ...

Todo in master:
  - try to track on QWebException the real template that is broken and not only
    the last node from the main template.

Co-authored-by: "Romain Derie <rde@odoo.com>"
Co-authored-by: "Jérémy Kersten <jke@openerp.com>"

closes odoo/odoo#29957
2019-02-13 20:33:18 +00:00
Romain Derie 01d925e052 [FIX] website: don't flag generic view as noupdate when COWing
Once `website` module is installed, the `save` method will always write on the
specific view or create it if it does not exist yet.
This means that actually, the generic view will never have his `arch` modified
through the `save` method.
Thus, there is no need to flag it as noupdate as we want to receive update for
that view (that might be used by other website without a specific view).
2019-02-12 15:48:24 +00:00
Sébastien Theys 5a692c3417 [FIX] website_sale: correctly set access token for cart recovery
The access token is automatically generated when calling `_get_share_url` but
for the cart recovery we don't use that standard method because we need to send
the user to a specific route, so we need to generate the access token manually.

Without this fix, the user will receive the link with access_token=False which
would lead to a 404 page.

Also added a test for the cart recovery flow.

PR: #30000
2019-02-06 09:50:46 +00:00
Sébastien Theys 4a202440b8 [FIX] website: allow scheme and port on domain (multi-website)
Before this commit, the website selection was not working when a scheme or port
was encoded in the domain field. This was not obvious or natural for the user,
because the easiest way to fill it was to copy/paste the URL from the browser.

Now it works when scheme or port are encoded, it is even strongly recommended to
actually encode them if they don't take a default value because they will be
used when creating full URL to the website (typically when sending emails to
clients where a link back is necessary).

PR: #30000
2019-02-06 09:50:42 +00:00
Sébastien Theys c1be1993f9 [FIX] *: share URL on the correct website if possible
* = base, auth_signup, mail, portal, sale, website, website_sale

Before this commit, sending an object by email would always link to web.base.url
even if the object was created from a specific website.

Now if the object has a website, we use the URL of that website if it is set.
The fallback will always be on the web.base.url.

opw-1921030
PR: #30000
2019-02-06 09:50:38 +00:00
Nans Lefebvre 3b256ba487 [FIX] sale_margin: make sale.order.line create override handle section lines
The sale.order.line model has a 'display_type' field since 762adedece
that specify if the line is a dummy line used for presentation purposes.
These dummy lines are 'section' lines or 'note' lines.
If it is the case, the line does not have a product_id.
The sale_margin module overrides the create method of lines to add the margin
computation, assuming there are no dummy lines since that part of the code
is older than the new feature.
As a result the line creation would crash on a key error on dummy lines.

We now skip the margin computation if the line has a display_type.

opw 1939881

closes odoo/odoo#31035
2019-02-13 08:24:59 +00:00
Martin Trigaux f0b3e847d8 [I18N] l10n_ch: update translations for 12.0
Some changes were not reflected in German
opw-1932126

closes odoo/odoo#31012
2019-02-12 06:38:47 +00:00
jbm-odoo 3684c8a62e [ADD] l10n_it_edi: Electronic invoicing Italy
- Generate e-invoice in xml when validating invoice
- e-invoice is sent via PEC mail and attached to the invoice
- electronic vendor bills and error/receipt messages can
be received through an IMAP incoming pec server
(configured in settings > technical)

We use the pec mail system to send invoices.  We don't manage
signed invoices for B2G.

Configuration is done on the company and the receiving partners
should have the correct codice fiscale / TVA.  On the taxes,
you might need to configure the exonerations.

You will need to configure the government mail address on the
company.  (sdi01...)  You might need to modify after the first
incoming message.

closes odoo/odoo#30845
2019-02-13 08:33:06 +00:00
Nicolas Martinelli 06cfdbaab8 [FIX] base: barcode fallback
- Set a product barcode to a 8 letters value, e.g. 'AAAAAAAA'
- Print 'Product Barcode (PDF)' (or any other report containing the
  barcode)

The barcode doesn't print.

All templates assume that:
- a 13 characters barcode is EAN13
- a 8 characters barcode is EAN8

But this assumption is too restrictive: one could want to generate
barcodes with such length without following the EAN13 or EAN8 structure.

We fall back on Code128 when the barcode generation fails.

opw-1937858

closes odoo/odoo#30912
2019-02-07 10:08:26 +00:00
Martin Trigaux 1a4f3114a7 [FIX] web: translate pivot value
"Variation" was not translated

opw-1940086

closes odoo/odoo#31050
2019-02-13 07:17:47 +00:00
mreficent 85110ce347 [FIX] account_voucher: correct api.multi in action_move_line_create
closes odoo/odoo#30924
2019-02-07 14:44:25 +00:00
Nicolas Martinelli 11dc4ec487 [FIX] project: default context key
- Activate Sub-tasks in projects
- Create a sub-task

An `AccessError` is raised in `check_access_rule` of `mail.message`.

The context is 'polluted' with a `default_parent_id` key, which is not
necessary anymore at this point.

opw-1924899

closes odoo/odoo#31022
2019-02-12 11:21:21 +00:00
Lucas Perais (lpe) 7afdfc5046 [FIX] mail: retrieve mail (sent by OdooBot) failure notification in multicompany
Let the database be in multi-company without a shared contact book.
Have user U in company B, OdooBot in company A.
From a record R created by U, have a message sent by OdooBot fail to be sent.
A new failure notification failure should be displayed for U in company B.
Have U switch from and to company B.
The failure notifications are fetched, with their info.
Commit 10d558ef2b made sure that the user had access to the record
before trying to display the notification.
However in that case U has access to R, but trying to access the mail sender
violates the inter-company record rule, since OdooBot is in another company (A).

opw 1928100
opw 1935303
opw 1939352

closes odoo/odoo#30364
2019-02-12 13:04:30 +00:00
mreficent 8c3fa3dd3e [FIX] website_event_track: correct api.multi in _toggle_create_website_menus
closes odoo/odoo#31023
2019-02-12 11:58:29 +00:00
Nicolas Martinelli 014d61c875 [FIX] hr_expense: multi-currency
- Set your company to USD
- Create an expense in EUR:
  Amount: 100
  Tax: 15% Excluded
- Validate, post the journal entries

It crashes because of a missing `.id`, but on top of that... not a
single AML is correct.

opw-1938570

closes odoo/odoo#30959
2019-02-12 09:08:32 +00:00
Nans Lefebvre 6af5051e29 [FIX] account: fix model security for multi-company
In multi-company, create a new company C.
Set the chart of account in settings, save.
You get an access right violation on account.reconcile.model.template
because you need account_user.
Since this group is supposedly dependent on another module,
a user is supposedly never in this group without that module.
Obviously, this should supposedly not happen.

opw 1938539

closes odoo/odoo#31003
2019-02-12 09:56:16 +00:00
Lucas Perais (lpe) 12cca6a5fd [FIX] web: timerange menu: descriptions are strings
On a view, define a timerange for fetching data
Save as favorite

Before this commit, the time range description were not transmitted as
strings for the creation of the filter
So, when loading the filter back, there was no description for column headers
resulting in displaying "Object [Object]" as their title

After this commit, we save in the context of the filter the description of the title

OPW 1930582

closes odoo/odoo#30992
2019-02-11 12:22:47 +00:00
Jose Morales 2d2fe7f555 [FIX] account: reconcile over-amount bank statements in foreign currencies
When a bank statement reconciles its lines with payment using a foreign currency,
there is a mix up of values between the currency set in bank statement and payment against the company currency.

Current Behavior

Company Currency: MXN
Bank Statement Currency: USD
Payment Currency: USD
Current Rate 0.05130836

1) Generate a bank statement with 990 USD.
2) Generate a payment with 1000 USD.
3) Reconcile the bank statement against the payment.

The reconcile process generates a payment with the difference (10 USD)
Before this commit, this automatically created payment took an erroneous amount,
Taking a currency-converted amount where it should not have

It was happening because the reconcile process uses the debit or credit value(Local Currency)
against bank statement line amount (Foreign Currency).

After this commit, the amount set in the generated payment because of the difference is 10 USD.

closed odoo#30623

closes odoo/odoo#30779
2019-02-11 17:06:14 +00:00
edy1192 2503a89e9e [I18N] web: Add new terms to .pot file
-There were two missing terms from the `.pot` file of the module web.

closes odoo/odoo#31008
2019-02-11 22:28:48 +00:00
Laurent Smet f8379352df [FIX] account_facturx: Fix partner detection / price_unit
- price_unit is wrong because Facturx only provide the price_total and then,
we need to divide this amount by the quantity.

- the partner detection using its name was buggy due to the 'elements' variable
that was overrided.

-opw: 1938648

closes odoo/odoo#30998
2019-02-11 14:02:10 +00:00
Martin Trigaux 3915c2d236 [I18N] point_of_sale: export source terms
Following changes made at #29269
2019-02-11 11:25:15 +00:00
Mohammed Shekha 675c26587c [FIX] point_of_sale: do not load chat windows on the POS
When the mail_service is started, if there are any running chat sessions,
Chat_windows are created and opened on the point_of_sale frontend.
They also appear in the printed receipt.

To remove them from display we create a new pos_assets_backend template,
which inherits the web.assets_backend and removes the odoobot related assets.

opw 1878185
2019-02-11 11:25:15 +00:00
Dhaval Panchal ef59e59aeb [IMP] point_of_sale: raise error instead of traceback when no journal is set
If no journal is set for the POS, the session creation would crash.
We add raise an explicit error asking the user to configure either the payment
method or the chart of accounts.

opw 1878185
2019-02-11 11:25:15 +00:00
Xavier Morel f53ad8a4fd [FIX] search_filters: broke a thing in f1a85ba
As part of fixing the JS docs (docstrings & references & ...), the
various search filters were de-namespaced (aka
ExtendedSearchProposition.Integer = ... -> var Integer = ...).

This had the side-effect of making a `new Date` refer to the extended
search Date field instead of the global Date object, which went
unnoticed because *that* had been wrapped in a moment() call, and
moment() apparently doesn't mind being given garbage, but it would also
create an "unbound" and thus never destroyed widget.

Remove the `new Date`, calling moment directly has pretty much the same
effect, moment objects created from date objects just have an extra
field (a cache for the date object I guess).

closes odoo/odoo#30791
2019-02-04 09:17:41 +00:00
Odoo Translation Bot 9837f250d3 [I18N] Update translation terms from Transifex 2019-02-17 03:14:20 +01:00
Nicolas Lempereur d766f4f00b [FIX] crm: no context default user crm.lead
default_user_id on the crm.lead window actions is not needed since the
current user is already the default on the field.

So all it does is prevent user-defined values to work and possibly
affect custom code that may not expect the behavior.

opw-1938037
closes #31151
2019-02-15 13:29:07 +00:00
Jorge Pinna Puissant 68a37f26c6 [FIX] website_sale_delivery: wrong placement of use strict
The use strict statement was outside the odoo.define statement. The use
statement could be applied to other statements.

Now, the use strict is in the odoo.define.

closes odoo/odoo#31128
2019-02-15 08:31:17 +00:00
Jorge Pinna Puissant c117caae1b [FIX] website_sale_delivery: selection when waiting of shipper rendering
- Set up as a normal shipper and one which will cause an
error (e.g. service not available for customer address; or no price rule
matching)
- Order a product on eCommerce, go to Payment page

When changing of delivery method, from the second delivery, to the first
and to the second delivery again, the behavior of the 'Pay Now' button
is the follow:
* choose second delivery - button disabled
* choose first delivery - button enabled
* choose second delivery - button disabled

If the connection to the server is to slow, the choose of the delivery
and the state of the button are not syncronised. That means that at the
end of this changing, the button stays active long enough to click it,
and pass an order without a delivery charge.

Now, only the last request is take into account, and the false positives
are avoided.

opw-1937575

closes odoo/odoo#31127
2019-02-15 07:48:19 +00:00
Daniel Reis 84affe37a1 [FIX] stock: traceability report: performance
Replaced an inefficient domain by a filtered expression.

closes odoo/odoo#31086
2019-02-14 15:56:17 +00:00
Nicolas Martinelli 287e0507f1 [FIX] stock: incorrect forward-port
closes odoo/odoo#31126
2019-02-15 07:09:44 +00:00
Christophe Simonis b277705e52 [MERGE] forward port branch saas-15 up to c0f24d54cf 2019-02-14 18:42:19 +01:00
Jorge Pinna Puissant 38be857b40 [FIX] account: rounding error with multi-currency payment
Steps to reproduce:

- activate the multi-currency option in the Accounting App
- activate the EUR currency (USD being the base currency)
- create a EUR Bank Journal with an EUR account
- rate = 1.4
- create a vendor bill for Asustek for 1000,10 EUR
- create a vendor bill for Asustek for 500,00 USD
- create a supplier payment for Asustek for 1000,00 EUR
- use the payment matching smart button
- match the vendro bill of 1000,10 with the payment;

Bug:
Odoo says that the total amount in EUR matches.

Expected Behavior: An open-balance to write-off and prevent from
reconciling.

opw-1935414

closes odoo/odoo#31055
2019-02-13 09:37:31 +00:00
Hugo Adan a9fa46fdc8 [FIX] mass_mailing: make retry failed mail work with keep archive set to False
Let M be a mass_mailing.
For all messages m related to M, retry_failed_mail removes the mail
statistics
of m before putting M 'in_queue'.
Since there are no statistics on m, its recipient is returned by the
function
get_remaining_recipients when called by send_mail once M is processed.
However when keep archive is set to False, the 'mail.mail' records
are automatically removed. As a results their statistics are not
removed,
and thus these mails are not retried.

closes odoo/odoo#30158
2019-02-13 14:55:29 +00:00
Julien (juc) Castiaux 090c3a06c8 [FIX] base_automation: remove unnecessary button
Fine tunning of c12a0f5a

opw-1937928

closes odoo/odoo#31065
2019-02-13 12:51:56 +00:00
Nicolas Martinelli 3dbf51babe [FIX] sale_timesheet: cost with different UOM
- Create a Service article:
  UoM = Day(s)
  Invoicing policy = on ordered quantity
  Tracking = Task in project
- Create a SO: 10 days, unit price = $100 and validate.
- On the task created, the initially planned hours is equal to
  80 (10 * 8h).
- On this task, timesheet some hours with several employees:
  15 hours
  10 hours
  10 hours

The `timesheet_revenue` on analytic lines is incorrect:
  1000
  0
  0

It should be:
  187.5
  125
  125

The unit conversion between days and hours is not performed...

opw-1925320

closes odoo/odoo#31062
2019-02-13 11:18:55 +00:00
Invitu 56631c86c6 [CLA] Add contributors to INVITU
closes odoo/odoo#31040
2019-02-12 17:00:43 +00:00
Gabriela Mogollon a703d9f7c6 [FIX] l10n_mx: add new taxes for 8% sale/purchase
The tax for 8% is used in the northern border zone of Mexico

Is a new tax and must be used in the DIOT report and in the CFDI for
sales.

closes odoo/odoo#31046
2019-02-13 07:02:46 +00:00
Yannick Vaucher f610a28670 [IMP] models: more meaningful comment for the ensure_one implementation
See discussion comment
https://github.com/odoo/odoo/pull/30817#discussion_r255899919

This revision is related to
ce0575ef27
2019-02-13 11:01:30 +01:00
Géry Debongnie 1f5807f1c8 [FIX] web: allow user to move cursor in search bar
With the control panel refactoring, the auto_complete widget was set on
a different target, which caused issues with the search bar: the event
handlers for the search bar were triggered before the handlers for the
auto_complete widget.

With this commit, we make sure they are handled in the proper order.

Also, a small piece of code that was supposed to check the position of
the cursor was lost.

closes odoo/odoo#30795
2019-02-04 08:22:34 +00:00
Aurélien Warnon dcd79a543a [FIX] survey: fix empty date in survey could not be submitted
Purpose
=======

A date field not marked as "mandatory" could not be left blank in the survey.

That was caused by the form returning "Invalid date" instead of an
empty value when submitting.

closes odoo/odoo#30788
2019-02-04 07:53:47 +00:00
Rishabh Jadia 13e058c573 [FIX] web: prevent footer linebreak.
The purpose is, prevent the linebreak in the phone when using the
document layouts 'background' in the footer.

opw-1920752

closes odoo/odoo#30812
2019-02-05 10:37:01 +00:00
Robot Odoo b13a220295 [FIX] hr_holidays: fasten creation of leaves by company
When creating a leave, we usually check/create activities for the
concerned users, this is fine when creating one leave.
However it starts to become a problem when trying to create leaves in
batch using the by company or by department holiday_type as the number
of leaves created in batch can become quite big.

Now when we create leaves in batch, we do not check for the activities,
which will fasten a lot the creation.

Another problem is that when someone defined a leave on the very day you
want to create such a request, then it will crash, this can lead to
waste of time and resources.

Now we raise an error before trying to create the leaves in case of
conflict.

NB: Tested with +- 320 records, took 20 seconds instead of more than 10 minutes.

Task: 1934383

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

closes odoo/odoo#30625
2019-02-05 10:36:34 +01:00
RomainLibert 9c1b932489 [IMP] hr_holidays: improve performances
going from 3X seconds for 320 leaves to 20 seconds for 320 leaves
2019-02-05 10:06:55 +01:00
RomainLibert 8ab8881167 [FIX] hr_holidays: fasten creation of leaves by company
When creating a leave, we usually check/create activities for the
concerned users, this is fine when creating one leave.
However it starts to become a problem when trying to create leaves in
batch using the by company or by department holiday_type as the number
of leaves created in batch can become quite big.

Now when we create leaves in batch, we do not check for the activities,
which will fasten a lot the creation.

Another problem is that when someone defined a leave on the very day you
want to create such a request, then it will crash, this can lead to
waste of time and resources.

Now we raise an error before trying to create the leaves in case of
conflict.

Task: 1934383
2019-02-05 10:06:55 +01:00
Julien (juc) Castiaux 262e001086 [FIX] mail: delete messages on module uninstallation
When uninstalling a module, the messages linked to the records
of that module are not deleted leading to ghost messages when
reinstalling the module.

This is due to the lack of foreign keys in the definition of the
chatter making it impossible to cascade delete.

opw-1928208

closes odoo/odoo#30798
2019-02-04 14:16:47 +00:00
Nans Lefebvre 1746112794 [FIX] purchase: fix mail templates for multi-company use
Activate multi-company, deactivate the common contact book.
Create a PO P with user U1 in company A. Switch to company B.
User U2 in company A tries to send P by email.
Rendering of the template fails, because it tries to access object.create_uid,
which breaks multi-company record rules.

We add a sudo in the template so that it works as intended.

opw 1930521

closes odoo/odoo#30789
2019-02-04 09:09:49 +00:00
Martin Trigaux c189a7c37e [FIX] base: correct case in Swedish language
Was with a lowercase S while it should be uppercase

closes odoo/odoo#30814
2019-02-04 13:34:28 +00:00
Christophe Simonis 5244a6cf48 [MERGE] forward port branch 12.0 up to ff147a08761 2019-02-03 10:42:29 +01:00