Commit Graph
117975 Commits
Author SHA1 Message Date
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
Jeremy Kersten 653e30d8f8 [FIX] website_sale, website_crm : add missing import and remove useless
Fix: NameError: global name '_' is not defined

Related to odoo/odoo@4c66eae308
2017-06-27 22:29:13 +02:00
Olivier Dony 08934f967a [FIX] mass-mailing: avoid ETA date jumping in the past
The ETA displayed on a mailing should only switch from the scheduled
date to the next cron run when the cron run is after the scheduled date.

Previously it could jump in the past on the scheduled date, if the next
cron run was in the past (delayed or in progress).
2017-06-27 20:12:15 +02:00
Jeremy Kersten 4e8ebc7a72 [FIX] crm: valid the salesteam when programmatically change the user …
…of a lead

Implement it as a constraint.

Better implementation of odoo/odoo@222cca2
2017-06-27 17:34:07 +02:00
Ankit Joshi 16ebec2324 [FIX] http: avoid crash in web/database/selector when selecting invalid database (#17830) 2017-06-27 16:52:20 +02:00
Joren Van Onder 8108904247 [IMP] account: implement tax_base_amount on account.move.line
Stores the base amount of the tax specified by tax_line_id. Useful for auditing tax reports.
2017-06-27 16:10:54 +02:00
Christophe Simonis d2c30410a8 [FIX] stock: correct import 2017-06-27 15:52:37 +02:00
Yannick Tivisse 8639152501 [FIX] crm: Prevent to select non-customer on lead quick creation
Purpose
=======

If you create an opp from the kanban you can select any contact (even if not marked "customer")

If you try to add a "non-customer" for the same field from the form view you cannot.

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

Apply the same behavior than on the form view.
2017-06-27 15:26:03 +02:00
Aaron Bohy df45cf65a8 [FIX] mail: discuss: correctly bind handler 2017-06-27 15:25:34 +02:00
Christophe Simonis 674a347e13 [FIX] stock: correct PY3 incompatibility introduced by previous forward-port 2017-06-27 14:58:33 +02:00
Aaron Bohy 964b7c378f [FIX] web: apps: correctly use this._rpc
session.rpc should not be used anymore. The function '_rpc'
available on widgets should be used instead (with the correct
params).

Also, 'session' is no longer a widget attribute.
2017-06-27 14:25:00 +02:00
Christophe Simonis dd43071638 [MERGE] forward port branch saas-16 up to 278e478d55 2017-06-27 14:19:31 +02:00
Aaron Bohy 9fbed63406 [FIX] web: FieldSelection on m2o: unset value
When the value of a many2one field with widget selection was unset,
it's value wasn't actually set to false in the BasicModel. It was
set to a virtual id like 'virtual_294' instead. This caused a
traceback when this value was sent to the server, obviously.

This was for example the case of the Register Payment form view
(accessible from a customer invoice), when the user selected a
payment journal, and then unselected it (the virtual id was then
sent to the onchange RPC).
2017-06-27 14:12:31 +02:00
Aaron Bohy 7ea6f653df [FIX] web: MonetaryField: rerender with currency
The MonetaryField can be rendered with or without a currency. The
currency can change during the lifecyle of the widget (e.g.
currency field in the view, whose value is set by an onchange).
More precisely, the widget can be instantiated without currency,
then a change on another field can trigger an onchange which sets
the currency, and our monetary widget is re-rendered with a
currency.

Before this rev., this wasn't supported in edit mode because the
$el's root node was different if there were a currency or not
(it was an input if there were no currency, and a div containing
an input and a span otherwise). This root node being rendered only
once (at the creation of the widget), the widget wasn't re-rendered
correctly if the currency was suddenly set or unset.

This fix makes the widget behave uniformly whether or not there is
a currency, so now it is always a div containing an input (and
optionally a span if there is a currency).
2017-06-27 14:12:31 +02:00
Aaron Bohy 816a3cd2c1 [FIX] web: ViewManager: filter out some keys from context
A traceback occured when trying to create a BOM by going to
Inventory > Master Data > Products, on a product form view clicking
on the BOM stat button, and then on 'Create'.

This was a context problem: the context of the 'Products' action
was passed to the 'BOM' action without removing action specific
keys like 'default_*' or 'search_default_*'. For instance, it
contained a 'default_type' key, and as type is also a field of the
mrp.bom model, the python tried to interpret it, except that the
given value wasn't a correct value for mrp.bom.

When a button is clicked, we mix contexts coming from different
places to execute the new action. For some of them, we already
filtered out those action specific keys. This fix is simply to
make the piece of context adding the problematic keys pass though
the filter as well.
2017-06-27 14:12:31 +02:00
Aaron Bohy 4881f942cb [FIX] web: BasicModel: correctly eval x2manys in domains
When x2many fields have to be evaluated in domains (e.g. ['id',
'in', some_x2many_field]), they must be evaluated as the list of
ids in the relation (whereas in contexts, they are evaluated as a
list of commands). Before this rev., they were always evaluated as
a list of commands.

Note that this didn't work neither before the new views.
2017-06-27 14:12:31 +02:00
Aaron Bohy 17e198153e [FIX] web: BasicModel: store changes in x2many as operations
Datapoints of the BasicModel store the data fetched from the
server and changes done (not saved yet) by the user. For x2many
fields, datapoints are of type 'list' and have a 'res_ids' key
containing the ids of all records in the relation. They also have a
'data' key containing datapoints of type 'record', representing the
records in the relation that have been fetched (with a limit set to
40 or 80 depending on the subview used). So basically, the length
of res_ids may be different than the length of data.

Before this rev., the changes in x2manys were saved under the key
'_changes' as a duplication of the content of 'data', i.e. same
list of datapoints of type 'record', modulo the changes done (it
contained the new records added and didn't contained the removed
records, whereas the 'data' remained unchanged). This didn't worked
at all when there were more records than the limit in the relation.
Indeed, when this happened, the commands to send to the server
couldn't be generated correctly.

This rev. modifies the way changes are stored in those datapoints.
Now, each change is stored as an operation. An operation could be
of type 'ADD', 'REMOVE', 'REMOVE_ALL' or 'UPDATE'. As before,
'data' remains unchanged and always keeps the datapoints of records
that have been fetched (the ones that are currently displayed in
the list or kanban subview). This way, commands can now be properly
computed.

This had a nice side-effect of fixing two other bugs linked to
x2manys.
First, when used in a context (e.g. {some_key: some_x2many_field}),
the value of some_x2many_field (i.e. a list of commands) was always
[] if the field was invisible="1" in the view, because it's
subrecords weren't fetched, and the generated commands were based
on them. Now, they are generated from the list of res_ids in the
relation, so it works fine.
Second, the x2many records are supposed to be sorted client-side,
after being read, and after each edition. This was working in the
first case, but not in the second. Now it's working even after
a record edition.

This rev. also correctly sets the 'parentID' and 'static' keys in
datapoints.

Finally, we also fixed the pager in x2manys as it was badly
displayed (small less tweaks).
2017-06-27 14:12:31 +02:00
Goffin Simon a8c12e1fd0 [FIX] sale: Updating dashboard_graph_model when uninstalling Sales
Uninstalling Sales with CRM still installed lead to an error
when clicking on CRM app because the dashboard_graph_model was not
updated for each crm.team record.

opw:748099
2017-06-27 14:02:05 +02:00
Christophe Simonis 278e478d55 [MERGE] forward port branch saas-15 up to b141b24706 2017-06-27 12:41:47 +02:00
Nicolas Martinelli e8dec0fdf1 [FIX] payment: do not create token in backend
Tokens are not meant to be generated from the backend, so we forbid it.

opw-746545
2017-06-27 12:08:15 +02:00
Christophe Simonis b141b24706 [MERGE] forward port branch saas-14 up to b1f738d1ca 2017-06-27 12:02:56 +02:00
qdp-odoo d3ff26654a [FIX] account: max_date field of partial reconciliation is a date, not a datetime.
This field it is computing the max of 2 date fields, so it has to be a date too. This was messing in the aged receivable/payable reports.
2017-06-27 11:59:38 +02:00
Christophe Simonis b1f738d1ca [MERGE] forward port branch 10.0 up to 89a99407ce 2017-06-27 11:39:43 +02:00
Adrien Dieudonne 1e4f4299bc [FIX] *: reports: check required values for 'render_html'
Some reports require additional information to render. When
accessed in Odoo, the user has to fill a wizard to provide those
information. However, when these reports were opened in Studio,
it crashed as those information were missing (we don't pass
through the configuration wizard in this case).

This fix checks if all the required information are given before
trying to render those reports, and it displays a warning in
the logs in they are missing, which is better than a traceback.
2017-06-27 11:15:24 +02:00
Xavier Morel 89a99407ce [FIX] website_forum: yet more untranslatable terms 2017-06-27 10:36:24 +02:00
Aaron Bohy 05282fd434 [FIX] web: pyeval_tests: typo
Introduced by forwardport 34b432d528
2017-06-27 10:22:35 +02:00
Christophe Simonis 34b432d528 [MERGE] forward port branch saas-15 up to 4d79a1ff58 2017-06-26 19:19:39 +02:00
Christophe Simonis 80775a7362 [MERGE] forward port branch 10.0 up to 4c66eae308 2017-06-26 18:38:41 +02:00
Xavier Morel 6501184e62 [FIX] P3: API changes 2017-06-26 17:23:56 +02:00
Martin Trigaux 4c66eae308 [FIX] website_sale,website_crm: untranslated term
opw-748880
2017-06-26 17:05:39 +02:00
Xavier Morel 5ee9ec7d6c [FIX] P3: __nonzero__ -> __bool__
Also ~removed bool-testing on cursors
2017-06-26 16:45:03 +02:00
Xavier Morel c5dcf75a81 [FIX] P3: Unpickler.find_global -> Unpickler.find_class 2017-06-26 16:45:03 +02:00