Commit Graph
103218 Commits
Author SHA1 Message Date
Denis Ledoux 3c642e283d [MERGE] forward port of branch 8.0 up to 2ba7fa3 2016-03-01 10:55:13 +01:00
Denis Ledoux 2ba7fa3c9d [FIX] website: alternate languages translated URL
The alternate languages links set in the page `<head>`
were not translated in each language, but within the language
the user is browsing the website.

This leaded to SEO referencing issues, as these links leaded
to (30x) redirections if followed, to translate the URL slug
within the new current language.
e.g.
`/fr_FR/shop/product/bose-mini-bluetooth-speaker-7`
automatically redirected to
`/fr_FR/shop/product/mini-haut-parleur-bluetooth-bose-7`

And it was the first link which was displayed as alternate link
when being in another language than French, while it should
be the second (to avoid the useless redirection).

opw-669979
2016-03-01 10:53:44 +01:00
Denis Ledoux 3913667396 [FIX] website: backport of 8d2a3ba12d 2016-03-01 10:53:44 +01:00
Joren Van Onder dda904c133 [FIX] point_of_sale: avoid '.' thousands separator issues
When we render the payment screen the current value of the current
paymentline is rendered to a string using
Paymentline.get_amount_str(). This conversion always rendered numbers
with a decimal separator of '.' because it just used
Number.toFixed(). This used to be fine but
5a10903e9b made the POS adhere to the set
decimal and thousands separator. Because of this, the POS now has to
parse the input with web.parse_value() which takes into account these
separators. When parse_value() parses a float it first deletes the
thousands separators and then replaces the decimal separator with '.'
before it gets cast to a Number.

In German (and other languages), the '.' is used as a thousands
separator which means that it will get deleted by parse_value() so
you'll end up with '12.34' being interpreted as '1234'. Because of this
it is important that we ensure that the default value that appears in
the input uses the correct separators.

The aforementioned issue only occurs when the user changes the default
value in the paymentline. Only then does a conversion take place from
String to Number. So just clicking on a payment method of type 'Bank'
and validating it would work fine, only when the payment amount was
updated would the issue occur.

Fixes #9395
Closes #10952

note: this should not be forward-ported to >8.0 because later versions
use the rewritten payment screen which is completely different from the
one in 8.0.
2016-03-01 09:38:07 +01:00
Denis Ledoux 3bc7ea6bcf [FIX] stock: stock valuation user timezone date
When delivering a delivery order (`stock.picking.out`),
which generates accounting entries
e.g. thanks to the real-time stock valuation,
the date of the move set was the UTC today date, while it must
be the user's today date, using the timezone passed in the
context.

This prevented the delivery of the `stock.picking.out`
when the `Check date in period` boolean was checked
in the stock journal, and the user date is in the previous
month compared to the UTC date, as the date set on the move
entries were not in the selected period for these move entries.
e.g. When the user timezone is UTC -8, and his current time is
2016-02-29 18:00:00, the UTC date is 2016-03-01 02:00:00, the
period chosen is February (correct), but the date on the move
entries were set to 2016-03-01.

opw-670820
2016-02-29 18:33:55 -07:00
Odoo Translation Bot 8c278a4e4a [I18N] Update translation terms from Transifex 2016-03-01 00:29:04 +01:00
Jeremy Kersten 2d1db7dcf7 [FIX] sale: fix form view where label column take all the available space.
introduce by commit xxx

close xxx
2016-02-29 17:16:49 +01:00
Denis Ledoux 479f6ff48e [FIX] point_of_sale: tz fallback
The user timezone fallback in case the user
has no timezone wasn't set at the right place.

This is an oversight of the revision
9f0120d73b

opw-670778
2016-02-29 16:56:29 +01:00
Denis Ledoux cca44bdff3 [FIX] gamification: missing model in email template
Therefore, the template could be seen from
the Discuss module, when clicking on "Send Mail",
but, when attempting to use it, it failed
(as it was not applied on the right model).

opw-670546
2016-02-29 15:39:45 +01:00
Nicolas Martinelli f994be0e85 [FIX] report_intrastat, l10n_be_intrastat: period
The intrastat report period should match the accounting period of the
invoice. This might not be the case if the user manually chooses an
accounting period which does not match the invoice date.

opw-668827
2016-02-29 11:48:46 +01:00
Christophe Simonis f03eee7480 [MERGE] forward port of branch saas-6 up to d5dcfcb 2016-02-29 11:43:00 +01:00
Christophe Simonis d5dcfcbd00 [MERGE] forward port of branch 8.0 up to feedb0f 2016-02-29 11:37:34 +01:00
Jeremy Kersten 63fd73d83d [FIX] base_geolocalize: remove useless dependencies
close #11132
2016-02-29 11:33:21 +01:00
Nicolas Martinelli 9af45ffa05 [FIX] account: post move in reconciliation
When an analytic account is specified in the reconciliation, the
analytic lines are not created. This is because the account move is
posted before the account move lines are actually created.

Fixes #10951
opw-670110
2016-02-29 11:29:18 +01:00
Joren Van Onder feedb0f1f4 [FIX] point_of_sale: get the correct logo when using multiple databases
In an environment where multiple database are available the company_logo
controller in the web module will return a placeholder logo (the Odoo
logo) if it can't figure out what db the request belongs to. This logo
is used on the ESC/POS receipts.

Because we load the logo with an anonymous CORS request there is no
authentication on the request. This is necessary because the POS tends
to not be served over HTTPS whereas the rest of Odoo is. Without this
crossOrigin attribute we could potentially end up in a situation where
the canvas is considered tainted by the browser which would prevent us
from extracting the canvas' data with toDataURL(). So removing the
crossOrigin attribute is not an option, specifying the db is the next
best thing.

opw-670471

note: in >=9.0 session is a variable defined in the js module instead of
a property on PosModel, so 'self.session.db' should become 'session.db'.
2016-02-29 09:57:39 +01:00
Nicolas Martinelli bfa68b433c [FIX] mrp_operations: planned end date in Gantt
It is necessary to define the date_stop, otherwise the Gantt view is
unusable.

opw-669042
2016-02-29 08:58:52 +01:00
Nicolas Martinelli 5cfbd97689 [FIX] stock: move package
Moving a whole package (option "Allow moving packs") results in a
traceback. Indeed, the method `_get_all_products_quantities` returns
product ids, while `_create_extra_moves` expects browse records.

opw-668180
2016-02-29 08:35:58 +01:00
Odoo Translation Bot 9f073102ef [I18N] Update translation terms from Transifex 2016-02-28 03:00:41 +01:00
Odoo Translation Bot 39d7abae26 [I18N] Update translation terms from Transifex 2016-02-28 00:34:20 +01:00
Thibault Francois 4c1c1ec4d4 [FIX] web_kanban: float_time widget did not work
`instance` was undefined in this context, probably
following a forward-port mistake
2016-02-26 18:56:49 +01:00
Olivier Dony 602f3423c1 [FIX] crm.activity.report: consider all messages as activities
When counting the 'activities' on each opportunity/lead,
this view only considered messages with a subtype that
matched the subtype of a specific crm.activity.

This was not consistent with the crm.opportunity.report
which counted *all* messages on an opportunity as
"activitiy entries".

The latter is considered better because any entry,
(even automated one for tracking field value changes
or automated system responses) corresponds to an "action"
taken on that record.

This patch makes crm.activity.report consistent with
this decision: it will now count all messages.

+ also convert the incorrect `left join` to a plain
[inner] `join`, as we don't want deleted leads to
appear in case orphan messages were left around
(which should not happen anyway).
2016-02-26 18:56:49 +01:00
Olivier Dony c5b879bfd2 [FIX] crm.opportunity.report: query performance
Using a subselect is more efficient than constructing
a complete temporary table of all messages, and then
joining them. This way only messages or relevant
opportunities are used, as most of the time the
report is accessed for a specific subset of opportunities
(by date, salesman, stage, etc.).
The query planner can then use the dedicated index
to quickly access the corresponding messages.

On a sample database with 1 million crm.lead
entries and 10 million mail.message entries
this brings the time for a typical read_group
call on crm.opportunity.report down from 300s to
500ms (600x faster)
2016-02-26 18:56:49 +01:00
Christophe Simonis c9751aff03 [MERGE] forward port of branch 8.0 up to c3a05d0 2016-02-26 16:23:12 +01:00
Christophe Simonis c3a05d0516 [MERGE] forward port of branch 7.0 up to 9f0120d 2016-02-26 16:22:38 +01:00
Jérome Maes de9342fac4 [FIX] ir_attachment : potential buggy comma
Copy/paste mistake and the comma stays at the end of the line. This
causes a wrong affectation : indeed, `index_content` gets a tuple with
the desired value. This does not cause crashes, and the representation
of the tuple is correctly stored in database, but this is not the
expected behavior.
2016-02-26 16:09:36 +01:00
Thibault Delavallée 920ada7054 [FIX] website: wrong computation of view
get_template should accept ids or xml ids. However the id or xml_id is given
to IrUiView.get_view_id that waits for an xml_id. get_template crashed if it
received an id.

This commit solves this by setting view_id to the given id, or resolve the xml_id
through get_view_id.
2016-02-26 15:45:49 +01:00
Damien Bouvy a0bc204bb1 [FIX] payment: missing right for users on payment method
Let's be consistent, shall we?

If portal users can delete their own card, employees should have
the same rights.
2016-02-26 13:48:19 +01:00
Damien Bouvy c9a1d4d01c [FIX] payment: missing delete right for portal user
Portal users should be able to delete their credit card/payment method.
This ACL in combination with the ir.rule allows them to do so.
2016-02-26 13:43:05 +01:00
Josse Colpaert 45d4bd04cb [FIX] purchase: the stock should be valued without the taxes included from the purchase order line
From issue 660592. (already fixed in v9)  When products are received from a purchase line
with taxes included, the cost for the stock valuation (on the stock move) on reception
should be without these taxes included.
2016-02-26 11:45:22 +01:00
qdp-odoo bec9c19a2d [FIX] account: unreconciling a journal item partially that has a currency difference linked was not allowed because the exchange rate was still linked to another line, and thus couldn't be reconciled with its reversal 2016-02-26 11:23:26 +01:00
qdp-odoo 395c4bdc69 [ADD] account_full_reconcile: module that reintroduce the concept of full reconciliation, to have a named reference on journal items 2016-02-26 11:23:26 +01:00
Anton Chepurov 1d269d20f2 [FIX] website: sitemap scalability
Checking url_list for duplicates is O(n).
Use url_set instead of url_list to improve to O(1).

Otherwise sitemap generation even for a million products will never finish.

Close #11106
2016-02-26 09:48:12 +01:00
Jeremy Kersten cfcf8bb318 [FIX] product: avoid traceback when product had no variant.
Compute price with a product template without product product
raises a traceback: index out of tuple
2016-02-26 09:47:48 +01:00
Damien Bouvy 89df4aa5ec [FIX] sale: when creating the invoice, call the additional fields helper function
This function is there to avoid creating link modules, it is extended
by account modules and should be called by methods that create invoices.

This call was missing in sale.
2016-02-26 09:15:36 +01:00
Damien Bouvy 550fa2650a [FIX] account_asset: do not overwrite self.asset_category_id if it's already defined
The function _set_additional_fields is used to avoid creating a ton
of auto-install modules; account extension extend this function and
modules that create invoices call it.

But when calling this function, it would be better not to overwrite
existing values; hence this check.
2016-02-26 09:15:36 +01:00
Joren Van Onder a565f35bae [FIX] pos_mercury: get rid of debug in template
Been in there since the introduction of the module at 04fb3dfc. Didn't
really affect anything as long as you don't have developer tools open
while you're printing a ticket on the POSBox. This explains why it has
remained unnoticed for this long.
2016-02-25 16:18:26 +01:00
Nicolas Martinelli 16f698f6be [FIX] sale_margin, delivery: margin at creation
The `purchase_price` is filled in automatically thanks to the onchange
method `product_id_change_margin`. However, when a SO is created
programatically, it is necessary to call manually the method in order to
fill in the field. This is not convenient since the module sale_margin
might not be installed, and crappy workaround (such as the use of
`hasattr`) are necessary.

To avoid this, this fix automatically computes the purchase price at
creation if no value is provided.
2016-02-25 15:46:09 +01:00
Nicolas Martinelli 67edccbc7f [FIX] sale: wrong forwardport
This reverts commits ca40236 and 4ed5d65. The commits were developed in
v8.0 and were not meant to be forward ported to 9.0.
2016-02-25 15:45:58 +01:00
qsm-odoo 813b6a84ab [FIX] web_tip: tip inside button
In FF, there cannot be a clickable element inside a button tag. So the
tip on the icon in a button_box button was not able to be dismissed.

The tip selector is changed so that the highlighted element is the
button itself and not the icon it contains.
2016-02-25 15:23:59 +01:00
Denis Ledoux 0eb9772ab8 [FIX] calendar: rrule computation of private events
If an event is private, a bunch of fields
are hidden for the users not being
the owner of the event, even for sudo.

The fields on which depends the `rrule`
computation were part of the hidden/private
fields.

In addition, the `rrule` is always computed
as sudo. See `_get_rulestring`.

Therefore, the `rrule` of recurrent private events
was not correctly computed when the owner wasn't
the administrator.

opw-670295
2016-02-25 15:21:42 +01:00
Denis Ledoux e7ca2ca3da [FIX] purchase: delivery quantities with BOMs, expected singleton
`self` is the variable with all the purchase order lines,
`line` is the variable with the current line in the loop iteration.

This is expected to get the line quantity. Having written
`self` instead of `line` is an oversight of the revision
0923d1609d

opw-670502
2016-02-25 14:12:12 +01:00
Denis Ledoux b848745c45 [FIX] account: mis-aligned taxes in the invoice report
When printing an invoice, the taxes were not aligned
with the `taxes` column header.

opw-670495
2016-02-25 13:21:33 +01:00
Denis Ledoux 4a65bc384e [FIX] account: better error message when emptying journal account number
The account number field on a journal is a related field to the
number of the bank account associated to the journal.

As the number of a bank account is a required field,
any attempt to empty it from the journal fails.

Besides, unlinking the bank account from the journal when emptying
the account number on the journal form doesn't seem to be
the appropriate behavior. Imagine you give an account number
to the journal, then empty it, then re-fill it, you probably
do not want the journal entries to be associated to a new bank account,
you probably wanted the same bank account, but renamed, while
it would be the case if we simply unlink it.

If you would like to delete the bank account, you have
to do it from the bank accounts list itself.

opw-670472
2016-02-25 12:56:57 +01:00
Denis Ledoux b9f206953e [FIX] product: price list report without purchase access rights
Pass the fields parameter in the call to the `read` method,
so it fetches only the needed fields:
 - Better performances,
 - Avoid possible access rights issues.

In this case, it wasn't possible for a user
having no access rights to the purchase module
to print this report.

opw-670449
2016-02-25 12:08:40 +01:00
Denis Ledoux 8e2a309961 [FIX] res_bank: address format in form view.
Apply the layout as done in the revision
faa14705ed
in the different form containg an address.

opw-670433
2016-02-25 11:31:00 +01:00
Nicolas Martinelli 07ab3543be [FIX] sale_mrp, purchase: delivered quantity
The quantity delivered must be converted in the product UoM of the BoM
line. Indeed, the UoM of the BoM line can be different from the UoM of the
product which is manufactured.

opw-669764
2016-02-25 09:57:45 +01:00
Nicolas Martinelli 74eb4cfc30 [FIX] sale_mrp, purchase: BoM quantity
The method `_bom_explode` requires a quantity in the UoM of the BoM.

opw-669764
2016-02-25 09:57:37 +01:00
Jeremy Kersten 9ecd80eaeb [FIX] website: sitemap fix length
Iterator was consuming the first 45k records.
So don't need to specify an offset, because that will ignore the next 45k.

Eg: if step of 5, and range(1,13),
it will only use [1, 2, 3, 4, 5, 11, 12, 13]

Cherry-pick/backport of de8296c3a8
2016-02-25 09:26:56 +01:00
Christophe Simonis c169c59e69 [FIX] base_import: adapt forward-ported test to v9 2016-02-24 18:45:51 +01:00
Denis Ledoux 9f0120d73b [FIX] point_of_sale: Sales Details timezone
The Sales Details report wizard gives the possibility
to print the details of the POS orders between two dates.

The fields in the wizard are of type `date`,
while the orders dates are of type `datetime`.

`00:00:00` and `23:59:59` were naively added
to the `date_start` and `date_end` (respectively) to
handle the case.

But, this doesn't take care of the user time zone:
When a user choose between February 24th and February 25th,
it's within his time zone, and therefore, for the search,
where the datetime are in UTC, adding `00:00:00` isn't enough,
the dates have to be converted from the user time zone
to UTC.

opw-6698831
2016-02-24 18:26:08 +01:00