Skip to content
Snippets Groups Projects
  1. Apr 10, 2018
    • Thibault Delavallée's avatar
      [IMP] mail: limit cache invalidation when managing messages · 9f3889eb
      Thibault Delavallée authored
      This commit proposes to limit cache invalidation at some cases that will
      trigger some behavior change when dealing with mail messages :
      
       * creating messages linked to a document;
       * update model or res_id of a message;
       * updating notifications, as notified people could change some computed
         fields on the record;
      
      This commit also invalidates only mail-related fields as updating messages
      should not invalidate other things than some computed fields linked to
      mail.
      9f3889eb
    • Thibault Delavallée's avatar
      [IMP] mail: limit cache invalidation when subscribing followers · bcc68847
      Thibault Delavallée authored
      Cache invalidation when subscribing people has been added at e6f038a8.
      Indeed subscribing partners to a record may lead to an access right update
      as some of them are based on followers. This is why a cache invalidation
      is necessary to avoid access rights issues.
      
      However subscribing people to a record should change their rights only on
      the records involved in the subscription mechanism. We can therefore give
      ids to the cache invalidation to limit to updated records.
      
      Cache invalidation is also limited when writing on followers if writing
      on model, res_id or partner_id fields. Indeed changing subtypes or
      channel of a subscription should have no impact on cache and access rights.
      
      Cache invalidation done manually in _message_subscribe is not necessary
      as subscription create or update mail.followers records since f9c21092.
      Create and write of mail.followers records already ask for cache invalidation.
      It is therefore not necessary to invalidate cache twice.
      
      This commit allows to save a few queries on some tests, notably about
      activities that deal with subscription and messages. As cache is now kept
      it is not necessary to refetch some data, leading to a few query gain. We
      gain about 1K queries on com runbot.
      
      A side effect of limiting cache invalidation is that some unit tests require
      a manual cache invalidation to have up to date results. Indeed record not
      being up to date in cache was hidden by the invalidation we just removed.
      bcc68847
    • Thibault Delavallée's avatar
      [IMP] mail: remove cache invalidation when notifying a message with a parent · 26d110c4
      Thibault Delavallée authored
      When notifying partners or channels of a message, a cache invalidation is
      currently done if the message has a parent. This invalidation has been done
      when migrating the mail module at the new API at 4b122ad4.
      
      In that time notifying people of a message lead to the creation of
      notifications of the parent message, if any. It was due to the chatter
      being threaded and therefore displaying message with their header message.
      Adding notifications for the parent was necessary to avoid access rights
      issues  when fetching parent message data. Indeed as being notified is one
      of the rule to see a message record adding notifications was done. A cache
      invalidation has therefore been added to clean the message cache and ensure
      everything was fine.
      
      Commit 88b8cd05 changed the way notifications are modeled in Odoo.
      Notification on parent message was removed and access rights changed. Threaded
      mode for Chatter has also been removed. However cache invalidation has been
      kept probably by fear of removing it.
      
      It does not seem to have any viable reason to invalidate cache when a message
      has a parent. Posting a message does not push other messages in users's Inbox
      meaning there should not be any issue with the cache preventing to see
      messages.
      
      Removing this cache invalidation allow to gain queries in performance tests.
      It has an impact on each process involving message creation which is quite
      common in Odoo.
      26d110c4
    • Vincent Schippefilt's avatar
      [FIX] web_editor: fix crash when hitting SHIFT+TAB on an empty editor · fba356c0
      Vincent Schippefilt authored
      repro : open any editor (like tasks), empty its content and hit SHIFT+TAB
      before this fix: you get a traceback
      after this fix: you don't get a traceback
      fba356c0
    • Vincent Schippefilt's avatar
      [IMP] web: keyboard navigation in kanban view · bc1bba44
      Vincent Schippefilt authored
          1. Added the ability to navigate within the kanban view using UP,
              DOWN, LEFT and RIGHT keys.
          2. By defaults, the focus should be set on the search input field.
          3. From the search input field, using the DOWN key, the focus goes
              to the first card of the kanban
          4. From the search input field, using TAB key, the focus goes to the
              create button
          5. From the create/import buttons, using TAB or DOWN key goes to the
              first card of the kanban, then UP and DOWN keys moves the focus
              from card to card in the same column or if it is not a grouped
              view from left to right.
          6. In grouped view, LEFT and RIGHT keys moves the focus to the next
              column
          7. When on a card, hitting ENTER opens the view of that card.
      
      Not included in this commit
          1. Memorize the position on the kanban when opening an card, than restoring
              when going back to that kanban
      bc1bba44
    • Vincent Schippefilt's avatar
      [IMP] web: keyboard navigation in form view · e0924fd0
      Vincent Schippefilt authored
          1. Added the ability to navigate within the List view using UP and
              DOWN keys.
          2. By defaults, the focus should be set on the search input field.
          3. From the search input field, using the DOWN key, the focus goes
              to the list
          4. From the search input field, using TAB key, the focus goes to the
              create button
          5. From the create/import buttons, using TAB or DOWN key goes to the
              first row of the list, then UP and DOWN keys moves the focus from
              item to item in the list.
          6. When on a row, hitting ENTER opens the view of that row.
      
      Also in this commit
          1. When on the first row, hitting the UP key does nothing
          2. When on the last row, hitting the DOWN key does nothing
      
      Not included in this commit
          1. Memorize the position on the list when opening an row, than
              restoring when going back to that list
          2. Navigation on grouped list using the keyboard
      e0924fd0
    • Vincent Schippefilt's avatar
      [IMP] web: auto-assign and show access keys on ALT · a4d00a56
      Vincent Schippefilt authored
      This commits aims at adding an accesskey (a shortcut) to all buttons
      in odoo. This is done by either by assigning an accesskey in the view
      XML or by automatically assigning a key to the buttons using the first
      available (not yet assigned as a shortcut key) letter of the text of the
      button, failing that we use the latin alphabetical order to find the
      first unused key.
      
      Included in this commit:
          1. Using the ALT key, automatically assign
          2. When the ALT key is pressed, show the assigned shortcuts
          3. Assign a number to the menu items (enterprise)
          4. Activate number accesskeys without using SHIFT
          5. Extra logic to support the activation of the alphabetical
              accesskeys without needing to add the SHIFT key in the key
              combination (except for Firefox on linux)
          6. Assign a fixed accesskey to the search field
      
      Not done:
          1. Executing the primary action on dialogs using SHIFT+ENTER
          2. Show the input using TAB on the appswitcher screen
      
      Things to consider:
          1. Fixing more access keys on forms that share the same features
              (b.e. Validate in customer invoice and vendor bills)
          2. Not assigning keys to the chatter section
      a4d00a56
    • Vincent Schippefilt's avatar
      [IMP] web: keyboard navigation in form view · 02a063fd
      Vincent Schippefilt authored
      The goal of this commit is to allow fast entry of the same model using
      the keyboard for navigating through the form once, by blocking the user
      from advancing in the form if there is a required field or once they
      went through the form once to get them to a primary action (button)
      
      This commit includes the following changes
          1) Enable moving forward from field to field using the TAB key
          2) Entering the one to many and many to many using the TAB key
              a. When entering it, set the focus on the "add new line" link or
                  button
      		b. When adding a new line, set the focus on the field visible
                  editable field of the new line
              c. Discard adding a new line with ESC key
              d. If the user leaves the first field empty and uses TAB, we
                  will cancel the adding of a new line and move to the next
                  field of the form
          3) When a field is required and not filled in, do not allow the user
              to move out of the field using the TAB key (the user is still
              allowed to use the mouse though), mark the field as invalid
              instead
          4) After going though the form once, using the TAB key on the last
              field will move the focus to the first primary button of the page
          5) When the focus is on a primary button (EDIT/SAVE), the user cannot
              move the focus forward using the TAB key. Hitting TAB again will
              display a tooltip telling to hit ENTER to activate the button.
              The mouse is still available to move the focus.
          6) When the user saves, the focus is placed on the first primary
              button of the form renderer (like VALIDATE for a new invoice)
          7) On dialogs, primary buttons should stop the users from moving out
              of them, and showing a popup if the user tries
          8) When closing a dialog, the focus will be moved back to the widget
              that opened it.
      
      This commit does not include the following features
          1) Navigation with the keyboard on a selection one to man
          2) Navigate between tabs in a form using the keyboard
          3) Cancelling the adding of a new line in a many to many using the
              ESC key do not set the focus correctly
          4) Enhancing the focusses fields (like blue underline)
      02a063fd
    • Christophe Monniez's avatar
      [IMP] tests: make phantomjs work on Windows · 4ba6d2a4
      Christophe Monniez authored
      Since Python 3.2, close_fds parameter is True by default on POSIX
      platforms. On Windows, it's set to False when one of the standard descriptors
      is set.
      
      This commit will give the opportunity to run phantom js tests on
      Windows.
      4ba6d2a4
    • Prakash Prajapati's avatar
      [IMP] mrp: new filters on products · 3ae9dde2
      Prakash Prajapati authored
      There was a filter 'Bom Components', that didn't filter anything. So we
      make it work to show the products/product templates that are used as
      components in BOM.
      
      We've also added a filter 'Manufactured Products' that show the
      products/product templates that have at least one BOM
      
      TASK-54350
      3ae9dde2
    • Prakash Prajapati's avatar
      [IMP] mrp: rename workorder views · f483d6cc
      Prakash Prajapati authored
      Some of the workorder views had 'workcenter' in their name instead of
      'workorder', so we changed them to be consistent with the models.
      
      TASK-54350
      f483d6cc
  2. Apr 09, 2018
Loading