Commit Graph
102707 Commits
Author SHA1 Message Date
Olivier Dony f76f4cd0b6 [MERGE] Forward-port 9.0 up to 7f2e748a22 2016-07-01 18:36:24 +02:00
Raphael Collet f4677cf2a6 [FIX] account, purchase: keep model 'mail.compose.message' transient 2016-07-01 16:04:55 +02:00
Raphael Collet 4ee6adf4b2 [IMP] models: model extension may not change kind (abstract, model or transient)
This prevents a model extension from:
 - changing an abstract model to a non-abstract one,
 - changing a transient model to a non-transient one or vice-versa.
2016-07-01 16:01:04 +02:00
Simon Lejeune 7f2e748a22 [REV] base: allow 'render' override with new api
Using a frozendict as context breaks the `t-lang` mechanism, as
the `loader` is not aware of the changes of a copied frozendict
and thus is still using the values from the original context,
including the lang one.

This reverts commit e1deae7eab.
2016-07-01 15:41:39 +02:00
Nicolas Martinelli 9a7ed7cabd [FIX] sale_mrp: COGS in case of kit
When a kit is sold, the unit price of the COGS recorded is the sum of
the unit prices of each component multiplies by the quantity sold.
Obviously, this is not correct since the unit price should not take into
account the quantity sold.

opw-681403
2016-07-01 11:05:28 +02:00
Olivier Dony 61a9cdc3f8 [FIX] account: fix unclear wording for Net EOM payment terms
The previous wording was inaccurate and made users think it
was impossible to setup "Net EOM" payment terms.

Updated POT file accordingly, but not PO files because this
requires a proper new translation.
2016-06-30 18:11:51 +02:00
Goffin Simon 31fb5275fd [FIX] product_extended: bom_count appeared twice in a view
The field bom_count appeared twice in product.template form view and
then the smart button for "Bill of Materials" always displayed 0 as
number of BoMs.

opw:681830
2016-06-30 15:28:04 +02:00
Goffin Simon bdec480434 [FIX] account: _compute_base_amount
When computing the base amount of a tax, all the include base amount
taxes must be considered.

Closed #12481

opw:681102
2016-06-30 15:12:13 +02:00
Yannick Tivisse 692d41c686 [IMP] Classified each module in its category to display them correctly on odoo/apps
To be displayed correctly on odoo app (In a given category and not only in all or hidden)
the module category in the __openerp__.py file should be one of these:

    "Accounting",
    "Discuss",
    "Document Management",
    "eCommerce",
    "Human Resources",
    "Industries",
    "Localization",
    "Manufacturing",
    "Marketing",
    "Point of Sale",
    "Productivity",
    "Project",
    "Purchases",
    "Sales",
    "Warehouse",
    "Website",
    "Extra Tools",

'Accounting & Finance' will not work, as 'Project Management', ...
2016-06-30 13:27:46 +02:00
Yannick Tivisse 2f020dc8b9 [IMP] Remove 'author' field in __openerp__.py files to user default value 2016-06-30 13:27:46 +02:00
Denis Ledoux 7c9ab02c53 [FIX] website_event: make Attendee # translatable
On the website,
when registering for an event with ticket,
the placeholder `Attendee #` could not be translated,
as `t-att` attributes are not translated.

An alternative is to put the string to translate
in a `t-set` node, which can be translated, and
to use the variable assigned in this `t-set`
in the `t-att` attribute.

opw-678758
2016-06-30 13:01:27 +02:00
Denis Ledoux bc2a06c019 [FIX] http, website_form: preserve form input values order
By default, werkzeug doesn't preserve the order
of the parameters sent to routes.

As stated in the werkzeug documentation:
```
parameter_storage_class

the class to use for args and form.
The default is an ImmutableMultiDict which supports multiple values per key.
alternatively it makes sense to use an ImmutableOrderedMultiDict
which preserves order or a ImmutableDict which is the fastest
but only remembers the last key.
It is also possible to use mutable structures, but this is not recommended.

New in version 0.6.

```

For some of our use cases, it makes sense to keep the order
of the route parameters.

e.g. In the website builder, when building a form
with a bunch of inputs values that will be concatened
in a lead note, the user expects the answer to be displayed
in the same order than the form inputs.

This change is seen as a bit risky as it could lead to
performances issues in the http routes processing, and this
is the reason we do not merge this in stable 9.0 at the moment.

If needed, it could be back ported later to 9.0, after
several weeks/months of testing in this release(saas-10 atm).

opw-677508
2016-06-30 10:45:55 +02:00
Nicolas Martinelli a4e4881f4c [FIX] website_portal: missing kwargs
The route "/my/home" is missing kwargs, therefore switching to debug
mode or trying to translate leads to a traceback.

opw-681380
2016-06-29 16:39:51 +02:00
Goffin Simon 58bdc39fb8 [FIX] product_extended: bom_count appeared twice in a view
The field bom_count appeared twice in product.template form view and
then the smart button for "Bill of Materials" always displayed 0 as
number of BoMs.

opw:681830
2016-06-29 11:58:54 +02:00
Nicolas Martinelli cef9759c31 [FIX] account_extra_reports: partner of other company
Printing the report "Sale/Purchase Journal" leads to an access error if
one of the partner of an account.move.line is from another company.

opw-681104
2016-06-29 11:34:44 +02:00
Nicolas Martinelli 4c4b0b6e1f [FIX] doc: RHEL-based installation
The instructions to install Enterprise version on RHEL-based
distributions are not correct.

opw-681767
2016-06-29 11:08:23 +02:00
Nicolas Martinelli dd233bd40e [FIX] mail: message order
It might happen that a transaction produces more than one message in the
chatter. In this case, the messages are created with the exact same
date, and they might appear in the wrong order in the chatter.

We therefore sort the messages by id, and not by date. Note that the
messages are already sorted when received from the server, but the web
client has its own management of the messages' order. Relying on the
server order might imply to change other parts of the code on client
side, which is something we want to avoid on a stable version.

opw-681049
2016-06-29 10:23:29 +02:00
Goffin Simon 1d843884e8 [FIX] account: Empty list with get_default function in "ir.values"
The function get_default in "ir.values" can return an empty list.
This is why checking that the result of this function is a list was not
enough.
2016-06-29 09:25:48 +02:00
Adrien Dieudonne 1ec2e4b22d [IMP] mail: limit number of messages fetched to 25 2016-06-29 08:36:41 +02:00
Nicolas Martinelli 506c161990 [FIX] stock: appropriate chatter log when picking done
Commit d349584 solved the state change tracking of pickings, and
moreover prevents unnecessary state changes to be recorded. However,
this also prevents the state "Done" to be recorded in the chatter.

Saving properly the state change for the picking might be quite tricky,
since the stock processes sometimes imply unreservation/rereservation of
quants, and therefore lead to several state changes inside the same
process.

opw-680343
2016-06-28 16:13:34 +02:00
Denis Ledoux 8e9187e746 [FIX] account: partner ledger report, _lang_get
From revision 2483327236
`_lang_get` returns a browse record

opw-682034
2016-06-28 15:24:23 +02:00
Nicolas Martinelli 6d51bce057 [FIX] account: money in/out in PoS
It is not possible to take money out or put money in for a PoS since it
leads to a traceback.

The decorator `@api.one` returns a list, which is something we don't
want when the method returns a dictionary.

opw-681417
2016-06-28 14:17:39 +02:00
Christophe Simonis 841aa4e208 [MERGE] forward port of branch 9.0 up to 3e15b86 2016-06-28 14:10:35 +02:00
Martin Trigaux 3e15b86428 [FIX] point_of_sale: do not insert related fields on one2many
fields ref, journal_id and date on account.move.line are all related fields on
the account.move.
Setting a value here is then useless and triggers write on the account.move
after the creation of the account.move.line (inverse values in write)
2016-06-28 13:23:41 +02:00
Martin Trigaux 5d9e4b7858 [FIX] account: performances of map_tax
break on first match instead of checking other Tax Source that will not match
anyway.
2016-06-28 13:23:41 +02:00
Martin Trigaux 173b76c7bb [FIX] point_of_sale: performance and invalidation
Function fields, old-api style, that are not stored do not have cache
invalidation mechanisms. This means that they are recomputed every time the
field is accessed.
Due to the way the cache behaves, the records that are present in the cache will
be included when the prefetching is done.

In the scenario of the a POS session being closed, this implies that the cache
will contains more and more account.move.line records and try to prefetch all
(hopefully max 1000) without ever relying on the computed result for the next
access. This makes the computation of fields `amount_total` and `price_subtotal`
very slow, even for orders with a very low number of lines.

Backport the new API migration of these computed field to benefit from depends
mechanism and keep the computed value into cache when needed.

In master these fields should be stored.
2016-06-28 13:23:41 +02:00
Christophe Simonis 10550aa5a5 [MERGE] forward port of branch saas-6 up to e68ed41 2016-06-28 13:11:35 +02:00
Christophe Simonis e68ed417b6 [MERGE] forward port of branch 8.0 up to 3e965ec 2016-06-28 12:23:54 +02:00
Martin Trigaux cbbc90fc2e [FIX] website_payment: access parent payment method
On the other routes (e.g. /my/, /my/contract/) payment information on the parent
contact are displayed but can not be access in the my payment route.
You get in a unconsistant situation where you can access the contract of the
company and its payment information but can not use this payment information.

opw-681491, opw-681502
2016-06-28 12:16:41 +02:00
Goffin Simon 8ec03fde14 [FIX] point_of_sale: _check_unicity
A violated python constraint must raise a validation error.
This is expected by function _validate_fields.

opw:681212
2016-06-28 10:43:30 +02:00
Nicolas Martinelli 77212863b1 [FIX] stock, sale_stock, portal_stock: picking access
An access error occurs when a the delivery address of a SO is set to a
different partner than the SO partner. In this case, the picking
created is associated to the partner of the delivery address. This is an
issue when the SO partner tries to view the picking from the front-end
("My Account"), since he is not allowed to access it.

opw-681341
2016-06-28 09:10:55 +02:00
Martin Trigaux cc4f8df99f [FIX] account: compute total invoice in batch
The computation of the total_invoiced field did not work in batch mode.
When displaying a company in a form view (field invoice_total comptued), the
children of this company are present in the cache and the value of the field
invoice_total will be prefetched for these children as well (at least in 9.0).
Most of the time this is redudant information and the same value is computed
for each child while most of the invoices are on the parent.

Batching the computation per partner allows to make one global query for all
partners.

Add test to make sure the total increase correctly after a test invoice
confirmation.
2016-06-27 17:20:05 +02:00
Denis Ledoux 9062c01c02 [FIX] web: pager page on next/previous record
When browsing a form with a one2many / many2many field
with several pages, the one2many pager page was not reset
when going to the previous/next record, while the next/previous
record could not have multiple pages on its one2many/many2many,
and the page on which the user was on the former record could
not exist in the newly displayed record.

Besides, even if the page does exist, there is no reason
to display this new record X2many value from its first page.

It's the case anyway when you edit/save, it comes back to the first page.

opw-679092
2016-06-27 16:50:47 +02:00
Martin Geubelle f8ca7634ca [FIX] base: rate with correct current user's company
Bug introduced in 7eab8e2.

As `self.env.user` is browsed with `sudo`, the result of this call
will always return the admin's current company and not the user's current
company.

opw-681809
2016-06-27 16:20:47 +02:00
Goffin Simon d577eeaa6e [FIX] product: pricelist items
With the pricelist, it is possible to define a pricelist just for
a variant. But in the product.product.form, only the pricelist items
linked to the product template could be displayed.
The field item_ids has been created in product.product model to display
all the pricelist applied on a product.

opw:674700
2016-06-27 15:47:58 +02:00
Nicolas Martinelli 3229629579 [FIX] stock: reserved quants in lots
Let's take the following case:
- Enable lot tracking on a product
- Costing Method is "Real Price", Inventory Valuation is "Perpetual"
- Create a picking with 2 stock moves, each stock move is linked to the
  same product

When the picking is validated, 4 account moves are created instead of 2.

This occurs because the list of stock moves and the list of reserved
quants is sent to the method `_move_quants_by_lot`, but there is no
check to which stock move is related a given quant.

For most cases, the issue doesn't show up since there isn't usually 2
stock moves with the same product in a given picking. There is at least
one use case where this happens: selling a pack of two identical
products. In this specific case, 2 stock moves of the same product are
created, but one pack operation will merge the 2 stock moves.

opw-680308
2016-06-27 12:19:08 +02:00
Martin Trigaux 5abcbf0eb2 [FIX] js: translations and string substitutions
_('foo '+bar) does not work as `bar` is a variable with undefinied content
during translation export (and variable content during evaluation) so a match
will not be found.
Also trailing spaces are stripped during synchronisation with transifex.

The proper syntax would be
_.str.sprintf(_t("foo %s"), bar)
but to avoid breaking existing translations (need to reexport .pot)
use the syntax
_("foo ") + " " + bar
that is more stable friendly.

The 'No value found for the field...' string is not possible to be fixed without
breaking the translations should be split at least twice.
Write it the propre way directly.
2016-06-27 12:05:36 +02:00
Denis Ledoux 0fa052cc1e [FIX] l10n_generic_coa: remove liquidity account templates
These accounts are created automatically on the journals creation
e.g. On the creation of a Bank Journal, a Bank account is automatically
created, linked to this journal.

Before this revision, when installing the generic chart of account
(or l10n_us), you had two Bank accounts (101400, 101401),
and two Cash accounts (101500, 101501),
by default,
which is not right.

opw-676950
2016-06-27 11:21:35 +02:00
Stéphane Bidoul e30ea5647d [IMP] account: adding the invoice.tax.line id in tax_line_move_line_get() to allow inheritance.
Was PR #12576. Courtesy from sbidoul
2016-06-27 10:55:07 +02:00
qdp-odoo 0a6afa1ff1 [FIX] account: grouping tax lines on invoices when no tax account is set on them. Fixes #12561 2016-06-27 10:55:07 +02:00
Martin Trigaux c20ec2ced6 [FIX] website: truncate description at 160
Search engines (or one at least) truncates the description at 160. The advised
size is between 150 and 160 so no need to force a smaller size. It's a good
idea to keep it at 155 but larger sizes should be allowed.
cf: https://moz.com/learn/seo/meta-description

We could fully remove the limit as there is corner cases where a longer size is
used (https://moz.com/blog/i-cant-drive-155-meta-descriptions-in-2015) but this
should be in addition with an indication for the user of the current size and
the advised size.
2016-06-27 09:55:25 +02:00
Odoo Translation Bot 3e965ecf58 [I18N] Update translation terms from Transifex 2016-06-26 02:57:50 +02:00
Odoo Translation Bot 765b3fc6ac [I18N] Update translation terms from Transifex 2016-06-26 00:29:54 +02:00
Stéphane Bidoul (ACSONE) ee3666237a [CLA] add Denis Roussel in Acsone CCLA
Closes #12570
2016-06-24 14:31:00 +02:00
engelant b00ba0b6db [CLA] signature for engelant
Closes #12551
2016-06-24 14:28:09 +02:00
Nicolas Martinelli 44d23c371c [FIX] crm, sales_team: expected closing
On the Sales Team dashboard, clicking on "exp. closing" will show all
opportunities, not only the one which are supposed to be closed.

opw-681048
2016-06-24 13:43:58 +02:00
Christophe Simonis 4030f2fd32 [MERGE] forward port of branch 8.0 up to 297bbff 2016-06-23 16:21:28 +02:00
Nicolas Martinelli 5ca8f08730 [FIX] purchase: scrap instead of receive
The button scraps the products, so the tip should reflect this behavior.

opw-680788
2016-06-23 16:06:57 +02:00
Nicolas Martinelli 162edf276c [FIX] account_asset: depreciation start date
If the depreciation is not prorata temporis, the start date is defined
as:
- 1st of purchase month if frequency is < 12 month
- 1st of January instead

opw-681564
2016-06-23 15:08:02 +02:00
Nicolas Martinelli b114c9e681 [FIX] purchase_requisition: link stock.move to procurement
When a purchase requisition is created from a procurement, the
subsequent stock moves (create from the PO lines) are not linked to the
original procurement/stock moves.

This is an issue in the following use case:
- Product "Assembly" configured in MTO and manufactured
- Product "Part" configured in MTO and bought from suppliers thanks to
  purchase requisitions
- A BoM is created for "Assembly" and is build from "Part"

When "Assembly" is sold, a MO is created, which generated a purchase
requisition for "Part". The MO is in state "Awaiting for Raw Materials"
since we need to purchase the components.

However, when the components are purchased and received, the MO stays in
the same state since there is not link between the stock move received
from the PO and the stock move created for the MO. The MO is therefore
stuck in "Awaiting for Raw Materials" state.

The fix is to keep track of the original procurement and stock moves.
Ideally, we should link the procurement to the PO lines, but that is not
possible since the field `purchase_line_id` on the procurement is a
Many2one. Therefore, we need to hook the confirmation process and
manually link the stock moves related to the PO to the stock moves
related to the MO.

opw-681138
2016-06-23 12:19:14 +02:00