Ignore:
Timestamp:
Apr 20, 2012 10:04:56 AM (12 years ago)
Author:
potar
Message:

Merged tests branch

Location:
quintagroup.plonetabs/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonetabs/trunk

    • Property svn:mergeinfo
      •  

        old new  
        11/quintagroup.plonetabs/branches/plone4:3076-3243 
         2/quintagroup.plonetabs/branches/tests:3394-3436 
  • quintagroup.plonetabs/trunk/quintagroup/plonetabs/browser/plonetabs.py

    r3244 r3437  
    2424from Products.statusmessages.interfaces import IStatusMessage 
    2525 
    26 from quintagroup.plonetabs.config import * 
     26from quintagroup.plonetabs.config import PROPERTY_SHEET, FIELD_NAME 
    2727from quintagroup.plonetabs import messageFactory as _ 
    2828from interfaces import IPloneTabsControlPanel 
     
    3939cookie_name = 'ploneTabsMode' 
    4040 
     41 
    4142class PloneTabsControlPanel(PloneKSSView): 
    4243 
     
    6061        postback = True 
    6162        errors = {} 
    62         context = aq_inner(self.context) 
    6363 
    6464        form = self.request.form 
    65         action = form.get("action", "") 
    6665        submitted = form.get('form.submitted', False) 
    6766 
     
    148147            IStatusMessage(self.request).addStatusMessage( 
    149148                _(u"'${id}' action successfully added.", 
    150                   mapping={'id':action.id}), type="info") 
     149                  mapping={'id': action.id}), type="info") 
    151150            self.redirect(search="category=%s" % cat_name) 
    152151            return False 
     
    179178        else: 
    180179            errs.update(self.processErrors(errors, 
    181                 sufix='_%s' % id)) # add edit form sufix to error ids 
     180                sufix='_%s' % id))  # add edit form sufix to error ids 
    182181            IStatusMessage(self.request).addStatusMessage( 
    183182                _(u"Please correct the indicated errors."), type="error") 
     
    214213            self.moveAction(id, cat_name, steps=1) 
    215214            IStatusMessage(self.request).addStatusMessage( 
    216                 _(u"'${id}' action moved up.", mapping={'id': id}), type="info") 
     215               _(u"'${id}' action moved up.", mapping={'id': id}), type="info") 
    217216            self.redirect(search="category=%s" % cat_name) 
    218217            return False 
     
    247246        """Redirect to @@plonetabs-controlpanel configlet""" 
    248247        if not url: 
    249             portal_url =  getMultiAdapter((self.context, self.request), 
     248            portal_url = getMultiAdapter((self.context, self.request), 
    250249                name=u"plone_portal_state").portal_url() 
    251250            url = '%s/%s' % (portal_url, "@@plonetabs-controlpanel") 
     
    302301        """See interface""" 
    303302        tool = getToolByName(self.context, "portal_actions") 
    304         return len(tool.listActions(categories=[category,])) > 0 
     303        return len(tool.listActions(categories=[category, ])) > 0 
    305304 
    306305    def getPortalActions(self, category="portal_tabs"): 
     
    322321        site_properties = getToolByName(self.context, 
    323322                                        "portal_properties").site_properties 
    324         return not site_properties.getProperty("disable_folder_sections", False) 
     323        return not site_properties.getProperty("disable_folder_sections", 
     324                                               False) 
    325325 
    326326    def isNotFoldersGenerated(self): 
     
    364364        query = {} 
    365365        rootPath = getNavigationRoot(context) 
    366         query['path'] = {'query' : rootPath, 'depth' : 1} 
     366        query['path'] = {'query': rootPath, 'depth': 1} 
    367367        query['portal_type'] = utils.typesToList(context) 
    368368 
     
    388388        excludedIds = {} 
    389389        for id in idsNotToList: 
    390             excludedIds[id]=1 
     390            excludedIds[id] = 1 
    391391 
    392392        rawresult = portal_catalog.searchResults(**query) 
     
    396396            if not excludedIds.has_key(item.getId): 
    397397                id, item_url = get_view_url(item) 
    398                 data = {'name'       : utils.pretty_title_or_id(context, item), 
    399                         'id'         : id, 
    400                         'url'        : item_url, 
     398                data = {'name': utils.pretty_title_or_id(context, item), 
     399                        'id': id, 
     400                        'url': item_url, 
    401401                        'description': item.Description, 
    402                         'exclude_from_nav' : item.exclude_from_nav} 
     402                        'exclude_from_nav': item.exclude_from_nav} 
    403403                result.append(data) 
    404404 
     
    426426    def portal_tabs(self): 
    427427        """See global-sections viewlet""" 
    428         actions = context_state = getMultiAdapter((self.context, self.request), 
    429             name=u"plone_context_state").actions() 
     428        actions = getMultiAdapter((self.context, self.request), 
     429                                   name=u'plone_context_state').actions() 
     430        actions_tabs = [] 
     431        try: 
     432            # Plone 4 and higher 
     433            import plone.app.upgrade 
     434            plone.app.upgrade  # pyflakes 
     435        except ImportError: 
     436            actions_tabs = actions 
     437        if not actions_tabs and 'portal_tabs' in actions: 
     438            actions_tabs = actions['portal_tabs'] 
     439 
    430440        portal_tabs_view = getMultiAdapter((self.context, self.request), 
    431441            name="portal_tabs_view") 
    432         if 'portal_tabs' in actions: 
    433             actions_tabs = actions['portal_tabs'] 
    434         else: 
    435             actions_tabs = [] 
    436442        return portal_tabs_view.topLevelTabs(actions=actions_tabs) 
    437443 
     
    513519        ksscore = self.getCommandSet("core") 
    514520        content = self.getGeneratedTabs() 
    515         ksscore.replaceInnerHTML(ksscore.getHtmlIdSelector('roottabs'), content) 
     521        ksscore.replaceInnerHTML(ksscore.getHtmlIdSelector('roottabs'), 
     522                                 content) 
    516523 
    517524        # update global-sections viewlet 
     
    531538 
    532539        if obj_id not in portal.objectIds(): 
    533             raise KSSExplicitError, \ 
    534                   _(u"Object with '${id}' id doesn't exist in portal root.", 
    535                     mapping={'id': obj_id}) 
     540            raise KSSExplicitError("Object with %s id doesn't" +\ 
     541                                   " exist in portal root." % obj_id) 
    536542 
    537543        if checked == '1': 
     
    548554                value="invisible") 
    549555            message = _(u"'${id}' object was included into navigation.", 
    550                         mapping={'id':obj_id}) 
     556                        mapping={'id': obj_id}) 
    551557        else: 
    552558            ksscore.addClass(ksscore.getHtmlIdSelector(id), value="invisible") 
    553559            message = _(u"'${id}' object was excluded from navigation.", 
    554                         mapping={'id':obj_id}) 
     560                        mapping={'id': obj_id}) 
    555561 
    556562        # update global-sections viewlet 
     
    574580                value="invisible") 
    575581            message = _(u"'${id}' action is now visible.", 
    576                         mapping={'id':act_id}) 
     582                        mapping={'id': act_id}) 
    577583        else: 
    578584            ksscore.addClass(ksscore.getHtmlIdSelector(id), value="invisible") 
    579585            message = _(u"'${id}' action is now invisible.", 
    580                         mapping={'id':act_id}) 
     586                        mapping={'id': act_id}) 
    581587        self.updatePage(cat_name) 
    582588 
     
    602608        # issue portal status message 
    603609        self.kss_issueMessage(_(u"'${id}' action successfully removed.", 
    604                                 mapping={'id':act_id})) 
     610                                mapping={'id': act_id})) 
    605611 
    606612    @kssaction 
     
    615621        # if not errors find (or create) category and set action to it 
    616622        ksscore = self.getCommandSet('core') 
    617         kssplone = self.getCommandSet('plone') 
    618623        if not errors: 
    619624            action = self.addAction(cat_name, data) 
     
    621626            # update client 
    622627            # add one more action to actions list 
    623             content = self.getActionsList(category=cat_name, tabs=[action,]) 
    624             ksscore.insertHTMLAsLastChild(ksscore.getHtmlIdSelector('tabslist'), 
    625                  content) 
     628            content = self.getActionsList(category=cat_name, tabs=[action, ]) 
     629            ksscore.insertHTMLAsLastChild( 
     630                                         ksscore.getHtmlIdSelector('tabslist'), 
     631                                         content) 
    626632 
    627633            # update reorder controls 
     
    646652 
    647653            message = _(u"'${id}' action successfully added.", 
    648                         mapping={'id':action.id}) 
     654                        mapping={'id': action.id}) 
    649655            msgtype = "info" 
    650656 
     
    655661            if errors.has_key('id') or errors.has_key('available_expr'): 
    656662                self.kss_toggleCollapsible( 
    657                     ksscore.getCssSelector('form[name=addaction_form] ' 
    658                                            '.headerAdvanced'), collapse='false') 
     663                   ksscore.getCssSelector('form[name=addaction_form] ' 
     664                                          '.headerAdvanced'), collapse='false') 
    659665 
    660666            message = _(u"Please correct the indicated errors.") 
     
    678684        # collapse advanced section 
    679685        self.kss_toggleCollapsible( 
    680             ksscore.getCssSelector('form[name=addaction_form] .headerAdvanced'), 
    681             collapse='true') 
     686           ksscore.getCssSelector('form[name=addaction_form] .headerAdvanced'), 
     687                                  collapse='true') 
    682688 
    683689        # reset form inputs 
     
    705711        # update client 
    706712        ksscore = self.getCommandSet("core") 
    707         content = self.getActionsList(category=cat_name, tabs=[action_info,]) 
     713        content = self.getActionsList(category=cat_name, tabs=[action_info, ]) 
    708714        ksscore.replaceHTML(ksscore.getHtmlIdSelector(id), content) 
    709715 
     
    722728        # update client 
    723729        ksscore = self.getCommandSet("core") 
    724         content = self.getActionsList(category=cat_name, tabs=[action,]) 
     730        content = self.getActionsList(category=cat_name, tabs=[action, ]) 
    725731        ksscore.replaceHTML(ksscore.getHtmlIdSelector(id), content) 
    726732 
     
    743749        html_id = '%s%s%s' % (self.prefix, id, self.sufix) 
    744750        ksscore = self.getCommandSet('core') 
    745         kssplone = self.getCommandSet('plone') 
    746751        if not errors: 
    747752            action = self.updateAction(id, cat_name, data) 
     
    749754            # update client 
    750755            # replace action item with updated one 
    751             content = self.getActionsList(category=cat_name, tabs=[action,]) 
     756            content = self.getActionsList(category=cat_name, tabs=[action, ]) 
    752757            ksscore.replaceHTML(ksscore.getHtmlIdSelector(html_id), content) 
    753758 
    754759            message = _(u"'${id}' action successfully updated.", 
    755                         mapping={'id':action.id}) 
     760                        mapping={'id': action.id}) 
    756761            msgtype = "info" 
    757762 
     
    820825    def copyAction(self, action): 
    821826        """Copy action to dictionary""" 
    822         action_info = {'description':action.description} 
     827        action_info = {'description': action.description} 
    823828        for attr in ACTION_ATTRS: 
    824829            action_info[attr] = getattr(action, attr) 
     
    842847            chooser.checkName(data['id'], self.context) 
    843848        except Exception, e: 
    844             errors['id'] = self._formatError(e, **{'id':data['id']}) 
     849            errors['id'] = self._formatError(e, **{'id': data['id']}) 
    845850 
    846851        # validate action name 
     
    968973            category = self.getActionCategory(cat_name) 
    969974        except Exception: 
    970             raise KSSExplicitError, \ 
    971                   _(u"'${cat_name}' action category does not exist.", 
    972                     mapping={'cat_name': cat_name}) 
     975            raise KSSExplicitError(u"%s action category does not exist." %\ 
     976                                   cat_name) 
    973977 
    974978        # extract action id from given list item id on client 
     
    978982            action = category[action_id] 
    979983        except Exception: 
    980             raise KSSExplicitError, \ 
    981                   _(u"No '${id}' action in '${cat_name}' category.", 
    982                     mapping={'id': action_id, 'cat_name': cat_name}) 
     984            raise KSSExplicitError("No %s action in %s category." %\ 
     985                                              (action_id, cat_name)) 
    983986 
    984987        return (action_id, category, action) 
     
    10011004                '.error-container' % (id, UI_ATTRS.get(name, name))) 
    10021005        else: 
    1003             field_selector = ksscore.getCssSelector('form[name=addaction_form] ' 
     1006            field_selector = ksscore.getCssSelector('form' +\ 
     1007                '[name=addaction_form] ' 
    10041008                '.field-%s' % UI_ATTRS.get(name, name)) 
    10051009            field_error_selector = ksscore.getCssSelector('form[name=' 
     
    10231027                                           selector) 
    10241028        if collapsed is not None: 
    1025             data = command.addParam('collapsed', collapsed) 
     1029            command.addParam('collapsed', collapsed) 
    10261030        if expanded is not None: 
    1027             data = command.addParam('expanded', expanded) 
     1031            command.addParam('expanded', expanded) 
    10281032        if collapse is not None: 
    1029             data = command.addParam('collapse', collapse) 
     1033            command.addParam('collapse', collapse) 
    10301034 
    10311035    def kss_resetForm(self, selector): 
    10321036        """KSS Server command to reset form on client""" 
    1033         command = self.commands.addCommand('plonetabs-resetForm', selector) 
    10341037 
    10351038    def kss_blur(self, selector): 
    10361039        """KSS Server command to remove focus from input""" 
    1037         command = self.commands.addCommand('plonetabs-blur', selector) 
     1040        self.commands.addCommand('plonetabs-blur', selector) 
    10381041 
    10391042    def kss_replaceOrInsert(self, selector, parentSelector, html, 
     
    10441047        command = self.commands.addCommand('plonetabs-replaceOrInsert', 
    10451048            selector) 
    1046         data = command.addParam('selector', parentSelector) 
    1047         data = command.addHtmlParam('html', html) 
    1048         data = command.addParam('withKssSetup', withKssSetup) 
     1049        command.addParam('selector', parentSelector) 
     1050        command.addHtmlParam('html', html) 
     1051        command.addParam('withKssSetup', withKssSetup) 
    10491052        if alternativeHTML: 
    1050             data = command.addHtmlParam('alternativeHTML', alternativeHTML) 
     1053            command.addHtmlParam('alternativeHTML', alternativeHTML) 
    10511054        if selectorType: 
    1052             data = command.addParam('selectorType', selectorType) 
     1055            command.addParam('selectorType', selectorType) 
    10531056        if position: 
    1054             data = command.addParam('position', position) 
     1057            command.addParam('position', position) 
    10551058        if positionSelector: 
    1056             data = command.addParam('positionSelector', positionSelector) 
     1059            command.addParam('positionSelector', positionSelector) 
    10571060        if positionSelectorType: 
    1058             data = command.addParam('positionSelectorType', 
    1059                                     positionSelectorType) 
     1061            command.addParam('positionSelectorType', 
     1062                              positionSelectorType) 
    10601063 
    10611064    def kss_issueMessage(self, message, msgtype="info"): 
    10621065        """"Issues portal status message and removes it afte 10 seconds""" 
    10631066        ksscore = self.getCommandSet('core') 
    1064         self.getCommandSet('plone').issuePortalMessage(message, msgtype=msgtype) 
     1067        self.getCommandSet('plone').issuePortalMessage(message, 
     1068                                                       msgtype=msgtype) 
    10651069        self.kss_timeout( 
    10661070            ksscore.getHtmlIdSelector('kssPortalMessage'), 
     
    10711075    def kss_timeout(self, selector, **kw): 
    10721076        """KSS Server command to execute plonetabs-timeout client action""" 
    1073         command = self.commands.addCommand('plonetabs-timeout', selector, **kw) 
     1077        self.commands.addCommand('plonetabs-timeout', selector, **kw) 
    10741078 
    10751079    def renderViewlet(self, manager, name): 
     
    11171121        """Delete action with given id from given category""" 
    11181122        category = self.getActionCategory(cat_name) 
    1119         category.manage_delObjects(ids=[id,]) 
     1123        category.manage_delObjects(ids=[id, ]) 
    11201124        return True 
    11211125 
     
    11251129            category = self.getActionCategory(cat_name) 
    11261130            if steps > 0: 
    1127                 category.moveObjectsUp([id,], steps) 
     1131                category.moveObjectsUp([id, ], steps) 
    11281132            else: 
    1129                 category.moveObjectsDown([id,], abs(steps)) 
     1133                category.moveObjectsDown([id, ], abs(steps)) 
    11301134            return True 
    11311135        return False 
     
    11701174        #ksszope = self.getCommandSet("zope") 
    11711175        #ksszope.refreshViewlet( 
    1172             #self.getCommandSet("core").getHtmlIdSelector("portal-siteactions"), 
    1173             #"plone.portalheader", 
    1174             #"plone.site_actions") 
     1176           #self.getCommandSet("core").getHtmlIdSelector("portal-siteactions"), 
     1177           #"plone.portalheader", 
     1178           #"plone.site_actions") 
    11751179 
    11761180    def updateUserPageSection(self): 
     
    11831187            "plone.personal_bar") 
    11841188 
     1189 
    11851190class PloneTabsMode(BrowserView): 
    11861191 
Note: See TracChangeset for help on using the changeset viewer.