Changeset 3598 in products
- Timestamp:
- Oct 24, 2012 1:59:38 PM (11 years ago)
- Location:
- quintagroup.plonetabs/trunk/quintagroup/plonetabs
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.plonetabs/trunk/quintagroup/plonetabs/browser/plonetabs.py
r3564 r3598 10 10 # BBB: compatibility with older plone versions 11 11 try: 12 13 14 12 # Plone < 4.3 13 from zope.app.container import interfaces 14 INameChooser = interfaces.INameChooser 15 15 except ImportError: 16 # Plone >= 4.317 18 16 # Plone >= 4.3 17 from zope.container.interfaces import INameChooser 18 19 19 from zope.viewlet.interfaces import IViewletManager, IViewlet 20 20 … … 77 77 # action handler def handler(self, form) 78 78 if submitted: 79 if form.has_key('add.add'):79 if 'add.add' in form.keys(): 80 80 postback = self.manage_addAction(form, errors) 81 elif form.has_key("edit.save"):81 elif "edit.save" in form.keys(): 82 82 postback = self.manage_editAction(form, errors) 83 elif form.has_key("edit.delete"):83 elif "edit.delete" in form.keys(): 84 84 postback = self.manage_deleteAction(form, errors) 85 elif form.has_key("edit.moveup"):85 elif "edit.moveup" in form.keys(): 86 86 postback = self.manage_moveUpAction(form, errors) 87 elif form.has_key("edit.movedown"):87 elif "edit.movedown" in form.keys(): 88 88 postback = self.manage_moveDownAction(form, errors) 89 elif form.has_key("autogenerated.save"):89 elif "autogenerated.save" in form.keys(): 90 90 postback = self.manage_setAutogeneration(form, errors) 91 91 else: … … 176 176 177 177 # validate posted data 178 errors = self.validateActionFields( cat_name, data,179 allow_dup=(id == data['id']))178 errors = self.validateActionFields( 179 cat_name, data, allow_dup=(id == data['id'])) 180 180 181 181 if not errors: … … 187 187 return False 188 188 else: 189 errs.update(self.processErrors( errors,190 sufix='_%s' % id)) # add edit form sufix to error ids191 IStatusMessage(self.request).addStatusMessage( 192 _(u"Please correct the indicated errors."), type="error")189 errs.update(self.processErrors( 190 errors, sufix='_%s' % id)) # add edit form sufix to error ids 191 IStatusMessage(self.request).addStatusMessage(_( 192 u"Please correct the indicated errors."), type="error") 193 193 return True 194 194 … … 223 223 self.moveAction(id, cat_name, steps=1) 224 224 IStatusMessage(self.request).addStatusMessage( 225 _(u"'${id}' action moved up.", mapping={'id': id}), type="info")225 _(u"'${id}' action moved up.", mapping={'id': id}), type="info") 226 226 self.redirect(search="category=%s" % cat_name) 227 227 return False … … 256 256 """Redirect to @@plonetabs-controlpanel configlet""" 257 257 if not url: 258 portal_url = getMultiAdapter((self.context, self.request), 258 portal_url = getMultiAdapter( 259 (self.context, self.request), 259 260 name=u"plone_portal_state").portal_url() 260 261 url = '%s/%s' % (portal_url, "@@plonetabs-controlpanel") … … 404 405 # now add the content to results 405 406 for item in rawresult: 406 if not excludedIds.has_key(item.getId):407 if item.getId not in excludedIds: 407 408 id, item_url = get_view_url(item) 408 409 data = {'name': utils.pretty_title_or_id(context, item), … … 437 438 """See global-sections viewlet""" 438 439 actions = getMultiAdapter((self.context, self.request), 439 440 name=u'plone_context_state').actions() 440 441 actions_tabs = [] 441 442 try: … … 449 450 450 451 portal_tabs_view = getMultiAdapter((self.context, self.request), 451 name="portal_tabs_view")452 name="portal_tabs_view") 452 453 return portal_tabs_view.topLevelTabs(actions=actions_tabs) 453 454 … … 455 456 """See global-sections viewlet""" 456 457 # BBB: compatibility with older plone versions. 457 # ``selectedTabs`` Python script was merged into the 458 # ``selectedTabs`` Python script was merged into the 458 459 # GlobalSectionsViewlet. 459 460 section_viewlet = setupViewletByName(self, … … 464 465 # Plone >= 4.3 465 466 selected_tabs = section_viewlet.selectedTabs( 466 default_tab='index_html', 467 default_tab='index_html', 467 468 portal_tabs=self.portal_tabs()) 468 469 else: … … 470 471 selectedTabs = self.context.restrictedTraverse('selectedTabs') 471 472 selected_tabs = selectedTabs('index_html', self.context, 472 self.portal_tabs())473 self.portal_tabs()) 473 474 474 475 return selected_tabs['portal'] … … 497 498 actionslist = self.getActionsList(category=cat_name) 498 499 ksscore.replaceInnerHTML(ksscore.getHtmlIdSelector('tabslist'), 499 actionslist)500 actionslist) 500 501 501 502 # update autogenerated sections … … 556 557 """Toggle visibility for portal root objects (exclude_from_nav)""" 557 558 portal = getMultiAdapter((aq_inner(self.context), self.request), 558 name='plone_portal_state').portal()559 name='plone_portal_state').portal() 559 560 560 561 # remove prefix, added for making ids on configlet unique ("roottabs_") … … 562 563 563 564 if obj_id not in portal.objectIds(): 564 raise KSSExplicitError("Object with %s id doesn't" +\565 raise KSSExplicitError("Object with %s id doesn't" 565 566 " exist in portal root." % obj_id) 566 567 … … 576 577 if checked: 577 578 ksscore.removeClass(ksscore.getHtmlIdSelector(id), 578 value="invisible")579 value="invisible") 579 580 message = _(u"'${id}' object was included into navigation.", 580 581 mapping={'id': obj_id}) … … 596 597 act_id, category, action = self.kss_validateAction(id, cat_name) 597 598 self.updateAction(act_id, cat_name, 598 {'id': act_id, 'visible': (checked == '1') or False})599 {'id': act_id, 'visible': (checked == '1') or False}) 599 600 600 601 # update client … … 602 603 if checked == '1': 603 604 ksscore.removeClass(ksscore.getHtmlIdSelector(id), 604 value="invisible")605 value="invisible") 605 606 message = _(u"'${id}' action is now visible.", 606 607 mapping={'id': act_id}) … … 652 653 content = self.getActionsList(category=cat_name, tabs=[action, ]) 653 654 ksscore.insertHTMLAsLastChild( 654 655 655 ksscore.getHtmlIdSelector('tabslist'), 656 content) 656 657 657 658 # update reorder controls … … 660 661 # hide adding form 661 662 ksscore.removeClass(ksscore.getHtmlIdSelector('addaction'), 662 'adding')663 'adding') 663 664 self.kss_toggleCollapsible( 664 665 ksscore.getCssSelector('form[name=addaction_form] ' … … 683 684 else: 684 685 # expand advanced section if there are errors in id or condition 685 if errors.has_key('id') or errors.has_key('available_expr'):686 if 'id' in errors or 'available_expr' in errors: 686 687 self.kss_toggleCollapsible( 687 ksscore.getCssSelector('form[name=addaction_form] '688 '.headerAdvanced'), collapse='false')688 ksscore.getCssSelector('form[name=addaction_form] ' 689 '.headerAdvanced'), collapse='false') 689 690 690 691 message = _(u"Please correct the indicated errors.") … … 708 709 # collapse advanced section 709 710 self.kss_toggleCollapsible( 710 ksscore.getCssSelector('form[name=addaction_form] .headerAdvanced'), 711 collapse='true') 711 ksscore.getCssSelector( 712 'form[name=addaction_form] .headerAdvanced'), 713 collapse='true') 712 714 713 715 # reset form inputs … … 769 771 # validate posted data 770 772 errors = self.validateActionFields(cat_name, data, 771 allow_dup=(id == data['id']))773 allow_dup=(id == data['id'])) 772 774 773 775 html_id = '%s%s%s' % (self.prefix, id, self.sufix) … … 793 795 # expand advanced section if there are errors in id, 794 796 # action url or condition 795 if errors.has_key('id') or errors.has_key('available_expr')or \796 errors.has_key('url_expr'):797 if 'id' in errors or 'available_expr' in errors or \ 798 'url_expr' in errors: 797 799 self.kss_toggleCollapsible( 798 800 ksscore.getCssSelector('#%s .headerAdvanced' % html_id), … … 818 820 else: 819 821 ids = [component[len(self.prefix):-len(self.sufix)] 820 for component in components]822 for component in components] 821 823 822 824 # do actual sorting … … 936 938 937 939 # preprocess 'visible' field (checkbox needs special checking) 938 if form.has_key('visible_%s' % id):940 if 'visible_%s' % id in form: 939 941 form['visible_%s' % id] = True 940 942 else: … … 954 956 955 957 # preprocess 'visible' field (checkbox needs special checking) 956 if form.has_key('visible')and form['visible']:958 if 'visible' in form and form['visible']: 957 959 form['visible'] = True 958 960 else: … … 984 986 """Change site_properties""" 985 987 site_properties = getToolByName(self.context, 986 "portal_properties").site_properties988 "portal_properties").site_properties 987 989 site_properties.manage_changeProperties(**kw) 988 990 return True … … 997 999 category = self.getActionCategory(cat_name) 998 1000 except Exception: 999 raise KSSExplicitError(u"%s action category does not exist." % \1001 raise KSSExplicitError(u"%s action category does not exist." % 1000 1002 cat_name) 1001 1003 1002 1004 # extract action id from given list item id on client 1003 1005 action_id = self.sufix and id[len(self.prefix):-len(self.sufix)] or \ 1004 1006 id[len(self.prefix):] 1005 1007 try: 1006 1008 action = category[action_id] 1007 1009 except Exception: 1008 raise KSSExplicitError("No %s action in %s category." % \1009 1010 raise KSSExplicitError("No %s action in %s category." % 1011 (action_id, cat_name)) 1010 1012 1011 1013 return (action_id, category, action) … … 1023 1025 if editform: 1024 1026 id = '%s%s%s' % (self.prefix, editform, self.sufix) 1025 field_selector = ksscore.getCssSelector('#%s .edit-field-%s' % (id, 1026 UI_ATTRS.get(name, name))) 1027 field_error_selector = ksscore.getCssSelector('#%s .edit-field-%s ' 1028 '.error-container' % (id, UI_ATTRS.get(name, name))) 1029 else: 1030 field_selector = ksscore.getCssSelector('form' +\ 1031 '[name=addaction_form] ' 1032 '.field-%s' % UI_ATTRS.get(name, name)) 1033 field_error_selector = ksscore.getCssSelector('form[name=' 1034 'addaction_form] .field-%s ' 1027 field_selector = ksscore.getCssSelector( 1028 '#%s .edit-field-%s' % (id, UI_ATTRS.get(name, name))) 1029 field_error_selector = ksscore.getCssSelector( 1030 '#%s .edit-field-%s .error-container' % (id, 1031 UI_ATTRS.get(name, 1032 name))) 1033 else: 1034 field_selector = ksscore.getCssSelector( 1035 'form[name=addaction_form] .field-%s' % UI_ATTRS.get(name, 1036 name)) 1037 field_error_selector = ksscore.getCssSelector( 1038 'form[name=addaction_form] .field-%s ' 1035 1039 '.error-container' % UI_ATTRS.get(name, name)) 1036 1040 … … 1070 1074 """KSS Server command to execute replaceOrInsert client action""" 1071 1075 command = self.commands.addCommand('plonetabs-replaceOrInsert', 1072 selector)1076 selector) 1073 1077 command.addParam('selector', parentSelector) 1074 1078 command.addHtmlParam('html', html) … … 1084 1088 if positionSelectorType: 1085 1089 command.addParam('positionSelectorType', 1086 1090 positionSelectorType) 1087 1091 1088 1092 def kss_issueMessage(self, message, msgtype="info"): … … 1137 1141 # update action properties 1138 1142 for attr in data.keys(): 1139 if data.has_key(attr):1143 if attr in data: 1140 1144 action._setPropValue(attr, data[attr]) 1141 1145 -
quintagroup.plonetabs/trunk/quintagroup/plonetabs/configure.zcml
r3381 r3598 5 5 xmlns:i18n="http://namespaces.zope.org/i18n" 6 6 i18n_domain="quintagroup.plonetabs"> 7 7 8 8 <include package="Products.CMFCore" file="permissions.zcml" 9 9 zcml:condition="have plone-41" /> 10 10 11 11 <include package="plone.browserlayer" /> 12 12 … … 15 15 <!-- Set up as a Zope2 product --> 16 16 <five:registerPackage package="." initialize=".initialize" /> 17 17 18 18 <include file="profiles.zcml" /> 19 19 20 20 <include package=".browser" /> 21 21 22 22 <include package=".plugins" /> 23 23 -
quintagroup.plonetabs/trunk/quintagroup/plonetabs/profiles.zcml
r865 r3598 3 3 xmlns:genericsetup="http://namespaces.zope.org/genericsetup" 4 4 i18n_domain="quintagroup.plonetabs"> 5 5 6 6 <genericsetup:registerProfile 7 7 name="default" … … 19 19 provides="Products.GenericSetup.interfaces.EXTENSION" 20 20 /> 21 21 22 22 </configure> -
quintagroup.plonetabs/trunk/quintagroup/plonetabs/utils.py
r3563 r3598 8 8 9 9 10 # TODO: Methods 'getViewletByName' and 'setupViewletByName' were copied 10 # TODO: Methods 'getViewletByName' and 'setupViewletByName' were copied 11 11 # from https://github.com/collective/collective.developermanual/blob/master/source/views/viewlets.rst#what-viewlets-do 12 # Better solution would be to use collective.fastview 13 # (http://svn.plone.org/svn/collective/collective.fastview/trunk/) 12 # Better solution would be to use collective.fastview 13 # (http://svn.plone.org/svn/collective/collective.fastview/trunk/) 14 14 # which has not yet included in plone. 15 15 … … 47 47 # from adapters registry 48 48 reg = getViewletByName(name) 49 if reg ==None:49 if reg is None: 50 50 return None 51 51
Note: See TracChangeset
for help on using the changeset viewer.