Skip to content
Snippets Groups Projects
  1. Nov 22, 2019
  2. Nov 25, 2019
    • mightyjol (jhk)'s avatar
      [FIX]product:change pricelist fixed_price field from float to monetary · 27b90fc7
      mightyjol (jhk) authored
      
      steps to reproduce:
      -change decimal accuracy for "Product Price"
      -create a price list with fixed price
      -the fixed price field does not takes the decimal accuracy into account
      
      this was working in V11 and V12
      fixed_price was a float field like other price fields
      
      previous behavior:
      fixed_price is a monetary field
      when setting up a fixed price for a pricelist, it takes into account
      the precision from the current currency
      
      current behavior:
      fixed_price is a float field
      when setting up a fixed price for a pricelist, it takes into account
      the proper decimal accuracy setting ("Product Price")
      
      opw-2121964
      
      closes odoo/odoo#40777
      
      Signed-off-by: default avatarJorge Pinna Puissant (jpp) <jpp@odoo.com>
      27b90fc7
    • Haresh Shyara's avatar
      [ADD] l10n_id: introducing Indonesian localization · 046f7039
      Haresh Shyara authored
      
      Added Chart of Accounts, taxes and other related data
      
      closes odoo/odoo#40776
      
      Task: 42243
      Courtesy: www.vitraining.com
      Signed-off-by: default avatarJosse Colpaert <jco@openerp.com>
      046f7039
  3. Nov 19, 2019
  4. Nov 25, 2019
  5. Nov 13, 2019
    • Damien Bouvy's avatar
      [FIX] web,(various): don't pollute session_info for portal users · 6e99ac2c
      Damien Bouvy authored
      
      The `session_info` dictionnary is used to bootstrap some JS code client
      side (usually in the backend). It includes relevant information, such
      as some parameters key for the OdooBot onboarding, the Enterprise
      subscription expiration alert, etc. to avoid triggering a lot of RPC
      calls upon webclient start.
      
      `session_info` is also called by the remote authentication mechanism
      located at `/web/session/authenticate`, which can be used by external
      mechanism to obtain a valid session remotely.
      
      Revision odoo/odoo@8a28cc2 introduced the concept of cache keys for
      some oft-requested data (such as menus, translations and dynamic qweb
      templates) to avoid requesting them on each webclient start, since they
      tend not to change often. Unfortunately, it introduced a read on the
      ir.ui.menu model that raised an `AccessError` if the authenticating user
      was not a member of the `base.group_user` group ('Internal' user type).
      
      While fixing that issue, it became apparent that `session_info`
      returns a whole lot of information through this remote connection route
      which is entirely unnecessary if not used in the context of a webclient
      start, such a currencies, the state of the enterprise subscription, etc.
      
      This commit fixes the access right issue by removing this non-relevant
      information from the returned dict (including cache keys) if the user
      is not an internal one.
      
      closes odoo/odoo#40213
      
      Related: odoo/enterprise#6688
      Signed-off-by: default avatarDamien Bouvy (dbo) <dbo@odoo.com>
      6e99ac2c
  6. Nov 20, 2019
  7. Nov 22, 2019
  8. Nov 24, 2019
  9. Nov 23, 2019
  10. Nov 22, 2019
    • jbm-odoo's avatar
      [FIX] mail: Limit emojis quantity · b115bc11
      jbm-odoo authored
      
      If the user put more than 200 emojis, we didn't replace emoji with
      image. But due to a typo in the code, this mechanism broke the
      discuss application.
      
      closes odoo/odoo#40725
      
      X-original-commit: 0877cb6c
      Signed-off-by: default avatarSébastien Theys (seb) <seb@odoo.com>
      b115bc11
    • fw-bot's avatar
      [FIX] l10n_it_edi: remove 'Send' button from Customer Invoices · 633b931d
      fw-bot authored
      
      'Send' button meant to send Italian e-invoices are shown
      for invoices belonging to non-Italian companies as well.
      
      Since the invoices' are being sent on validating the
      invoice itself, Send button means less business here.
      
      Hence removed it.
      
      opw-1945836
      closes #31470
      
      closes odoo/odoo#40717
      
      Signed-off-by: default avatarJosse Colpaert <jco@openerp.com>
      633b931d
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] mail: make attachment filtering selective on uid · 6258c7eb
      Andrea Grazioso (agr-odoo) authored
      
      Install Accounting, go to Configuration > Follow-up Levels. Create a new
      Follow-Up Action with low due days just to make testing easier and "Join
      open invoices" enabled. Go to Customers>"Follow-up Reports", select a
      follow up report with action "test", click on "Send Email"
      
      The email will be sent, without attachments. There should be a number of
      attachments equal to the number of due invoices, but for security reason
      the attachments are filtered in the message post processing phase.
      
      Changing security check to avoid filtering legitimate material.
      
      opw-2116803
      
      closes odoo/odoo#40181
      
      Signed-off-by: default avatarSébastien Theys (seb) <seb@odoo.com>
      6258c7eb
    • Nicolas Martinelli's avatar
      [FIX] l10n_be_edi: error at PDF generation · 2174e406
      Nicolas Martinelli authored
      
      An UBL invoice can contain several `AdditionalDocumentReference`, some
      of them without `Attachment`. For example:
      
      ```
        <cac:AdditionalDocumentReference>
          <cbc:ID>UBL.BE</cbc:ID>
          <cbc:DocumentDescription>BOB50  6.07.0</cbc:DocumentDescription>
        </cac:AdditionalDocumentReference>
        <cac:AdditionalDocumentReference>
          <cbc:ID>Facture N°19090118 - 30-09-2019.pdf</cbc:ID>
          <cbc:DocumentDescription>CommercialInvoice</cbc:DocumentDescription>
          <cac:Attachment>
            <cbc:EmbeddedDocumentBinaryObject filename="Facture.pdf" mimeCode="application/pdf">JVBERi0xLjMK...
      ...
      ```
      
      In this case, a crash occurs since:
      
      ```
      element.xpath('cac:Attachment//cbc:EmbeddedDocumentBinaryObject', namespaces=namespaces)
      ```
      
      is an empty list.
      
      To avoid this, we loop on all elements and generate all PDFs.
      
      opw-2128083
      
      closes odoo/odoo#40698
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      2174e406
  11. Nov 20, 2019
  12. Nov 22, 2019
  13. Nov 21, 2019
    • Nicolas Martinelli's avatar
      [FIX] calendar: round duration · 91b5650a
      Nicolas Martinelli authored
      
      When a calendar event is created with a duration of for example 20
      minutes, the end time appears as the start time + 19 minutes.
      
      Because of the rounding of the duration (20 minutes = 0.333... hours),
      the end time is incorrectly set (xx:19:59.998...) then displayed. Since
      the duration can only be set by the minute, we round it before computing
      the end time.
      
      opw-2122853
      
      closes odoo/odoo#40652
      
      X-original-commit: f6ae9f0a
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      91b5650a
    • Denis Vermylen's avatar
      [FIX] server.py: <threaded> avoid registry lock upon shutdown · 7ed9478d
      Denis Vermylen authored
      
      A deadlock can occur between threads when concurrent requests
      acquire the registry lock and conflicting database-level locks
      in different orders. The database won't be able to detect and
      break the deadlock because it involves an external, Python-level
      lock. This situation is more likely to occur during module
      installations [1].
      
      If the server is started with the `limit_time_real` option,
      it should be able to abort the deadlocked requests after the
      timeout, and restart. However that could not work because
      the recovery initiated by `reload()` is blocked at the end
      of the `stop()` method, as it cannot acquire the registry
      lock either, necessary for `Registry.delete_all()`.
      
      Since that deletion step is in fact not necessary, it can
      be skipped, avoiding the deadlock entirely.
      
      Indeed there's no real reason anymore to delete the DB's
      registry upon shutdown. This was introduced for 7.0 by
      b5daffc1, in order to perform
      other cleanups (including cron agent threads). These other
      cleanups are not necessary anymore, and when the stop()
      method of the ThreadedServer completes, the next step is
      either a restart of the whole process (via execve() through
      _reexec()), or a full process exit. Keeping the registry in
      memory for a few cycles until this happens makes no difference.
      
      When such a deadlock occurs, it's always possible to manually
      kill the server with 2 `kill` commands, or 1 `kill -9`.
      
      ~~~~~~~~~~~~~~~~~~~~~~
      [1] Reproduction info:
      
      The following deadlock was observed in Odoo threaded server mode:
      
      1. incoming request spawns a new thread A
         A starts a transaction and does a "SELECT ... FROM res_users ..."
         getting an ACCESS SHARE lock on the table
      2. incoming request spawns a new thread B
         B is a request that calls `button_immediate_install`, that will
         install new modules and alter the res_users table.
      3. B takes and holds the registry lock and executes "ALTER TABLE
         res_users ...", that waits to get the ACCESS EXCLUSIVE lock on the
         table until A's transaction releases the ACCESS SHARE lock.
      4. A continues code execution and reaches a .sudo() call, it tries to
         create a new environment. The creation of the new environment
         requires to wait for the registry's lock to be release but it's held
         by B.
      
      -> A waits for B's registry lock to be released
      -> B waits for A's ACCESS SHARE lock to be released
      -> Deadlock that can't be broken except by force-killing the server
      
      closes odoo/odoo#40663
      
      X-original-commit: 9e675254
      Signed-off-by: default avatarOlivier Dony (odo) <odo@openerp.com>
      7ed9478d
    • Victor Feyens's avatar
      [FIX] doc: remove support for IE 11. · 9071a253
      Victor Feyens authored
      
      Since Odoo V13, ES6 is supported and we therefore do not support IE 11
      anymore.
      
      closes odoo/odoo#40602
      
      Signed-off-by: default avatarVictor Feyens (vfe) <vfe@odoo.com>
      9071a253
    • Denis Ledoux's avatar
      [FIX] scaffold: clean the templates: · 62261577
      Denis Ledoux authored
      
       - Add blank lines at end of python files (pep8)
       - Easier uncomment (entire blocks, and no remaining whitespaces in empty lines)
       - Add `_description` to model to avoid the warning telling it's missing
       - Correct compute field, `self.value` raised an `ensure_one` issue
       - Change access so the user can add/edit/delete records in the web interface
         by default
       - Correct the server action, `self` is not in the server action context.
      
      closes odoo/odoo#38520
      
      Signed-off-by: default avatarDenis Ledoux (dle) <dle@odoo.com>
      62261577
    • Goffin Simon's avatar
      [FIX] account: Cancelled invoices show up on reconciliation · fba21979
      Goffin Simon authored
      
      Steps to reproduce the bug:
      
      - Let's consider customer P
      - Create two customer invoices C1 and C2 for P
      - Cancel C1
      - Go to bank reconciliation
      - Create a statement with a line for P
      - Click on 'Reconcile'
      
      Bug:
      
      C1 was suggested to be reconciled
      
      opw:2120756
      
      closes odoo/odoo#40601
      
      Signed-off-by: default avatarLaurent Smet <smetl@users.noreply.github.com>
      fba21979
  14. Nov 14, 2019
    • Julien Castiaux's avatar
      [FIX] mail: correctly format email address · 36a2e5f4
      Julien Castiaux authored
      
      Install Helpdesk, setup an email alias. Send to that alias an email
      where the name of the from field contains unicode characters. The name
      shown in the interface is base64 encoded, RFC compliant email name.
      
      Python 2 `email.utils.formataddr` does not generate RFC compliant
      header fields. It just formats the header as `name <email>`, quoting
      the name when necessary. Only ASCII names/emails are supported but it is
      convenient to show correctly formatted emails on forms.
      
      Python 3 `email.utils.formataddr` generates RFC compliant header
      fields, it encodes the name in base64 or quoted-printable when it
      contains non-ascii characters. The entire unicode charset is supported
      but the function shouldn't be used when showing email addresses on
      forms.
      
      The problem has been fixed by backporting our own `formataddr` (c024d89,
      a66e16e and 81003c1). Our function supports both use cases : pretty
      format and RFC compliant format.
      
      opw-2115767
      
      closes odoo/odoo#40298
      
      Signed-off-by: default avatarThibault Delavallee (tde) <tde@openerp.com>
      36a2e5f4
  15. Nov 21, 2019
    • Andrea Grazioso (agr-odoo)'s avatar
      [FIX] google_calendar: fixing request for exclusion · 4eb47d33
      Andrea Grazioso (agr-odoo) authored
      Activate Google Synchronization, create on OE a recurrent event (no allday)
      synchronize the calendar, then delete an event of the recursion on OE,
      sync again on OE.
      
      An error will popup in the console. There is a typo in the variable
      sent to the google API.
      https://developers.google.com/calendar/v3/reference/events
      
      
      
      closes odoo/odoo#40614
      
      X-original-commit: 299bb8a9
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      4eb47d33
    • Romain Estievenart's avatar
      [FIX] web: Basic model X2Many commands don't handled correctly · 65768c64
      Romain Estievenart authored
      
      Steps to reproduce:
      
      1. Go to the Accounting / Invoicing apps
      2. Open Taxes (Configuration -> Accounting / Invoicing -> Taxes)
      3. Try to create a new tax and the client crash.
      
      It occurs because the `_processX2ManyCommands()` method doesn't handle
      correctly a missing `fieldInfo` on some X2Many tags.
      
      On mobile, when calling `load_views` the kanban view is used by default.
      But if the kanban isn't defined, a default kanban view with only the id
      of the model is used.
      
      In the case of the taxes form, the `default_get` retrieved for this
      form refers to a Many2Many (`tag_ids`) inside a One2Many. But this field
      isn't present inside the loaded kanban view, so when we process the
      command defined by the `default_get`, the `field_view` item doesn't
      exist (because the default kanban loaded only contains the id of the
      field).
      
      Now instead of using an undefined `fieldInfo`, we fall back to an empty
      object on the missing field to avoid the crash.
      
      closes odoo/odoo#40612
      
      X-original-commit: 47a306a31ac6d3c9e68e83b77a80426d5c6ceb05
      Signed-off-by: default avatarres-odoo <res-odoo@users.noreply.github.com>
      65768c64
    • jvm-odoo's avatar
      [FIX] hr_holidays: fix no id to export when selecting all in tree view · 2c0b58c1
      jvm-odoo authored
      
      Reproduce the issue
      
          - Install Time Off
          - Select all the lines
          - Action > Export
      
          The file has only columns but no data
      
      Cause
      
          In `hr_leave_type.py` the `_search` method's limit is `False` when
          we select all the lines.
      
          In 04e85efb, we return the leaves ids with `[:limit]` so `[:False]`
          that always returns an empty array instead of `[:None]` that returns
          the full list.
      
      This commit replaces the `[:limit]` by `[:limit or None]`
      
      OPW-2126109
      
      closes odoo/odoo#40539
      
      Signed-off-by: default avatarJason Van Malder <jasonvanmalder@users.noreply.github.com>
      2c0b58c1
  16. Nov 20, 2019
  17. Nov 21, 2019
  18. Nov 20, 2019
    • jvm-odoo's avatar
      [FIX] event_sale: no lines in the registration wizard on a SO · 727675e5
      jvm-odoo authored
      
      Reproduce the issue
      
          - Install Sales & Events
          - Create an event with tickets (remember the category you choose)
          - Configuration > Event categories
          - Check "Ticketing" and add your tickets types
          - Create a quotation with "EVENT_REG" product
          - Select your event and your ticket
          - Confirm the quotation
      
          A wizard open with no lines in registration.
      
      Cause
      
          The backend response is different from the V12 due to some dark
          and deep changes. The old response was converting the
          `registration_event_ids` into a create action but it does'nt do
          that anymore.
      
      This commit specifies the action for the `registration_event_ids`.
      
      closes odoo/odoo#40566
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      727675e5
    • Jorge Pinna Puissant's avatar
      [FIX] account: invisible modifier in hidden table cells · 5850d36d
      Jorge Pinna Puissant authored
      
      — In a SO, create a section or a note;
      — Add an invisible modifier (with studio for example).
      
      Before this commit, the table-cells of the section/note were not aligned
      any more, and the delete button (trash-can icon) wasn't available.
      
      In a list, the invisible modifier uses a display: table-cell to keep
      table cells aligned. But in this specific case, the display is already
      none, because they are hidden cells. Therefore, the invisible modifier
      it removes the display: none in the hidden cells, this has as outcome
      that the table cells are not aligned any more.
      
      Now, the hidden cells cannot have an invisible modifier.
      
      opw-2117714
      
      closes odoo/odoo#40580
      
      X-original-commit: d040f02dd0140d9b7128e806e4a974fe1e8aa0d3
      Signed-off-by: default avatarNicolas Lempereur (nle) <nle@odoo.com>
      5850d36d
  19. Nov 15, 2019
  20. Nov 20, 2019
    • William Henrotin's avatar
      [FIX] mrp: quantity to consume lost · 4fc6d8a2
      William Henrotin authored
      
      Process a workorder in the community version. Change the quantity to
      produce. The quantity to consume is adapted for each component. Save the
      workorder and the quantities to consume are rollbacked to the previous values
      
      Those quantities are readonly so not saved to the server.
      
      Task : 2127443
      
      closes odoo/odoo#40557
      
      Signed-off-by: default avatarSimon Lejeune (sle) <sle@openerp.com>
      4fc6d8a2
Loading