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())
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())
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']))
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)
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)
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"))
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
def version_status(self): version, editable = self._version_status() pt = PageTemplateFile('zpt/version_status', globals()) return pt.__of__(self)(version=version, editable=editable)
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']))
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
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')