Changeset 999
- Timestamp:
- 11/07/07 07:26:02
- Files:
-
- qPloneSkinDump/branches/plone_3.0/HISTORY.txt (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/TODO.txt (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/configure.zcml (added)
- qPloneSkinDump/branches/plone_3.0/qPloneSkinDump.py (modified) (2 diffs)
- qPloneSkinDump/branches/plone_3.0/skin_template/Extensions (deleted)
- qPloneSkinDump/branches/plone_3.0/skin_template/__init__.py (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/skin_template/config.py (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/skin_template/configure.zcml (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/cssregistry.xml (added)
- qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/import_steps.xml (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/jsregistry.xml (added)
- qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/skins.xml (modified) (1 diff)
- qPloneSkinDump/branches/plone_3.0/skin_template/setuphandlers.py (modified) (5 diffs)
- qPloneSkinDump/branches/plone_3.0/skin_template/skins.zcml (added)
- qPloneSkinDump/branches/plone_3.0/skin_template/utils.py (added)
- qPloneSkinDump/branches/plone_3.0/skins/qploneskindump/qploneskindump_config.cpt (modified) (8 diffs)
- qPloneSkinDump/branches/plone_3.0/skins/qploneskindump/qploneskindump_config_script.cpy (modified) (3 diffs)
- qPloneSkinDump/branches/plone_3.0/utils.py (modified) (11 diffs)
- qPloneSkinDump/branches/plone_3.0/version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qPloneSkinDump/branches/plone_3.0/HISTORY.txt
r836 r999 1 qPloneSkinDump 0.8.0 2 - configlet form improvement 3 - fixed migration bugs to plone3 4 - added support for plone_view_customizations dump 5 - refactor old-style installer to portal_setup 6 1 7 qPloneSkinDump 0.7.3 2 8 - Add support skins, generated under older qPloneSkinDump version. qPloneSkinDump/branches/plone_3.0/TODO.txt
r503 r999 1 1 *** Under consideration *** 2 2 3 - Create more usable interface. 3 - improvement portlets dumping 4 - improvements in resource dumping 5 - refactor portal_view_customizations dump 6 - add dump of portal_properties 7 - add dump of viewlets.xml and portlets.xml 8 - core refactorization, divide into small chunks all functionality (too difficult to upgrade current skindump structure) 9 10 maybe in future: 11 - refactor qPloneSkinDump to work with python paster package, for use ZopeSkel templates styling qPloneSkinDump/branches/plone_3.0/qPloneSkinDump.py
r935 r999 49 49 security.declarePublic('createProduct') 50 50 def createProduct(context, \ 51 zmi_skin_name ='custom', \51 zmi_skin_names=['custom',], \ 52 52 zmi_base_skin_name='', \ 53 53 subdir=None,\ … … 67 67 dump_portlets=0, \ 68 68 dump_policy='root', \ 69 dump_portlets_selection=[]): 69 dump_portlets_selection=[], \ 70 dump_custom_views=False): 70 71 """ Main Skin Product creating procedure.""" 71 72 makeNewProduct(context, fs_product_name, fs_skin_directory, \ 72 zmi_skin_name , zmi_base_skin_name, subdir, \73 zmi_skin_names, zmi_base_skin_name, subdir, \ 73 74 doesCustomizeSlots, left_slots, right_slots, slot_forming, main_column, \ 74 75 doesExportObjects, import_policy, \ 75 dump_CSS, dump_JS, dump_portlets, dump_policy, dump_portlets_selection) 76 dumpSkin(context, zmi_skin_name, subdir, fs_skin_directory.lower(), 77 fs_product_name, erase_from_skin) 76 dump_CSS, dump_JS, dump_portlets, dump_policy, dump_portlets_selection, dump_custom_views) 77 dumpSkin(context, zmi_skin_names, fs_product_name, erase_from_skin) 78 78 result = exportObjects(context, doesExportObjects, exporting_objects, fs_product_name) 79 79 return result qPloneSkinDump/branches/plone_3.0/skin_template/__init__.py
r503 r999 1 from Products.CMFCore.DirectoryView import registerDirectory 2 from config import GLOBALS 3 4 registerDirectory('skins', GLOBALS) 1 # qPloneSkinDump/branches/plone_3.0/skin_template/config.py
r935 r999 105 105 SLOT_STRUCTURE = %(slot_structure)s 106 106 107 # portal_view_customization content 108 CUSTOM_VIEWS = %(custom_views)s 109 107 110 # absolute file system path to product 108 111 from Globals import package_home qPloneSkinDump/branches/plone_3.0/skin_template/configure.zcml
r935 r999 1 1 <configure 2 xmlns="http://namespaces.zope.org/zope"> 3 2 xmlns="http://namespaces.zope.org/zope" 3 xmlns:cmf="http://namespaces.zope.org/cmf" 4 i18n_domain="%(product_name_lowercase)s"> 4 5 5 6 <include file="profiles.zcml" /> 7 8 <include file="skins.zcml" /> 6 9 7 10 <include package=".browser" /> qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/import_steps.xml
r941 r999 1 1 <?xml version="1.0"?> 2 2 <import-steps> 3 <import-step id="%(skin_name)s_portlets" version="%(version 1)s"3 <import-step id="%(skin_name)s_portlets" version="%(version)s-1" 4 4 handler="Products.%(product_name)s.setuphandlers.importPortlets" 5 5 title="Customize %(skin_name)s portlets"> 6 6 <dependency step="content"/> 7 7 <dependency step="portlets"/> 8 <dependency step="%(skin_name)s_zexps"/> 8 9 Customize %(skin_name)s left and right portlets. 9 10 </import-step> 10 <import-step id="%(skin_name)s_old_install" version="%(version2)s" 11 handler="Products.%(product_name)s.setuphandlers.old_install" 12 title="Perform old installation steps (temporary)"> 11 <import-step id="%(skin_name)s_various" version="%(version)s-2" 12 handler="Products.%(product_name)s.setuphandlers.importVarious" 13 title="Perform various skin customizations"> 14 <dependency step="%(skin_name)s_portlets"/> 15 <dependency step="%(skin_name)s_customviews"/> 16 <dependency step="%(skin_name)s_zexps"/> 17 Perform various skin product customizations. 18 </import-step> 19 <import-step id="%(skin_name)s_customviews" version="%(version)s-3" 20 handler="Products.%(product_name)s.setuphandlers.importCustomViews" 21 title="Import customized views"> 13 22 <dependency step="toolset"/> 14 <dependency step="cssregistry"/> 15 <dependency step="jsregistry"/> 23 <dependency step="portlets"/> 24 <dependency step="viewlets"/> 25 Import customized views to portal_view_customizations. 26 </import-step> 27 <import-step id="%(skin_name)s_zexps" version="%(version)s-4" 28 handler="Products.%(product_name)s.setuphandlers.importZexps" 29 title="Import zexp objects"> 16 30 <dependency step="content"/> 17 Perform old installation steps (temporary)31 Import zexp objects 18 32 </import-step> 19 20 <import-step id="skins" version="20040630-01"21 handler="Products.CMFCore.exportimport.skins.importSkinsTool"22 title="Skins Tool">23 <dependency step="toolset"/>24 <dependency step="%(skin_name)s_old_install"/>25 Import skins tool's filesystem directory views and skin path definitions.26 </import-step>27 28 29 33 </import-steps> qPloneSkinDump/branches/plone_3.0/skin_template/profiles/default/skins.xml
r941 r999 3 3 cookie_persistence="False" default_skin="%(skin_name)s" 4 4 request_varname="plone_skin"> 5 <object name="%(skin_name_lowercase)s" meta_type="Filesystem Directory View" 6 directory="Products/%(product_name)s/skins/%(skin_name_lowercase)s"/> 7 <skin-path name="%(skin_name_capital)s"> 5 %(directory_views_xml)s 6 <skin-path name="%(skin_name)s"> 8 7 %(skin_layers)s 9 8 </skin-path> qPloneSkinDump/branches/plone_3.0/skin_template/setuphandlers.py
r941 r999 1 from zope.component import getUtility 2 from zope.component import getMultiAdapter 1 from zope.component import getUtility, getSiteManager, getMultiAdapter 3 2 4 3 from plone.portlets.interfaces import IPortletAssignmentMapping, IPortletManager, ILocalPortletAssignmentManager 4 from plone.app.customerize.registration import * 5 5 from plone.app.portlets import portlets 6 6 7 from Products.CMFCore.utils import getToolByName 8 7 9 from Products.%(product_name)s.config import * 8 from Products.%(product_name)s. Extensions.utils import *10 from Products.%(product_name)s.utils import * 9 11 10 12 import sys … … 67 69 setupPortletsForContext(obj, info) 68 70 71 def importZexps(context): 72 site = context.getSite() 73 if checkIfImport(): 74 performImportToPortal(site) 75 76 def importVarious(context): 77 site = context.getSite() 78 out = StringIO() 79 if FINAL_CUSTOMIZATION_FUNCTIONS: 80 dummy = [func(site, out) for func in FINAL_CUSTOMIZATION_FUNCTIONS] 81 69 82 def old_install(context): 70 83 site = context.getSite() … … 72 85 73 86 # Checking base condition for installation 74 skinsTool = getToolByName(self, 'portal_skins')87 # skinsTool = getToolByName(self, 'portal_skins') 75 88 # Checking for absence of SKIN_NAME skin in site 76 skin_names = skinsTool.getSkinSelections()77 if SKIN_NAME in skin_names:78 raise AttributeError("Installation aborted due to '%%s' skin already present in your site." %% SKIN_NAME)89 # skin_names = skinsTool.getSkinSelections() 90 # if SKIN_NAME in skin_names: 91 # raise AttributeError("Installation aborted due to '%%s' skin already present in your site." %% SKIN_NAME) 79 92 # Checking for BASE_SKIN_NAME presenting in portal 80 skin_names = skinsTool.getSkinSelections()81 if not BASE_SKIN_NAME in skin_names:82 raise AttributeError("Impossible installation without %%s skin." %% BASE_SKIN_NAME)93 # skin_names = skinsTool.getSkinSelections() 94 # if not BASE_SKIN_NAME in skin_names: 95 # raise AttributeError("Impossible installation without %%s skin." %% BASE_SKIN_NAME) 83 96 # Checking for presenting lower_SKIN_NAME directory in portal skins 84 lower_SKIN_NAME = string.lower(SKIN_NAME)97 # lower_SKIN_NAME = string.lower(SKIN_NAME) 85 98 #if lower_SKIN_NAME in skinsTool.objectIds(): 86 99 # raise AttributeError("%%s skin layer already exist in portal skins. Installation Impossible." %% lower_SKIN_NAME) … … 89 102 90 103 # AFTER INSTALL 91 out=StringIO()104 #out=StringIO() 92 105 # get all needed tools and some portal's core objects 93 portal = getToolByName(self, 'portal_url').getPortalObject()94 pp = getToolByName(portal, 'portal_properties')95 portal_css = getToolByName(portal, 'portal_css', None)96 portal_js = getToolByName(portal, 'portal_javascripts', None)106 #portal = getToolByName(self, 'portal_url').getPortalObject() 107 #pp = getToolByName(portal, 'portal_properties') 108 #portal_css = getToolByName(portal, 'portal_css', None) 109 #portal_js = getToolByName(portal, 'portal_javascripts', None) 97 110 # Make main prepare procedures 98 pp_up = prepareInstallation(portal, pp, out) # create 'uninstall_properties' propertySheet in portal_properties111 #pp_up = prepareInstallation(portal, pp, out) # create 'uninstall_properties' propertySheet in portal_properties 99 112 # Install skin 100 113 #installSkin(portal, pp_up, out) # performed with portal_setup 101 prepareUninstallSkin(portal, pp_up, out)114 #prepareUninstallSkin(portal, pp_up, out) 102 115 103 116 # Register css resources 104 if portal_css and DOES_COSTOMIZE_CSS:105 registerResource(pp_up, portal_css, portal_css.registerStylesheet, out \106 ,CSS_LIST, SKIN_CSS_REGDATA, 'q_registered_css', CSS_REG_PROPS)107 print >> out, "Completed tuning CSS registry for new skin needs."117 #if portal_css and DOES_COSTOMIZE_CSS: 118 #registerResource(pp_up, portal_css, portal_css.registerStylesheet, out \ 119 #,CSS_LIST, SKIN_CSS_REGDATA, 'q_registered_css', CSS_REG_PROPS) 120 #print >> out, "Completed tuning CSS registry for new skin needs." 108 121 # Register js resources 109 if portal_js and DOES_COSTOMIZE_JS:110 registerResource(pp_up, portal_js, portal_js.registerScript, out \111 ,JS_LIST, SKIN_JS_REGDATA, 'q_registered_js', JS_REG_PROPS)#---installJS---112 print >> out, "Completed tuning JS registry for new skin needs."122 #if portal_js and DOES_COSTOMIZE_JS: 123 #registerResource(pp_up, portal_js, portal_js.registerScript, out \ 124 #,JS_LIST, SKIN_JS_REGDATA, 'q_registered_js', JS_REG_PROPS)#---installJS--- 125 #print >> out, "Completed tuning JS registry for new skin needs." 113 126 # Customize slots 114 127 #if LEFT_SLOTS or RIGHT_SLOTS: 115 128 #customizeSlots(portal, pp_up, out) 116 129 # Import object(s) to portal 117 if checkIfImport():118 res_import = performImportToPortal(portal)119 print >> out, res_import130 #if checkIfImport(): 131 #res_import = performImportToPortal(portal) 132 #print >> out, res_import 120 133 # FINAL customization call additional functions from config 121 if FINAL_CUSTOMIZATION_FUNCTIONS:122 dummy = [func(portal, out) for func in FINAL_CUSTOMIZATION_FUNCTIONS]134 #if FINAL_CUSTOMIZATION_FUNCTIONS: 135 #dummy = [func(portal, out) for func in FINAL_CUSTOMIZATION_FUNCTIONS] 123 136 print >> out, "%%s generated product." %% GENERATOR_PRODUCT 124 137 print >> out, '=== Installation successfully completed. ===' … … 126 139 #product._p_changed = 1 #XXX:NEED for stable writing 'out' log to qi on afterinstallation. 127 140 return out.getvalue() 141 142 def importCustomViews(context): 143 site = context.getSite() 144 145 for view in CUSTOM_VIEWS: 146 for_name = view['for_name'] 147 view_name = view['view_name'] 148 type_name = view['type_name'] 149 kwargs = view['kwargs'] 150 151 reg = findTemplateViewRegistration(for_name, type_name, view_name) 152 viewzpt_id = str(generateIdFromRegistration(reg)) 153 154 container = getUtility(IViewTemplateContainer) 155 if viewzpt_id in container.objectIds(): 156 continue 157 158 attr, pt = findViewletTemplate(reg.factory) 159 if pt: 160 ptname = basename(pt.filename) 161 else: 162 ptname = None 163 viewzpt = TTWViewTemplate( 164 id = viewzpt_id, 165 text = kwargs['text'], 166 encoding = kwargs['encoding'], 167 content_type = kwargs['content_type'], 168 view = getViewClassFromRegistration(reg), 169 permission = getViewPermissionFromRegistration(reg), 170 name = ptname) 171 container.addTemplate(viewzpt_id, viewzpt) 172 173 sm = getSiteManager(site) 174 sm.registerAdapter(viewzpt, required = reg.required, provided = reg.provided, name = reg.name) qPloneSkinDump/branches/plone_3.0/skins/qploneskindump/qploneskindump_config.cpt
r935 r999 9 9 <div metal:define-macro="main" 10 10 tal:define="errors options/state/getErrors | nothing;"> 11 <h1 class="QSDFirstHeading"> 12 <img tal:replace="structure here/product_icon.gif" /> 13 <span tal:replace="here/title_or_id">Title or id</span> 14 </h1> 15 16 <div metal:use-macro="here/document_actions/macros/document_actions"> 17 Document actions (print, sendto etc) 11 12 <div metal:use-macro="here/global_statusmessage/macros/portal_message"> 13 Portal status message 18 14 </div> 15 16 <h1 class="documentFirstHeading" 17 i18n:translate="heading_addremove_products">Skin Dump</h1> 19 18 20 19 <a href="" 21 20 class="link-parent" 22 i18n:translate="label_up_to_product_page" 23 tal:define="parent_url python:here.navigationParent(here, template.getId())" 24 tal:condition="parent_url" 25 tal:attributes="href parent_url"> 26 Up to Product page 21 tal:attributes="href string: $portal_url/plone_control_panel" 22 i18n:translate="label_up_to_plone_setup"> 23 Up to Site Setup 27 24 </a> 28 25 29 <h2 i18n:translate="heading_portalactions_lists"> 30 qPloneSkinDump input FORM 31 </h2> 26 <p class="documentDescription" 27 i18n:translate="description_addremove_products"> 28 This is a form for dumping your zmi skin to filesystem based product. 29 </p> 30 31 <p class="discreet" i18n:translate="description_product_location"> 32 Navigate through all form tabs to set needed configuration for dump. 33 </p> 34 32 35 <form name="edit_form" 33 36 action="href" 34 37 method="post" 38 class="enableFormTabbing" 35 39 enctype="multipart/form-data" 36 40 tal:attributes="action string:$here_url/$template_id"> 37 <fieldset tal:define="error_zmiSN python:errors.get('ZMISkinName'); 38 error_zmiBSN python:errors.get('ZMIBaseSkinName')"> 39 <legend> 40 <label style="font-size: 110%" i18n:translate="legend_ZMI"> ZMI:</label> 41 </legend> 42 <div class="ZMISkinName" 43 tal:attributes="class python: test(error_zmiSN, 'ZMISkinName error', 'ZMISkinName');"> 44 <!-- folder in ZMI .../portal_skins, from which will be copyed content --> 45 <label class="ZMISkinName_title" 46 i18n:translate="label_ZMISkinName">Source ZMI skin folder</label> 41 42 <fieldset id="fieldset-product" 43 tal:define="error_fsSkinDir python:errors.get('FSSkinDirectory'); 44 error_fsProdName python:errors.get('FSProductName')"> 45 <legend id="fieldsetlegend-product"> 46 <label style="font-size: 110%" i18n:translate="label_product">Product</label> 47 </legend> 48 <p /> 49 <div class="FSProductName" 50 tal:attributes="class python: test(error_fsProdName, 'FSProductName error', 'FSProductName');"> 51 <label class="FSProductName_title" 52 i18n:translate="label_FSProductName">Product name</label> 47 53 <span class="fieldRequired" 48 54 title="Required" 49 55 i18n:translate="label_required" 50 i18n:attributes="title title_required;"> 51 (Required) 52 </span> 53 <div i18n:translate="help_ZMISkinName" 54 class="formHelp"> 55 Select folder from portal_skins, which content should by copyed to FS product. 56 </div> 57 <div tal:condition="error_zmiSN" 58 tal:content="error_zmiSN" i18n:translate="">Validation Error</div> 59 60 <select class="ZMISkinName_input" id="ZMISkinName" 61 size="1" name="ZMISkinName" 62 tal:define="value request/ZMISkinName|string:custom; 63 p_skins_ids python:portal.portal_skins.objectIds(spec='Folder')" 64 tal:attributes="value value; 65 tabindex tabindex/next;"> 66 <option selected="" 67 value="#" 68 tal:repeat="ps_folder p_skins_ids" 69 tal:attributes="value nocall:ps_folder; 70 selected python:test(ps_folder==value, 'selected', None);" 71 tal:content="ps_folder"/> 72 73 </select> 74 </div> 75 <p/> 56 i18n:attributes="title title_required;">(Required)</span> 57 <div i18n:translate="help_FSProductName" 58 class="formHelp"> 59 Name for dumped product. This name should be unique in your Products directory of Plone's instance. The name must begin with alphabetical character, following with an alphanumeric combination, also underscore accepts, but not on boundaries. 60 </div> 61 <div tal:condition="error_fsProdName" 62 tal:content="error_fsProdName" i18n:translate="">Validation Error</div> 63 64 <input class="FSProductName_input" 65 type="text" 66 name="FSProductName" 67 value="qPloneSkinTemplate" 68 size="50" 69 tal:attributes="value request/FSProductName|nothing" /> 70 </div> 71 <p /> 72 <div class="FSSkinDirectory" 73 tal:attributes="class python: test(error_fsSkinDir, 'FSSkinDirectory error', 'FSSkinDirectory');"> 74 <label class="FSSkinDirectory_title" 75 i18n:translate="label_FSSkinDirectory">Skin name</label> 76 <span class="fieldRequired" 77 title="Required" 78 i18n:translate="label_required" 79 i18n:attributes="title title_required;">(Required)</span> 80 <div i18n:translate="help_FSSkinDirectory" 81 class="formHelp"> 82 Skin name in dumped product. The name must begin with alphabetical character, following with an alphanumeric combination, also underscore accepts, but not on boundaries. 83 </div> 84 <div tal:condition="error_fsSkinDir" 85 tal:content="error_fsSkinDir" i18n:translate="">Validation Error</div> 86 87 <input class="FSSkinDirectory_input" 88 type="text" 89 name="FSSkinDirectory" 90 value="" 91 size="50" 92 tal:attributes="value request/FSSkinDirectory|nothing" /> 93 </div> 94 </fieldset> 95 96 <fieldset id="fieldset-zmi" 97 tal:define="error_zmiSN python:errors.get('ZMISkinName'); 98 error_zmiBSN python:errors.get('ZMIBaseSkinName')"> 99 <legend id="fieldsetlegend-zmi"> 100 <label style="font-size: 110%" i18n:translate="legend_ZMI">Skin</label> 101 </legend> 102 <p /> 76 103 <div class="ZMIBaseSkinName" 77 104 tal:attributes="class python: test(error_zmiBSN, 'ZMIBaseSkinName error', 'ZMIBaseSkinName');"> 78 105 <!-- base for building layers list --> 79 106 <label class="ZMIBaseSkinName_title" 80 i18n:translate="label_ZMIBaseSkinName"> ZMI base skin name</label>107 i18n:translate="label_ZMIBaseSkinName">Skin selection</label> 81 108 <span class="fieldRequired" 82 109 title="Required" 83 110 i18n:translate="label_required" 84 i18n:attributes="title title_required;"> 85 (Required) 86 </span> 111 i18n:attributes="title title_required;">(Required)</span> 87 112 <div i18n:translate="help_ZMIBaseSkinName" 88 113 class="formHelp"> 89 Select Skin name, which layers list will be used for creating new skin.114 Select skin selection from portal_skins, which layers list will be used for creating new skin. 90 115 </div> 91 116 <div tal:condition="error_zmiBSN" … … 94 119 <select tal:define="value request/ZMIBaseSkinName|string:Plone Tableless; 95 120 skin_names portal/portal_skins/getSkinSelections" 96 tal:attributes="value value; 97 name string:ZMIBaseSkinName; 121 tal:attributes="name string:ZMIBaseSkinName; 98 122 id string:ZMIBaseSkinName; 99 123 size string:1; … … 105 129 selected python:test(skin_name==value, 'selected', None);" 106 130 tal:content="skin_name"/> 107 108 131 </select> 109 132 </div> 110 <p/> 133 <p /> 134 <div class="ZMISkinName" 135 tal:attributes="class python: test(error_zmiSN, 'ZMISkinName error', 'ZMISkinName');"> 136 <!-- folder in ZMI .../portal_skins, from which will be copyed content --> 137 <label class="ZMISkinName_title" 138 i18n:translate="label_ZMISkinName">Skin folders</label> 139 <span class="fieldRequired" 140 title="Required" 141 i18n:translate="label_required" 142 i18n:attributes="title title_required;">(Required)</span> 143 <div i18n:translate="help_ZMISkinName" 144 class="formHelp"> 145 Select folders from portal_skins, which should be dumped to FS product's skins folder. 146 </div> 147 <div tal:condition="error_zmiSN" 148 tal:content="error_zmiSN" i18n:translate="">Validation Error</div> 149 150 <select class="ZMISkinName_input" id="ZMISkinName" 151 size="5" name="ZMISkinName" multiple="1" 152 tal:define="value request/ZMISkinName|string:custom; 153 p_skins_ids python:portal.portal_skins.objectIds(spec='Folder')" 154 tal:attributes="tabindex tabindex/next;"> 155 <option selected="" 156 value="#" 157 tal:repeat="ps_folder p_skins_ids" 158 tal:attributes="value nocall:ps_folder; 159 selected python:test(ps_folder==value, 'selected', None);" 160 tal:content="ps_folder"/> 161 </select> 162 </div> 163 <p /> 111 164 <div class="EraseFromSkin"> 112 165 <!-- erase content of folder in ZMI .../portal_skins after copying --> 113 <div i18n:translate="help_Erase"114 class="formHelp">115 Select for erase content of skin's source folder.116 </div>117 118 166 <input class="EraseFromSkin_input" 119 167 type="checkbox" 120 168 name="EraseFromSkin" 169 id="EraseFromSkin" 121 170 value="0" 122 171 tal:attributes="checked python:test(request.has_key('EraseFromSkin'), 'checked', nothing)" 123 172 /> 124 <label class="EraseFromSkin_title" 125 i18n:translate="label_Erace">Erace </label> 126 </div> 127 </fieldset> 128 129 <fieldset tal:define="error_fsSkinDir python:errors.get('FSSkinDirectory'); 130 error_fsProdName python:errors.get('FSProductName')"> 131 <legend> 132 <label style="font-size: 110%" i18n:translate="label_FS"> File system:</label> 133 </legend> 134 <div class="FSSkinDirectory" 135 tal:attributes="class python: test(error_fsSkinDir, 'FSSkinDirectory error', 'FSSkinDirectory');"> 136 <label class="FSSkinDirectory_title" 137 i18n:translate="label_FSSkinDirectory">Skin's name for new prodct</label> 138 <span class="fieldRequired" 139 title="Required" 140 i18n:translate="label_required" 141 i18n:attributes="title title_required;"> 142 (Required) 143 </span> 144 <div i18n:translate="help_FSSkinDirectory" 145 class="formHelp"> 146 Input skin's name for new prodct. <br/> 147 This name in lower case will be used as skin's folder name and as layer name too.<br/> 148 The name must begin with alphabetical character, following with an alphanumeric combination, also underscore accepts, but not on boundaries.<br/> 149 </div> 150 <div tal:condition="error_fsSkinDir" 151 tal:content="error_fsSkinDir" i18n:translate="">Validation Error</div> 152 153 <input class="FSSkinDirectory_input" 154 type="text" 155 name="FSSkinDirectory" 156 value="" 157 size="50" 158 tal:attributes="value request/FSSkinDirectory|nothing" /> 159 </div> 160 <p/> 161 <div class="FSProductName" 162 tal:attributes="class python: test(error_fsProdName, 'FSProductName error', 'FSProductName');"> 163 <label class="FSProductName_title" 164 i18n:translate="label_FSProductName">Product name</label> 165 <span class="fieldRequired" 166 title="Required" 167 i18n:translate="label_required" 168 i18n:attributes="title title_required;"> 169 (Required) 170 </span> 171 <div i18n:translate="help_FSProductName" 172 class="formHelp"> 173 Input name of new product. <br/> 174 This name can't be identical with other, presenting in your Products directory of Plone's instance. <br/> 175 The name must begin with alphabetical character, following with an alphanumeric combination, also underscore accepts, but not on boundaries. 176 </div> 177 <div tal:condition="error_fsProdName" 178 tal:content="error_fsProdName" i18n:translate="">Validation Error</div> 179 180 <input class="FSProductName_input" 181 type="text" 182 name="FSProductName" 183 value="qPloneSkinTemplate" 184 size="50" 185 tal:attributes="value request/FSProductName|nothing" /> 186 </div> 187 </fieldset> 188 189 <fieldset> 190 <legend class="DoesCustomizeSlots"> 173 <label class="EraseFromSkin_title" for="EraseFromSkin" 174 i18n:translate="label_Erase">Erase folders from portal_skins after dump</label> 175 </div> 176 </fieldset> 177 178 <fieldset id="fieldset-portlets"> 179 <legend id="fieldsetlegend-portlets" class="DoesCustomizeSlots"> 180 <label style="font-size: 110%" i18n:translate="label_portlets">Portlets</label> 181 </legend> 182 <p /> 183 <div class="customize-portlets"> 191 184 <input class="noborder" 192 185 type="checkbox" … … 194 187 id="DoesCustomizeSlots" 195 188 value="0" 196 tal:attributes="checked request/dump_portlets|nothing" 197 /> 189 tal:attributes="checked request/dump_portlets|nothing" /> 198 190 <label for="DoesCustomizeSlots" 199 i18n:translate="label_dump_portlets">Dump porltets</label>200 </ legend>191 i18n:translate="label_dump_portlets">Dump Portlets</label> 192 </div> 201 193 <p/> 202 194 <div class="SlotsCustomizing"> … … 206 198 <div i18n:translate="help_SlotsCustomizing" 207 199 class="formHelp"> 208 200 209 201 </div> 210 202 … … 264 256 </fieldset> 265 257 266 <fieldset tal:define="exp_data python:modules['Products.qPloneSkinDump.qPloneSkinDump'].getExportingData(here);"> 267 <legend class="DoesExportObjects"> 258 <fieldset id="fieldset-zexp" 259 tal:define="exp_data python:modules['Products.qPloneSkinDump.qPloneSkinDump'].getExportingData(here);"> 260 <legend id="fieldsetlegend-zexp" class="DoesExportObjects"> 261 <label style="font-size: 110%" i18n:translate="label_portlets">Objects Export</label> 262 </legend> 263 <p /> 264 <div class="objects-export"> 268 265 <input class="noborder" 269 266 type="checkbox" 270 267 name="DoesExportObjects" 271 id="DoesExportObjects" 268 id="DoesExportObjects" 272 269 value="DoesExportObjects" 273 270 tal:attributes="checked python:test(request.has_key('DoesExportObjects'), 'checked', nothing)" /> 274 271 <label for="DoesExportObjects" 275 272 style="font-size: 110%" 276 i18n:translate="label_DoesExportObjects">Exporting objects from portal root</label> 277 </legend> 278 <div class="formHelp" 279 i18n:translate="help_DoesExportObjects"> 280 Selected below objects will be exported to New Skin Product. Then on installation generated Skin Product 281 they will be imported to portal root, based on choosed policy. 282 </div> 283 273 i18n:translate="label_DoesExportObjects">Dump Objects</label> 274 <div class="formHelp" 275 i18n:translate="help_DoesExportObjects"> 276 Selected below objects will be exported to New Skin Product. Then on installation generated Skin Product 277 they will be imported to portal root, based on choosed policy. 278 </div> 279 </div> 284 280 <p/> 285 281 <div class="ImportPolicy" … … 336 332 </fieldset> 337 333 338 <fieldset tal:define="isFirst python:not request.get('dump_registries', None); 334 <fieldset id="fieldset-resources" 335 tal:define="isFirst python:not request.get('dump_registries', None); 339 336 checked_css python:test(isFirst, 'checked', test(request.has_key('DumpCSSRegistry'), 'checked', nothing)); 340 337 checked_js python:test(isFirst, 'checked', test(request.has_key('DumpJSRegistry'), 'checked', nothing));"> 341 <legend class="DoesExportResources">338 <legend id="fieldsetlegend-resources" class="DoesExportResources"> 342 339 <label for="DoesExportResources" 343 340 style="font-size: 110%" 344 i18n:translate="label_DoesExportResources">Exporting portal resources</label> 345 </legend> 341 i18n:translate="label_DoesExportResources">Resources</label> 342 </legend> 343 <p /> 346 344 <div class="formHelp" 347 345 i18n:translate="help_DoesExportResources"> … … 377 375 </div> 378 376 <p/> 377 </fieldset> 378 379 <!-- dump views --> 380 <fieldset id="fieldset-views" 381 tal:define="error_zmiSN python:errors.get('ZMISkinName'); 382 error_zmiBSN python:errors.get('ZMIBaseSkinName')"> 383 <legend id="fieldsetlegend-views"> 384 <label style="font-size: 110%" i18n:translate="legend_viewlets">Views</label> 385 </legend> 386 <p /> 387 <div class="dump-viewlets-field"> 388 <div i18n:translate="help_dumpviewlets" 389 class="formHelp"> 390 Check this field for dumping all customized objects in portal_view_customization tool. 391 </div> 392 393 <input class="dumpviewlets-input" 394 type="checkbox" 395 name="dump_viewlets" 396 id="dump_viewlets" 397 value="1" 398 tal:attributes="checked python:test(request.has_key('dump_viewlets'), 'checked', nothing)" 399 /> 400 <label class="dumpviewlets-title" for="dump_viewlets" 401 i18n:translate="label_dumpviewlets">Dump views, viewlets and portlets</label> 402 </div> 379 403 </fieldset> 380 404 qPloneSkinDump/branches/plone_3.0/skins/qploneskindump/qploneskindump_config_script.cpy
r935
