Changeset 181 in products for qClickTrackingTool/branches/qClickTrackingTool-0.3.2_me/Extensions/Install.py
- Timestamp:
- Jan 12, 2006 2:16:30 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
qClickTrackingTool/branches/qClickTrackingTool-0.3.2_me/Extensions/Install.py
r175 r181 2 2 from Products.Archetypes.Extensions.utils import installTypes, install_subskin 3 3 from Products.CMFCore.WorkflowTool import addWorkflowFactory 4 from Products.CMFFormController.FormAction import FormActionKey5 4 from Products.CMFCore import CMFCorePermissions 6 5 from Products.CMFCore.utils import getToolByName … … 14 13 15 14 16 def write_object_properties(self, obj, out): 15 def isSwitchedToATCT(self): 16 pt = getToolByName(self, 'portal_types') 17 doc_fti = pt.getTypeInfo('Document') 18 if doc_fti.Metatype() == 'ATDocument': 19 return 1 20 else: 21 return 0 22 23 def write_object_properties(self, obj): 17 24 properties = {} 18 pc = getToolByName(self, 'portal_clicktracker') 19 if getObjectsType(self, pc, out) == 'Link': 25 if not isSwitchedToATCT(self): 20 26 properties['id'] = obj.id 21 27 properties['title'] = obj.title … … 30 36 return properties 31 37 32 def update_object(self, obj, properties, out): 33 obj.update(title = properties['title'], 34 description = properties['description'], 35 url = properties['remote_url']) 38 def update_object(self, obj, properties): 39 if isSwitchedToATCT(self): 40 obj.update(title = properties['title'], 41 description = properties['description'], 42 remoteUrl = properties['remote_url']) 43 else: 44 setattr(obj, 'title', properties['title']) 45 setattr(obj, 'description', properties['description']) 46 setattr(obj, 'remote_url', properties['remote_url']) 36 47 37 48 def convert_objects(self, container, new_type, out): 38 49 pt = getToolByName(self, 'portal_types') 39 obj_type = getObjectsType(self, container, out) 40 if (obj_type and obj_type == 'Link') or (obj_type and obj_type == 'ATLink'): 50 if getObjectsType(self, container, out): 41 51 for o in listFolderItems(container)[:]: 42 prop = write_object_properties(self, o , out)52 prop = write_object_properties(self, o) 43 53 container._delObject(o.id) 44 54 fti = pt.getTypeInfo('ClickTracker') … … 46 56 container.invokeFactory(id = prop['id'], type_name=new_type) 47 57 campaign=getattr(container, prop['id']) 48 update_object(self, campaign, prop, out) 58 update_object(self, campaign, prop) 59 else: 60 create_repType(self, out) 49 61 50 62 def listFolderItems(container): … … 67 79 return type_obj 68 80 69 def setPortalFactoryType(self, out,):70 pf=getToolByName(self, 'portal_factory')71 ftypes=list(pf.getFactoryTypes())72 if TYPE_NAME not in ftypes:73 ftypes.append(TYPE_NAME)74 pf.manage_setPortalFactoryTypes(listOfTypeIds=ftypes)75 else:76 print >>out, " %s type already in portal_factory..." %TYPE_TITLE77 78 print >> out, "Set %s type to portal_factory" %TYPE_TITLE79 80 81 def install_tool(self, out, tool='ClickTracker'): 81 82 portal=getToolByName(self, 'portal_url').getPortalObject() 82 83 pt = getToolByName(self, 'portal_types') 84 create_repType(self, out) 83 85 if not TOOLID in portal.objectIds(): 84 86 addPloneTool=portal.manage_addProduct[PROJECTNAME].manage_addTool(tool) 85 87 else: 86 88 qi=getToolByName(self, 'portal_quickinstaller') 89 87 90 p=qi._getOb(PROJECTNAME, None) 88 91 oldVersion=p.getInstalledVersion() 89 92 newVersion= qi.getProductVersion(PROJECTNAME) 93 is_migrated = isSwitchedToATCT(self) 90 94 pc = getToolByName(self, 'portal_clicktracker') 91 95 if oldVersion<newVersion: 92 convert_objects(self, pc, TYPE_NAME, out)96 convert_objects(self, pc, REP_TYPE, out) 93 97 94 def customizing_FormController(self, out): 95 fc = getToolByName(self, 'portal_form_controller') 96 fc.addFormAction('validate_integrity', 97 'success', 98 TYPE_NAME, 99 None, 100 'redirect_to', 101 'string:$portal_url/portal_clicktracker/portal_clicktracker_view') 98 if is_migrated: 99 if getObjectsType(self, pc, out) != 'ATLink': 100 convert_objects(self, pc, REP_TYPE, out) 101 102 else: 103 print >> out, "Repurpouse type already migrated to ATCT..." 104 else: 105 if getObjectsType(self, pc, out) == 'ATLink': 106 convert_objects(self, pc, 'Link', out) 107 108 else: 109 print >> out, "Repurpouse type already migrated to CMF..." 110 111 print >> out, "Installed %s tool..." % tool 112 113 def repurpose_content_type(self, old_type, new_type): 114 pt = getToolByName(self, 'portal_types') 115 copy = pt.manage_copyObjects(old_type) 116 pt.manage_pasteObjects(cb_copy_data=copy) 117 copy_name = 'copy_of_%s' %old_type 118 copy_obj = pt._getOb(copy_name) 119 copy_obj.manage_renameObject(copy_name, new_type) 120 setattr(copy_obj, 'title', new_type) 121 122 def create_repType(self, out): 123 pt = getToolByName(self, 'portal_types') 124 if REP_TYPE in pt.objectIds(): 125 print >> out, "%s already installed ..." %REP_TYPE 126 pt._delObject(REP_TYPE) 127 repurpose_content_type(self, 'Link', 'Campaign') 128 print >> out, "Repurpose content successfully" 129 102 130 def install_configlet(self, out): 103 131 control_panel=getToolByName(self,'portal_controlpanel') … … 121 149 portal_workflow.manage_addWorkflow(id=C_WORKFLOWID, workflow_type=C_WORKFLOWID +' (Campaign Workflow)') 122 150 #set workflow for Campaign 123 portal_workflow.setChainForPortalTypes( ( TYPE_NAME), C_WORKFLOWID)151 portal_workflow.setChainForPortalTypes( ('Campaign'), C_WORKFLOWID) 124 152 print >> out, "Installed workflow..." 125 153 … … 139 167 control_panel.unregisterConfiglet(PROJECTNAME) 140 168 141 def remove_FormControllerAction(self, out):142 fc = getToolByName(self, 'portal_form_controller')143 if fc.actions.match('validate_integrity', 'success', TYPE_NAME, None):144 fc.actions.delete(FormActionKey('validate_integrity', 'success', TYPE_NAME, None, fc))145 146 169 def install(self): 147 170 … … 150 173 pt = getToolByName(self, 'portal_types') 151 174 installTypes(self, out, listTypes(PROJECTNAME), PROJECTNAME) 152 setPortalFactoryType(self, out)153 175 install_subskin(self, out, GLOBALS) 154 176 install_workflow(self, out) … … 156 178 install_configlet(self, out) 157 179 fix_permissions(self, out) 158 customizing_FormController(self, out)159 180 160 181 print >> out, "Successfully installed %s." % PROJECTNAME … … 165 186 166 187 remove_configlet(self, out) 167 remove_FormControllerAction(self, out)168 188 169 189 print >> out, "Successfully uninstalled %s." % PROJECTNAME
Note: See TracChangeset
for help on using the changeset viewer.