- 08 Apr, 2022 1 commit
-
-
Romain Courteaud authored
See ed0c1297
-
- 07 Apr, 2022 2 commits
-
-
Jérome Perrin authored
With the new workflow implementation, error_message variable is required, because we intentionally clone previous workflow history entries when passing transition, as this leads to smaller pickle size See merge request nexedi/erp5!1560
-
Romain Courteaud authored
Use the html_viewer gadget
-
- 05 Apr, 2022 8 commits
-
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Jérome Perrin authored
fix internal API mis-use and other small fixes See merge request nexedi/erp5!1583
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
This was creating different message for each number of tasks
-
Jérome Perrin authored
This uses an internal API that has changed in 0aeea3c4 (Validation message translation, 2021-01-06)
-
- 31 Mar, 2022 5 commits
-
-
Xiaowu Zhang authored
-
Xiaowu Zhang authored
-
Gabriel Monnerat authored
With this, user can see stop_date from events
-
Gabriel Monnerat authored
With TALES in default, we prevent acquisition from the start date. When default is None, the field will try to display now on the stop date. The goal is, if stop_date is None, we don't display anything in this field.
-
Gabriel Monnerat authored
stop date is very useful to Phone Call and Visit. For example, if you want to calculate the time spent in one phone call, you can handle it using start and stop date. But, Event_view does not display stop_date. So, we display stop_date if hasDuration is True.
-
- 30 Mar, 2022 1 commit
-
-
Georgios Dagkakis authored
No need to introduce one more random number here, anyway the tag that is passed to this script contains one, so use that
-
- 29 Mar, 2022 1 commit
-
-
Georgios Dagkakis authored
Base_report needs to get also the cleanup_tag to make sure it is launched before active process is deleted
-
- 24 Mar, 2022 2 commits
-
-
Julien Muchembled authored
When rendering a proxy field, 3 different fields can come in play: 1. the field to be rendered 3. the template field (i.e. not a proxy field) that knows how to render 2. possibly an intermediate proxy field that contains the value to render What's difficult when rendering a proxy field is to take the above 3 fields into account and this commit does it by creating a temporary field: 1. 'field' variable in TALES 2. the value 3. the code Before this commit, 1 could be wrong.
-
Jérome Perrin authored
This was deprectated because we don't have get*ById for other modules and tools, we just use OFS API. This should also be slightly faster because one less method call (and one less call to warning)
-
- 23 Mar, 2022 4 commits
-
-
Jérome Perrin authored
exiting the context manager restores the original DateTime behavior
-
Jérome Perrin authored
This tests the test framework, because this code is tricky.
-
Jérome Perrin authored
-
Jérome Perrin authored
I'm not sure if this is used, but not being valid python code cause problems with code analysis tools
-
- 22 Mar, 2022 1 commit
-
-
Jérome Perrin authored
Maybe this made sense long time ago, but nowadays we are using equivalence testers which tolerate date differences with more flexibility. createDateTimeFromMillis was also problematic as it uses internal private attributes of DateTime which is a pylint error with more recent DateTime
-
- 21 Mar, 2022 2 commits
-
-
Romain Courteaud authored
Permissions are managed by the document_publication_worflow
-
Xiaowu Zhang authored
-
- 18 Mar, 2022 1 commit
-
-
Jérome Perrin authored
Most service worker precache scripts reference a favicon.ico, but this is using the default favicon.ico from Zope and even though it was included in all ERP5JS and OfficeJS web sites, this was mostly not used, only web_renderjs_ui web pages reference favicon.ico. There's a favicon.ico in erp5_xhtml_style skin folder, but the skin folder is not in ERP5JS skin selection. On Zope2, this caused ERP5JS and OfficeJS application use the default Zope favicon. On Zope4, the service worker can not fill its cache because of 404 errors, because since Zope commit 4f0770941 (Retired icons from the `Zope Management Interface` and various smaller cleanups of ZMI screens., 2011-07-02) there's no default favicon.ico anymore. To solve this, provide a favicon.ico in ERP5JS skin selection, by copying the one from erp5_xhtml_style. We also reference it explicitly in web site layout properties so that it remain in the cache. OfficeJS applications do not use favicon.ico explicitly. They use icons in their web application manifest, but this does not seem to be use as favicon unless the PWA is installed. This part is not addressed by this commit.
-
- 17 Mar, 2022 6 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
For now only checks that error_message is missing, but later we might extended this to perform more check on the workflow definition.
-
Jérome Perrin authored
After df85ef46 (ERP5Workflow: DC Workflows are now ERP5 objects (!1378)., 2020-11-18) we increased the expected value from 24 to 36, because it was just different with new workflow implementation and what was important is to have large buckets. After that, the test was flaky and eventually we changed the assertion from checking that the value equal the expected value to checking that it's larger to checking that it's larger to a satisfying value and we used the initial 24 for satisfying value. A large value here means the bucket contain many items, which happens when the pickle size is small We now understand that pickle are short when the pickler was able to deduplicate some strings because they were the same instances (as compared by `is` operator). Note that this deduplication happens before the one operated by Products.ERP5Type.Workflow.dedupStrings after bucket rotation, it's the "normal" deduplication from pickle happening when element are added to list. Because it's a good thing for disk usage to have small pickles, we raise our expectation and increase the expected minimal value to be 30.
-
Jérome Perrin authored
-
Jérome Perrin authored
Because error_message variable was missing in component_validation_workflow, once the validation was refused for an error, every subsequent entry in workflow history was carrying the same error message. Adding the missing variable fix this, but it would cause diff every time we modify and re-export a component, so we also take care of not exporting it in business template, like we already did for other several variables.
-
- 11 Mar, 2022 2 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
-
- 10 Mar, 2022 4 commits
-
-
Vincent Pelletier authored
Avoid repeating processing_node condition for every single activity whose serialization_tag dependency is being checked. This reduces the length and execution complexity of produced SQL.
-
Jérome Perrin authored
The meaning of empty items for **multi** list fields for categories is not clear for dialogs (if user does not want to apply any filter, then the natural way would be to select nothing). This also caused issues with category fields, when the action script uses restrictedTraverse to get the uids corresponding to the category but a path is empty, like for example in https://lab.nexedi.com/nexedi/erp5/blob/d51bb0413a806b3db0c5eb69dec06065b9601322/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getTrialBalanceReportSectionList.py#L40-48 which does this: ```python # optional GAP filter node_uid = [] gap_uid_list = [] for gap in request.get('gap_list', ()): gap_uid_list.append(portal.portal_categories.gap.restrictedTraverse(gap).getUid()) if gap_uid_list: node_uid = [x.uid for x in portal.portal_catalog( portal_type='Account', default_gap_uid=gap_uid_list)] or -1 ``` If an empty item is selected, then `gap_uid_list` will contain an entry for `portal.portal_categories.gap.restrictedTraverse('').getUid()` which will be the uid of the gap base category. Searching with a base category uid nowadays does not match any document, but before 95e3eaec (CMFCategory: Do not index any Base Category as a related document., 2016-12-21), it was matching all documents having a relation from this base category and in the case of this trial balance report it was matching all accounts. This was a problem for old instances with accounts created before 95e3eaec, because when they were first indexed, they had the record in category table, so they were matched, but once they get re-indexed, they no longer had the record, so the result of this report when selecting the empty item became different, because accounts were no longer included. Looking back at this, maybe when updating to get 95e3eaec, we should have ran a migration to delete all these records (re-indexing every document in the background should be enough) so that if there's a problem, the problem happens right now and not after a few months after accounts are modified and re-indexed. When looking at this from end user level, theses empty items not only cause this problem, but also does not have a clear behaviour and are not needed, so the changes here are about removing these empty items. In accounting reports, there was a multi listfield showing all gap categories, "grouped" by chart of account - but the name of the chart of account was not displayed. This change to use a None item, which is rendered as disabled to display the chart of account name, but to do this we had to fix a bug in Formulator, these disabled items were only working properly for single item widgets, not multiple items widgets. See merge request nexedi/erp5!1572
-
Jérome Perrin authored
This addresses a regression from nexedi/erp5!1561 changing the class hierarchy caused Login to loose its docstring and became no longer publishable. This was problematic because it was not detected by the test suite, so HTML test is changed to use zope publication instead of calling the view on the context. Another notable point is that this behaves differently in ERP5JS, the Logins were still visible in ERP5JS. Because we don't actually rely on "no docstring on the class" to prevent publication, this is not changed. See merge request nexedi/erp5!1571
-
Jérome Perrin authored
There was opening and closing tags mismatch: <div><a href="#references1_anchor">References</div></a>
-