示例#1
0
    def get_report(self, forms, portals='', exclude=False, REQUEST=None):
        if not REQUEST.has_key('show_report'): # TODO: remove this
            return

        report = {}
        forms = convertLinesToList(forms)
        portals_list = get_portals(self)
        portals_custom = []

        if portals.strip():
            for portal_id in portals.split(','):
                portals_custom.append(portal_id.strip())

        for portal in portals_list:
            if portals_custom:
                if exclude and portal.id in portals_custom: continue
                elif not exclude and portal.id not in portals_custom: continue

            portal_path = '/'.join(portal.getPhysicalPath()[1:])
            portal_forms = portal.portal_forms
            if forms:
                forms_list_tmp = []
                for form_line in forms: #Search in ZMI and FS for template patterns
                    for form_id in self.find_templates(re.compile(form_line), portal):
                        if form_id not in forms_list_tmp: forms_list_tmp.append(form_id)
                forms_list = forms_list_tmp
                del(forms_list_tmp)
            else:
                forms_list = portal_forms.objectIds()
            deltas = []

            for form_id in forms_list:
                try:
                    form_fs = portal_forms._default_form(form_id)
                except KeyError, exc_error:
                    zLOG.LOG('Naaya Updater', zLOG.ERROR, '%s: %s' % (portal.id, exc_error))
                    continue
                form_zmi = portal_forms._getOb(form_id)
                if form_fs and form_zmi:
                    t1 = normalize_template(form_fs._text)
                    t2 = normalize_template(form_zmi._text)
                    delta = {
                        'physical_path': '/'.join(form_zmi.getPhysicalPath()[1:]),
                        'absolute_url': form_zmi.absolute_url(),
                        'id': form_zmi.getId(),
                        'title': form_zmi.title_or_id(),
                    }
                    if t1 == t2:
                        delta['result'] = 'identical'
                    else:
                        delta['result'] = 'different'

                        delta['diff'] = html_diff(form_fs._text, form_zmi._text)
                    deltas.append(delta)

            if len(deltas) > 0:
                report[portal_path] = deltas
示例#2
0
    def show_diff(self, REQUEST):
        """ show the differences between the default and customized form """
        name = REQUEST.get('name', '')
        bundle_template = self.bundle_template(name)
        bundle_content = get_template_source(bundle_template)

        customized_content = self.template_content(name)

        diff = html_diff(bundle_content, customized_content)
        return self._diff(diff=diff)
示例#3
0
    def show_diff(self, REQUEST):
        """ show the differences between the default and customized form """
        name = REQUEST.get('name', '')
        bundle_template = self.bundle_template(name)
        bundle_content = get_template_source(bundle_template)

        customized_content = self.template_content(name)

        diff = html_diff(bundle_content, customized_content)
        return self._diff(diff=diff)
    def _update(self, portal):
        portlet_name = 'portlet_administration'
        ptool = portal.portal_portlets

        site_portlet = queryAdapter(portal, INyPortlet, name=portlet_name)
        assert site_portlet is not None
        self.log.debug(site_portlet)

        custom_portlet = ptool._getOb(portlet_name, None)
        if custom_portlet is None:
            self.log.debug('No local portlet_administration')
            return True

        revert_url = portal.absolute_url() + '/portal_portlets/manage_main'
        revert_link = '<a href="%s">portal_portlets</a>' % revert_url
        diff = html_diff(site_portlet.template._text, custom_portlet._text)

        self.report_html = '<br/>'.join([revert_link, diff])
        return True
    def _update(self, portal):
        portlet_name = 'portlet_administration'
        ptool = portal.portal_portlets

        site_portlet = queryAdapter(portal, INyPortlet, name=portlet_name)
        assert site_portlet is not None
        self.log.debug(site_portlet)

        custom_portlet = ptool._getOb(portlet_name, None)
        if custom_portlet is None:
            self.log.debug('No local portlet_administration')
            return True

        revert_url = portal.absolute_url() + '/portal_portlets/manage_main'
        revert_link = '<a href="%s">portal_portlets</a>' % revert_url
        diff = html_diff(site_portlet.template._text, custom_portlet._text)

        self.report_html = '<br/>'.join([revert_link, diff])
        return True
示例#6
0
 def html_diff(self):
     return html_diff(self.source1, self.source2)
示例#7
0
 def html_diff(self):
     return html_diff(self.source1, self.source2)