Commit Graph
96003 Commits
Author SHA1 Message Date
Goffin Simon add9dbf4ec [FIX] sale: report_saleorder
The taxes in a SO line must be displayed in the right side of the column.

opw:649141
2015-09-11 15:35:06 +02:00
Denis Ledoux 9ad357553d [FIX] mass_mailing: missing auto_commit in send_mail overrides
The argument `auto_commit` was omitted in `send_mail` overrides.
`auto_commit` was therefore allmost always `False` when
reaching the `send` method of model `mail.mail`,
in `mail/mail_mail.py`. At least it was when either
`sale`, `purchase` or `account` were installed.

Not committing the sql transaction leaded to the fact
the mail statistics were never created when the queue
process was interrupted (e.g. process time limit reached),
and knowing if an email in a mass mailing has already been sent or not
is based on the fact the mail statistics exists or not.

Therefore, if a mass mailing sending process was interrupted,
the emails were re-sent over and over.

opw-649106
2015-09-11 14:18:45 +02:00
Denis Ledoux 63a5bc8c5f [FIX] website_quote: default quote template values
Once the website_quote module installed,
the "default template" is set by default
on all new quotations.

There is an onchange on the field `template_id`,
setting some values according to the template,
including the description in the website quote.

When creating the quotation / sale order from
the web interface, the on change is triggered,
and the values related to the template are correctly
loaded.

However, when the quotation is created through
the code or the API, the default `template_id` was
correctly set, but as the onchange wasn't triggered,
as onchanges are automatically triggered only
through the webclient creations, the related values,
issued from the template, were not, such as
the quote website description, or the date expiration,
and so on.

In particular, this happen when creating a quotation from
an opportunity, through the "Convert to quotation"
button.

opw-648920
2015-09-10 15:56:05 +02:00
Goffin Simon d7eb2c0397 [FIX] website_sale: product attribute line
In e-commerce, on a product page. If the product has some attributes
("product.attribute.line" model) with several values for at least one attribute
(which means several variants for one product), the display of these attributes must
respect the sequence defined in:
Sales > configuration > products > attributes("product.attribute" model)

opw:648634
2015-09-08 14:23:40 +02:00
Goffin Simon 19a523ff64 [FIX] website_sale: product attribute line
In e-commerce, on a product page. If the product has some attributes
("product.attribute.line" model), the display of these attributes must
respect the sequence defined in:
Sales > configuration > products > attributes("product.attribute" model)

opw:648634
2015-09-08 09:11:11 +02:00
Jeremy Kersten a7b2208de5 [TYPO] website_portal: typo font awesome 2015-09-07 18:07:35 +02:00
Jeremy Kersten 8f97374842 [FIX] website: fix translation - missing escaping 2015-09-07 18:07:34 +02:00
Denis Ledoux 760441ce02 [FIX] product: product labels report, missing product name
In 8.0, the products labels report is a non-customizable
xml report. Among others, the product name is displayed.

In saas-6, this report has been converted into
a customizable, qweb report. Unfortunately, the product
name has been forgotten during the convertion.

opw-648643
2015-09-07 12:07:14 +02:00
Christophe Simonis fa5fe2e693 [MERGE] forward port of branch 8.0 up to c345d29 2015-09-07 11:24:14 +02:00
Olivier Dony c345d294b1 [MERGE] Forward-port saas-3 up to rev. 10e6ad1355 2015-09-07 11:18:10 +02:00
Olivier Dony 10e6ad1355 [MERGE] Forward-port 7.0 up to rev. 20f69bbce9 2015-09-07 11:12:57 +02:00
Paul Catinean 20f69bbce9 [FIX] res.users: remove check_super duplication
Closes #8403
2015-09-07 11:07:43 +02:00
Raphael Collet 1c4c64fe01 [FIX] fields: add support for date/datetime null values in field methods 2015-09-07 10:27:34 +02:00
Raphael Collet 1d314962fe [FIX] models: handle the case of _constraints with empty list of field names 2015-09-07 09:12:14 +02:00
Odoo Translation Bot 927c00525c [I18N] Update translation terms from Transifex 2015-09-06 01:50:52 +02:00
Christophe Simonis 3bb0cb2a50 [MERGE] forward port of branch 8.0 up to 9c8b99a 2015-09-04 18:30:48 +02:00
Christophe Simonis 69ddcb3234 [IMP] base: default separator for view attribute alteration is now , 2015-09-04 17:56:08 +02:00
Nicolas Seinlet 9c8b99acf7 [IMP] website_sale: extract search domain in overwritable method 2015-09-04 17:26:06 +02:00
Christophe Simonis 549c371bad [MERGE] forward port of branch saas-3 up to 7ea9691 2015-09-04 17:15:34 +02:00
Raphael Collet fa427f15b7 [FIX] models: performance of mapped is now in O(n) instead of O(n²) 2015-09-04 17:11:57 +02:00
Christophe Simonis 7ea9691e2a [MERGE] forward port of branch 7.0 up to 1cfe191 2015-09-04 17:09:43 +02:00
Goffin Simon ba8ef420eb [FIX] account: Put Money In
When a account.bank.statement.line is created by clicking on "Put Money In"
(Accounting(Menu)>Bank and Cash(Menu)>Cash Registers(Menu)>More(Button)>"Put Money In"),
the account.bank.statement linked to this line must be updated(by passing in the write of
this model) to compute the real closing balance. This fix allow to have the same
behaviour than when a line is manually added (with "Add Item) in an account.bank.statement.

opw:647631
2015-09-04 16:52:40 +02:00
Adrien Peiffer (ACSONE) b429621676 [FIX] hr: Show address doesn't work without always_reload option
The address of the company is supposed to be displayed
in the form view. Without this, it's not the case.

Closes #8373
2015-09-04 16:25:42 +02:00
Adrien Peiffer (ACSONE) a519527c72 [FIX] hr: Set name field translatable
The job name can be displayed on the
website, which can be translated in several
language. It must therefore be translatable.

Closes #8373
2015-09-04 16:25:42 +02:00
Denis Ledoux 50f915f3ac [FIX] models: oversight introduced in 1658bee8d4 2015-09-04 13:27:29 +02:00
Raphael Collet f5e5bbdae0 [FIX] expression: fix search on one2many field with inherited inverse field
Consider the following setting:
 - on model A, field F is computed, stored, and depends on field G
 - on model A, field one2many G to model B, with inverse field H
 - on model B, field many2one H is inherited (_inherits) from model C
 - on model C, field many2one H is stored

When adding records of model B, the field F must be recomputed.  In order to
determine which records to recompute, one searches model A with a domain like
[(G, 'in', ids)].  In expression.py, this is resolved with an SQL query like

    select H from B where id in {ids}

This query fails, since the field H is not stored in model B.  This happens in
general if H is not stored (it may be any computed field).  In that case, one
should instead browse records from B, and read field H through the ORM.

A test case has been added: it introduces a many2one field in a parent model,
and a one2many field using the inherited many2one on a child model.  The test
checks whether one can search on the one2many field.
2015-09-04 13:25:51 +02:00
Denis Ledoux 1658bee8d4 [FIX] models: copy_data call in new API.
Context are frozendict in the new API.
Therefore, they cannot be altered.
Any attempt to alter a frozendict
will lead to a crash.

Fixes #7362
2015-09-04 13:17:34 +02:00
Adrien Peiffer (ACSONE) 67b1be7f57 [IMP] website_hr_recruitment: recruitment form customization
Add the possibility to add some fields on website recruitment form

Closes #8049
2015-09-04 13:08:48 +02:00
Denis Ledoux bd9cbdfc41 [FIX] web: sql constraint translation
The `check` decorator expects the context to be in the `kwargs`
or to be the last arguments of the method.

The `call_kw` route, which is decorated by the `check` decorator,
like every route,
expands its kwargs arguments.

Therefore, once in the `check` decorator,
the context is located in the `kwargs` key
of the kwargs.
(More simply, instead of
`kwargs.get('context', {})`
it's
`kwargs.get('kwargs', {}).get('context', {})`

As the context is not retrieved correctly,
the lang is not set correctly either,
and the sql constraints were not translated.

In 7.0, it worked, because there was a double
check, as the call_kw was called trough an rpc
(`dispatch_rpc`) call,
which was decorated by the `check` as well.

As a fix for 8.0, we apply the same logic,
we perform a double check, with an indirection.

The check decorator should probably be
refactored, but this cannot be done
in a stable release such as 8.0.

Closes #3634
2015-09-04 12:58:00 +02:00
Nicolas Lempereur 6672e45ba4 [FIX] website: better text node if delete and whitespace
If the node is a text node containing only empty space, we must replace
some of these space by an   so it can be selected.
2015-09-04 11:35:11 +02:00
Goffin Simon 64e1c28e35 [FIX] resource: get_working_intervals_of_day
To compute start and end date of a working interval this function replaced
hour in datetime object without taking into account the time zone. The start and end date
taking respectively from calendar_working_day.hour_from and calendar_working_day.hour_to are
in the time zone of the user and the datetime object are compared in UTC to avoid schedule's gap.
This is why the start and end must be converted in UTC after being replaced by these hours.
The tz_info must be removed from dates because it's forbidden to compare naive and aware dates.

opw:648349
2015-09-04 10:01:20 +02:00
Michael Vercruyssen 1992043686 [FIX] pos_loyalty: Point cost help
To make the tooltip more clear and understandable for the user.

opw:645760
2015-09-04 09:11:41 +02:00
Yannick Tivisse aa8f063c07 [FIX] ir_attachment: wrong assert in invalidate_bundle method
If the css file was splitted into several css.0,... files,
the assert was crashing.
Introduced by commit 37959d4
2015-09-03 17:24:20 +02:00
Christophe Matthieu f962b0f628 [IMP] base: flexibility for attibutes inheritance ('add' and 'remove')
Can use 'add' or 'remove' on attribute tag.
'add' values are stripped and add to the current value preceded with a space.
'remove' may contain more than one value separate by spaces.
'separator' by default space the string are splited by spaces.

E.g.:
  <attribute name="thing">bob tata lolo</attribute>
  <attribute name="thing" add="bibi" remove="tata"/>
  thing contains: bob lolo bibi
2015-09-03 16:17:53 +02:00
Nicolas Lempereur a69af9c908 [FIX] addons: propagate context when get sequence
With 3e82c94d we use the timezone in the context to format date
sequences when formatting an ir.sequence.

This commit adds the other missing context when getting a sequence, so
these sequences are also dependant on the timezone.

closes #8351
opw-646487
2015-09-03 13:58:01 +02:00
Jeremy Kersten 443447a2b1 [FIX] website: set oe_manipulators at top of top-bar
Without this, oe_manipulator could be under the bar and so impossible to move, duplicate, delete, ... the snippet
2015-09-03 13:18:52 +02:00
Goffin Simon ea2745b866 [FIX] delivery: conversion rate according to the date
When using compute in model "res.currency", the date must be set in the
context to have the right conversion rate.

opw:647799
2015-09-03 11:35:24 +02:00
Nicolas Lempereur ea07b7dc2b [FIX] website: don't escape if embedded html field
We should escape arch ir.ui.view arch content, but we should not escape
embedded html field content.
2015-09-02 18:36:19 +02:00
Josse Colpaert 56a6483477 [FIX] stock: inventory filters check used the wrong groups 2015-09-02 18:21:31 +02:00
Denis Ledoux c3ee6e6c1d [FIX] website_mail: mass mailing with fontawesome on GMail
- GMail caches the images contained in emails
 - It seems to take the opportunity to replace `%20` by `+` in the images URLs
 - Werkzeug doesn't seem to handle '+' in URL as spaces (at least not as a %20)
   (See https://github.com/mitsuhiko/werkzeug/pull/756)

When inserting a fontawesome character/image,
there are spaces in the CSS color,
e.g. `rgb(255, 255, 255)`.
And window.encodeURI, doing its job, encode this as
`rgb(255,%20255,%20255)`
This, in the URL, is supported by Werkzeug.
However, Google changes this to
`rgb(255,+255,+255)`
which is not supported by Werkzeug.

The fontawesome images were therefore not available in
mass mailing sent to GMail addresses.

This revision removes the spaces from the CSS color.
This is not the best fix, but
 - We cannot really ask Google to not change %20 by +
 - We cannot afford to wait the support of the '+' as spaces in Werkzeug

opw-648456
2015-09-02 16:16:32 +02:00
Matthieu Dietrich 1cfe1910db [FIX] account: Remove superfluous bracket for analytic account domain
With the bracket in place,
the domain does not consider the last part,
"('state','not in',('close','cancelled'))".

Closes #3714
2015-09-02 14:10:19 +02:00
Goffin Simon c3b847daa8 [FIX] delivery: total passed to get_price_from_picking
The total used to check which delivery.grid.line to apply must be in
the currency of the company because the delivery.grid.line records with
variable == Price are expressed in the currency of the company.

opw:647799
2015-09-02 12:17:01 +02:00
matt454357 f243a01795 [FIX] hr_timesheet_sheet: Attendances & timesheets timezone
When creating timesheet,
default from-date and to-date are adjusted for user timezone.
Fixes #3627

User timezone considered when assigning attendance records to timesheet
Fixes #3628

Closes #3632
2015-09-02 11:48:55 +02:00
Christophe Simonis df3e7fedcf [MERGE] forward port of branch 8.0 up to a0d44f9 2015-09-01 18:46:55 +02:00
Lionel Sausin a0d44f9952 [IMP] update the expiry dates when changing the product
Written in the new API even though the rest is in the old API, because otherwise we'd have to add an onchange in the views which may be a problem for existing custom modules.

We want this behavior because previously, in some cases the default values were only added at create() time, ie. possibily when the users close the pop-up, so they may never have an opportunity to see and adjust the default.
2015-09-01 18:04:45 +02:00
Denis Ledoux 3c0fe940aa [FIX] google_calendar: force internal id only on creation
This rev. is related to 1c533b193f

The reason why we force the event Google internal id is
explained in the above commit.

Forcing the internal id must be done only when creating the
event in Google, not when updating, for retro-compatibility:
if the event is already in the attendee calendar, with a different
internal id then the other attendee, we must leave it like this,
otherwise Google will be lost.
2015-09-01 17:36:52 +02:00
Denis Ledoux 1c533b193f [FIX] google_calendar: events disappearing
This rev. is related to a9e3d74713

This new revision is about the same use case than above, except
that both Google users login doesn't match the Odoo login email.

e.g.
User A: A@agrolait.com in Odoo, A@gmail.com in Google
User B: B@agrolait.com in Odoo, B@gmail.com in Google.

When A creates an event, with B in the attendees, and
syncs his calendar to Google, B is not automatically invited
Google side, as his attendee email is B@agrolait.com, which
doesn't match any existing Google User (doesn't match B@gmail.com)

While the revision mentioned above, a9e3d74713,
expected the attendee to be automatically invited Google side, and therefore
expected the event to already exists in B's calendar.

Therefore, when B syncs his calendar in Odoo, as the event
was there in his Odoo calendar, but not in his Google Calendar,
the code actually think it's no - longer - there, and take the assumption
the event has been deleted Google side. So, it deletes the event
in Odoo side as well, for both users A & B.

To overcome this new issue, when the Google & Odoo users emails
do not match, while keeping the compatibility when the Google & Odoo
emails do match (and therefore the invitation is automatically sent
Google side, as the email matches an existing Google account, and
the event is automatically created in B's calendar without needing the
sync in Odoo), we now force the Google internal id to be the same
for all attendees of an event, event by Google side.

opw-645745
2015-09-01 17:15:43 +02:00
Denis Ledoux b8f630e59f [FIX] stock_account: context could be None
In the use case of a mrp repair ending, the
context when calling `_store_average_cost_price`
is None

opw-648254
2015-09-01 16:18:10 +02:00
Thomas Rehn 0fb00808b2 [FIX] account_bank_statement_extensions: lines confirmation
Confirm lines of account cash statement on closing

The `account_bank_statement_extensions` adds
a state field to account.bank.statement.line
and sets the status to 'confirm'
when a bank statement is closed.

When a cash statement is closed,
the lines remained in draft.

Closes #3584
2015-09-01 12:41:20 +02:00
Goffin Simon fdd08a8b4b [FIX] account: closed period in test
The period used to make the test must be closed.
2015-09-01 12:05:29 +02:00