1. 10 Jun, 2022 1 commit
  2. 18 Mar, 2022 1 commit
  3. 17 Mar, 2022 1 commit
    • Jérome Perrin's avatar
      dms: use ghostscript to convert PDF to text · b6d64daf
      Jérome Perrin authored
      For historical reasons, PDF to text involved conversion first of the PDF to
      png, then this png to tiff and the tiff was sent to tesseract. This works, but
      it consumes a lot of resources with large PDFs, especially because the
      intermediate png/tiff are created with a resolution of 300 DPI, which easily
      needs serveral Go of RAM and temporary disk space.
      This was obsorved with the PDF created by erp5_document_scanner, which are
      usually high quality (1 or 2Mo per page) and even a one page PDF sometimes
      took more than one minute to OCR.
      
      Since 9.53 ghostscript integrates tesseract engine directly, we don't need to
      prepare a tiff beforehand, we can directly send the PDF data to ghostscript.
      
      These change use ghostscript if available and otherwise fallback to the same
      pipeline as before. This will allow the transition until all ERP5 instances
      are running a recent enough SlapOS with ghostscript 9.54. Fortunately, before
      SlapOS include ghostscript 9.54, ERP5 software release did not have ghostscript
      in $PATH, so we don't have to check ghostscript version, we assume that if gs
      is in $PATH, it means we have a recent enough SlapOS.
      
      This new approach was less tolerant regarding broken/password-protected PDFs
      so we perform a new check that the PDF is valid and not encrypted before
      trying to use OCR.
      b6d64daf
  4. 24 Feb, 2022 1 commit
    • Klaus Wölfel's avatar
      erp5_configurator_standard_solver: Add missing solver_workflow to Quantity Split Move Solver · 38574278
      Klaus Wölfel authored
      The missing workflow resulted in a bug when moving quantities multiple times, first to one delivery, then to another delivery. Then the same solver process with same decision was used as for the first time even if the first delivery was already delivered or movement was deleted. The reason was that Quantity Split Move Solver did not change to succeeded state after solving, so Solver Process did not change to solved state.
      38574278
  5. 29 Jul, 2020 1 commit
  6. 13 May, 2020 1 commit
  7. 07 May, 2020 1 commit
  8. 07 Feb, 2020 2 commits
    • Jérome Perrin's avatar
      ERP5JS: render before commit · dc02bfa8
      Jérome Perrin authored
      Since 264ded5c in ERP5JS we render the form directly after a successful edit, but this was done sometimes too early, namely, the next form was rendered before interaction workflows and this leads to problems like the ones discussed in nexedi/erp5!982 (comment 92893)
      
      /reviewed-on nexedi/erp5!1040
      dc02bfa8
    • Jérome Perrin's avatar
      knowledge_pad_ui_test: fix a random failure · ed44bee5
      Jérome Perrin authored
      This test click on the delete button which deletes by an ajax request
      and immediatly after open the "wait for activities" page. Sometimes the
      second request starts before the first is committed, so there are no
      activities to wait for.
      
      When using ZServer, we had only one worker thread, so this was not
      visible, but with wsgi we have more than one so it happened sometimes.
      
      Use an old jQuery trick to wait that the first request is no longer in
      flight.
      
      /reviewed-on nexedi/erp5!1038
      ed44bee5
  9. 06 Feb, 2020 3 commits
  10. 05 Feb, 2020 3 commits
  11. 04 Feb, 2020 1 commit
  12. 03 Feb, 2020 5 commits
  13. 31 Jan, 2020 8 commits
  14. 30 Jan, 2020 3 commits
  15. 29 Jan, 2020 6 commits
    • Jérome Perrin's avatar
      calendar: make PresencePeriod support timezone with daylight saving · 5b3f2426
      Jérome Perrin authored
       - update PresencePeriod.getNextPeriodicalDate with fixes from 6155f7ff
       - do not use addToDate, but simply DateTime arithmetics that unlike addToDate, works correctly
      5b3f2426
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      Eggtest: support --shared_part_list · 325395e8
      Jérome Perrin authored
      Shared parts received from test node will be passed as
      SLAPOS_TEST_SHARED_PART_LIST environment variable to egg tests.
      
      This will be useful for SLAPOS-SR tests.
      325395e8
    • Jérome Perrin's avatar
      testnode: pass shared_part_list to runTestSuite who understand it · 35768fa2
      Jérome Perrin authored
      Some test suites who install software during the test, such as SLAPOS-SR
      tests, could benefit from reusing already installed shared parts.
      
      The convention is that --shared_part_list is a os.pathsep (:) separated
      list of paths of read-only shared parts in which the test is not allowed
      to write.
      35768fa2
    • Jérome Perrin's avatar
      testnode: SlapOS shared parts support · 316f23c0
      Jérome Perrin authored
      Shared parts speed up compilation time and is becoming the standard in
      SlapOS software installations, so it makes sense to use it in our test
      nodes, as it also gives one more opportunity to test this feature.
      
      erp5testnode configuration file supports a new shared_part_list option,
      that can be set to a \n separated list of paths to use for shared parts,
      following the same rules as slapos.core and slapos.recipe.cmmi (ie. the
      first ones are read-only and the last one is read-write).
      
      This shared_part_list option will be set in slapos.cfg used to compile
      both the "software for testnode" (ie. selenium-runner) and later the
      softwares under tests.
      The software under tests will also use a local directory for each test
      suite to install shared suite.
      
      The directory structure is now:
      
        srv/
          shared/
            (shared parts to install selenium runner)
          slapos/
            soft/
              (selenium-runner software)
          testnode/
            foo/ # test suite with reference foo
              inst/
                (partitions of tested software)
              shared/
                (shared parts to install tested software)
              soft/
                (tested software)
      
      and in the configuration srv/shared will be set as initial
      shared_part_list.
      
      When installing selenium-runner, srv/shared/ is used to write shared
      parts. These shared parts are never removed.
      
      When installing software under test, srv/shared/ and
      srv/testnode/foo/shared/ are used. If parts are found in srv/shared they
      are used, if they are not found, they are installed in
      srv/testnode/foo/shared/.
      
      In practice, this should mean that the shared parts installed by
      selenium-runner will be reused for all tested softwares and this should
      speed up initial installation of these softwares.
      
      Currently, nothing is implemented regarding removal of unused shared
      parts, but in our case:
       - srv/testnode/foo/shared/ will be removed when "foo" is removed.
       - srv/shared/ should be used only when installing selenium-runner.
      
      If this starts to use too much disk space, one quick and dirty
      workaround could be to destroy the test node instance and re-create it.
      316f23c0
    • Jérome Perrin's avatar
      sql_browser: use monaco editor · 2bc8f31b
      Jérome Perrin authored
      Use monaco editor with https://github.com/joe-re/sql-language-server
      completion provider bundled in
      https://lab.nexedi.com/jerome/monaco-editor-sql-completion-provider
      This completion provider is not perfect, but codemirror's one was not so
      good either. At least we can use monaco editor.
      
      Also add a quick "copy to cliboard" feature, which copies the table as
      html or in markdown format for text.
      
      And also fix Server-Timing header that was an obsolete syntax no longer
      supported by chrome.
      
      /reviewed-on nexedi/erp5!1036
      2bc8f31b
  16. 28 Jan, 2020 1 commit
  17. 24 Jan, 2020 1 commit
    • Jérome Perrin's avatar
      CSPRNG in restricted python · 1764c526
      Jérome Perrin authored
      Allow python's cryptographically secure pseudorandom number generator for usage in restricted python and use it where it makes sense.
      
      This also change the API of `Person_generatePassword` which no longer allow to control the number of letters and numbers.
      
      /reviewed-on nexedi/erp5!847
      1764c526