Skip to content
Snippets Groups Projects
  1. Jul 07, 2020
    • Loan (lse)'s avatar
      [FIX] website_sale: Improve shop item search performances · ec743deb
      Loan (lse) authored
      
      The idea is to avoid useless SQL request as the searching process is heavy (have to look the word in several field and can be in translation tables).
      As we at some point fetch all the searched product we do it at the beginning and use its information to gain performance on other queries.
      
      Execution time in e-shop for "test" on client database (160 000 product with 4500 published):
       - Before: ~ 7 sec
       - After:  ~ 2 sec
      
      OPW-2256662
      
      closes odoo/odoo#54196
      
      X-original-commit: 9103c889e9858d370680612a48a79b4a615e9b58
      Signed-off-by: default avatarJérémy Kersten (jke) <jke@openerp.com>
      ec743deb
  2. Jun 29, 2020
    • Anh Thao Pham (pta)'s avatar
      [FIX] mail,test_mail: fix some incorrect language translations in mail template · 554be6f4
      Anh Thao Pham (pta) authored
      - Install Calendar
      - In Settings, activate another languange (e.g. French)
      - Configure language of another user (User A) than the current one with the French language
      - At this point, the language of the users are:
        * Current User: English
        * User A: French
      - Go to Calendar and create a Meeting
      - Edit the Meeting and in Invitations tab, add User A and click on "Send mail" button
      - In debug mode, go to Settings > Technical > Emails
      The email sent to User A is in French, except for the first sentence of the body that is in English
      ("Your Calendar Attendee Information")
      That sentence is the model description that is not translated to the recipient language.
      
      opw-2269155
      
      closes odoo/odoo#53406
      
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      554be6f4
  3. Jul 07, 2020
    • jvm-odoo's avatar
      [FIX] website_slides: fix video not loaded in fullscreen web content · 0f93240e
      jvm-odoo authored
      
      Issue
      
      	- Create a content in a course with type "web page"
      	- Access it frontend and add a "text - image" block, edit the image as a video - save
      	- The video is displayed correctly
      	- Go into full-screen
      
      	The video is not displayed at all.
      
      Cause
      
      	The content is added after the page and page widgets are started
      
      Solution
      
      	Trigger the widgets start method
      
      OPW-2290233
      
      closes odoo/odoo#54135
      
      Signed-off-by: default avatarJason Van Malder (jvm) <jvm@odoo.com>
      0f93240e
  4. Jul 06, 2020
    • Denis Ledoux's avatar
      [FIX] models: prevent fields inherited from `delegate=True` to be deleted · 75515d0d
      Denis Ledoux authored
      Use case:
       - `./odoo-bin -d mydb -i website`
       - `./odoo-bin -d mydb -i base_automation`
       - `./odoo-bin -d mydb -u website,base_automation`
       ```
       odoo.addons.base.models.ir_model: Deleting 2652@ir.model.fields (base_automation.field_base_automation__website_published)
       odoo.addons.base.models.ir_model: Deleting 2651@ir.model.fields (base_automation.field_base_automation__website_url)
       odoo.addons.base.models.ir_model: Deleting 2650@ir.model.fields (base_automation.field_base_automation__website_path)
       ```
      
      The issue comes from the fact:
      - `website` adds multiple website related fields on `ir.actions.server`
        https://github.com/odoo/odoo/blob/30e94d305f9cffa816ddc213e0b9329c0263c145/addons/website/models/ir_actions.py#L16-L18
      - `base.automation` inherits by delegation of the `ir.actions.server` fields
        thanks to `delegate=True` on its field `action_server_id`
        https://github.com/odoo/odoo/blob/30e94d305f9cffa816ddc213e0b9329c0263c145/addons/base_automation/models/base_automation.py#L37
      - when `base_automation` is installed after `website`
        when `_reflect_model` is called,
        the website related fields on `ir.actions.server` are well in the `_fields` of the `base.automation` model,
        and there an xmlid for these fields is created
        e.g. `field_base_automation__website_published`
        https://github.com/odoo/odoo/blob/30e94d305f9cffa816ddc213e0b9329c0263c145/odoo/addons/base/models/ir_model.py#L881-L882
      
      
      - during the `-u website,base_automation`, `_reflect_model` on `base.automation` is called before
        the website related fields coming from its inherits on `ir.actions.server` are added in its `_fields`,
        and is not recalled after they are added, when the `website` module is loaded and these website related fields
        are added on `ir.actions.server`.
      
      Because of this, at the end of the upgrade, in the `ir.model.data` `_process_end`,
      as the xmlids of these fields have not been loaded,
      they are being deleted, because the ORM considers these fields were dropped
      from the source code because their xmlids have not been loaded during the upgrade.
      
      Adding the model `base.automation` in the `inherits_children` of `ir.actions.server`
      when the delegate field `action_server_id` is added make sure
      `_reflect_model` is called on `base.automation`
      after the website related field are loaded on the model `ir.actions.server`,
      and therefore ensure the xmlids are properly loaded,
      therefore preventing the fields deletion.
      
      Additionaly, `delegate` and `inherits` are supposed to be equivalent,
      it's just two ways to do the same thing.
      
      Before this revision,
      when using `delegate`, `base.automation` is not in the `inherits_children` of `ir.actions.server`:
      ```
      In [1]: env['ir.actions.server']._inherits_children
      Out[1]: set()
      ```
      
      while, by converting the `delegate` to an `inherits`:
      ```diff
      diff --git a/addons/base_automation/models/base_automation.py b/addons/base_automation/models/base_automation.py
      index 196ebe9965f..c073150386a 100644
      --- a/addons/base_automation/models/base_automation.py
      +++ b/addons/base_automation/models/base_automation.py
      @@ -30,11 +30,12 @@ class BaseAutomation(models.Model):
           _name = 'base.automation'
           _description = 'Automated Action'
           _order = 'sequence'
      +    _inherits = {'ir.actions.server': 'action_server_id'}
      
           action_server_id = fields.Many2one(
               'ir.actions.server', 'Server Actions',
               domain="[('model_id', '=', model_id)]",
      -        delegate=True, required=True, ondelete='restrict')
      +        required=True, ondelete='restrict')
           active = fields.Boolean(default=True, help="When unchecked, the rule is hidden and will not be executed.")
           trigger = fields.Selection([
               ('on_create', 'On Creation'),
      ```
      it is:
      ```
      In [1]: env['ir.actions.server']._inherits_children
      Out[1]: {'base.automation'}
      ```
      
      closes odoo/odoo#54119
      
      X-original-commit: 3fd162db
      Signed-off-by: default avatarDenis Ledoux (dle) <dle@odoo.com>
      75515d0d
  5. Jul 07, 2020
    • jvm-odoo's avatar
      [FIX] base_import: fix re-importing same file · 4ef5a0d4
      jvm-odoo authored
      
      Issue
      
      	Chrome
      
      	- Sales > Product
      	- Select a file
      	- Change something in the file
      	- Re-select it
      
      	Nothing changed
      
      Cause
      
      	Chrome doesn't trigger change on
      	input if the file is the same
      
      Solution
      
      	Clear the input value after the
      	parse_preview so we can load a new
      	file even if the preview failed.
      
      OPW-2288191
      
      closes odoo/odoo#54165
      
      X-original-commit: f7d2bdf6
      Signed-off-by: default avatarJason Van Malder (jvm) <jvm@odoo.com>
      4ef5a0d4
  6. Jul 06, 2020
    • lejeune quentin's avatar
      [FIX] hw_posbox_homepage: Remove format condition for refresh after uograde IoT Box · 0b27dc79
      lejeune quentin authored
      
      When we upgrade the IoT we wait that the version of box match with
      the last version of IoT Box before to refresh.
      We make a request to '/hw_proxy/get_version' to get the actual version.
      In Jinja this response give a float.
      We compare this value with a string using '===' who want that the format match.
      So we doesn't compare the format of values but only the value by putting only '=='.
      
      closes odoo/odoo#54138
      
      X-original-commit: 06f9baae
      Signed-off-by: default avatarQuentin Lejeune (qle) <qle@odoo.com>
      0b27dc79
    • Olivier Dony's avatar
      [FIX] website: restore CDN for lazy assets · 6d4b5fcd
      Olivier Dony authored
      
      The CDN implementation for resources works by matching well-know attributes
      (`href`, `src`, `action`) that hold URLs matching the CDN filters and injects
      the CDN prefix. However 13.0 introduced lazy loading for assets in #32181,
      so the attributes are now prefixed with `data-` and replaced at runtime.
      
      This PR updates the tag matching in order to cover both variants of
      attribute names.
      
      closes odoo/odoo#54144
      
      Signed-off-by: default avatarToufik Benjaa (tbe) <tbe@odoo.com>
      6d4b5fcd
  7. Jul 03, 2020
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] sale_coupon: fix step like programs discount · b2a4ee95
      Andrea Grazioso (agr-odoo) authored
      
      Create four promotion programs:
      
      if the order > 1500 than 10% discount
      if the order > 1750 than 15% discount
      if the order > 2000 than 20% discount
      if the order > 2500 than 25% discount
      
      Take a product with a price of $300 and add 5 to cart > the 10% discount
      is correctly applied.
      Add 1 more product (6) > it should now qualify for 15% discount, but it
      stays at 10%
      Add 1 more product (7) > it (correctly) gets the 20% discount
      The 25% discount does not get applied until 11 of the product is in the
      cart, even though it should qualify at 9
      If you then decrease the quantity, the right discount will
      sometimes display.
      
      This occur because when the order amount change and the new total is
      used to match the right promo the previously applied discount is not
      removed from the amount.
      This occur as side effect of
      1d59785 in which the amount has to be
      kept in order to avoid discount line removal on cart update.
      
      opw-2285656
      
      closes odoo/odoo#54034
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      b2a4ee95
  8. Jul 06, 2020
    • jvm-odoo's avatar
      [FIX] payment: fix portal can click pay when js not loaded · 0e7071f2
      jvm-odoo authored
      
      Issue
      
      	- Go to Accounting / Customers / Invoices
      	- Pick any invoice not paid
      	- Action: Generate a Payment Link
      	- Open the link
      	- Refresh the page having Javascript disabled
      	- Click the Pay Now button
      
      	Traceback
      
      Cause
      
      	If JS is not loaded, the values in the form fields are
      	not bound as expected.
      
      	It can also happen with slow connections and fast click
      	on the button at the loading. Before the JS is entirely
      	loaded (as it is lazy-loaded).
      
      Solution
      
      	Button disabled by default, wait the page to be loaded
      	and then activate the button
      
      OPW-2255760
      
      closes odoo/odoo#53904
      
      Signed-off-by: default avatarJason Van Malder (jvm) <jvm@odoo.com>
      0e7071f2
    • Odoo's Mergebot's avatar
      [FW][FIX] web: unsafe access to config property & extract lib's input setter · a62cce58
      Odoo's Mergebot authored
      
      During TempusDominus autobinding to fields matching its default classes
      (like `.datetimepicker-input` used by our DatePicker widget) and no
      config was previously provided to the library (like when we disable it
      on mobile), an unsafe access to the config's `_options` property results
      into an error as the config is `undefined`.
      
      This PR fixes it by first checking for config existence before
      attempting to access its property.
      
      It also extracts the DatePicker widget's input setter to allow
      overriding it and preventing from calling the `datetimepicker` lib when
      not initialized (like on mobile).
      
      opw-2242880
      
      closes odoo/odoo#54032
      
      Forward-port-of: odoo/odoo#54005
      Related: odoo/enterprise#11635
      Signed-off-by: default avatarAdrien Dieudonné (adr) <adr@odoo.com>
      Signed-off-by: default avatarPierre Paridans <pparidans@users.noreply.github.com>
      a62cce58
  9. Jul 05, 2020
  10. Jul 03, 2020
    • Pierre Paridans's avatar
      [FIX] web: TempusDominus unsafe access to config · 746cff5f
      Pierre Paridans authored
      During TempusDominus autobinding to fields matching its default classes
      (like `.datetimepicker-input` used by our DatePicker widget) and no
      config was previously provided to the library (like when we disable it
      on mobile), an unsafe access to the config's `_options` property results
      into an error as the config is `undefined`.
      
      This commit fixes it by first checking for config existence before
      attempting to access its property.
      
      Note: as this is a fix inside a library, a comment is added to make
      clear. Also similar fixes where already done in the same file.
      
      opw-2242880
      
      X-original-commit: c05982c2
      746cff5f
    • Pierre Paridans's avatar
      [FIX] web: extract date picker's input setter · 3e82caf6
      Pierre Paridans authored
      This commit extracts the DatePicker widget's input setter to allow
      overriding it and preventing from calling the `datetimepicker` lib when
      not initialized (like on mobile).
      
      Note: this change will be used on enterprise.
      
      opw-2242880
      
      X-original-commit: ca84753f
      3e82caf6
    • Martin Trigaux's avatar
      [FIX] hr_attendance: format hour according to locale · 47707e1b
      Martin Trigaux authored
      
      The time to display the check in/check out time was hardcoded to
      HH:mm:ss while other locales may use different formats.
      Use the appropriate time utils to retrieve the right format that uses
      the time format from the res.lang record.
      
      Fixes odoo/odoo#50527
      
      closes odoo/odoo#54018
      
      Signed-off-by: default avatarMartin Trigaux (mat) <mat@odoo.com>
      47707e1b
    • Aaron Bohy's avatar
      [FIX] web: editable list: correctly edit in readonly · 25266342
      Aaron Bohy authored
      
      Some widgets allow the edition in readonly (e.g. boolean_toggle,
      priority...). In this case, the changed value is saved directly.
      Before this commit, this didn't work in (main) list views: the
      widget was updated with the new value, but it wasn't saved in db,
      so the change was lost at reload.
      
      This was due to the list controller not being correctly aware of
      its mode ('edit' or 'readonly'), on which the basic controller
      relies to determine whether a change must be saved directly or
      not.
      
      With this commit, a list is always in 'readonly', except when a
      row is being edited, in which case it is in 'edit'.
      
      Issue reported on task 2288963
      
      closes odoo/odoo#54049
      
      Signed-off-by: default avatarJulien Mougenot (jum) <jum@odoo.com>
      25266342
    • Nasreddin (bon)'s avatar
      [FIX] stock: Display translated picking description in delivery slip · fee4e78a
      Nasreddin (bon) authored
      
      Issue
      
      	- Install English and French languages
      	- Create a customer contact and assign french as his language
      	- Create a product with correct names in both languages.
      	  For example 'French product name' and 'English product name' for easy reference.
      	- Create an inventory transfer with the french customer as contact
      	- Add the product that you created
      	- Print > Delivery Slip
      
      	The report will show in the lines:
      	"""
      	French product name
      	English product name
      	"""
      
      Cause
      
      	Getting product description without checking partner language.
      
      Solution
      
      	If partner is set, get product description with partner language in context.
      
      opw-2280490
      
      closes odoo/odoo#53977
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      fee4e78a
  11. Jul 02, 2020
  12. Jul 03, 2020
  13. Jul 02, 2020
  14. Jul 01, 2020
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] payment: fix payment processing via external link · 7d6974e1
      Andrea Grazioso (agr-odoo) authored
      
      Select a sales order.
      Go to action > generate payment link.
      Open private browser, reach the link.
      
      User will receive error message because of access denied to the
      res.partner data.
      
      opw-2287534
      
      closes odoo/odoo#53910
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      7d6974e1
    • Nasreddin (bon)'s avatar
      [FIX] account: wrong calculation for 'not included in price' group taxes · 4d6df367
      Nasreddin (bon) authored
      
      Issue
      
      	- Install 'Accounting' app
      	- Create tax A and tax B for 5%, make sure they are NOT included in price
      	- Create a tax C as a group that includes Tax A and B
      	- Go to any bank journal and create a statement line for 100 dlls
      	- Click Reconcile
      	- Select Manual Operations
      	- Select any account
      	- Add Tax C
      	- Check on 'Tax Included in Price'
      
      	Wrong calculation.
      
      Cause
      
      	Not considering forced 'Tax Included in Price'
      	('force_price_include'),when cumulating tax included
      	amount.
      
      opw-2280714
      
      closes odoo/odoo#53906
      
      X-original-commit: ef63297fa2513a58b4dd6db7f44a46643decce66
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      4d6df367
    • Simon Lejeune's avatar
      [FIX] stock: move line: write · 50710143
      Simon Lejeune authored
      
      Write is overridden on reserved move lines to make sure the quants are
      correctly updated. It is divided in two parts: if you update the reserved
      quantity and if you update a characteristic. If somehow both are updated
      in the same call (which doesn't happen in the standard interface), then
      the quants are unreserved two times, which is wrong.
      
      This issue showcased by [0] and on databases where the reserved
      quantities are made editable by customization.
      
      We grouped the two update in one, such as the TODO indicated us since a
      long, long time.
      We removed `result_packaged_id` from the trigger because it should not
      impact the reservation whatsoever.
      We needed to remove a tricky logic in the stock move's backordering part
      but it was fishy anyway.
      
      [0] eac8c06e
      
      closes odoo/odoo#53794
      
      Signed-off-by: default avatarSimon Lejeune (sle) <sle@openerp.com>
      50710143
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] account: change composition mode to allow multi send · a5813718
      Andrea Grazioso (agr-odoo) authored
      
      Go to Payments view
      Select multiple confirmed payments, click on Actions>Send receipt by
      email
      
      Only for the first payment will be sent an email.
      This occur because in composition mode 'comment' (the default)
      mail composer sens the mail to a single record
      Adding a duplicate action to handle multi send
      Updating translation accordingly
      
      opw-2278971
      
      closes odoo/odoo#53725
      
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      a5813718
    • Samuel Degueldre's avatar
      [FIX] website_mass_mailing: fix input disappearing when duplicating · 5562e7db
      Samuel Degueldre authored
      
      Previously, duplicating a block inside of the newsletter popup would
      cause the subscribe input and button to disappear. Actually, it
      disappears when you use most options of the left panel, because
      selecting an option refreshes the public widgets, which destroys them
      and starts them again, but for some reason, the subscribe widget's
      destroy method makes it d-none, but only removes that class if the
      subscribe input is not inside of a modal.
      
      This commit fixes that by not using d-none on the subscribe input group
      at all. We keep the d-none removals for databases which may have the
      button saved in a disabled state.
      
      task-2244780
      
      closes odoo/odoo#50286
      
      Signed-off-by: default avatarQuentin Smetz (qsm) <qsm@odoo.com>
      5562e7db
    • snd's avatar
      [FIX] project - send rating mail by project · 07c828b4
      snd authored
      opws: 2269230, 2248760
      When a database has a lot of projects with many tasks, and needs
      to send a lot of feedback mails, the cron tries to send mails to
      all tasks at the same time, thus it times out.
      
      This fix will allow to treat projects one at a time so that when
      the cron times out, it will not restart from the beginning.
      
      closes odoo/odoo#53896
      
      Signed-off-by: default avatarYannick Tivisse (yti) <yti@odoo.com>
      07c828b4
    • Julien Mougenot's avatar
      [IMP] doc: added doc for static templates inheritance · b22e7109
      Julien Mougenot authored
      
      closes odoo/odoo#38301
      
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      b22e7109
  15. Jun 30, 2020
    • Xavier ALT's avatar
      [FIX] web: do no try to render filters referencing access restricted fields · 92f289cb
      Xavier ALT authored
      
      In case a field is limited to specific groups on the model, those fields
      are discarded from `fields_view_get()` but can still be referenced by some
      filters on the search view causing a traceback (see #53797)
      
      Model:
      
      ```python
      
      class MyModel(models.Model):
      
        my_field = fields.Char(groups='base.group_system')
      ```
      
      Search views:
      
      ```xml
      <search string="My Model">
          <filter name="group_myfield" context="{'group_by': 'my_field'}"/>
      </search>
      ```
      
      This commit ensure those filter are correctly discarded.
      
      OPW-2284621
      
      closes odoo/odoo#53886
      
      X-original-commit: 6a1eb6d332c5a9bcb9f1d2d1034e6640f5cd2317
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      Signed-off-by: default avatarXavier ALT <xavieralt@users.noreply.github.com>
      92f289cb
  16. Jun 29, 2020
  17. Jun 30, 2020
    • Anh Thao Pham (pta)'s avatar
      [FIX] point_of_sale: fix closing with multiple taxes and fiscal position · 17a9feff
      Anh Thao Pham (pta) authored
      
      - Install Accounting, Point of Sale
      - Go to Accounting > Configuration > Taxes
      - Create 2 taxes (e.g. Tax 15% and Tax 21%)
      - Go to Accounting > Configuration > Fiscal Positions
      - Create a new Fiscal Postion with the following line for Tax Mapping:
        * Tax on Product: Tax 21%
        * Tax to Apply: Tax 15%
      - Go to Point of Sale > Products > Products
      - Create a new Product (e.g. Test Product) with "Tax 15%" and "Tax 21%" in Customer Taxes
      (Make sure that the Tax 15% is the same than the one for the "Tax to Apply" in the Fiscal Position)
      - Go to Point of Sale and configure a POS:
        * Activate "Fiscal Position per Order" and choose the created Fiscal Position
        * Add Bank as Payment Method
      - Start a POS session
      - Search "Test Product" and add it
      - Click on Tax button and select the created Fiscal Position
      - Proceed to payment
      - Choose Bank and validate
      - Exit the POS session
      - Click on "CLOSE" and "VALIDATE CLOSING & POST ENTRIES"
      An error message appeared with the following message: "Cannot create unbalanced journal entry"
      
      When closing and posting entries, an account move and account move lines are created from the session orders.
      For each order lines, taxes are computed from taxes on product and fiscal position of the order.
      In this case, the product has 2 taxes applied (Tax 15% and Tax 21%).
      Due to the chosen Fiscal Position, the Tax 15% is applied instead of Tax 21%.
      For the order line, Tax 15% is applied 2 times.
      But during the account move lines generation, the original Tax 15% and the converted Tax 15% are merged together,
      because they represent the same tax (same model id).
      So the Tax 15% is only applied once, which results on unbalanced amounts during reconciliation.
      
      In Sales, for the same case, the tax is only applied once.
      To stay consistent with Sales behavior, the tax will also be applied once in Point of Sale.
      
      opw-2278826
      
      closes odoo/odoo#53549
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      17a9feff
Loading