- 21 Jul, 2016 2 commits
-
-
Tristan Cavelier authored
Changes from Ni Yan, and Sven Franck
-
Tristan Cavelier authored
Changes from Ni Yan
-
- 19 Jul, 2016 3 commits
-
-
Jérome Perrin authored
Otherwise this is interpreted as text/html after sending html emails
-
Jérome Perrin authored
knowledge_pad/worklist gadget: support displaying a worklist that does not respect the (%(count)s) convention
-
Jérome Perrin authored
* Worklist must include (%(count)s) to include the number of document in that worklist * The role of users who have to take care of the documents must be defined on the worklist
-
- 16 Jul, 2016 1 commit
-
-
Julien Muchembled authored
There's no magic in this patch series: it is known that HBTreeFolder2 has limitations about the ids that can be set without conflict, and this can't be fixed without causing compatibility issues with existing data. The patches contain: - some optimization - bug fixes - detection of id conflicts before causing data loss This will also allow us to use a newer version of ZODB. Recent BTrees failed on the following line of `_setOb`: if len(id_list) == 1 and not htree.has_key(None): (None is not valid key for comparison since ZODB commit bb5aac21277f43333d6450064dc6670c8c280e40) The long story about id conflicts is that a HBTreeFolder2 can't store 2 objects <A> and <A>-<B> where <A> does not contain '-', and that's the rule followed by _getOb/_setOb/_delOb. However: - Conflicts are detected by testing the type of the value, which means HBTreeFolder2 can't store values of the same type as the one it uses internally (i.e. OOBTree). - For performance reasons, _htree_iteritems and getTreeIdList use a stricter rule: they assume there can't be 2 objects <A> and <A>-<B>, regardless of the presence of a separator in <A>. Maybe this rule should be enforced in _setOb. /reviewed-on nexedi/erp5!112
-
- 15 Jul, 2016 13 commits
-
-
Julien Muchembled authored
It was an unefficient adaptation of BTreeFolder2 code. These methods have probably never been used.
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
getTreeIdList is still required by Folder_reindexAll. getTreeIdList is not immediate anymore but the reindexing of a folder should anyway be reimplemented to not depend on this method: only one tree is indexed at a time, which is unefficient when they're small.
-
Julien Muchembled authored
-
Julien Muchembled authored
_getOb and similar methods are reimplemented in a faster and safer way. It now checks it is only used to return leafs. Similarly, _delOb now refuses to delete trees at the root. __getattr__ wrongly returned wrapped results (__of__).
-
Julien Muchembled authored
Since commit 055d0a69 ("HBTreeFolder2: make object{Ids,Values,Items} really lazy"), _fixCount() does nothing because objectIds() was optimized in a way that len(self.objectIds()) already returns self._count()
-
Vincent Pelletier authored
Callers up the stack should not mutate returned value (and all callers found in this repository code follow this rule). Saves a list copy and an extra call on each call, and a few lines of code.
-
Vincent Pelletier authored
-
Sebastien Robin authored
work partially done by Vincent Pelletier (z_get_table_schema)
-
Vincent Pelletier authored
-
Douglas authored
@Tyagov, please, check the demo notebook added. /reviewed-on nexedi/erp5!145
-
- 14 Jul, 2016 6 commits
-
-
Xiaowu Zhang authored
erp5_web_renderjs_ui: add a common gadget to render multi&relation field & no need to show "Create:X" string /reviewed-on nexedi/erp5!140
-
Yusei Tahara authored
-
Yusei Tahara authored
-
Sebastian authored
-
Sebastian authored
-
Yusei Tahara authored
-
- 13 Jul, 2016 3 commits
-
-
Xiaowu Zhang authored
-
Xiaowu Zhang authored
-
Yusei Tahara authored
-
- 12 Jul, 2016 2 commits
-
-
Cédric Le Ninivin authored
-
Xiaowu Zhang authored
/reviewed-on nexedi/erp5!139
-
- 11 Jul, 2016 1 commit
-
-
Douglas authored
@Tyagov review, please. I'm creating a test suite now and will post about the test results as soon as they are available. - An environment object was implemented to help us deal with the multiprocess architecture of ERP5 and objects that cannot be easily stored in the ZODB. It stores definition of functions, classes and variables as string. The implementation uses a dumb Environment class to allow users to make `define` and `undefine` calls, which are captured and processed by an AST transformer before code execution. - Along with the environment object, an automatic "import fixer" was created. It does not allow users to import modules as they normally would, because this may cause collateral effects on other users' code. A good example is the plot settings in the matplotlib module. It will fix normal imports, make them use the environment object mentione earlier automatically and warn the user about it. Some bugs were fixed with this new implementation: - https://nexedi.erp5.net/bug_module/20160318-7098DD, which reports an inconsistency on portal catalog queries between Jupyter and Python (Script) objects. Probably an issue with user context storage in ActiveProcess - https://nexedi.erp5.net/bug_module/20160330-13AA193, which reports an error related to acquisition when trying to plot images, which happened in other situations, although this is not officially reported in Nexedi's ERP5. This probably also was happening because of old user context storage. /reviewed-on nexedi/erp5!131
-
- 08 Jul, 2016 4 commits
-
-
Douglas authored
Variables are investigated, recursively in case of container objects (like lists, for example), to detect if they can be stored in the ZODB. In this investigation persistent objects are identified by being an instance of the object class and implementing a `__getstate__` method that raises no exception. If the variable is not a Persistent object then we try to pickle and load it. While developing the pickleable object identification a complication was found. It seems that the code cannot capture cPickle.PicklingError in the usual way, `except cPickle.PicklingError`. It's consequence of some weirdness with regards to pickle/cPickle modules exceptions classes and more about it can be read at http://bugs.python.org/issue1457119. So, the workaround for this complication was to catch all exceptions and check the exception class name as string. The whole check for zodb persistence was moved into an utility function for the sake of readability and code maintenance. The Base_executeJupyter script object was transformed into an extension to be able to properly handle transaction errors and render them correctly inside Jupyter.
-
Sebastien Robin authored
Avoid getting all related values when we jump to a module.
-
Sebastien Robin authored
Getter of content translations were setting an empty translation dict. So there was ZODB pollution by doing useless changes.
-
Yusei Tahara authored
erp5_web_renderjs_ui_test: Isolate testRenderjsLogout from other tests, otherwise next test fails because of unauthorized error.
-
- 07 Jul, 2016 2 commits
-
-
Sven Franck authored
-
Yusei Tahara authored
erp5_ui_test_core: Don't use Base_doLanguage. Base_doLanguage opens another selenium test runner in the bottom frame of the original selenium test runner by redirect and another selenium test runner does the same thing recursively.
-
- 05 Jul, 2016 3 commits
-
-
Nicolas Wavrant authored
-
Sven Franck authored
-
Sven Franck authored
-