Commit Graph
111138 Commits
Author SHA1 Message Date
Denis Ledoux 4e95474ca1 [FIX] website_event_track: Tracks in the wrong room in the agenda
When setting an event tracks like this:
- Track 1, 10:00 to 10:30 Room A
- Track 2, 10:30 to 11:00 Room B
- Track 3, 11:00 to 11:30 Room A

In the agenda of the event, on the website, the Track 2
was displayed as in the Room A, while it should be in the Room B

opw-715480
2017-03-10 17:09:11 +01:00
Denis Ledoux 466e2b8c9f [FIX] mail: URL regex to make links clickable in chatter messages
The former URL took way too many steps to resolve
`www.odoo.com(odoo-odoo-odoo)`, more than 1 minute
according to the case, and it stucked the web client
(the entire browser actually),
and it ended matching the whole sentence as a link,
included `(odoo-odoo-odoo)`

This new regex is much simpler, resolve the above case,
and does not match `odoo-odoo-odoo` as part of the link

opw-715797
2017-03-10 17:09:11 +01:00
Martin Trigaux d5c3f360e2 [IMP] l10n_ch: translate CoA with de_CH instead of de
de_CH was not available when the CoA was first translated
2017-03-10 15:06:51 +01:00
Cedric Snauwaert c781c1e5e2 [FIX] account: when changing settings, if currency has not change, don't update it
this increases performance, reason is because when saving a res.config.setting, even if a field has not changed,
they will be updated and this might trigger recomputation, and so on...
Problem here is that when writing a currency_id to the company, all moves are impacted due to the
company_currency_id which is a related stored field. And saving the settings in accounting can be
pretty slow if we have lots of move. This fix reduce the time needed to save settings by not
writing currency_id on the company if the value has not changed.
2017-03-10 14:45:22 +01:00
Nicolas Martinelli beaea311e6 [FIX] stock: typo
In method `_check_delivery_resupply`, `new_location` is used in a
`write` call. This expects an integer (id).

However, `new_location` is the result of `_get_input_output_locations`,
which returns a recordset.

opw-716141
2017-03-10 10:39:20 +01:00
Nicolas Martinelli e6e6a8889f [FIX] account: typo
The context is created as a set, not a dict.

opw-716141
2017-03-10 10:28:23 +01:00
Nicolas Martinelli abf946086d [FIX] mrp_repair: fees
- Create a repair order
- In the "Fees" list, select a product

The default information is not loaded (description, price).

opw-709368
2017-03-10 09:21:49 +01:00
Goffin Simon 8be16e7a1c [FIX] product: group_product_variant on product kanban view
The number of variants doesn't have to be displayed if variant not enable on product.

opw:711034
2017-03-09 23:52:38 +01:00
Goffin Simon e6d790e340 [FIX] account: _onchange_partner_id not matching fiscal position
When changing partner_id on an invoice, the fiscal positions with auto_apply=True,
must be checked to apply the right one.

To have the same behavior as in 10.0

Backport of this commit: 4b11e3e3a5

opw:715511
2017-03-09 16:21:37 +01:00
Nicolas Martinelli 1d0d74bd89 [FIX] payment: transaction form
The transaction form has readability issues. It is improved by taking as
a example the partner form.

opw-711162
2017-03-09 14:43:01 +01:00
Olivier Dony 82a663db25 [FIX] mass_mailing: add missing import
Overlooked in 31e81e7b8f when
transplanting the patch.
2017-03-09 14:30:54 +01:00
Alexis de Lattre f5722e5076 [FIX] l10n_fr: add missing account 649 (CICE)
Switch account 120  to 'current year earning' type

Closes #15717
2017-03-09 14:20:36 +01:00
Laurent Mignon (ACSONE) 1dea8a53fb [FIX] resource: correct also microsecond information
A lot of methods are designed to work with pure datetime objects as args. If
the value comes from the database it will be rounded at the level of seconds
(0 microsecond). If it comes from a call do datetime.now() / datetime.utcnow()
the datetime object has a value != 0 for its mircroseconds attribute. Therefore
some methods have unpredictable results depending of the origin of the values
manipulated since the microsecond argument is missing into all the calls to
datetime.replace

Closes #15768
2017-03-09 14:07:58 +01:00
Goffin Simon bb0b4cb8f2 [FIX] fleet: return_action_to_open
The 'group_by' must be poped from the context in function return_action_to_open
because the act_window can call another model.

opw:710363
2017-03-09 13:54:33 +01:00
Simon Lejeune 4923c8f1d4 [ADD] QWeb: namespace support in static attribute
This is needed for the mexican localization. Support of ns prefixed
attribute in dynamic attributes is not supported.
2017-03-09 13:19:53 +01:00
Cedric Snauwaert 787e1037cd [FIX] product: fix default pricelist creation
Correct several issues with the automatic pricelist creation:
- multiple creation of same pricelists because company not set on new pricelist
- avoid creating pricelist if currency did not changed or if we already have a pricelist with the same currency
- improve name of new pricelist
2017-03-09 13:16:56 +01:00
Siddharth Gajjar dba53fb117 [IMP] base_import: show import button on kanban view.
PURPOSE
=======

Import button in list view only, its confusing for first time user.
When people start using Odoo first thing they try to import contacts or products.

Specificaion
============

Import button should be display in kanban view also
2017-03-09 12:09:09 +01:00
Thibault Delavallée d5d24a2971 [FIX] hr_expense: fix typo 2017-03-09 11:17:34 +01:00
Denis Roussel (ACSONE) e4a0a300cb [FIX] stock_calendar : correctly schedule calendar
Bad call to api.multi method.
Introduced at 4cb09653

Closes #15763
2017-03-09 09:10:23 +01:00
Jeffery CHEN Fan 2ad0a5a906 [FIX] l10n_cn: correct China accounts
Correct the list of accounts using wrong type
Better manifest with copyright and english description

Fixes #14999
Closes #15021
2017-03-09 09:03:31 +01:00
Aaron Bohy 99b1f79f50 [FIX] report: Array.prototype.includes is ES6
This feature is in the ECMAScript-2016 specification, which is not
yet fully supported by all browsers (and phantomjs).
2017-03-08 20:45:17 +01:00
Denis Ledoux a8efeffbf2 [FIX] pos_mercury: support for Inernet Explorer / Edge
In the method `xml_node_to_string` in `qweb2.js`,
which is used when extending XML templates,
such as this extend of the template `PaymentScreen-Paymentlines`

the method `(new XMLSerializer()).serializeToString(node)`
magically escapes the double quotes `"` in Internet Explorer and Edge,
while this is not the case in other browsers,
therefore converting, for instance,
`this.removeAttr("class");`
to
`this.removeAttr(&quote;class&quote;);`
whhich made the rendering of the template fails.

As this method is quite critical, we do not dare
editing it to use an alternative to `XMLSerializer.serializeToString`
in a stable release

Instead, as a workaround, we just avoid the use of the double
quotes.

opw-708296
2017-03-08 18:07:07 +01:00
Odoo Translation Bot a4e88793ea [I18N] Update translation terms from Transifex 2017-03-08 16:37:08 +01:00
Christophe Simonis f9fa39a8c0 [FIX] board: correctly handle invalid actions
This may happen when a dashboard contain references to deleted actions.
2017-03-08 16:31:03 +01:00
Nicolas Martinelli 6bb63edb98 [FIX] base: save ir.values
- Install accounting module
- Create new tax, keep note of its ID
- Go to Settings > Technical > User-Defined Defaults
- Change the value of 'taxes_id' to the ID of the tax created
- Create a new product => crash

The issue is that the value of 'taxes_id' is saved as a string, not as a
list. Therefore, once retrieved, it crashes.

opw-709906
2017-03-08 15:28:33 +01:00
Nicolas Martinelli bfef35774d [FIX] sale, purchase: currency in subtotal
The "Subtotal" field of a SO/PO line is not rounding following the
currency rules.

opw-710701
2017-03-08 15:26:25 +01:00
Florent de Labarre 681625ea56 [FIX] account: correct domain evaluation
'is set' filter is the equivalent to != False
A many2one has not the value True but an ID

Closes #15749
2017-03-08 13:46:46 +01:00
Martin Trigaux 9732c3049a [FIX] hr_timesheet_sheet: keep timesheets linked to a task
When deleting an hr_timesheet_sheet.sheet, the linked analytic lines are
dropped too.
This was introduced in 8.0 at 5f45e7ca

The initial bug, reported at #5326, was targeting the analytic lines created
independantly, directly from the timesheet encoding.

In version 8, the timesheets were encoded via project.task.work and the unlink
on the hr_timesheet_sheet.sheet had no effect on the works.

In version 10, this model no longer exists and it needs to be filtered to avoid
removing independant timesheets.

Fixes #15741
2017-03-08 13:38:55 +01:00
Denis Ledoux 4d440caafd [FIX] mass_mailing: mailing users requires write on utm.source
Since revision
731356a155

and the fact `mail.mass_mailing.campaign` inherits (with s)
from `utm.source`, and the name of the mass mailing
is took from this `utm.source` linked to the mass mailing,
a mass mailing user requires the write access on the model `utm.source`
to be able to change the subject of a mass mailing.

As a side node, I notice there is no group applied on the
base `access_utm_source` access rule of the module UTM,
meaning a portal user can create `utm.source`.
I am not sure if this is wanted or not.

opw-710525
2017-03-08 12:52:10 +01:00
Denis Ledoux 8428910a74 [FIX] mail: format_date with falsy date
If the date passed is falsy, return
an empty string instead of crashing.

opw-704260
2017-03-08 12:52:10 +01:00
Olivier Dony 48473cbee2 [FIX] ir.mail_server: pretend to connect while in test mode
During installation of demo data and while running tests, the
system should not actually connect to a real SMTP server.

This allows installing new demo/test databases on a system
with no working SMTP server.
2017-03-08 12:30:02 +01:00
Olivier Dony adf3052024 [FIX] ir.mail_server: make SMTP test consistent with the rest
Simplifies the code and makes sure we are calling the connect()
method in the same way we do for normal deliveries, and that
all parameters are processed in the same fashion.
2017-03-08 12:19:03 +01:00
Olivier Dony 4c1cbbc108 Revert "[IMP] account: Don't raise errors if account currency = base currency"
This reverts commit 6e01dd43ca.

This change was strictly unnecessary and breaks any multi-currency
entry, a perfectly valid use case.

Fixes OPW-715870
2017-03-08 12:14:58 +01:00
Nicolas Martinelli b0321b1474 [FIX] sale: do not run procurement twice
When procurements are created, they are automatically run. Avoid this
behavior, to run all procurements at the end of the process and used the
optimized JIT behavior.

opw-710007
2017-03-08 11:44:56 +01:00
Nicolas Martinelli 218a21a37e [FIX] sale: do not run procurement twice
When procurements are created, they are automatically run. Avoid this
behavior, to run all procurements at the end of the process and used the
optimized JIT behavior.

opw-710007
2017-03-08 10:47:19 +01:00
Nicolas Martinelli fb1b9baeb1 [FIX] stock: prevent location creation
Prevent location creation in pack operation view to avoid location
inconsistencies.

opw-707439
2017-03-08 09:28:24 +01:00
Goffin Simon 8c2db9a9a2 [FIX] account: Duplicates a customer invoice
Fine tuning of this commit: a7cd820
When clicking on button "Duplicates" it printed "Duplicate + number". Now it prints
" Duplicate invoice + number" if the customer invoice is of type out_invoice.

opw:708440
2017-03-07 23:45:33 +01:00
Olivier Dony 2d3a4a5d0c [FIX] tools: generate message IDs with unique prefix
For the purpose of fighting spam, many abuse/spam-fighting
services provide redacted message IDs. Because we use a UNIX
timestamp as the prefix for all message IDs, a redacted
message ID of the form 1234XXXXX@domain.com is generally
useless to find a `flagged` message's origin, because it
matches most of the messages sent that day.

Narrowing it down with the help of the approximate time
of delivery does not help much, as there will still be
dozens/hundreds of possible matches on a busy server.

By swapping around the random token and the timestamp in
the message ID, we should improve the uniqueness and
"greppability" of our message IDs, once redacted.
2017-03-07 19:53:06 +01:00
Olivier Dony 31e81e7b8f [FIX] mass_mailing: use consistent types for unsub token check
Passlib's consteq() function only works when both values are
of the same type.
`_unsubscribe_token` uses hmac.hexdigest() which always returns
byte-strings, so we need to ensure that the token passed in GET
parameters is cast to byte-string too.

In addition, _unsubscribe_token() is expected to always derive
the same token for the same list, res_id and email. It already
takes care of ID passed as strings/int, but failed to make sure
that the email can be passed as a byte-string or unicode-string.
Forcing it to unicode before deriving the token takes care of that.
2017-03-07 19:25:02 +01:00
Olivier Dony 4729632275 [FIX] mail.mail: propagate smtp_session
Make sure the _send() method propagates the provided smtp_session
to benefit from the speedup obtained by avoiding multiple SMTP
sessions.

Cfr 00bd7274c4
2017-03-07 18:50:52 +01:00
Nicolas Lempereur 629d80c3c2 [FIX] mail: fix typo in attachment managment
Fix some dead code. This is a fallback for linking mail attachment with
its data. The issue was not reported since a long time since this just
disable a fallback which in my tests was not used anyway.

opw-710502
2017-03-07 18:05:53 +01:00
Christophe Simonis 0a2b99f985 [FIX] product_visible_discount: use defined variable
Oversight of a previous forward-port
2017-03-07 16:55:05 +01:00
Olivier Dony 7b59ce18be [FIX] ir.mail_server: server TLS setting overrides connect() parameter
Cfr 00bd7274c4
2017-03-07 16:47:23 +01:00
Olivier Dony 00bd7274c4 [FIX] mail: batch and speed up email queue processing
Work around performance issue when sending large mass-mailing:

1. Processing a large email queue would crash with MemoryError.
-> The queue agent will now browsing the emails 1 by 1 during
delivery to avoid filling the memory.
-> The agent will not select more than 10k emails per delivery.
The delivery rate can be increased by waking it more often.

2. Reopening a connection to the SMTP server every time is slow.
-> ir.mail_server.send_email() now accepts an extra `smtp_session`
optional parameter. When passed, that session will be used and will
not be disconnected after the delivery. The queue processing agent
prepares batches of emails to be sent to the same outgoing mail
server, and uses a persistent smtp_session to avoid the multiple
reconnection.
To account for MTA that would refuse to process a large number
of emails in the same session (that should be rare), a system
parameter can be used to set the batch size (default: 1000).

3. As a bonus, the ir.mail_server.connect() method is now
responsible for resolving the actual mail server parameters,
rather than having half of the logic in the send_email() method.

Warning: this commit drops support for "maildir:/" format in
outgoing mail servers hostnames. This feature is deprecated,
unused, untested, and was meant for debugging only.
2017-03-07 16:12:31 +01:00
Olivier Dony a7ff8364ea [FIX] mail sanitize: allow extra common style attributes
Without allowing these harmless style attributes, sending
mass mailing emails with the new snippets produced an ugly
dumbed-down version.
2017-03-07 16:04:33 +01:00
Jigar Patel 8c6b19d605 [IMP] note: Add activity widget on kanban view 2017-03-07 16:04:02 +01:00
Martin Trigaux 76b724294a [FIX] calendar: correct search in recurrent event
Add a 3 use cases with tests that were failing before.

datetime filters were not working correctly on stop filters
The `_get_recurrent_date_by_event` was only computing recurrency on the start
field of an event which can make a difference. A recurring event
  start=2017-01-01 09:00:00; stop=2017-01-01 10:00:0
was not matched in a search ('stop', '>', '2017-01-01 09:30:00')

The filter != was not handled in the recurring use cases.
e.g. making the search 'start is set' in the web client is equal to
  ('start', '!=', False)

Searching with only a start filter matching recurring events but not the
first ("real") occurence, was returning no result if no stop filter was present.
  start=2017-01-01 09:00:00; count=5
had no result in a search ('start', '>', '2017-01-02')
2017-03-07 15:57:37 +01:00
Pratima Gupta 4a28c103fe [IMP] crm: filter usability improvements
- Switch order of 'Unread Messages' and 'Won' filters
to group them by relevance
- 'Won' filter does not depend on the state property of
stage, since the 'Won' stage is not folded by default.
2017-03-07 14:34:01 +01:00
Goffin Simon 8eb759dcff [FIX] hr_expense: Multi company rule for hr.expense.sheet
To apply to multi company rule on hr.expense.sheet
Inspired from Expense multi company rule

opw:709834
2017-03-07 13:51:02 +01:00
Olivier Dony 58593c2755 [FIX] mass_mailing: correct unsubscribe token check
The mailing._unsubscribe_token() method expected the record ID
as an integer, but accepted strings and generated a different
token for the string representation of an integer (!)
The unsubscribe controller was passing a string by mistake.

mailing._unsubscribe_token will still expect integers but if
the string representation of an integer is passed it will be
silently cast to an integer, and will generate the same token.
2017-03-07 13:27:59 +01:00