예제 #1
0
 def difference_list(self, l1, l2):
     warn(self, 'difference_list', 'Products.zms.standard.difference_list')
     return standard.difference_list(l1, l2)
예제 #2
0
    def manage_changeWorkflow(self,
                              lang,
                              btn='',
                              key='properties',
                              REQUEST=None,
                              RESPONSE=None):
        """ ZMSWorkflowProvider.manage_changeWorkflow """
        message = ''

        # Version Control.
        # -----------
        if key == 'history':
            old_active = self.getConfProperty('ZMS.Version.active', 0)
            new_active = REQUEST.get('active', 0)
            old_nodes = self.getConfProperty('ZMS.Version.nodes', ['{$}'])
            new_nodes = standard.string_list(REQUEST.get('nodes', ''))
            self.setConfProperty('ZMS.Version.active', new_active)
            self.setConfProperty('ZMS.Version.nodes', new_nodes)
            nodes = []
            if old_active == 1 and new_active == 0:
                nodes = old_nodes
            if old_active == 1 and new_active == 1:
                nodes = standard.difference_list(
                    old_nodes,
                    self.getConfProperty('ZMS.Version.nodes', ['{$}']))
            for node in nodes:
                ob = self.getLinkObj(node)
                if ob is not None:
                    try:
                        message += '[%s: %i]' % (node, ob.packHistory())
                    except:
                        message += '[%s: %s]' % (node, 'No history to pack')
            message = self.getZMILangStr('MSG_CHANGED') + message

        # Properties.
        # -----------
        elif key == 'properties':
            # Save.
            # ------
            if btn == 'BTN_SAVE':
                # Autocommit & Nodes.
                old_autocommit = self.autocommit
                new_autocommit = REQUEST.get('workflow', 0) == 0
                self.revision = REQUEST.get('revision', '0.0.0')
                self.autocommit = new_autocommit
                self.nodes = standard.string_list(REQUEST.get('nodes', ''))
                if old_autocommit == 0 and new_autocommit == 1:
                    self.doAutocommit(lang, REQUEST)
                message = self.getZMILangStr('MSG_CHANGED')

            # Clear.
            # ------
            elif btn == 'BTN_CLEAR':
                self.doAutocommit(lang, REQUEST)
                self.autocommit = 1
                self.activities = []
                self.transitions = []
                message = self.getZMILangStr('MSG_CHANGED')

            # Export.
            # -------
            elif btn == 'BTN_EXPORT':
                return exportXml(self, REQUEST, RESPONSE)

            # Import.
            # -------
            elif btn == 'BTN_IMPORT':
                f = REQUEST['file']
                if f:
                    filename = f.filename
                    xml = f
                else:
                    filename = REQUEST.get('init')
                    xml = open(_fileutil.getOSPath(filename), 'rb')
                self.importXml(xml)
                message = self.getZMILangStr('MSG_IMPORTED') % ('<i>%s</i>' %
                                                                filename)

        # Return with message.
        message = standard.url_quote(message)
        return RESPONSE.redirect(
            'manage_main?lang=%s&key=%s&manage_tabs_message=%s#_properties' %
            (lang, key, message))