An error occurred fetching the project authors.
  1. 28 Sep, 2022 1 commit
  2. 04 May, 2022 1 commit
    • Arnaud Fontaine's avatar
      py2/py3: Make Products code compatible with both python2 and python3. · a17bb910
      Arnaud Fontaine authored
      Done through various 2to3 fixers (zope.fixers, modernize, future) and manual
      changes. This is a single commit so that we have a clearer picture of how code
      converted with my2to3 should look like.
      
      Except straightforward @implementer decorator 2to3 fixer, only product/ folder
      was considered as the goal was to be able to create an ERP5Site.
      
      * Use @implementer decorator introduced in zope.interface 3.6.0 (2010):
      
        The implements syntax used under Python 2.X does not work under 3.X, since it
        depends on how metaclasses are implemented and this has changed. Instead it
        now supports a decorator syntax (also under Python 2.X).
      
        Applied thanks to 2to3 `zope.fixers` package.
      
      * Use `six.moves` rather than `future` install_aliases() feature because the
        latter use unicode_literals and "wraps" module aliases so that unicode() are
        returned for text rather than str() (Python2 standard library). This notably
        breaks BusinessTemplate code which uses urllib quote() for filesystem paths...
      
      * No more unbound methods in python3 so use six.get_unbound_function().
      
      * dict.(iteritems,iterkeys,itervalues)() => six.\1(dict) thanks to `dict_six`
        2to3 fixer from `modernize`:
        $ python-modernize -w -f dict_six product/
      
      * Manually make sure that dict.{items,values,keys}() returns a real list when it
        is latter modified rather than a dict_{items,values,keys} (ensure_list()). By
        default, 2to3 blindly does list(dict.{items,values,keys}()) which is not
        acceptable from performances point of view. With my2to3, this will be possible
        to handle such case automatically.
      
      * Replace cStringIO.StringIO() by six.moves.cStringIO() (a module alias for
        cStringIO.StringIO() on py2 and io.StringIO() on py3).
      
      * Use six.text_type which maps to unicode() on py2 and str() on py3. This also
        makes a clearer difference between text and binary strings.
      
      * Replace map()/filter() with lambda function by list comprehension (this has
        the benefit to avoid casting to list for py3 as it returns iterators).
      a17bb910
  3. 14 Apr, 2022 1 commit
  4. 07 Mar, 2022 1 commit
  5. 29 Apr, 2021 1 commit
  6. 20 Jul, 2020 1 commit
    • Jérome Perrin's avatar
      ERP5OOo: don't fail exporting documents with control character · e4e12259
      Jérome Perrin authored
      if for some reason an ERP5 document has some control characters in title of
      description and is exported in ODS/ODT, the export will fail with an etree
      error like this:
      
          Exception:
            Module Products.CMFActivity.ActivityTool, line 356, in __call__
                result = method(*self.args, **self.kw)
            Module Products.ERP5Type.patches.PythonScript, line 179, in __call__
                return self._orig_bindAndExec(args, kw, None)
            Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
                return self._exec(bound_data, args, kw)
            Module Products.PythonScripts.PythonScript, line 344, in _exec
                result = f(*args, **kw)
            Module script, line 15, in Base_renderSimpleView
            - <PythonScript at /erp5/Base_renderSimpleView used for /erp5/sale_packing_list_module>
            - Line 15
                report_data = getattr(context, deferred_style_dialog_method)(**params)
            Module AccessControl.ZopeGuards, line 369, in guarded_apply
                return builtin_guarded_apply(func, args, kws)
            Module AccessControl.ZopeGuards, line 391, in builtin_guarded_apply
                return func(*arglist, **argdict)
            Module Products.ERP5Form.Form, line 705, in __call__
                return pt.pt_render(extra_context=extra_context)
            Module Products.ERP5OOo.OOoTemplate, line 484, in pt_render
                extra_context, request)
            Module Products.ERP5OOo.OOoTemplate, line 422, in renderIncludes
                xml_doc = etree.XML(text)
            Module lxml.etree, line 3192, in lxml.etree.XML (src/lxml/lxml.etree.c:78763)
            Module lxml.etree, line 1848, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:118341)
            Module lxml.etree, line 1736, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:117021)
            Module lxml.etree, line 1102, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:111265)
            Module lxml.etree, line 595, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:105109)
            Module lxml.etree, line 706, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:106817)
            Module lxml.etree, line 635, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:105671)
          XMLSyntaxError: PCDATA invalid Char value 20, line 228761, column 21 (line 228761)
      
      This is because XML does not accept the full range of characters, there are a
      few characters that are not allowed.
      
      To prevent these errors, we replace these invalid characters by an error
      character (�) before manipulating the XML with lxml.
      e4e12259
  7. 22 Oct, 2018 1 commit
  8. 20 Sep, 2018 1 commit
  9. 27 Mar, 2018 3 commits
  10. 23 Feb, 2018 1 commit
  11. 22 Sep, 2017 3 commits
  12. 05 Oct, 2016 1 commit
  13. 23 Jun, 2016 1 commit
  14. 09 Oct, 2015 1 commit
  15. 08 Sep, 2015 1 commit
  16. 03 Sep, 2015 1 commit
  17. 14 Aug, 2015 1 commit
  18. 09 Jun, 2015 1 commit
  19. 01 Jun, 2015 1 commit
  20. 04 Sep, 2014 1 commit
  21. 02 Apr, 2014 1 commit
  22. 19 Nov, 2013 1 commit
    • Vincent Pelletier's avatar
      Formulator: Disable None-value entries. · 1fefa4d5
      Vincent Pelletier authored
      Former behaviour for entry ('foo', None) was:
        <option value="value">foo</option>
      With this change, it becomes:
        <option disabled="disabled">foo</option>
      which was not possible to render before.
      1fefa4d5
  23. 21 Jun, 2013 1 commit
  24. 25 Jan, 2013 2 commits
  25. 16 May, 2012 1 commit
  26. 28 Apr, 2011 1 commit
  27. 15 Mar, 2011 2 commits
  28. 27 Jan, 2011 1 commit
  29. 18 Jan, 2011 1 commit
  30. 15 Dec, 2010 2 commits
  31. 14 Dec, 2010 1 commit
  32. 06 Dec, 2010 1 commit
  33. 23 Nov, 2010 1 commit