erp5:ffce235a5f4346edd2b43bb1cba0784978353bbb commitshttps://lab.nexedi.com/romain/erp5/-/commits/ffce235a5f4346edd2b43bb1cba0784978353bbb2017-11-27T02:37:07+00:00https://lab.nexedi.com/romain/erp5/-/commit/ffce235a5f4346edd2b43bb1cba0784978353bbberp5_project: make editable id fields use Base_viewFieldLibrary/my_view_mode_id2017-11-27T02:37:07+00:00Jérome Perrinjerome@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/6bd4ed14f8c241f1a4d5cdfe22cc3e487c5933e5erp5_base: make editable id fields use Base_viewFieldLibrary/my_view_mode_id2017-11-27T02:37:06+00:00Jérome Perrinjerome@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/71f948123cda60d4a4ec4be85d830f4cf53f44e2erp5_core: make editable id fields use Base_viewFieldLibrary/my_view_mode_id2017-11-27T02:37:05+00:00Jérome Perrinjerome@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/5263605ca44f0d08bdfa5d996beb0529c3249385erp5_core_proxy_field_legacy: make editable id fields use Base_viewFieldLibra...2017-11-27T02:10:06+00:00Jérome Perrinjerome@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/d4ac75df0fa4f6cbd32625b4d4c6a78cba1c04b0core: add a new Base_viewFieldLibrary/my_view_mode_id2017-11-27T02:10:05+00:00Jérome Perrinjerome@nexedi.com
for editable id fields
This field is required, because ID are really required in Zope so we have to make an exception to prevent a Site Error message and has an external validator checking that the document has no pending activities.https://lab.nexedi.com/romain/erp5/-/commit/f4e03d67a43a66d026deaf04a4e0d12754d733f2[renderjs_ui] LinesField works in non-editable mode2017-11-27T01:57:54+01:00Tomas Peterkatomas.peterka@nexedi.com
/#/bug_module/20171103-82F24A
/reviewed-on <a href="https://lab.nexedi.com/nexedi/erp5/merge_requests/489" data-original="https://lab.nexedi.com/nexedi/erp5/merge_requests/489" data-link="false" data-link-reference="true" data-project="1" data-merge-request="1587" data-project-path="nexedi/erp5" data-iid="489" data-mr-title="[renderjs_ui] LinesField works in non-editable mode" data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">nexedi/erp5!489</a>https://lab.nexedi.com/romain/erp5/-/commit/4c925ae7894020bf7ae0b4ee59cd28e401415f10ERP5Catalog: Remove useless object class declaration in __init__2017-11-24T11:59:58+01:00Ayush Tiwariayush.tiwari@nexedi.com
As pointed by /Jerome, it is only used for ZMI classes
<a href="https://lab.nexedi.com/nexedi/erp5/commit/557c20bdf0e869999f125f2be4f5916ef2df6081#note_52113" data-original="https://lab.nexedi.com/nexedi/erp5/commit/557c20bdf0e869999f125f2be4f5916ef2df6081#note_52113" data-link="false" data-link-reference="true" data-project="1" data-commit="557c20bdf0e869999f125f2be4f5916ef2df6081" data-reference-type="commit" data-container="body" data-placement="top" data-html="true" title="Products.ERP5Catalog: EPR5-ify catalog." class="gfm gfm-commit has-tooltip">nexedi/erp5@557c20bd (comment 52113)</a>https://lab.nexedi.com/romain/erp5/-/commit/4aa76869e14fe5d44881c159a803f0952f897ff5testERP5Core: Add catalog_tool in manager portal_actions tests2017-11-24T10:12:58+01:00Ayush Tiwariayush.tiwari@nexedi.com
Catalog Tool has been added as a portal_action, so update in tests
was needed:
<a href="https://lab.nexedi.com/nexedi/erp5/commit/ba2b35667eaa3d6f5603d979a6f11b209ccf87f7" data-original="https://lab.nexedi.com/nexedi/erp5/commit/ba2b35667eaa3d6f5603d979a6f11b209ccf87f7" data-link="false" data-link-reference="true" data-project="1" data-commit="ba2b35667eaa3d6f5603d979a6f11b209ccf87f7" data-reference-type="commit" data-container="body" data-placement="top" data-html="true" title="[erp5_core]: Add portal_actions for Catalog Tool" class="gfm gfm-commit has-tooltip">nexedi/erp5@ba2b3566</a>https://lab.nexedi.com/romain/erp5/-/commit/e9e817e388c22eed2a3c6809bbdba1995551541b[ERP5Type/tests] Handle properly firefox binary string in functional test case.2017-11-24T09:37:59+01:00Vincent Bechuvincent.bechu@nexedi.com
/reviewed-on <a href="https://lab.nexedi.com/nexedi/erp5/merge_requests/505" data-original="https://lab.nexedi.com/nexedi/erp5/merge_requests/505" data-link="false" data-link-reference="true" data-project="1" data-merge-request="1630" data-project-path="nexedi/erp5" data-iid="505" data-mr-title="[ERP5Type/tests] Handle properly firefox binary string in functional test case." data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">nexedi/erp5!505</a>https://lab.nexedi.com/romain/erp5/-/commit/ba2b35667eaa3d6f5603d979a6f11b209ccf87f7[erp5_core]: Add portal_actions for Catalog Tool2017-11-23T17:41:12+01:00Ayush Tiwariayush.tiwari@nexedi.com
After ERP5-ification of catalog, its better to have Catalog Tool in action list
for ERP5.https://lab.nexedi.com/romain/erp5/-/commit/9aa0509e5d27dee6a21744a61183f656d47cf126erp5_xhtml_style: Add Ctrl + S binding in CKEditor2017-11-23T10:38:47+01:00Cédric Le Ninivincedric.leninivin@tiolive.com
erp5_xhtml_style: Update ckeditor appcachehttps://lab.nexedi.com/romain/erp5/-/commit/eb74578ccf711c9aa0635589434a893efaeee04cAccountingTransactionModule_getDetailedAgedBalanceLineList: Stop using Query.2017-11-23T15:03:39+09:00Vincent Pelletiervincent@nexedi.com
Also, drop whitespaces at end of line.https://lab.nexedi.com/romain/erp5/-/commit/15d4b9dd53ca5b5eb782d9854f2f99e996a0e287[renderjs_ui] Float Field respects formatting + test2017-11-23T01:46:33+01:00Tomas Peterkatomas.peterka@nexedi.com
- Revert changes which led to lost of formatting.
- Implement decimal precision for non-editable mode
- Implement thousands separator
- Add test for FloadField from original XHTML interface
/reviewed-on <a href="https://lab.nexedi.com/nexedi/erp5/merge_requests/500" data-original="https://lab.nexedi.com/nexedi/erp5/merge_requests/500" data-link="false" data-link-reference="true" data-project="1" data-merge-request="1621" data-project-path="nexedi/erp5" data-iid="500" data-mr-title="[renderjs_ui] Float Field respects formatting + test" data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">nexedi/erp5!500</a>https://lab.nexedi.com/romain/erp5/-/commit/e1eb76bc0b3bff08d67e0f859672e558b2a7a463erp5.util: Release 0.4.502017-11-22T17:05:14+01:00Sebastien Robinseb@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/bed647093c2450f4463f688f1f02d230daf08dcberp5.util: Fill in changelog2017-11-22T14:01:37+01:00Lukasz Nowakluke@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/6b0d1c05ca830e7ef008854f98dd0bed59c75347item: display quantity instead of item_quantity in Item_viewTrackingList2017-11-22T09:34:00+00:00Sebastien Robinseb@nexedi.com
Since last changes on Item_getTrackingList, we no longer have item_quantity, so the
column "Quantity" was displaying nothing. So use quantity instead.https://lab.nexedi.com/romain/erp5/-/commit/f236d898f32afb7a827253e437543b98bb63d720Revert "products and several BTs: Use constructUrlFor for some url calculations"2017-11-21T11:48:33+01:00Georgios Dagkakisgeorgios.dagkakis@nexedi.com
This reverts commit <a href="/nexedi/erp5/-/commit/45bb448fd9fe57325a5c6dc04a19dce48458a49c" data-original="45bb448fd9fe57325a5c6dc04a19dce48458a49c" data-link="false" data-link-reference="false" data-project="1" data-commit="45bb448fd9fe57325a5c6dc04a19dce48458a49c" data-reference-type="commit" data-container="body" data-placement="top" data-html="true" title="products and several BTs: Use constructUrlFor for some url calculations" class="gfm gfm-commit has-tooltip">45bb448f</a>.
Since it caused a regression in saving portal_components.
To be re-thought and re-implementedhttps://lab.nexedi.com/romain/erp5/-/commit/2f23ba9aa921f4a05db3c95fcc817f240428f263Revert "FolderMixIn: add method constructUrlFor. As an API to be able to cons...2017-11-21T11:46:41+01:00Georgios Dagkakisgeorgios.dagkakis@nexedi.com
This reverts commit <a href="/nexedi/erp5/-/commit/f6e81b4184bcba7da484093bc42891230fcceb60" data-original="f6e81b4184bcba7da484093bc42891230fcceb60" data-link="false" data-link-reference="false" data-project="1" data-commit="f6e81b4184bcba7da484093bc42891230fcceb60" data-reference-type="commit" data-container="body" data-placement="top" data-html="true" title="FolderMixIn: add method constructUrlFor. As an API to be able to construct urls" class="gfm gfm-commit has-tooltip">f6e81b41</a>.
Since it caused a regression in saving portal_components.
To be re-thought and re-implementedhttps://lab.nexedi.com/romain/erp5/-/commit/9c809286dc314db15856ab64f8924d64a37a411bMigration to ERP5 Catalog2017-11-21T09:41:48+01:00Ayush Tiwariayush.tiwari@nexedi.com
Migrating current portal_catalog to erp5 object.
# Major changes :
- We have new classes for various objects based on base classes which we use for ERP5 objects.
| Old class | New class | Parent Class | Portal Type |
| ------------ | ------------- | ----------------- | ----------------|
| CatalogTool | ERP5CatalogTool | BaseTool | Catalog Tool |
| SQLCatalog | Catalog | ERP5Type.Folder | Catalog |
| ZSQLMethod | SQLMethod | XMLObject | SQL method |
- All the major attributes for these objects has been changed to properties. For these, we have some property_sheets added.
- **Catalog** : Properties like sql_clear_catalog, sql_search_result_keys, etc
- **CatalogTool** : Properties like default_erp5_catalog_id, archive_path, etc
- **SQLMethod** : Properties like arguments, templates, etc
- **CatalogFilter** : For CatalogMethod objects, we have added filter properties which earlier used to be an attribute of SQLCatalog saving object in PersistentMapping.
# Installation :
- **New ERP5 Instance** : For a new ERP5 instance, you get installed ERP5 Catalog Tool and ERP5 Catalog by default. Concerning sub-objects and python scripts, we have added an extra step in installation of `CatalogMethodTemplateItem` (mentioned in next section). This part is conversion of catalog methods to ERP5 objects.
This adds little extra time to installation of BT5 containing catalog methods.
- **Running ERP5 Instance**: We migrate the objects(`portal_catalog` as well as its sub objects) dynamically to the new portal_types, thanks to usage of `__of__` and `__bootstrap`. Concerning dynamic migration, it is handled via `synchronizeDynamicModule` function, which cover all steps in a transaction, hence any error in between rolls back the changes.
# Migration Steps for running instance :
1. Rebase your erp5 repository on new code.
2. Restart `zope` process.
3. Wait for activities to finish. Thereafter you can check from `portal_catalog/manage_main` that we have catalog and sub-objects as ERP5 objects.
But you still won't be able to see the `view` for those objects, so we move to next step of upgrading Business Templates. *It is normal to get error that catalog view is unaccessible*. You can check if you get this error both for `portal_catalog` as well as `erp5_mysql_innodb` also.
4. Restart `zope` process **again**.
5. Update `genbt5list`.
6. In template tool, upgrade business templates and upgrade `erp5_core` Business Templates. Wait for activities to finish(may take some time, 1-2 mins). After that, you are good to go and use ERP5 Catalog.
**Changes in bt5 installation for CatalogMethodTemplateItem**
- When we don't have default catalog installaed :
*Use case: Installation of BT5 during ERP5 setup*
In this case, while installation of `erp5_mysql_innodb_catalog`, we create the catalog and install all CatalogMethodTemplateItem there. Also, in the mean process, we convert the zsql methods and script(python) to erp5 objects. This process is only carried once, i.e at the installation of catalog. This is done in `ObjectTemplateItem.install` function
- When we have `ERP5 Catalog` installed :
*Use case: Installing BT5 containing ZSQL Method while we have ERP5 Catalog installed*
We use `install` function for `Class CatalogMethodTemplateItem` in this case. Here, we check for `aq_parent` of the catalog method and if it is an 'ERP5 Catalog', we convert it to erp5 objects.
# Performance :
- Adding extra step in BT5 installation adds some extra time to performance.
- Because, in every erp5 objects, object lookup is done via `_getOb` rather than `__getattr__`, so this adds a bit in improving performance.
- Overall, we lose around 2~3% performance.
# Problem pertaining/Limitations :
- Need to restart erp5_site before upgrading BT5(s) - Current structure of migration uses `__of__` function to migrate catalog which in turn makes a call to generation of dynamic classes for catalog object. This is where it calls `_importClass` method, which ends up calling `setDefaultClassProperties` function on multiple layer of classes including `ERP5Site`. Thus, we end up having `isRADContent` for portal object which comes as a hindrance when we try to index objects in acquisition such as `portal_skins`, etc.
# Extra points to be noted :
- `Catalog` object shouldn't be indexable(because of the problem which may arise due to circular dependency).
- Dynamic migration keeps all the old attributes for now, so as not to lose any user made change.
# Concerning Links :
- Documentation WebPage : <a href="https://www.erp5.com/erp5-Migrating.erp5.catalog" rel="nofollow noreferrer noopener" target="_blank">https://www.erp5.com/erp5-Migrating.erp5.catalog</a>
- Test Suite : <a href="https://nexedi.erp5.net/test_suite_module/284" rel="nofollow noreferrer noopener" target="_blank">https://nexedi.erp5.net/test_suite_module/284</a>
- Latest Test Result : <a href="https://nexedi.erp5.net/test_result_module/20171120-61F85D0C" rel="nofollow noreferrer noopener" target="_blank">https://nexedi.erp5.net/test_result_module/20171120-61F85D0C</a>
- Latest Performance Result : <a href="https://nexedi.erp5.net/test_result_module/20171120-2615A7B" rel="nofollow noreferrer noopener" target="_blank">https://nexedi.erp5.net/test_result_module/20171120-2615A7B</a>
/reviewed-on <a href="https://lab.nexedi.com/nexedi/erp5/merge_requests/178" data-original="https://lab.nexedi.com/nexedi/erp5/merge_requests/178" data-link="false" data-link-reference="true" data-project="1" data-merge-request="712" data-project-path="nexedi/erp5" data-iid="178" data-mr-title="Migration to ERP5 Catalog" data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">!178</a>https://lab.nexedi.com/romain/erp5/-/commit/9e53f10cf6e16b7e6b8c057dd7d9aa57806688a2erp5_catalog: Bootstrap allowed_types for Catalog Tool2017-11-20T14:20:42+01:00Ayushayush.tiwari@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/7d89744069904cae6dca444234a2827bed70bc14erp5_catalog: Dynamic migration of ZMI catalog to ERP5-ified catalog2017-11-20T14:20:40+01:00Ayush Tiwariayush.tiwari@nexedi.com
And, Patch changeObjectClass extension to remove useless attributes
Copying __dict__ from one object to another brings us to situation where
we don't have many objects which we don't need at all, for example, migrating
objects with subclasses who were initially OFS objects and later an ERP5
object can lead to adding subobjects as attributes of the new object, which
is completely undesirable. To handle this, it is important to delete the
sub-objects as the attributes for those migrated classes.
Old Catalog Tool didn't have portal_type attribute, so while migrating
via synchronizeDynamicModule, after _bootstrap, we expect the tool to
have a portal_type to finalize migration.
This step is now being done only at the end of _bootstrap after we
change the classes for portal_catalog and its sub-objects.https://lab.nexedi.com/romain/erp5/-/commit/064d305af99a272286cc507b4f77501786fba4cc[erp5_core]: Add Catalog Tool and Catalog portal types2017-11-20T14:20:39+01:00Ayush Tiwariayush.tiwari@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/c1787c0c6fe7ee465a00a9571266fdb0d4b378c3[erp5_core]: Add action and property sheet for Python Script portal_type2017-11-20T14:20:33+01:00Ayush Tiwariayush.tiwari@nexedi.com
Also, add condition to display the view only when the container is 'ERP5 Catalog'https://lab.nexedi.com/romain/erp5/-/commit/ed423e7edcf155c3666c6aadbd56fe6fb545a6e0[erp5_core]: Add SQL Method portal_type2017-11-20T14:20:30+01:00Ayush Tiwariayush.tiwari@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/1200801e3a6baa8211dad6cf1e0594e34ff95bbferp5_catalog: Rename reindexObject method to use them as new methods for Cata...2017-11-20T14:20:29+01:00Ayush Tiwariayush.tiwari@nexedi.com
- This step is needed due to the use of BaseTool as Base class for CatalogTool
due to which there were conflict between reindexObject from the Base and the one
from the BaseTool.https://lab.nexedi.com/romain/erp5/-/commit/4872db708855c558a6a6ad16f37eeb825cf294b2ERP5CatalogTool: ERP5-ify CatalogTool2017-11-20T14:20:28+01:00Ayush Tiwariayush.tiwari@nexedi.com
ERP5CatalogTool class inherits from BaseTool.
Significant addition/changes in:
-------------------------------
ERP5CatalogTool:
Add functions _isBootstrapRequired and _bootstrap
Explicilty add manage option tabs in Catalog Tool
BusinessTemplate:
Update BusinessTemplate installation according to changes made in ERP5Catalog and Tool
testCopySupport:
Its better to change the tests where they need to call getpath function of
portal_catalog to use portal_catalog.getpath instead of portal_catalog.getPath,
as we have overridden the 'getPath' function for CatalogTool class due to change
in inheritence.
ERP5Site:
Create portal_catalog while setting up erp5sitehttps://lab.nexedi.com/romain/erp5/-/commit/557c20bdf0e869999f125f2be4f5916ef2df6081Products.ERP5Catalog: EPR5-ify catalog.2017-11-20T14:20:20+01:00Ayush Tiwariayush.tiwari@nexedi.com
Move from SQLCatalog to ERP5Catalog as the default Catalog inside ERP5.
The major difference is use of Products.ERP5Type.Core.Folder as Catalog
base class.
Significant addition/changes in
-------------------------------
ERP5Catalog class:
Inherit from Catalog class from Products.ZSQLCatalog.SQLCatalog instead of copy-pasting the whole code again.
Monkey patch some property setters and getters to maintain consistency
Override getCatalogMethodIds cause it uses global variable in SQLCatalog.Catalog
Add FilterDict and Filter class to have consistency with `filter_dict` attribute of SQLCatalog
BusinessTemplate:
Update BusinessTemplate installation with updated filter_dict
Also, use dynamic migration while installing the catalog method objects for
bt5. This way we have SQL Methods migrated just after installation.
Tests:
Update tests according to changes in portal_catalog
SQLCatalog, testZSQLCatalog:
Cleanup for unusable functionshttps://lab.nexedi.com/romain/erp5/-/commit/c2809b85157dacf7b6130df2d76d41ead949471bProducts.ERP5.Document: Add SQLMethod class2017-11-20T10:36:58+01:00Ayush Tiwariayush.tiwari@nexedi.com
Create the SQLMethod class based on ZSQLMethods.SQL
class and XMLObject.https://lab.nexedi.com/romain/erp5/-/commit/35fbec53e27888999066688bc2c4756e50825701[erp5_web_renderjs_ui] Search Editor: add an empty search parameter by default2017-11-17T16:56:45+01:00Romain Courteaudromain@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/71f70c7a530a252e6e167b9aeda869e0a4a694fc[erp5_web_renderjs_ui_test] Improve macros.2017-11-17T16:56:41+01:00Romain Courteaudromain@nexedi.com
Clean up the macros and add description to make them more readable.
Precise where the filter/sort editors are located.
Add macros to manage the filter panel.https://lab.nexedi.com/romain/erp5/-/commit/5892dd0e8a2caf7332039191e53d8e1c121db401SQLCatalog: Cleanup manage_importProperties method2017-11-16T11:56:07+01:00Ayush Tiwariayush.tiwari@nexedi.com
Its bad to access file from filesystem.https://lab.nexedi.com/romain/erp5/-/commit/e1fa7611fb16af38c005b504a46c1fda85ee4b64[erp5_web_renderjs_ui] Actions and workflow transitions were mixed2017-11-16T11:20:46+01:00Romain Courteaudromain@nexedi.com
Just a typo probablyhttps://lab.nexedi.com/romain/erp5/-/commit/5487dfad0721f351ebb9865fd9fbe710a4ea83ba[erp5_web_renderjs_ui_test] Element is not immediately displayed2017-11-16T11:20:45+01:00Romain Courteaudromain@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/44b3472cde4ede252d14474b676a1480288c1234[erp5_web_renderjs_ui_test] Ensure that the panel is closed before opening it2017-11-16T11:20:45+01:00Romain Courteaudromain@nexedi.comhttps://lab.nexedi.com/romain/erp5/-/commit/8863d75c012c98905b9bd9fb6ca9f08d0660208atestMRP: Improve Documentation and categories naming2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.comhttps://lab.nexedi.com/romain/erp5/-/commit/e15c4fd6e5e9842871b4a45bb6acf94e43b401f2testMRP: Test Item is transfered to Manufacturing Order2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.comhttps://lab.nexedi.com/romain/erp5/-/commit/73a1db3d2f5740a355ee482b9a53e7073f53a51ftestMRP: Update business process to use transformation_sourcing_internal_pack...2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.comhttps://lab.nexedi.com/romain/erp5/-/commit/7df8001bec1112e2757eb38c5d91d508fc0c303btestMRP: Update testOrderWithItem to work with intermediate Manufacturing Order2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.comhttps://lab.nexedi.com/romain/erp5/-/commit/1234cc0cd22d9a22af2f37ec6bf84f755adb1c01erp5_mrp: Introduce Transformation Sourcing Internal Packing List Builder2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.comhttps://lab.nexedi.com/romain/erp5/-/commit/4deddaa4ec61047ff31c55579834993ef5fc4f44erp5_mrp: Fix/update test Transformation Simulation Rule and select for Manuf...2017-11-16T11:06:42+01:00Cédric Le Ninivincedric.leninivin@tiolive.com