All important changes that requires manual migration are described in this page.
r20964 - r20968 (2008-05-15)
I (rafael) committed the integration of access_tab and xhtml_style. It is required to update ERP5 product and erp5_core over than r20965. Notes that this commit should not change the front page for any site at beginning, after update NO access_tab will be showed.
- For projects that does not use access tab, this commit should change nothing.
- For projects that use access tab, it required to check Access Tab Front Page at User Interface Preferences. This field is only available for managers by default and check only at the site level is enough.
- For projects that has their own front pages, increase their business_template_skin_layer_priority at your project skin folder over than 100. This make your index_html got instead at access_tab.
- Sites with many managers and use access tab with their own preferences can have problems with these accounts. For this just ask for the user check Access Tab front Page at User Interface in Preferences.
I tried many combinations of issues and tested it with many diferent accounts. So if you have any problem, contact me (mail or jabber) I can explain or fix any unexpected issue.
r20888 (2008-05-06)
erp5_new_toppage was renamed to erp5_access_tab. To update top page, install erp5_access_tab and remove erp5_new_toppage after.
r20782 (2008-04-23)
variation category has been removed from erp5_core, because it already exists in erp5_pdm. Be careful not to select "remove" when updating erp5_core.
r20580 - r20586(2008-04-16)
Supplies have been moved from ERP5 Trade to ERP5 PDM. When upgrading a site, make sure you do not trash the existing supply modules if they are not empty. Also, you should update ERP5 Trade before ERP5 PDM.
r20505(2008-04-14)
Added new parameter to round scripts. This is usefull to round that values in a different way for begin and the end of the block. See also: http://www.erp5.org/Discussion/DateRange. Is required to update erp5_core revision to 792 (r20504) or more.
r20475(2008-04-14)
Change InvoiceTransactionRule_asCellRange to use the IDs and not relative_url, because after a copy & paste, matrix range was not applicable. relative_url contains the full path of the object, so obviously after copy & paste it's not the same path, that's why we'll use subobjects IDs. This requires manual migration of existing invoice transaction rule. I don't have a migration script for now.
r20188(2008-3-28)
In erp5_core, causality in acquired base categories is deleted from following categories.
- destination_decision
- destination_administration
- destination_payment
- source_decision
- source_administration
- source_payment
Due to this changes, if you have a document which uses causality and above categories, you need to migrate documents.
This is a example for migrating Task Report document.
def migrate_task_report(task_report):
task = task_report.getCausalityValue()
if task is None:
return
destination_decision = task.getDestinationDecision()
if destination_decision != task_report.getDestinationDecision():
task_report._setDestinationDecision(destination_decision)
return True
r19674(2008-3-4)
Update Resource_zGetTrackingList: to_date was not correctly handled, and if used the ZSQLMethod will crash. This revision changes code flow in the ZSQLMethod when to_date is provided, which causes a crash when at_date is None.
r19252(2008-2-26)
Catalog tables item and inventory_item contain new columns. Clear catalog and reindex.
r19481(2008-2-25)
Security on portal_preferences was not set correctly. It is now set correctly when creating the tool. Old sites can be updated with:
context.portal_preferences.manage_permission('Add portal content',
['Member', 'Author', 'Manager'])
context.portal_preferences.manage_permission('Add portal folders',
['Member', 'Author', 'Manager'])
context.portal_preferences.manage_permission('View',
['Member', 'Auditor', 'Manager'])
context.portal_preferences.manage_permission('Copy or Move',
['Member', 'Auditor', 'Manager'])
context.portal_preferences.manage_permission('Manage properties',
['Manager'], acquire=0)
context.portal_preferences.manage_permission('Set own password',
['Member', 'Author', 'Manager'])This is required if you want to use templates.
r19431(2008-2-20)
CMFActivity SQL tables contain a new column. Recreate activity tables.
r19412-r19416(2008-2-19)
Rename owner column to viewable owner, in order to handle Owner based security in a more generic way. Please update ERP5, ERP5Type, ERP5Catalog, ZSQLCatalog products and erp5_core, erp5_mysql_innodb_catalog business templates. Recreate the catalog tables.
r19152(2008-2-08)
Due to refactoring of ZSQLCatalog you need to install "ply":http://www.dabeaz.com/ply/ on your machines
r18963(2008-2-01)
Show comment on main view for accounting transactions instead of description. You may want to migrate your existing transcations with something like this:
for tr in context.accounting_module.objectValues():
tr.setComment(tr.getDescription())
tr.setDescription('')
# commit subtransaction every n iterations if you have many documents
r18890(2008-1-28)
Due to add a new option "Anchor Column" in listbox, erp5_xhtml_style/ListBox_asHTML has been changed.
if you have customized ListBox template, please merge this changes.
r18880(2008-1-28)
Added a "src__" parameter to search_result call, which might be a script (named Base_getCountFromWorklistTable) when using SQL-cached worklists. This script must be updated to accept and honor this parameter (the script is expected to return a string composed of the SQL code which would have been executed if src__ is False). Note: this is not needed with default version of this script (takes a **kw parameter transmited verbatim, and returns the value without any processing).
r18702(2008-1-14)
Added scriptable key in business template. Please use erp5_core(rev 670 or newer).
r18669(2008-1-14)
Fixed dependency of erp5_crm. please install MimetypesRegistry and PortalTransforms. You need these products, if you use erp5_crm or business templates which depends on it.
r18480 - r18525 (2008-02-07)
At revision 18480 Base_updateListboxSelection script was introduced, which at revision 18525 is used in Products in Base_doDialog method. So lack of it prior to 18480 after upgrading Products past 18525 blocks Business Template import dialog to work and consequently disables upgrade of erp5_core.
To sucessfully upgrade from before 18480 to after 18525 there is a simple workaround:
in custom skin create an empty script with id = Base_updateListboxSelection.
- update erp5_catalog and erp5_core
- remove the dummy script
- keep on upgrading
The other way would be to upgrade business templates before the Products, but that might be dangerous if at all possible.
r18471 (2007-12-21)
DMS ingestion system was refactored. Please update business templates(erp5_web, erp5_dms) and Products(ERP5OOo, ERP5) and also oood.
r18291 (2007-12-13)
Planning box was refactored. Update your business templates. if there is another planning box that not use proxy field from Base_viewFieldLibrary/planning_box. Please set the lane_root list as:
base_day_domain | Day base_week_domain | Week base_month_domain | Month base_year_domain | Year
r17867 (2007-11-28)
ERP5 converts and saves now all passed to ZSQLMethod DateTime values from local time to 'UTC'.
This conversion is done automatically for every ZSQLMethod using dtml sqlvar tag of type "datetime" and affects indexing so please reindex your site.
Please also note that ZMySQLDA product from ERP5 repository is required.
r17656 (2007-11-16)
Some rule test scripts were no longer usefull, the others were badly named. The name of a script that tests is a rule applies is now SimulationMovement_test<portal_type_of_the_rule>. Please update your rules (OrderRule, DeliveryRule, AmortisationRule, InvoiceRule, ProductionOrderRule don't use a script anymore, all the other rules do).
r17537 (2007-11-12)
( You probably don't need this one )
The sub_form attribute of ProxyField is now calculated by getting it on the template field. Before that it was stored as an instance attribute.
The full explanation is that ProxyFields of DateTimeFields have a sub_form attribute that was set on the instance by render method. There are two different sub_form values, based on the "input style" value, which makes DateTimeFields are rendered with text fields or list fields. The sub_form set on ProxyFields was using text fields, so if you want to use list input style, you have to "cleanup" existing ProxyFields stored in the ZODB by deletting their "sub_form" attribute. Note that changing the input style value of a Datetime field result in a ZODB write, so this might evolve again in the future.
I used this external method do clean existing fields:
def clean(self):
context = self
for field_path, field in context.ZopeFind(
context.portal_skins, obj_metatypes=['ProxyField'],
search_sub=1):
if field.getRecursiveTemplateField().meta_type == 'DateTimeField':
if 'sub_form' in field.__dict__:
print field_path
delattr(field, 'sub_form')
field._p_changed = 1
r17417 (2007-11-06)
Rules are now used as predicates and are controlled by a validation workflow.
To upgrade your system, the simplest is, for each rule:
- copy the id property to reference property
- set a version (note that it is stored, and compared, as a string)
set a test method id (one that reproduces the previous behaviout would be named RuleType_test.*, for example InvoiceRule_testContextPortalType, look for it in the skin folder)
- validate the rule
r17270 (2007-10-30)
Movement.getPrice does not set price automatically any longer, because this behavior is policy-oriented. The function is now implemented in pricing_interaction_workflow, which must be associated with all Movements which need to set price when getting it at the first time. From r17271 to r17280, several Business Templates have been updated for this change.
If you have any other Movements in your system, you need to update them yourself.
r17168 (2007-10-24)
Career workflow changed its state variable name from "state" to "validation_state". To fix existing careers, run the external method updateCareerValidationState in ERP5.CheckPortalTypes.
r16942 (2007-10-10)
Due to ListBox bug fix, ERP5Form/www/ListBox_asHTML.zpt has been changed.
http://svn.erp5.org/?view=rev&revision=16942
if you have customized ListBox template, please fix the following part.
ERP5Form/www/ListBox_asHTML.zpt (line:280)
- tal:define="section_name python: line.getContext() is not None and line.getContext().getTitleOrId() or ''"> + tal:define="section_name python: line.getDomainTitle()">
r16830-r16837 (2007-10-04)
replaced delivery_edit_workflow, packing_list_interaction_workflow and production_packing_list_interaction_workflow by delivery_simulation_interaction_workflow, delivery_movement_simulation_interaction_workflow and container_interaction_workflow
This is the second part of the change initiated by Romain in r16011.
Deliveries that are related to simulation should be associated to delivery_simulation_interaction_workflow
Delivery Lines and Cells that are related to simulation should be associated to delivery_movement_simulation_interaction_workflow
Packing List Lines and Cells that are part of Packing List that must be packed into Containers, as well as Container Lines and Cells should be associated to container_interaction_workflow
It might be necessary to remove delivery_edit_workflow, packing_list_interaction_workflow and production_packing_list_interaction_workflow from workflow chains before updating erp5_trade'
r16689 (2007-09-28)
"catalog" table no longer uses AUTO_INCREMENT MySQL feature.
When clearing your catalog with a erp5_mysql_innodb_catalog revision higher that this one, you will need to make sure that your ZSQLCatalog product is at revision 16688 or higher. Incidentaly, you must make sure that ERP5/Tool/IdTool.py is at revision 16687 or higher, since it fixes a bug which causes invalid hebahviour when used to generate catalog uids.
r16447 (2007-09-18)
"inventory" table has a new column. If any object gets reindexed into this table and the ZSQLMethod was updated, it will fail ("simulation_state" column will not be a part of this table).
Easy solution: clear catalog & reindex all. Faster solution: alter table to add the column, reindex just the objects referenced in that table. Also, recreate indexes to add that new column. Look at z_create_inventory for details.
r16371 (2007-09-14)
Balance Transaction now uses the new Balance Transaction class. Existing documents can be updated with an external method:
module_name: ERP5.!CheckPortalTypes
function_name: updateBalanceTransactionClass
r16289 (2007-09-12)
'comment' is removed on Task_view and TaskReport_view, replaced by 'description'. Update with (you'll probably need to do this in unrestricted environment):
[task.setDescription('%s\n%s' % (task.getDescription(), task.getProperty('comment', ''))) for task in context.task_module.objectValues()]
[task_report.setDescription('%s\n%s' % (task_report.getDescription(), task_report.getProperty('comment', ''))) for task_report in context.task_report_module.objectValues()]
r16152 (2007-09-07)
simulation_movement_interaction_workflow was renamed to simulation_movement_causality_interaction_workflow. One should take care if this workflow was mofified locally.
r16115 (2007-09-07)
Added Resource_zGetFullInventoryDate which unlocks access to inventory optimisation commited earlier. As optimisation relies on the presence of new tables (inventory & inventory_stock), you can either create the tables manually (better to reindex your site if you want optimistion to actually happen) or delete that ZSQLMethod from portal_skins/erp5_core.
r16036 (2007-09-04)
For erp5_trade, 'edit' transition of the causality workflow should be renamed 'calculate'. It has to be done manually if a custom causality workflow is used.
r16011 (2007-09-03)
Expand of the simulation related to an Order is not managed by the Document directly.
Is is now required to use:
- order_simulation_interaction_workflow
- order_movement_simulation_interaction_workflow
as described in this discussion.
If you use erp5_trade, erp5_mrp or erp5_project, please update them at the same time.
r14032 (2007-04-10)
We now use a Length object to store index in result list for active process. If you use active process, update them with:
from BTrees.Length import Length for ap in portal.portal_activities.contentValues(portal_type='Active Process'): ap.result_len = Length(ap.result_list.maxKey())
r13891 (2007-04-03)
SelectionTool now inherits from BaseTool, which inherits from Folder. if you get AttributeError: 'NoneType' object has no attribute 'keys' or other BTreeFolder2 related issues, you can simply delete portal_selections and recreate them by adding them from ERP5Form Tool, or try to call portal_selections._initBTrees() from filesystem or Extensions code.
r13595 (2007-03-23)
We now use a Length object to store security_uid index on SQLCatalog object. You have to clear catalog and reindex.
r12506 (2007-01-02)
Add mirror_date column to the stock table.
Do not forget to recreate your catalog.
r12286 (2007-24-01)
Add an "ERP5 User Factory" in your '/erp5/acl_users' using the ZMI.
r11019 (2006-10-31)
Error Type: AttributeError
Error Value: Could not resolve 'portal_caches'
You have to manually add a cache tool from ERP5 Type, in the ZMI, choose "Add ERP5Type Tool", then check "ERP5Cache Tool".
r10664 (2006-10-11)
Use start_date / stop_date for lifetime of Entities. Be sure to run:
[pers.setStartDate(pers.birthday) for pers in context.person_module.objectValues() if getattr(pers, 'birthday', None) is not None] [org.setStartDate(org.creation_date) for org in context.organisation_module.objectValues() if getattr(org, 'creation_date', None) is not None]
to update existing documents.