- 20 Jul, 2020 1 commit
-
-
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.
-
- 17 Jul, 2020 4 commits
-
-
Xiaowu Zhang authored
See merge request nexedi/erp5!1193
-
Arnaud Fontaine authored
-
Gabriel Monnerat authored
It seems that with ${here/portal_url} returns the ERP5 url , for example http://nohost/erp5 instead of http://nohost/erp5/web_site_module/renderjs_runner/
-
Jérome Perrin authored
Since a89afa43 (Formulator: Support disabled items in all ItemWidget subclasses., 2014-04-02) we can include disabled items in listfields. This was used for example in erp5_crm to show the services with their hierarchy as disabled items and was useful to display the hierarchy. In some fields, we don't want user to select "nodes" categories, but only select "leaves" categories (ie. select the most precise category). This always had a problem when using "Indented title" as display method for categories, because the user can not see the actual hierarchy. This is about making it possible to display hierarchy of categories in this case where we select only leaves, so that it displays like this: ![screenshot of a category with disabled items for hierarchy](/uploads/0f3e8ef68ab6e2ec424e4e8d42fc5e2a/image.png) This required to: - introduce a new category API, `disable_node`, which is semantically very close to `filter_node` except that instead of filtering out node categories that are kept with `None` as related URL. Symmetrically, we also introduce `disable_leave` - make `ParallelListField` support disabled items. Even if this was properly supported in underlying fields, some parts in `ParallelListField` did not differentiate between `None` and `''`. - modify several forms to use `disable_node` instead of `filter_node` See merge request !1199
-
- 16 Jul, 2020 5 commits
-
-
Lu Xu authored
-
Jérome Perrin authored
For PDM/Trade we use: - "Site" for node category - "Warehouse" for node - "Owner" for section category - "Owner" for section For Invoicing/Accounting this does not change. Also, since in PDM/Trade context we are sometimes only taking care of physical movements/quantities and not the ownership, make sure that: - "Site" is first in report dialogs - "Section Category" is not initialised from preference, so that reports show the quantities in a location regardless of the ownership See merge request nexedi/erp5!1202
-
Jérome Perrin authored
- add an empty item to the list, so that user have to choose something. The empty item was missing here: ![image](/uploads/5be3e9d5acf1233270516c7463dbfdd4/image.png) If there's an empty item and we force user to choose, there will not be the problem that user can forget to select the good value and mistakenly generates for the Fifo because it's the first value. - translate values See merge request nexedi/erp5!1204
-
Jérome Perrin authored
A few small fixes to form and page templates to allow their translations Missing messages in french translation See merge request !1201
-
Jérome Perrin authored
See merge request nexedi/erp5!1198
-
- 15 Jul, 2020 5 commits
-
-
Rafael Monnerat authored
See merge request nexedi/erp5!1197
-
Xiaowu Zhang authored
See merge request nexedi/erp5!1196
-
Arnaud Fontaine authored
Also, as OAuthTool class is only used as a Folder ({Google,Facebook}Connector) remove {unused,unmaintained,unfinished} code: * Properties are statically set on portal_oauth directly with non-persistent classes define in OAuthTool.py. This prevents migration to ZODB Components as migrating OAuthTool.py to erp5_oauth would break upgrade: chicken & egg issue: we need these classes on importFile(portal_oauth.xml) (portal_templates.download()) but they are not available until the bt5 is installed.... * Several properties are supposed to be secret but statically set in OAuthTool.py. * This code has never been used since its introduction 9 years ago.
-
Xiaowu Zhang authored
-
Xiaowu Zhang authored
-
- 14 Jul, 2020 1 commit
-
-
Jérome Perrin authored
Unlike trade and like accounting, for invoice we are using "Section Category" term for section category, it's no longer about "who is the owner of this stock" like in trade, but already "who is the entity" like in accounting
-
- 13 Jul, 2020 23 commits
-
-
Rafael Monnerat authored
-
Jérome Perrin authored
- add an empty item to the list, so that user have to choose something - translate values
-
Jérome Perrin authored
for consistency with other stock reports such as Base_viewStockReportBySiteDialog
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
most trade and PDM report are about "what quantity of resources do we have here", in most uses cases, we are not concerned about who is the owner of these, so it's probably better to not select these by default.
-
Arnaud Fontaine authored
-
Jérome Perrin authored
This tab was probably useless, let's remove it.
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
This also make use consistent for all resource types, the filter_node was only effective on service, now it won't be possible to select nodes on any resource.
-
Jérome Perrin authored
So that user can see the hierarchy (especially when categories are configured as indented items) but not select nodes
-
Jérome Perrin authored
instead of the deprecated Resource_viewFieldLibrary
-
Jérome Perrin authored
by using disable_node instead of filter_node, we can keep the hierarchy and this is much more understandable when using indented titles for categories
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
It does not seem easily feasible to implement support at this level. If support is needed, I guess the best would be to make a custom hash script that generate the full category item list again, then it would know in which subfield list to "dispatch" the None items.
-
Jérome Perrin authored
value of None is diferent from '', '' is the empty value when nothing is selected, but None is a disabled item
-
Jérome Perrin authored
(Multi)ListField renders items with None as value as disabled option, but this was not really supported in ParallelListField because ParallelListField treated the same way the empty ('', '') item and a disabled item ("Disabled", None). Adjust the conditions to differentiate the two cases.
-
Jérome Perrin authored
This allow filtering category item lists so that user can only select nodes / leaves in a way similar to filter_{node,leave} but instead of removing the items, keep them with None as relative URL. This is something Formulator understand, categories are displayed with disable attribute set on the select option, which allows to visualize the category hierarchical structure, while not allowing user to select {nodes,leaves}
-
Jérome Perrin authored
When using SavedTestSuite, the first step is to make testnode run --save for each instance, by running the test referenced in _saved_test_id class attributes. Because log files are defined only by the test name, this was causing the multiple concurrent runUnitTest executions with --save to all log in the same file. That file was also reused when actually running this test later. Override getLogDirectoryPath to use a different folder, one per instance, when doing the initial --save
-
- 10 Jul, 2020 1 commit
-
-
Jérome Perrin authored
These are simple report/exports, they work fine with ERP5JS
-