Commit Graph
103311 Commits
Author SHA1 Message Date
Thibault Delavallée c70e2a5777 [FIX] mail: display access button on discussion emails if recipient can see the document
Currently no access button is displayed if the email is a discussion and has
no contextual actions like creating a new document, or setting the responsible
of the document. However it leads to emails being sent without access button.
This can be extremely frustrating and make the notification email quite
impossible to use efficiently.

With this commit when an user has access to a document the link to the document
is always displayed in the notification email.
2016-07-19 16:35:05 +02:00
Thibault Delavallée bcbf4316e6 [FIX] models, mail, *: fix access action crash due to one / multi conversion
get_formview_action and get_formview_id are methods used notably in a
redirection called from a mail controller used in notification emails.
Those methods however are defined as cr, uid, id and are interpreted
as api.one when called by a new-api style method.

With modules being converted into the new API, those methods are called
as api.one and the result is encapsulated into a list.

To avoid having to take the first element of the returned list we decided
to simplify the call chain and migrate the methods as multi methods, using
ids instead of id. Various addons have been updated accordingly. A temporary
support of ids being an int / long has been added to avoid conflict with calls
using id (for example if javascript is not updated).
2016-07-19 16:32:46 +02:00
qdp-odoo 82ac891bc7 [FIX] account: remove related payments upon statement line cancellation.
Since commit 3d48f2a375, each statement line creates a payment entry if it creates a move. So the code to cancel a statement line must be adapted to keep the old behavior: remove the payment if it was created by the statement line processing; keep the payment if it was registered before the statement line.
2016-07-19 15:57:59 +02:00
Goffin Simon 7111ec0b7b [IMP] web, openerp: Remove the function ir_set on model ir.model.data
The function ir_set is deprecated since 9.0
Refactorisation of load_actions_from_ir_values
2016-07-19 09:35:41 +02:00
Goffin Simon 523209379a [FIX] calendar, openerp: Remove deprecated set and get on ir.values
Since version 6.1 the functions set and get on ir.values are deprecated.

The overwrite of the function get on "ir.values" didn't set the context
at the right argument.

opw:682883
2016-07-19 09:35:40 +02:00
qsm-odoo b22082ac8e [FIX] website_sale: stop using field before its creation
Since using new api for the website_sale module with commit 788c1334e2,
the website_sale module cannot be installed after the sale_stock module
is installed. The problem has not been detected on the runbot as, by
chance, the website_sale module seems to be installed before.

The problem here is that on installation, the _default_website_sequence
method is called to add a default value for the added website_sequence
field. In this method, a search() is done, ordered by this field values
then a read() is performed. The problem is that the read does not use
the given order value and use always the default one, which uses the
website_published field which happens to not be created at that time.

However the creation order of a model fields is difficult to determine
which is why when sale_stock is not installed, the bug does not appear,
the website_published being created, by chance, before calling the
_default_website_sequence method in that case.

To fix the problem, refactore the method by using a SQL query so that
the website_published field is not used. This also makes the method
easier to understand and more efficient.

Thanks to @rco-odoo
2016-07-18 12:24:52 +02:00
Olivier Dony fa9782d24d [FIX] website_sale: avoid caching browse_records
The migration of `website_sale` to the new API at revision
788c1334e2
repeated this problem initially fixed by PR #8795.

A browse_record returned by a cached method will be
broken at the next use, because it is bound to a
closed cursor.
The symptom is weird exception in the middle of a future
request:
   ```OperationalError: Unable to use a closed cursor.```
(which refers to an old cached cursor, not the cursor of the
current request!)

Solution: workaround the problem by returning IDs in the
method that needs to be cached (`_get_pl_partner_order`),
and re-browse them as needed in caller methods.
In addition, remove the useless extra caching of `_get_pl`,
as all it does is browse() the result of the former method,
and that would trigger the very same bug again.
2016-07-18 03:44:38 +02:00
Olivier Dony 87e9639a97 [FIX] website_event: correct typo in new API conversion
event.event's field is 'country_id', not 'country'

Cfr 616f294786
2016-07-15 14:02:01 +02:00
Christophe Simonis a62b8cfaeb [FIX] hr_timesheet: add missing icon for Timesheets main menu
This icon was remove by 05a143a416 but is
still referenced by the menu entry.

This is also a backport of 3843b86fef.
2016-07-14 19:34:35 +02:00
Olivier Dony f5eba9e4d8 [FIX] web: repair grouping on date fields in list view
This is a temporary workaround, which probably deserves
further thinking by @ged-odo, as the root cause
stems from commit 96bf5b2656

The problem is that the list view looked for composite group_by
keys such as "create_date:month" within `fields_get`, which
only contains true fields.
2016-07-14 18:48:08 +02:00
Denis Ledoux 18dc5b3b87 [FIX] web: default many2many tags color
When there is no `color` field on the model
e.g. On invoice line taxes
The color class to apply on the badge was set to
`o_tag_color_undefined`
which doesn't exist. It must be set
from `o_tag_color_0` to `o_tag_color_10`
in order have a color.

Because of this, the taxes in the invoices lines
were not visible, because they were written in white
on a white background.

This has been broken by the below revision:
fe66472e2c
removing the or statement (`||`) to set a default
color for models not having a `color` field.

We choose to set `10` as default value, so the color
remains the same compared to the previous release
(light grey). However, if the new behavior chosen
by the usability is to have these in black, it should then
be changed to `0` again.
2016-07-14 18:38:29 +02:00
Christophe Simonis 1fca5e01cb [MERGE] forward port branch saas-10 up to 156dee2 2016-07-14 18:17:30 +02:00
Christophe Simonis 156dee2aec [MERGE] forward port branch 9.0 up to fd9eb2e 2016-07-14 17:17:54 +02:00
Olivier Dony 6d3cf9c649 [FIX] website_mail_channel: re-add import dropped by API migration
The migration to new API dropped `from openerp import tools`,
but it was still used.

See also 8250762fe8
2016-07-14 17:07:44 +02:00
Olivier Dony a78c2e3d39 [FIX] website_mail_channel: fix datetime typo in new API migration
The migration to new API changed `import datetime` to
`from datetime import datetime`, subtly breaking existing
calls.

See also 8250762fe8
2016-07-14 16:52:40 +02:00
Denis Ledoux 78fee4b6b0 [FIX] website_sale: "From website" filter
This filter must be added in the regular searchview,
and not have his own search view.

Without this:
 - view_sales_order_filter_ecommerce is a not search view
 for the sale orders, having the same priority than the regular one,
 and therefore this view can be loaded by default for other menus
 (In this case, this was for the menu Website Admin > Orders).
 e.g. Clicking on the `Sales` stat button on a contact no longer
 filtered the orders of this contact, but displayed all the orders,
 because it was this view which was loaded instead of the regular one.
 - In Website Admin > Orders, it was simply not possible to type a string
   and search for it in the search bar.
2016-07-14 16:37:28 +02:00
Christophe Simonis fd9eb2e481 [MERGE] forward port of branch saas-6 up to e928c60 2016-07-14 16:23:22 +02:00
Christophe Simonis e928c6003a [MERGE] forward port of branch 8.0 up to 17a1304 2016-07-14 15:46:28 +02:00
Denis Ledoux 8d2d741db3 [FIX] mass_mailing: do not inherit a view on a string attribute
A string attribute value can be translated,
and therefore the inherit broken if the term is indeed
translated.

This was the case for this term "Tracked link" in the Dutch
language, the "Tracked link" term of the inherited view has
been translated, and the inherit was therefore broken as
it couldn't find the given node in the base view due to the
fact this term was translated.

opw-683128
2016-07-14 12:25:02 +02:00
Ronald Portier 17a1304285 [FIX] hr_timehseet_sheet: drop view before creation
When the schema of a view change (e.g. drop of column), the "CREATE OR REPLACE"
will not be enough and dropping the view is required.

Fixes #12754
Closes #12756
2016-07-14 11:42:52 +02:00
Xavier Morel 5bb0933a52 [REVERT] 7930c3f86
Faster is nice, working is better, sale_timesheet, this commit breaks
the tests and the installation of multiple modules.
2016-07-14 09:57:17 +02:00
Goffin Simon 46c3c721fc [FIX] sales_team: _get_default_team_id
The domain term '('member_ids', 'in', False)' should use the '=' or '!=' operator.

sentry:90136545
2016-07-14 09:12:13 +02:00
Goffin Simon e71d136d6f [FIX] sale: making an advance payment in percent
When making an advance payment in percent, the function onchange_advance_payment_method
set the Down Payment Product to False. Then each time an advanced payment in percent
was made, a new down payment product was created and set in sale.config.setting in the field
deposit_product_id_setting.

Now the function onchange_advance_payment_method let the Down Payment Product
even if the payment method is in percent.

opw:683167
2016-07-14 09:01:58 +02:00
Christophe Simonis 9b7bc217a2 [FIX] base: avoid applying inherited view twice
Use the `|=` operator to deduplicate view ids.
2016-07-13 20:42:43 +02:00
Christophe Simonis 7930c3f86e [IMP] base: ir.ui.view inherit search during module update
During module update, we should only consider views of already
loaded modules. This filter is done by searching on xmlids of views.
We should also search for explicit view ids (current module is not yet
marked as loaded)

However, by doing this `OR` condition, the generated query is not
optimal and forbid postgresql to use the composite index
`ir_model_data_model_res_id_index` on `ir_model_data` table.
This is a performance issue for databases with a lot of ir_model_data rows.

Use 2 quicker search() to avoid this problem.

This only affect the module update. Normal view loading is unchanged.
2016-07-13 19:19:11 +02:00
Damien Bouvy 7c2c169906 [FIX] base: mixing ids and records
Browse needed.
2016-07-13 17:27:24 +02:00
Christophe Simonis a039fc509b [MERGE] forward port of branch 8.0 up to 9650249 2016-07-13 17:26:44 +02:00
Damien Bouvy 8cad4ce011 [FIX] web_settings_dashboard: user count consistency
Odoo S.A. invoices only 'non-share' (internal) users; the default
filter on the user list view does the same thing. It makes little
sense for the user counter to count all share users.
2016-07-13 16:58:31 +02:00
qsm-odoo 9b77d76e71 [FIX] web,website,point_of_sale: session.debug value
Now that the debug URL parameter can be equal to "assets", the session
debug variable has to be updated to not only be true or false. Now, its
value is false if the debug parameter is not specified in the url and
a the URL parameter string value otherwise (or 1 if the value is an
empty string).

Also modify all redirection which kept the debug mode to also keep
=assets. Use the $.param.querystring function.
2016-07-13 16:13:04 +02:00
Simon Lejeune 05a143a416 [REF] hr_timesheet, hr_timesheet_sheet: hr_timesheet is the application
* switch application flag between `hr_timesheet_sheet` and `hr_timesheet`
* renamed `hr_timesheet` application name from "time tracking" to "timesheets"
* move the icon from `hr_timesheet_sheet` to `hr_timesheet`
* removed unused icon from `hr_timesheet`
* renamed `hr_timesheet_sheet` application name from "timesheets" to "timesheets / attendances"
2016-07-13 15:07:56 +02:00
Joren Van Onder c902437247 [FIX] barcodes: allow users to 'click' focused buttons with Return
Return key events don't get redispatched and even if they did, it
wouldn't work because 'fake' keypress events don't trigger native HTML
event handlers.

This should be safe because Return cannot start a valid barcode.
2016-07-13 13:58:50 +02:00
Joren Van Onder 4dc228d01c [FIX] stock: don't show empty Reserved group
We hide the quants_grp if the stock.move is in the draft state. In this
case normally the value of the string_availability_info will be empty
anyway, because the _get_string_qty_information function skips moves in
the draft state.

This is especially useful on small displays, because on there the string
attribute of the field won't be shown, so you just end up with a
Reserved heading with nothing underneath it.
2016-07-13 13:58:50 +02:00
qdp-odoo bf999c168a [IMP] account: added 'form' mode in the action returned by clicking on the 'Journal Items' stat button on payments and bank statements, because it was so boring not being able to see the details or open the account.move from that view 2016-07-13 11:22:10 +02:00
qdp-odoo 2d91575b11 [FIX] account: cancelling a bank statement line linked to a payment SEPA or batch deposit should set it back to 'sent' state, not 'posted'. 2016-07-13 10:00:07 +02:00
Jairo Llopis 0529a7f9ba [FIX] tools: extract terms in correct folder
If two addons path have a common part in the folder name (e.g. `/home/alice/dev`
and `/home/alice/devodoo`), the `get_module_from_path` method may match the
wrong folder.
A file `/home/alice/devodoo/bob/models.py` would wrongly match `/home/alice/dev`
path (due to the lack of separator) and the returned module would be `odoo`
(`"odoo/bob/models.py".split('/')[0]`).

In such scenario, the translations of files (code, static folder, report) would
not be included in the exported translation file.

Force the module path to ends with a folder separator to avoid wrong matching.

Closes #12757
2016-07-13 09:43:38 +02:00
Jairo Llopis ee365bbf98 [FIX] modules: choose the right addons path
When launching a server with two similar addons path, e.g.:
- /home/alice/dev
- /home/alice/devodoo

launching the server in dev mode may crash due to the poor matching using
`path.startswith(...)` method which may make `/home/alice/devodoo/bob/main.xml`
match in addons folder `/home/alice/dev` and with a non-exitant local path
`odoo/bob/main.xml`.

Instead of relying on the name, use the `os.path.commonprefix()` method to match
on real paths and avoid partial matching.
commonprefix will only work if the folder name ends with the appropriate
separator (which is not guarantee for a user provided addons-path) so force a
trailing `/` using os.path.join(..., '')`.

Closes #12359
2016-07-12 17:21:50 +02:00
Damien Bouvy d7d07810aa [FIX] hr_timesheet_sheet: no product on employee
Some leftover code from before.

opw-683126

Courtesy of David Coninckx
2016-07-12 16:30:56 +02:00
Aaron Bohy ee4c808d2c [FIX] web: debug_manager: update when coming back with breadcrumbs
Before this rev., the debug manager's state was only updated when pushing a new
action but not when coming back to a previous action using the breadcrumbs.
So when the latter case happened, the debug manager was desynchronized with the
action manager and it allowed to edit an action that wasn't the current action.
2016-07-12 15:30:01 +02:00
Vincent Renaville c9b270c9a4 [IMP] l10n_ch: extend minimal chart of account. Was PR #12552. Courtesy of CamptoCamp 2016-07-12 12:15:57 +02:00
Damien Bouvy f600366092 [FIX] point_of_sale: correct previous fix
I inadvertently inverted the domains; silly me.
2016-07-12 09:26:01 +02:00
Damien Bouvy 47bb1cf44d [FIX] point_of_sale: session access rules
You should not be able to see a pos.session if its pos (config_id)
is not available to you.
2016-07-12 09:22:19 +02:00
Goffin Simon 3ea1ac7e0d [FIX] website_slides: changing channel_id on slide.slide
Steps:
-Go into Slides (into Website Admin main menu)
-Find the Slide "Odoo Explained"
-Change the channel to "Employee Channel"
-Disconnect or open a private session
-Go to the menu "Presentations" on website
-Click on "Public channel"

Bug:

Error 403

Fix:

When changing the channel_id of a slide, the custom_slide_id of all
the channels using this slide as "Slide to Promote"  has to change
in False to avoid access rights errors.

opw:682063
2016-07-12 09:01:25 +02:00
qdp-odoo 2f3249d688 [FIX] account: fixed get_pair_to_reconcile() in case there is a manual reconciliation done via the wizard on an account that has a secondary currency set. In that case, the currency to consider is always given by the special key 'skip_full_reconcile_check' in the context. OPW 682368 2016-07-11 17:47:17 +02:00
Damien Bouvy 70e9a41e25 [FIX] base: compute share as sudo
Applying groups (or implied groups) in a multi-company setting
triggers the recompute of the share field; however, if the current
user does not have sufficient multi-company rules on res_users records,
the operation fails with ACLs errors.

Computing this field as sudo prevents this.
2016-07-11 17:05:20 +02:00
qsm-odoo c21568e14f [FIX] *: html fields sanitization
Since commit c9e38cae9f in saas-10, the html fields are sanitized in
strict mode by default. This breaks all html fields behaviour when it
is editable in the website editor.

This commit deactivate the sanitization for such HTML fields (like it
was already the case for blogs contents or products descriptions for
example). A more specific sanitization will be implemented in future
versions.
2016-07-11 16:02:20 +02:00
Goffin Simon 965024902d [FIX] delivery: Invoice line for delivery method
Steps to reproduce:

1. Activate the following options
** Settings > Warehouse > Products > Manage different units of measure for products
** Settings > Accounting > Accounting & Finance > Analytic accouting
2. Desactivate the following option
** Settings > Accounting > Analytic accouting > Sale > Use multiple analytic accounts on sales
3. Create a Sale order
** Add 2 qty of the product iMac
** Add in quote the delivery method "Normal Delivery Charges" and set 2 qty
** Set an analytic account under Contract/Analytic
** Set the field Create Invoice to "On delivery Order"
4. Deliver only 1 quantity of the iMac and then create the invoice
5. Deliver the last quantity of the iMac and then create the invoice

Behavior before the fix:
The first invoice contains 2 qty of the Transport
The second invoice contains 1 qty of the Transport, has no analytic account set, has no UOM set

Behavior after the fix:
The first invoice contains 2 qty of the Transport
The second invoice contains 0 qty of the Transport because it has already been invoiced

Closed #12644

opw:682284
2016-07-11 14:30:16 +02:00
Odoo Translation Bot ef83f798d5 [I18N] Update translation terms from Transifex 2016-07-10 03:01:32 +02:00
Odoo Translation Bot 5a73ff2f1f [I18N] Update translation terms from Transifex 2016-07-10 00:30:32 +02:00
Damien Bouvy 8c3b976923 [FIX] purchase: avoid scheduler crash if PO without lines exist
When a procurement needs to create purchase order lines due to
reordering rules and if an empty PO exists for the vendor of the
product, the creation of the PO line will crash since there is
no scheduled date on the PO.

opw-675706
2016-07-08 17:12:18 +02:00
qdp-odoo 68f0b8fe4e [FIX] account: bank reconciliation was auto-reconciling undistincly debit lines on bank accounts with negative amounts and/or credit lines with positive amounts where only one field (debit/credit) should be checked if the amount is positive/negative. 2016-07-08 17:03:25 +02:00