1. 24 Aug, 2022 5 commits
  2. 23 Aug, 2022 4 commits
  3. 19 Aug, 2022 1 commit
  4. 18 Aug, 2022 6 commits
    • Jérome Perrin's avatar
      Listbox,SelectionTool: use make_query instead of crafting URL manually · 3cb786cc
      Jérome Perrin authored
      Using make_query makes sure that the query parameters are properly
      encoded and also change selection_index to become an int, because
      it keeps the type of parameters.
      
      As a consequence, we had to adjust a few place in the code where
      selection_index was tested for truthiness: because "0" as a string is
      true, but 0 as an int is not. For that, we changed to test the presence
      of selection_name instead of testing selection_index, as they are always
      used together.
      
      This fixes a problem that & in URL was encoded twice for listbox
      anchor links ( bug_module/1137 )
      3cb786cc
    • Jérome Perrin's avatar
      *: reorganise indexation methods · 2bd1d4ed
      Jérome Perrin authored
      02011d8e (immediateReindexObject: use super user to reindex script,
      2015-12-14) did not apply for inventory, because they were overloading
      immediateReindexObject.
      Introduce a new level, _immediateReindexObject that will hold the actual
      reindexing logic.
      
      Previously this method was using PortalContent.reindexObject which was
      monkey patched, to make things less complex and more future proof, move
      the monkey patch to a method on base class.
      
      This also drops alternateReindexObject on BalanceTransaction, because it
      is already defined in Inventory
      2bd1d4ed
    • Jérome Perrin's avatar
      ERP5TypeLiveTestCase: close request at the end of each test · e605544e
      Jérome Perrin authored
      This is supposed to fix "Should not load state for ${oid of a skin} when
      the connection is closed" sometimes happening with live tests (especially
      when the test self.publish and the developer access the site while the
      test is suspended on a debugger breakpoint).
      
      The object accessed after the connection is closed was a skin (python
      script, sometimes page template or form) that was cached in SKINDATA.
      The mechanism to prune entries from the cache uses REQUEST.hold API
      which expects that REQUEST.close is called on request, but because
      requests were not closed at the end of the request, it happened that
      the cache was reused from another connection.
      
      This change to close the requests, like ERP5TypeTestCase is doing in
      tearDown (the actual close is done by Testing.ZopeTestCase.connections).
      
      By closing requests at the end of tests, we also have to change so that
      at the beginning of the test we initialize the request, by using the same
      setSite and setupCurrentSkin that are done in ERP5TypeTestCase.
      e605544e
    • Jérome Perrin's avatar
      ProxyField: use Skinnable API to get current skin · 8a8f9384
      Jérome Perrin authored
      SKINDATA is an implementation detail that should not be accessed from
      this level.
      8a8f9384
    • Jérome Perrin's avatar
      BusinessTemplate: drop useless fixZSQLMethod in SkinTemplateItem.install · 45e45842
      Jérome Perrin authored
      In SkinTemplateItem.install, self._objects contains entries for skin
      folders and for all skins. objectValues method calls was called for skin
      folders (as expected) and also for all skins, which acquire objectValues
      from skin folder and do the work again.
      
      This simplifies this by only running this for skin folders.
      45e45842
    • Jérome Perrin's avatar
      Listbox: refactor computation of "default" URL · 9ca9d73d
      Jérome Perrin authored
      "default" URL is the URL when listbox column does not use URL column
      and when the brains do not have a getListItemUrl method.
      
      Move the computation in a lazyMethod, so that it is computed only once
      per line instead of once per cell.
      
      Also remove a try/except, I don't think this code is supposed to get an
      AttributeError
      9ca9d73d
  5. 09 Aug, 2022 3 commits
  6. 02 Aug, 2022 11 commits
  7. 28 Jul, 2022 2 commits
  8. 13 Jul, 2022 2 commits
  9. 12 Jul, 2022 6 commits
    • Jérome Perrin's avatar
      oauth_facebook_login: update # hack to be compatible with Zope4 redirects · 43060af5
      Jérome Perrin authored
      Zope4 uses urlparse + urlunparse to encode the URL, which has a side
      effect of removing the empty fragment from the URL. Using a lower level
      API to set the status code and the Location header we achieve the same
      result.
      43060af5
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      Fix some typos · 9405ec7d
      Jérome Perrin authored
      9405ec7d
    • Jérome Perrin's avatar
      ERP5Type/tests: support Zope4's Testing.makerequest.makerequest · b9d9c26a
      Jérome Perrin authored
      On Zope2, there was support for starting a ZServer (in
      Testing.ZopeTestCase.utils.startZServer) and there was another makerequest
      (in Testing.ZopeTestCase.utils.makerequest) which had knowledge of this
      ZServer address. We are using our own implementation of startZServer,
      which also knows how to start a WSGI server, but we we were interacting
      with Testing.ZopeTestCase.utils so that its makerequest knows about
      our web server.
      
      On Zope4 there is no utility to start an http server from the tests and
      the makerequest is also gone.
      
      This revisits the web server from test interaction with makerequest:
       - no longer use PortalTestCase._app which creates an app with a request
         to http://nohost, but implement our own _app which creates a request
         to our web server
        - store our server address as class attributes on ProcessingNodeTestCase
         instead of patching pseudo constants in utils (these pseudo constants
         no longer exist)
        - in the case of ERP5TypeLiveTestCase, also rewrap the site to use a
        request to our web server (which was done on Zope2 by using
        Testing.ZopeTestCase.utils.makerequest and not
        Testing.makerequest.makerequest directly)
      b9d9c26a
    • Jérome Perrin's avatar
      ERP5TypeLiveTestCase: close request at the end of each test · 9f5d5640
      Jérome Perrin authored
      This is supposed to fix "Should not load state for ${oid of a skin} when
      the connection is closed" sometimes happening with live tests (especially
      when the test self.publish and the developer access the site while the
      test is suspended on a debugger breakpoint).
      
      The object accessed after the connection is closed was a skin (python
      script, sometimes page template or form) that was cached in SKINDATA.
      The mechanism to prune entries from the cache uses REQUEST.hold API
      which expects that REQUEST.close is called on request, but because
      requests were not closed at the end of the request, it happened that
      the cache was reused from another connection.
      
      This change to close the requests, like ERP5TypeTestCase is doing in
      tearDown (the actual close is done by Testing.ZopeTestCase.connections).
      
      By closing requests at the end of tests, we also have to change so that
      at the beginning of the test we initialize the request, by using the same
      setSite and setupCurrentSkin that are done in ERP5TypeTestCase.
      9f5d5640
    • Jérome Perrin's avatar
      zope4py2: remove a debugging pdb · 789c4325
      Jérome Perrin authored
      789c4325