Skip to content
Branch: 12.0
Commits on Apr 18, 2019
  1. [FIX] purchase: locked purchase orders are billable

    kebeclibre committed Apr 18, 2019
    Before this commit, when the PO was locked:
    - the button create bill did not appear on the form view
    - on the invoice form view, the field autocomplete did not mention the PO
    After this commit, the button create bill is present, and the PO appears in
    the auto-complete field of the Vendor bill
    OPW 1970537
    closes #32794
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 17, 2019
  1. [FIX] web_editor: insert br within a p

    kebeclibre committed Apr 17, 2019
    Have a fieldHTML as:
    Some text
    More text
    In the Html field widget, place your cursor before the "M"
    press Enter to insert a newline
    Before this commit "Some text" and the subsequent `<br>` were deleted
    This was because the code:
    - split the original `<p>` into two
    ( i.e. it became
    Some text
    More text
    - took the last child of the first p, which is a text then fell back to the first p
    - replaced the whole p with <br>
    After this commit, the original p is still split, but we append the br to it instead of replacing it
    closes #32777
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 16, 2019
  1. [FIX] calendar: templates with right lang

    kebeclibre committed Mar 11, 2019
    Before this commit, the standard mail templates for calendar
    did not have a language
    After this commit, we set it to the the partner's language
    OPW 1946686
    closes #32717
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 15, 2019
  1. [FIX] web: search view handles JSON parsable domains

    kebeclibre committed Apr 15, 2019
    Before this commit, a domain that had been written in order to be
    JSON parsable, would trigger a JS crash when activated in the UI
    It happens when adding custom filters through the edition of the search view with studio
    This was because, Odoo developers write, in the XML of a search view
    domains python style: `[('field', '=', 'value')]`
    When parsing the view in JS, this doesn't get altered by `xml_to_json`
    Then, the search view code evaluates it python style
    This commit considers that behavior fortunate, but not really clear or conceptually correct
    But, when customizing a search view with studio, the domain is written by the code, in JS
    JSON parsable format `[["field", "=", "value"]]`
    This should be supported too, as so many customizations may have been done before hand
    After this commit, both expressions are supported by the filters menu
    OPW 1957297, 1960732, 1965649 (at least)
    closes #32690
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 10, 2019
  1. [FIX] web: FieldFloatToggle cell multi language

    kebeclibre committed Apr 10, 2019
    Have a timesheet uom per Day
    Have a language with a different number format than English
    Click on grid cell to change its value
    Before this commit, the value was stuck on the highest value in range
    This was because the parsing of the value into float was not taking into account
    the real format of the float
    After this commit, it works in all languages
    OPW 1964657
    closes #32581
    Signed-off-by: Lucas Perais (lpe) <>
  2. [FIX] account: cash basis reconciliation almost all amount

    kebeclibre committed Mar 25, 2019
    In multicurrency
    Do an invoice with cash basis lines in the foreign currency
    Make a payment for almost all the invoice
    "almost" refers to the point where virtually all taxes will be paid
    i.e., paying 90 over 100, that contains a tax of 5%
    The tax paid will be an amount almost equal (to a few cents) to the
    total amount of the tax
    It is not negligible, but if the currency rates are in the right configuration
    (i.e. 0.005888)
    Before this commit: the Cash Basis reconciliation will be considered as full and will trigger
    the creation of the Exchange Diff Entry.
    In turn, paying the rest of the invoice will pop up an error saying that some entries are already reconciled
    (with the Exchange Diff entry)
    It is not *that* that an exchange rate entry has been created the first time
    after all, a percentage sufficiently close to 100 has been paid
    But it blocks subsequent reconciliation, hence this fix
    After this commit, if the cash basis entry doesn't match at least 100% of the paid move
    then, we force to not check for full reconciliation
    OPW 1953027
    closes #31168
    closes #32023
    Signed-off-by: Lucas Perais (lpe) <>
  3. [FIX] account: tests reconciliation helper class

    kebeclibre committed Mar 25, 2019
    Before this commit, test reconciliation was inherited by
    test reconciliation widget.
    It made the actual test_xx functions of the former
    being executed twice
    After this commit, we create an intermediary test class for setUp and helpers
    And the tests for each class execute only once
  4. [FIX] account: revert move subjected to cash basis

    kebeclibre committed Mar 21, 2019
    Before this commit, when reverting a move
    that will be subjected to the creation of a cash basis move
    the process failed saying that some entries were already reconciled
    That was because the process tried to create the cash basis move during
    the revert.
    This is  wrong, because no real cash is dealt with.
    After this fix, the move lines of the original entry are reconciled
    only with their revert counterpart
    OPW 1938809
    closes #30972
Commits on Apr 9, 2019
  1. [FIX] board: fixed height for graph svg container

    kebeclibre committed Apr 8, 2019
    Commit 9214d78 is a bit old and made
    huge white spaces between graphs
    Commit 89931d1 introduces
    a dedicated svg container, on which we can set a fixed height
    The 250 px comes from what is being done in the web_dashboard app
    with commit odoo/enterprise@1638e5d
    OPW 1944857
    closes #32522
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 5, 2019
  1. [FIX] stock: constrains should raise ValidationError

    kebeclibre committed Apr 5, 2019
    Before this commit, some constrains rose UserError
    Which is not compliant with the api.constrains
    After this commit, the constrains raise ValidationError
    OPW 1949572
    closes #32444
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Apr 3, 2019
  1. [FIX] odoo: patch babel for "World" language territory

    kebeclibre committed Apr 2, 2019
    Following c844d66
    where generic Arabic (World) is coded ar_AA
    but babel doesn't support this
    Instead, babel understands xx_001 for World generic languages
    OPW 1961396
    closes #32344
    Signed-off-by: Olivier Dony (odo) <>
  2. [FIX] account, account_check_printing: print all reconciled invoice o…

    kebeclibre committed Apr 3, 2019
    …n a payment
    Make some invoices
    Make a payment
    Reconcile it with the invoices through the reconciliation widget
    Print the payment receipt and the checks
    Before this commit, neither the payment receipt nor the checks contained
    the invoices
    This was because the prints relied on only the field invoice_ids
    filled specifically when registering a payment on an invoice
    After this commit, the prints mention the invoices
    OPW 1947002
    closes #32365
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Mar 27, 2019
  1. [FIX] base: gantt rng option duration_unit

    kebeclibre committed Mar 26, 2019
    Before this commit, the duration_unit view attribute was not present in the gantt RNG
    But the JS code in the framework and in Studio allow for modifying it
    So, this commit makes it an optional view attribute
    OPW 1946216
    closes #32133
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Mar 26, 2019
  1. [FIX] account: reconciliation matching rule div by zero

    kebeclibre committed Mar 25, 2019
    Do a MISC operation representing a payment
    revert it
    Do a statement line for that amount
    Click on "reconcile" on the bank journal
    Before this commit there was a Division By Zero traceback
    This was because the bank account line had a zero amount_residual
    due to its reversion
    while the statement line was negative.
    After this commit, for liquidity lines, we take the total amount instead of the residual
    Because a reverted payment line can always be associated with a statement
    OPW 1947362
    courtesy of @smetl ( for the fix
    closes #32105
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Mar 14, 2019
  1. [FIX] l10n_fr_fec: float representation when summing

    kebeclibre authored and nim-odoo committed Mar 11, 2019
    Before this commit, it may happen that the the grouped account move lines
    sum will be business-wise "zero" but that its representation in SQL will not be
    rather, it will be equal to "10^[-high number]"
    After this commit, we round the sum to the number of digits of the company's currency
    to see if it is equal to zero, or not.
    We also need to filter out the specific case of unaffected earnings
    OPW 1942177
    closes #31755
    Signed-off-by: Nicolas Martinelli (nim) <>
Commits on Mar 11, 2019
  1. [FIX] website_sale: search abandoned cart negated domain

    kebeclibre committed Mar 11, 2019
    Search for orders that are not abandoned
    Before this commit, the same results for abandoned and not abandoned were returned
    This was because the not abandoned domain was not negated with the '!' operator that
    expression.distribute_not() relies on
    After this commit, the abandoned domain is negated
    OPW 1942311
    closes #31739
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Mar 8, 2019
  1. [FIX] web: record datapoint context without group_by or orderedBy

    kebeclibre committed Mar 8, 2019
    Have a list view, apply a group_by and a filter with a sort parameter
    Click on one record to access the form view
    Have a x2m within it
    Before this commit, the x2m records were loaded with a context containing
    the keys orderedBy and group_by
    It seems harmless at first, but even conceptually those keys should not be here
    - they apply on a list of records, and not to individual ones
    - they may contain field names not existing in the x2m model
    Hence, when accessing another list view through an action button, the list
    will try to be orderedBy or group_by with the given context
    Which is plain wrong in the first place and may cause crashes
    After this commit, the context of a record datapoint (representing a single record)
    is stripped from the keys
    Read the opw for a concrete use case
    OPW 1943583
    closes #31706
    Signed-off-by: Aaron Bohy (aab) <>
Commits on Mar 6, 2019
  1. [FIX] account: invoice compute tax group amount correctly grouped

    kebeclibre committed Mar 6, 2019
    Before this commit, when printing an invoice, the taxes were grouped
    by their tax group (NOT by their parent tax)
    Summing the base of each tax in the process.
    This was largely insufficient, as tax groups can have taxes
    with different rates or computation method within them
    The summing of the base of each tax for reach tax group was in this case plain wrong
    This commit aims at grouping by
    group > computation method > amount
    Which makes more sense
    OPW 1947202
    OPW 1945353
    closes #31617
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Mar 4, 2019
  1. [FIX] l10n_fr_fec: dom-tom excluded from EU's fiscal territory

    kebeclibre committed Mar 4, 2019
    This commit allows a Dom-Tom based company to export the FEC file out
    without needing to have a normalized French TVA set on the company
    OPW 1946623
    closes #31543
    Signed-off-by: "Lucas Perais (lpe)" <>
  2. [FIX] l10n_fr_fec: no new line at the end of file

    kebeclibre committed Mar 1, 2019
    It seems that our beloved administration is not happy with the FEC file
    ending with an empty new line
    Hence, this commit makes the FEC file last line end without \r\n characters
    and there is no empty new line
    OPW 1943302
Commits on Feb 28, 2019
  1. [FIX] account: reconciliation widget partner domain all reconcile acc…

    kebeclibre committed Feb 28, 2019
    Have an account move which lines have all the same partner
    Have a bank statement, without a partner
    Enter the reconciliation widget for the bank statement
    All the lines appear
    Select one of the lines of the account move for the partner
    Before this commit, all other lines disappeared from the proposition
    including the ones for the partner selected
    This cas because when having set a partner on the widget,
    only receivables and payables accounts were searched for
    After this commit, all account move lines for the partner are searched for
    OPW 1942936
    closes #31488
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Feb 26, 2019
  1. [FIX] website_quote: sale description in template options

    kebeclibre committed Feb 26, 2019
    Modify the suggested products of a quote template
    Before this commit, the description of the line was only filled with the
    product name
    After this commit, the sale description is included
    OPW 1945131
    closes #31425
Commits on Feb 20, 2019
  1. [FIX] sale, sale_management, website_sale: configurator option modal …

    kebeclibre committed Feb 18, 2019
    …change variant
    Part 1: Backend
    Changing an option's variant now change the product name and the image
    Part 2: Front end
    The behavior is the same as in the backend.
    For that part though, there is a huge design problem:
    the modal dialog has the class .oe_website_sale, so the widget website_sale
    reacts to events triggered in the modal.
    It is understandable given the history of the module, but a proper refactoring
    that will implement inheriting of business behaviors through OdooClass extension/overrides
    is necessary in master
    OPW 1938217
    closes #31201
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Feb 19, 2019
  1. [FIX] web: pivot unload filter, reset, load another filter

    kebeclibre committed Feb 19, 2019
    On a pivot view with a default filter which has column and row groupbys
    Remove the filter
    Collapse all columns and rows
    Activate another Filter from favorite which has a column groupby at least
    Before this commit, the columns were not displayed in the DOM, though RPC's
    and internal data were actually correct
    This was because we considered the changes had been done "in place"
    taking the old tree to build the new one for the columns
    when really, we should have recomputed the column tree
    After this commit, the columns display the group we want
    OPW 1935155
    closes #31247
Commits on Feb 14, 2019
  1. [FIX] l10n_it: change website in manifest

    kebeclibre committed Feb 14, 2019 or are not valid websites
    changing it to
    OPW 1940848
    closes #31110
Commits on Feb 13, 2019
  1. [FIX] fields: read/write company-dependent fields without…

    kebeclibre authored and rco-odoo committed Jan 14, 2019
    … access
    This is the first step to a more comprehensive handling of company-dependent
    fields which are ir_properties.
    With model-specific access rights, users should be able to read/update a
    company-dependent field no matter their access rights on ir_property.
    Before this commit, a user having access to res.partner, but not to
    couldn't write on property_account_receivable/payable just because he couldn't
    write the corresponding  After this commit, he can.
    OPW 1923345
  2. [FIX] fields: read/write company-dependent fields without…

    kebeclibre authored and rco-odoo committed Jan 14, 2019
    … access
    This is the first step to a more comprehensive handling of company-dependent
    fields which are ir_properties.
    With model-specific access rights, users should be able to read/update a
    company-dependent field no matter their access rights on ir_property.
    Before this commit, a user having access to res.partner, but not to
    couldn't write on property_account_receivable/payable just because he couldn't
    write the corresponding  After this commit, he can.
    OPW 1923345
Commits on Feb 12, 2019
  1. [FIX] point_of_sale: reconcile cash returns rather than freight returns

    kebeclibre committed Feb 12, 2019
    Revert commit 296c5a2
    which was half-right: the accounting logic is correct but it overlooked
    that it broke the reconciliation of cash returns
    i.e. the client gives more money, and you return the change
    Given that this latter use case may occur more frequently we focus on that
    while we break freight returns
    i.e. the client returns a product, and you give the money back
    It is not possible to support both use cases because
    ultimately we don't know from which order an account.move.line comes
    the related PR #23356 should support both use cases
    but adds a field on account.move.line
    OPW 1925607
    closes #31037
Commits on Feb 7, 2019
  1. [FIX] web: calendar: take locale to format dates

    kebeclibre committed Jan 24, 2019
    Backport of d9fed53
    Before this commit, when opening the calendar view with a specific locale
    in the "week" view
    the days were translated but the date format was wrong and fell back to english
    This was because the translated terms were passed explicitly, but the locale did not
    get passed
    After this commit, we do what it takes to pass the locale to fullcalendar
    and the dates are formatted with the right pattern
    Also, there may be a bug in fullcalendar, because just passing the locale in the options
    won't work, it should be instanciated first in fullcalendar's "locales cache"
    OPW 1922092
    OPW 1934127
    closes #30909
Commits on Feb 6, 2019
  1. [FIX] account, purchase, sale: notification with right lang

    kebeclibre committed Feb 6, 2019
    Have a partner in French while you operate in English
    Click on 'send by email' on a invoice/sale order/purchase order
    Before this commit:
    - The body of the mail is translated in the partner's language
    - but the notification header/footer surrounding the body was not
    This is because:
    - mail templates apply to a model
    - in the case of the notification header/footer, this model is 'mail.message'
    - mail.message doesn't have a lang field
    - at the notification rendering time, we don't have easy (and generic) access
    to the "real" model or to the lang (let alone to which lang to apply) that we need
    After this commit, the notification is translated but:
    the lang to get is hardcoded, and is the one on the partner of the inv/so/po
    and is un-coupled from the dynamic lang on the proper inv/so/po template
    This patch is hackish at several levels, I suggest that a generic solution is found in master
    If no other solution is found until then, then the patch may be forward-ported
    OPW 1935091
    closes #30873
Commits on Feb 1, 2019
  1. [FIX] website_crm_partner_assign: portal url

    kebeclibre committed Feb 1, 2019
    With a portal user, receive an email that says "Go to lead/opportunity"
    and click on the link
    The link's url is /mail/view which is the generic access controller
    Before this commit, the user is redirected to the backend,
    with fireworks of access errors
    After this commit, the portal url is opened
    As a side note, in master crm.lead should implement portal.mixin
    OPW 193509
    closes #30762
    Signed-off-by: Lucas Perais (lpe) <>
Commits on Jan 28, 2019
  1. [FIX] point_of_sale: offline invoicing => backend printing

    kebeclibre committed Jan 24, 2019
    In a pos session:
    make an order with invoicing , try to validate
        The order stays there because it needs to be validated by the server
    make another non invoiced order, validate
    make another order
        At validation, all orders will be pushed to the server
    Before this commit, when trying to validate the invoiced order
    the report download couldn't find the order id, and crashed
    This was because the order in question was already pushed
    but treated as a non invoiced order
    After this commit, an "warning" message is displayed to the customer
    saying he/she has to print the invoice from the backend.
    In most cases it is enough and acceptable, since a customer would actually leave the premises
    and come back later for the invoice
    It is also safer in terms of data consistency to keep pushing all orders once the connection is back
    OPW 1918044
    closes #30485
  2. [FIX] account: tax in right refund account

    kebeclibre committed Jan 17, 2019
    Have a tax that has a different account for refunds
    make an invoice and its refund
    Before this commit, the refund's tax is still in the old account
    After this commit, the refund's tax is in the account for refund defined on the tax
    OPW 1907950
    closes #30325
Commits on Jan 17, 2019
  1. [FIX] web: pivot correct context after reload

    kebeclibre committed Dec 11, 2018
    Open a pivot view with default filters automatically activating
    Disable those filters
    Change the groupBys on the rows and cols of the pivot
    Save your result as a favorite filter
    Before this commit, the filter did not contain the context information for columns groupby
    Also, the search view did not exploit the context of the new filter as it should be
    After this commit, the flow works as expected
    OPW 1913732
    closes #29415
  2. [FIX] base: merge contacts linked to by an o2m field with caps

    kebeclibre committed Jan 17, 2019
    Define a field on a model as:
    - o2m to res.partner
    - the field's column, hence its name, has capital letters in it
    (studio does that)
    create two objects of that class, each one linked to a different partner with the new o2m
    merge the partners
    Before this commit, the object linked to the second partner, was deleted
    This was because merge partner sql requests did not quote the column name
    After this commit, the second object still exists
    This commit is tested in v12.0 with PR #30300 only. In v10.0 it is not testable as
    the model concerned is in CRM, and that no new fields in business modules can be added in stable
    OPW 1925060
    closes #30301
You can’t perform that action at this time.