예제 #1
0
    def test_pagetemplatefile_processing_instruction_skipped(self):
        from Products.PageTemplates.PageTemplateFile import PageTemplateFile

        # test rendering engine
        template = PageTemplateFile(os.path.join(path, "pi.pt"))
        template = template.__of__(self.folder)
        self.assertIn('world', template())
예제 #2
0
    def test_pagetemplatefile(self):
        from Products.PageTemplates.PageTemplateFile import PageTemplateFile

        # test rendering engine
        template = PageTemplateFile(os.path.join(path, "simple.pt"))
        template = template.__of__(self.folder)
        self.assertTrue('world' in template())
예제 #3
0
    def test_pagetemplatefile(self):
        from Products.PageTemplates.PageTemplateFile import PageTemplateFile

        # test rendering engine
        template = PageTemplateFile(os.path.join(path, "simple.pt"))
        template = template.__of__(self.folder)
        self.assertTrue('world' in template())
예제 #4
0
    def test_pagetemplatefile_processing_instruction_skipped(self):
        from Products.PageTemplates.PageTemplateFile import PageTemplateFile

        # test rendering engine
        template = PageTemplateFile(os.path.join(path, "pi.pt"))
        template = template.__of__(self.folder)
        self.assertIn('world', template())
예제 #5
0
def circa_redirect_inspector(context, request):
    """ Debugger when connecting to machine is not desirable """
    redirects_config = get_configuration()
    pt = PageTemplateFile("zpt/circaredirect/inspector.zpt", globals())
    return pt.__of__(context)(redirects=redirects_config,
                              last_modification=time.ctime(
                                  redirect_records['last-load']))
예제 #6
0
파일: FormsTool.py 프로젝트: eaudeweb/naaya
    def _default_form(self, form_id):
        """ get the non-customized form """
        for form in self.listDefaultForms():
            if form['id'] == form_id:
                if 'form_ob' in form:
                    t = form['form_ob']
                else:
                    t = PageTemplateFile(form['path'])

                return t.__of__(self)
        raise KeyError('Not found form named "%s"' % form_id)
예제 #7
0
    def _default_form(self, form_id):
        """ get the non-customized form """
        for form in self.listDefaultForms():
            if form["id"] == form_id:
                if "form_ob" in form:
                    t = form["form_ob"]
                else:
                    file_path = form["path"]
                    if file_path in template_cache:
                        t = template_cache[file_path]
                    else:
                        t = PageTemplateFile(file_path)
                        template_cache[file_path] = t

                return t.__of__(self)
        raise KeyError('Not found form named "%s"' % form_id)
예제 #8
0
 def manage_workspace(self, REQUEST, RESPONSE):
     """ """
     pt = PageTemplateFile('zpt/stats_item', globals())
     dt = datetime.fromtimestamp(self.stats[1])
     formatted_stats = []
     for site_id, values in self.stats[0].items():
         formatted_stats.append(values)
         entry = formatted_stats[-1]
         entry['pretty_size'] = pretty_size(entry['du'])
         ob = self.unrestrictedTraverse("/").get(site_id, None)
         if ob:
             entry.update(site_url=ob.absolute_url(),
                          site_title=ob.title_or_id())
         else:
             entry.update(site_url='#', site_title='%s (removed)' % site_id)
     formatted_stats.sort(key=lambda x: x['du'], reverse=True)
     return pt.__of__(self)(stats=formatted_stats,
                            date=dt.strftime("%Y-%m-%d %H:%M"))
예제 #9
0
 def manage_workspace(self, REQUEST, RESPONSE):
     """ """
     pt = PageTemplateFile('zpt/stats_item', globals())
     dt = datetime.fromtimestamp(self.stats[1])
     formatted_stats = []
     for site_id, values in self.stats[0].items():
         formatted_stats.append(values)
         entry = formatted_stats[-1]
         entry['pretty_size'] = pretty_size(entry['du'])
         ob = self.unrestrictedTraverse("/").get(site_id, None)
         if ob:
             entry.update(site_url=ob.absolute_url(),
                          site_title=ob.title_or_id())
         else:
             entry.update(site_url='#', site_title='%s (removed)' % site_id)
     formatted_stats.sort(key=lambda x: x['du'], reverse=True)
     return pt.__of__(self)(stats=formatted_stats,
                            date=dt.strftime("%Y-%m-%d %H:%M"))
예제 #10
0
                error = "Error while exporting %s IG Data: %s" % (ig_id, e.args)
                zexpcopy.send_export_completed_mail(error, sender, to)
            else:
                info = zexpcopy.export_completed_message_zpt.__of__(ctx)(zexp_path=zexp_path,
                                                                    ob_url=ob.absolute_url())
                zexpcopy.send_export_completed_mail(info, sender, to)
            options = {
                'performed': True,
                'zexp_path': zexp_path,
                'info': info.replace('\n', '<br />\n'),
                'error': error,
                'igs': sites,
            }
            return zexpcopy_export_zpt.__of__(ctx)(**options)
        else:
            return zexpcopy_export_zpt.__of__(ctx)(performed=False,
                                                   igs=sites)

class ZImportData(BrowserPage):
    def __call__(self):
        ctx = self.context.aq_inner
        info = error = ''
        sites = ctx.objectValues([METATYPE_NYSITE, METATYPE_GROUPWARESITE])
        sites = [(s.getId(), s.title_or_id()) for s in sites]
        sites.sort(key=operator.itemgetter(0))
        submit = self.request.form.get('submit')
        if submit:
            zexp_path = self.request.form.get('zexp_path')
            path = self.request.form.get('location')
            ig_id = self.request.form.get('ig')
            ob = ctx.unrestrictedTraverse('/%s/%s' % (ig_id, path))
            sender = ctx.applications.mail_from
예제 #11
0
 def version_status(self):
     version, editable = self._version_status()
     pt = PageTemplateFile('zpt/version_status', globals())
     return pt.__of__(self)(version=version, editable=editable)
예제 #12
0
class NaayaPageTemplateFile(PageTemplateFile):
    implements(INaayaPageTemplateFile, ITemplate)

    def __init__(self, filename, _globals, name, bundle_name="Naaya"):
        PageTemplateFile.__init__(self, filename, _globals, __name__=name)

        #Register this template to a specific bundle
        bundle = bundles.get(bundle_name)
        bundle.registerUtility(self, ITemplate, name)
        self._bundle_name = bundle_name

    def __of__(self, parent):
        """
        When this NaayaPageTemplateFile is placed in an acquisition context,
        we do our magic: look up the correct (perhaps customized) template
        and return that instead of ourselves.
        """

        try:
            site = parent.getSite()
        except AttributeError, e:
            sm = bundles.get(self._bundle_name)
        else:
            sm = site.getSiteManager()

        form = sm.getUtility(ITemplate, self.__name__)
        if form is self:
            return PageTemplateFile.__of__(self, parent)
        else:
            return form.__of__(parent)
예제 #13
0
class NaayaPageTemplateFile(PageTemplateFile):
    implements(INaayaPageTemplateFile, ITemplate)

    def __init__(self, filename, _globals, name, bundle_name="Naaya"):
        PageTemplateFile.__init__(self, filename, _globals, __name__=name)

        #Register this template to a specific bundle
        bundle = bundles.get(bundle_name)
        bundle.registerUtility(self, ITemplate, name)
        self._bundle_name = bundle_name

    def __of__(self, parent):
        """
        When this NaayaPageTemplateFile is placed in an acquisition context,
        we do our magic: look up the correct (perhaps customized) template
        and return that instead of ourselves.
        """

        try:
            site = parent.getSite()
        except AttributeError, e:
            sm = bundles.get(self._bundle_name)
        else:
            sm = site.getSiteManager()

        form = sm.getUtility(ITemplate, self.__name__)
        if form is self:
            return PageTemplateFile.__of__(self, parent)
        else:
            return form.__of__(parent)
def circa_redirect_inspector(context, request):
    """ Debugger when connecting to machine is not desirable """
    redirects_config = get_configuration()
    pt = PageTemplateFile("zpt/circaredirect/inspector.zpt", globals())
    return pt.__of__(context)(redirects=redirects_config,
                    last_modification=time.ctime(redirect_records['last-load']))
예제 #15
0
    def convert(self, data, outdata, **kwargs):
        """Input is a content folderish object. Output is idata, but getData returns a binary zip file."""
        
        # construct manifest file structure
        obj = data.getPublishedObject()
        if not obj: obj = data               # this needs to be smarter for non-pub objects
        identity = IDENTIFIER % obj.absolute_url()

        manifestzpt = PageTemplateFile('www/ieeemd', GLOBALS)
        manifestzpt.content_type = "text/xml"
        manifestzpt.title = "Manifest Template"
        manifestzpt = manifestzpt.__of__(data)
        
        # set up metadata info
        modmeta = data.getMetadata()
        moduledata = {}
        moduledata["modulename"] = data.getId()
        moduledata["url"] = (data.getPublishedObject() or data).absolute_url()
        moduledata["title"] = modmeta['title']
        moduledata["description"] = modmeta['abstract']
        owners = ()
        for x in modmeta['licensors']:
            owners = owners + (getUserFullname(data, x),)
        moduledata["rights"] = "This module is copyright %s under the license: %s" % (", ".join(owners), modmeta['license'])
        moduledata["size"] = data.get_size()
        moduledata["mime"] = "application/cnxml+xml"
        moduledata["language"] = 'en'
        #moduledata["userlanguage"] = 'en'
        moduledata["keywords"] = modmeta['keywords']
        moduledata["version"] = modmeta['version']
        moduledata["status"] = data.state in ("created", "modified") and "draft" or "final"
        contributors = ()
        for x in modmeta['authors']:
            vcard = getUserVCard(data, x)
            contributors = contributors + ({"role":"author", "entity":vcard},)  # also date, but we don't support that
        for x in modmeta['maintainers']:
            vcard = getUserVCard(data, x)
            contributors = contributors + ({"role":"editor", "entity":vcard},)  # also date, but we don't support that
        moduledata["contributors"] = contributors
        #moduledata["interactive"] = 0  # how do we figure this?
        # future: references (links), annotations, classifications (taxonomy)
        moduledata["files"] = []

        def addToResource(name, path, obj):
            moduledata["files"].append(path)
        
        container = data.getId().replace('.','-')
        content, zipfile = makeZipFile(data, container, callback=addToResource)
        
        ## disable XHTML export until we have a better handle on what it looks like
        #source = data.module_export_template(**kw)
        #text = data.cnxml_transform(source, stylesheet=MODULE_XSL)
        #zipfile.writestr('%s/index.xhtml' % container, text)

        manifest = manifestzpt(**moduledata)
        zipfile.writestr(MANIFEST, manifest)

        zipfile.close()
        outdata.setData(content.getvalue())
        content.close()
        # nothing to do for outdata.setSubObjects(objects)
        return outdata
예제 #16
0
파일: ui.py 프로젝트: eaudeweb/trunk-eggs
                info = zexpcopy.export_completed_message_zpt.__of__(ctx)(
                    zexp_path=zexp_path, ob_url=ob.absolute_url())
                subject = 'IG Data exported successfully'
                zexpcopy.send_action_completed_mail(info, sender, to, subject)
            options = {
                'performed': True,
                'zexp_path': zexp_path,
                'info': info.replace('\n', '<br />\n'),
                'error': error,
                'igs': sites,
                'macros': tpl_macros,
            }
            return zexpcopy_export_zpt.__of__(ctx)(**options)
        else:
            return zexpcopy_export_zpt.__of__(ctx)(performed=False,
                                                   igs=sites,
                                                   macros=tpl_macros)


class ZImportData(BrowserPage):
    def __call__(self):
        ctx = self.context.aq_inner
        info = error = ''
        sites = ctx.objectValues([METATYPE_NYSITE, METATYPE_GROUPWARESITE])
        sites = [(s.getId(), s.title_or_id()) for s in sites]
        sites.sort(key=operator.itemgetter(0))
        submit = self.request.form.get('submit')
        if submit:
            zexp_path = self.request.form.get('zexp_path')
            path = self.request.form.get('location')
            ig_id = self.request.form.get('ig')