Commit Graph
117156 Commits
Author SHA1 Message Date
Jérome Maes 890e665b88 [IMP] website_quote: clean page style 2017-06-30 11:06:32 +02:00
Jérome Maes 56ed99cff5 [IMP] website_mail: extends mail.thread mixin to manage website messages
mail.thread mixin will (re)provide the field 'website_message_ids'.
Models can redifined its domain, since it can differ a bit (blog, forum,
... are not the same).
Even if the domain can differ, we still keep it on the mixin since
it will be required for the new chatter frontend (see following
commits).
2017-06-30 11:06:32 +02:00
Nicolas Martinelli c61ae3a3ed [FIX] models: copy field with unique constrain
When a model contains a field translatable which has a unique
constrain, it is impossible to copy a record. Indeed, the unicity
constrain is always triggered, even if the model takes in charge the
overriding of the copy method to avoid duplication.

Introduced with commit ce7f31b0b0, with the goal to target only
XML/HTML translations. We apply this behavior in case of a callable
translate property, to target only the desired problematic use case.

opw-749481
2017-06-30 10:52:15 +02:00
Nicolas Martinelli d1e92c312f [FIX] website_form: send email with subject
- Use the form builder to send an email
- Customize the snippet to include the subject and the body
- Send a mail

=> The subject is not included in the email

This is because the subject is filtered out and considered as a
blacklisted field.

It happens because `mail.mail` inherits from `mail.message`. The field
property `website_form_blacklisted` is set to:
- `True` for `mail.mail`
- `False` for `mail.message`

Since we go through all inherited models, the property on `mail.mail` is
overriden by the property on `mail.message`.

It is actually not necessary to go through all inherited models, since
in the case of `inherits`, we copy the fields of the inherited model to
the target model. The check is simplified by only checking the fields of
the current model.

Based on work of @nla-odoo

opw-748926
2017-06-30 10:20:56 +02:00
Nicolas Martinelli 3ffd8d1602 [FIX] account: reset taxes
In an invoice, the modification of an invoice line triggers the complete
recomputation of the tax lines. However, it also deletes any manual
taxes that could have been set (e.g. on vendor bills).

Courtesy of @jjscarafia

Closes #17885
opw-749323
2017-06-30 09:37:38 +02:00
Nicolas Martinelli af11e74c2e [FIX] product: default category
If `product_category_all` is of type view, the installation of some
modules, such as delivery, crashes.

opw-749550
2017-06-30 09:12:54 +02:00
Frédéric Siffert cc06f7c140 [CLA] signature for leNeo
Closes #17846
2017-06-30 09:00:39 +02:00
Nicolas Martinelli 83572e00cc [FIX] point_of_sale: fix included taxes
Really apply commit a9ce4ffb22 to POS orders.

Since the creation of a POS order in the backend is a feature which
nearly not used, we rewrite everything related to onchanges. To avoid
breaking the compatibility, the old onchange code is kept. As long as
the user doesn't upgrade the module it will be used instead of the new
onchange.

opw-746827
2017-06-30 08:45:24 +02:00
Nicolas Martinelli 20c91f474c [FIX] point_of_sale: fix included taxes
The unit_price should be already 'fixed' by the time we get in
`_compute_amount_line_all`.

This reverts commit d938ba87ae.
2017-06-30 08:45:24 +02:00
Richard Mathot 307317dc2d [FIX] l10n_fr_certification: right domain on an integer field 2017-06-30 08:00:54 +02:00
qdp-odoo 5967600296 [IMP] account: implement account.account hierarchies
This information will be used by account.report to render accounts in hierarchies.

Was PR #17367
2017-06-29 17:05:19 +02:00
Christophe Simonis 936f39886c [MERGE] forward port branch 10.0 up to cb01cfe9ff 2017-06-29 16:40:39 +02:00
Cedric Snauwaert 07fdcad343 [ADD] web: add parse monetary method
In field_utils, the parse monetary method was remapped to parsefloat. In this commit, we add a specific parseMonetary method to handle currency specific formatting.
2017-06-29 16:37:30 +02:00
Christophe Simonis cb01cfe9ff [MERGE] forward port branch saas-11 up to aa578e1bee 2017-06-29 16:34:59 +02:00
Lucas Perais (lpe) 6fe3ae841b [FIX] website_crm: make sure we import _ to translate
Fix 4c66eae308 attempted to translate terms but did not import _
This commit does just this
2017-06-29 15:48:56 +02:00
Aaron Bohy 8473bde80e [FIX] web: handle 'domain' key returned by onchanges
Onchange RPCs return an object that may contain a 'domain' key.
When it does, its value is an object whose keys are field names and
values are the new domain for the corresponding field.

Before this rev., the 'domain' key was totally ignored by the
BasicModel. This feature is used for example in the account.payment
form view (go to an open invoice, click on 'Register payment'): the
domain of field payment_method_id is updated by the onchanges (e.g.
when changing the journal_id). As the domain was ignored, it always
displayed all possible payment methods.
2017-06-29 14:58:04 +02:00
Aaron Bohy b954cd6483 [FIX] web: BasicModel: send correct context
... when reading and writing on a record (especially inside lists).

Before this rev., the context sent when reading a record, and when
writing records inside lists (editable list views) wasn't correct.
This caused an issue in Sales > Products (variant activated) >
open a product with variants > click on variant prices > edit the
prices of a variant: the value wasn't saved correctly (because the
inverse function requires 'active_id' to be in the context and it
wasn't the case).
2017-06-29 14:58:04 +02:00
Aaron Bohy 2846887ea8 [FIX] web: mockServer and mockEnvironment
Fixes two issues in the test environment:

- for unset fields, the mockRead is supposed to return 0 (numerical
  fields), empty array (x2many fields) or false (otherwise). Except
  for the first case, it was returning undefined, and this might
  cause crashes when evaluating contexts or domains.
- the mock environment allows overriding some global properties
  like the session, for the test case only. Once the widget is
  destroyed, those global properties are reset to their original
  value. This wasn't working for models tests, because the destroy
  function of the parent widget was never called. This could make
  tests fail as they could have been impacted by other tests.
2017-06-29 14:58:04 +02:00
Olivier Colson 414ea47fd5 [IMP] purchase: Added selection field 'module_account_3way_match' in purchase setting to (un)install the module account_3way_match which is created in enterprise.
+ made some refactoring in order to plug correctly this new module.
2017-06-29 14:52:56 +02:00
Christophe Simonis aa578e1bee [MERGE] forward port branch 9.0 up to 4d4ff7c5e7 2017-06-29 13:12:53 +02:00
Géry Debongnie 514c8e5cd3 [FIX] web: prevent dirty state after test
The test changed in this commit had a big issue: it did not properly
destroy the second form view that it created.  Because of that, it was
still alive and could interact with other tests, such as the barcode
tests.

This is what happened:
1. var form was assigned to a form view
2. form was destroyed
3. in a try catch, form was reassigned to the result of createView, but
the evaluation of createView crashed (after creating a form view), so the
assignation was not done, and the var form was still pointing to the first
form view
4. form.destroy is called, which did nothing for the second form view.

There is no easy way to get the reference to the form view created by
createView without changing some other code, so we simply remove the
second part of the test, which was not particularly important.
2017-06-29 11:34:43 +02:00
Jérome Maes ffba5c688f [FIX] hr_expense_check: remove duplicate key in manifest
The 'category' key is already present in the manifest.
This duplicated key makes odoo create a new module
category, with a bad xml id
(module_category_accounting_andamp;_finance), since
the ampersand was escaped.
2017-06-29 11:23:48 +02:00
Goffin Simon 9153de1bcf [FIX] website_sale: website payment terms issue with portal users
Steps to reproduce the bug:
-create a child contact of a company C
-invite the child contact as a portal user
-sign into the website and place an order w/ wire transfer as payment acquirer

Bug:
The payment term set on the quotation was not taken from the company C and
the default sales person  was not taken from company C too.

opw:745091
2017-06-29 10:51:01 +02:00
Nicolas Martinelli d63a01f939 [FIX] base: sequence date range
Ensure to search a maximum of 1 record to avoid crash.

opw-748971
2017-06-29 09:33:15 +02:00
Richard Mathot 4d4ff7c5e7 [IMP] doc: mixing attrs and states is iffy 2017-06-28 17:38:32 +02:00
Goffin Simon c38902cd1a [FIX] website_event: Wrong display of online event
The address must be hidden and the status "Online" must be diplayed
on online event.

opw:744060
2017-06-28 17:06:17 +02:00
Martin Geubelle ec3bc2eeaf [FIX] web: deal with reference fields
The reference fields haven't been correctly implemented with the new views.
This commit restores their behaviour.

Note that an small improvement has been introduced in this commit.
Before saas-16, a `name_get` was done for each record (so 80 if the field
was displayed in a full list view), which is not optimal. The calls are now
batched by model (so one `name_get` by model appearing in the field values).
2017-06-28 16:53:45 +02:00
Martin Geubelle 157732cfb1 [FIX] web: FieldText: keep editing the textarea after enter
In the editable list, when pressing enter, the cursor goes to the next line and
the current row is saved.

This should not be the case for a textarea (i.e. in the FieldText widget). In
this particular case, we just want to continue editing the textarea.
2017-06-28 16:53:45 +02:00
Fabien Meghazi af6328c2a2 [FIX] point_of_sale: pos.order#create loose the company_id since the new api migration (opw: 746677)
https://github.com/odoo/odoo/commit/32b5515a8ff6047db489e569935b4416f946bc26#diff-5eeb7d6a1a488dff039e5cc3300730e1L513
2017-06-28 16:33:24 +02:00
Nicolas Martinelli 685bea92d1 [FIX] account: show the 'reference' field in report
Some module, such as `l10n_be_invoice_bba`, use the field to provide
information to customers. Basically, if this field is filled in, we
should print it.

This reverts commit 59efea7e31.

opw-748930
2017-06-28 16:19:42 +02:00
dbh 22c94287dd [IMP] website_sale: make form match website_form_editor structure
- Labels are now left-aligned in xs
- col-md-* sizes of newly added field were not the same

Note: forms should be reviewed to have a proper bootstrap structure and
website_form_editor should be smarter (see task-34451)

task-31510
2017-06-28 16:19:40 +02:00
Naglis Jonaitis 1b1e0a932a [FIX] rating: typo in submit_rating controller endpoint definition
If no method is specified, all are accepted

Closes #17890
2017-06-28 15:52:10 +02:00
Raphael Collet b8cf940247 [ADD] base: new wizard to uninstall a module (#17284)
The "Uninstall" button on the module form no longer changes the state of
modules, so that cancelling the wizard will not unexpectedly perform the
uninstallation.  The uninstallation is performed only by clicking on the
"Confirm" button on the wizard.

Moreover, the wizard provides clearer information about the impact of the
uninstallation: what apps/modules will be uninstalled and what documents
(models) will be lost.
2017-06-28 15:36:17 +02:00
xmo-odoo 98602e93cc [FIX] PO translations export
Within the scope of P3 compatibility, a StringIO was replaced by
BytesIO in b4429c2a91, however I missed
that BytesIO is much stricter about types than StringIO *even in
Python 2*. Some bits of text would sneak up in PoFile.write or
PoFile.write_info and blow up the export.

The BytesIO makes sense for output (tgz is definitely not a text
format and base64 is a bytes -> bytes encoding), but ensuring the
entirety of PoFile worked on bytes seemed distasteful (and lots of
changes), it seemed more sensible at all levels that PoFile would make
sure to properly work on *text*, and to add a text adapter wrapper
around the BytesIO buffer.

io.TextIOWrapper was almost perfect (it closes the underlying stream
on close but that can be worked around) *however* it turns out
TextIOWrapper does not work on Python 2's `file` objects... so use the
older codecs.StreamReaderWriter which should be able to do the job
properly.

fixes #17834
2017-06-28 15:35:53 +02:00
Alexis de Lattre bff4922f7c [FIX] l10n_fr_certification: avoid auto-install
As of June 15th 2017, according to
http://proxy-pubminefi.diffusion.finances.gouv.fr/pub/document/18/22503.pdf
Will not be required for all FR companies.
The certification will only be required for POS software, not for accounting
softwares.

Disable autoinstall, waiting to have more information on the changes to be voted.

Closes #17771
2017-06-28 15:15:03 +02:00
Martin Trigaux 81ff060fb4 [I18N] export base source terms 2017-06-28 14:53:55 +02:00
Goffin Simon ecdf96e8a7 [FIX] mrp, stock: Traceability of MO disappears when product returned after delivery
Steps to reproduce:

Let's consider product P tracked by serial number
P has a manufacture BOM B with Q as componenent

- Produce P with serial number SN(with MO)
- Send P with SN to a customer A(with SO and DO)
- Force availability on P to a customer B(with SO and DO)
- Return P to stock for customer A.

Bug:

The tracability for P removed the component Q(consumed_quant_ids)
when reconciling the negative quant(generated for B) with the returned
quant from A.

opw:744424
2017-06-28 14:51:27 +02:00
Jeremy Kersten 32423169af [FIX] web: namespace the event for Apps Widget.
With the new client web from v9, we start the new action before to destroy the old one.

When we switch from Apps (store) to Update and vice-versa, iframe was not loaded correctly.

In case of the Apps widget, we are binding event of the new iframe during the start,
and when it is ready, we destroy the old ifram and so unbind the listener of 'message.apps'.

Using a uniq id, we ensure to bind new event, and only unbind old event during the destroy.
2017-06-28 14:36:11 +02:00
Nicolas Martinelli a93195ee4e [FIX] payment: do not create token in backend
Complement of commit e8dec0fdf1

opw-746545
2017-06-28 13:37:26 +02:00
Darshan Kalola 7ada921e67 [FIX] web_editor: make html widget translatable
The translate feature of widgets html and html_frame had been
broken by the new views refactoring. This commit restores it for
the html widget, and removes it completely for html_frame as it
wasn't working correctly before the new views anyway (moreover,
it had already been disabled for mass_mailing: de403dc1ab).

This commit also ensures that the changes are correctly saved for
the html_frame widget. Note that this widget still needs to be
converted to our new coding guidelines.
2017-06-28 12:41:35 +02:00
Adrien Dieudonne 9f4922a852 [FIX] web: test wrongly adapted in ceff4d460
A test has been adapted in ceff4d460 whereas it shoudn't.
Indeed this commit doesn't change anything in the case of 'Discard'
button clicked.
2017-06-28 11:47:33 +02:00
Mitali Patel 026f9ce085 [FIX] mrp: Fix typo 'grousp' -> 'groups'
Prefetcion certailny does have it's prace
2017-06-28 11:46:27 +02:00
Laurent Smet 09296e74e9 [IMP] account: show payments on invoice report.
Each time the invoice is printed, it shows an updated remaining amount on the invoice. The first print, though, is kept as canonical reference as attachment.

Was PR#16343
2017-06-28 11:43:32 +02:00
Laurent Smet 8e230ae25d [FIX] base/report: fix attachment creation without attachment_use
If attachment_use is false and attachment_name specified, the attachment
is not created.
2017-06-28 11:43:32 +02:00
Adrien Dieudonne ceff4d4608 [FIX] web: basic_controller: wait for the mutex before discard changes
Before this commit, the discard confirm dialog was directly shown
without waiting for the write RPC. For instance, it the user clicked on 'Save'
after editing a record, and then directly clicked on another menu or on the
breadcrumb before the write RPC returned, the record was still considered
as dirty and thus the confirm dialog was displayed. We now wait for the RPC
to return before checking if the record is dirty, so that the confirm dialog
is only displayed when the record is actually dirty.
2017-06-28 10:40:35 +02:00
Nicolas Martinelli 1b3a2c488c [FIX] website_portal_sale: access to invoices
In the website portal,the Sales Orders are always rendered as superuser
after access rights check. This is not the case for invoices, which can
lead to access errors when the user tries to download the invoice PDF.

To solve the issue a new route is created. It handles the access rights
checks, then access the invoice document as a superuser.

opw-747854
2017-06-28 10:05:54 +02:00
Xavier Morel 6ad587dc8f [FIX] db restoration existence check
5ee9ec7d removed bool(Connection), turns out db restore still used it
but muted the logger so that was hard to notice in the logs.
2017-06-28 10:05:33 +02:00
Nicolas Lempereur 2bda46ce78 [FIX] website_sale_digital: check product tmpl sudo
For example the portal user has restricted access to product template,
this can lead to an issue that should not be in this instance that is
checking if the product template correspond to a product sold.

opw-748480
closes #17871
2017-06-28 09:36:09 +02:00
Goffin Simon cf66983f37 [FIX] base: Language translation import issue
When importing translations with a csv, the state of the translations was
always set to "To translate" even if the state was "Translated"
due to function _inverse_source.

PS: Making self.source when self is considered as record set could lead to an error.
The return in this function was not needed.
In old API this function was called just for one record.
So this function expect only one record at each call.

opw:747877
2017-06-28 09:27:20 +02:00
Nicolas Martinelli 9771056c46 [FIX] mrp: unlink lot
- Set a user with 'User' access rights in Manufacturing and Inventory
- Create 2 products tracked by lot (A and B)
- Receive some quantity of B, define the lots.
- Create a BOM for A, depending on B. The BOM must use routing with at
  least one workorder

With the unprivileged user:
- Create a MO for 1 unit of A
- Update quantity to 3
- Plan the MO
- Go in workorders, start working and set the lot numbers for A and B.
- Finish the WO => Access Error

opw-748825
2017-06-28 08:38:16 +02:00