1. 18 Mar, 2022 16 commits
  2. 11 Mar, 2022 2 commits
  3. 10 Mar, 2022 5 commits
    • Vincent Pelletier's avatar
      CMFActivity.Activity.SQLBase: Factorise validation processing_node threshold · c629ee70
      Vincent Pelletier authored
      Avoid repeating processing_node condition for every single activity
      whose serialization_tag dependency is being checked. This reduces the
      length and execution complexity of produced SQL.
      c629ee70
    • Jérome Perrin's avatar
      Stop including empty items in dialog multilistfields · 9fc690ed
      Jérome Perrin authored
      The meaning of empty items for **multi** list fields for categories is
      not clear for dialogs (if user does not want to apply any filter, then
      the natural way would be to select nothing).
      
      This also caused issues with category fields, when the action script
      uses restrictedTraverse to get the uids corresponding to the category
      but a path is empty, like for example in 
      https://lab.nexedi.com/nexedi/erp5/blob/d51bb0413a806b3db0c5eb69dec06065b9601322/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.py#L40-48
      
      which does this:
      
      ```python
      # optional GAP filter
      node_uid = []
      gap_uid_list = []
      for gap in request.get('gap_list', ()):
        gap_uid_list.append(portal.portal_categories.gap.restrictedTraverse(gap).getUid())
      if gap_uid_list:
        node_uid = [x.uid for x in portal.portal_catalog(
                                         portal_type='Account',
                                         default_gap_uid=gap_uid_list)] or -1
      ```
      
      If an empty item is selected, then `gap_uid_list` will contain an entry for 
      `portal.portal_categories.gap.restrictedTraverse('').getUid()` which will be the
      uid of the gap base category. Searching with a base category uid nowadays does not
      match any document, but before 95e3eaec (CMFCategory: Do not index any Base Category
      as a related document., 2016-12-21), it was matching all documents having a relation
      from this base category and in the case of this trial balance report it was matching all
      accounts.
      
      This was a problem for old instances with accounts created before 95e3eaec, because when
      they were first indexed, they had the record in category table, so they were matched, but
      once they get re-indexed, they no longer had the record, so the result of this report when
      selecting the empty item became different, because accounts were no longer included.
      
      Looking back at this, maybe when updating to get 95e3eaec, we should have ran a migration
      to delete all these records (re-indexing every document in the background should be enough)
      so that if there's a problem, the problem happens right now and not after a few months
      after accounts are modified and re-indexed.
      
      When looking at this from end user level, theses empty items not only cause this problem,
      but also does not have a clear behaviour and are not needed, so the changes here are about
      removing these empty items.
      
      In accounting reports, there was a multi listfield showing all gap categories, "grouped" by
      chart of account - but the name of the chart of account was not displayed. This change to
      use a None item, which is rendered as disabled to display the chart of account name, but to
      do this we had to fix a bug in Formulator, these disabled items were only working properly
      for single item widgets, not multiple items widgets.
      
      See merge request nexedi/erp5!1572
      9fc690ed
    • Jérome Perrin's avatar
      Fix logins not published · 7b3839a5
      Jérome Perrin authored
      This addresses a regression from nexedi/erp5!1561 changing the class hierarchy caused Login to loose its docstring and became no longer publishable.
      
      This was problematic because it was not detected by the test suite, so HTML test is changed to use zope publication instead of calling the view on the context.
      
      Another notable point is that this behaves differently in ERP5JS, the Logins were still visible in ERP5JS. Because we don't actually rely on "no docstring on the class" to prevent publication, this is not changed.
      
      See merge request nexedi/erp5!1571
      7b3839a5
    • Jérome Perrin's avatar
      corporate_identity: fix markup in table of content · 1a5c5ace
      Jérome Perrin authored
      There was opening and closing tags mismatch:
          <div><a href="#references1_anchor">References</div></a>
      1a5c5ace
    • Jérome Perrin's avatar
      Localizer: drop support for dtml-gettext tag · ba8750a2
      Jérome Perrin authored
      This seems to be used only in Localizer's ZMI. This is not compatible
      with newer version of DocumentTemplate, but because we don't use, it's
      better to remove the functionality
      ba8750a2
  4. 08 Mar, 2022 8 commits
  5. 07 Mar, 2022 7 commits
  6. 03 Mar, 2022 2 commits