Wiki(..., force_render=True)

This commit is contained in:
mdipierro
2013-09-01 12:38:11 -05:00
parent 085b4a0d15
commit a68ac572ab
2 changed files with 11 additions and 8 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.6.0-development+timestamp.2013.09.01.11.16.29 Version 2.6.0-development+timestamp.2013.09.01.12.37.17
+10 -7
View File
@@ -3585,7 +3585,8 @@ class Auth(object):
templates=None, templates=None,
migrate=True, migrate=True,
controller=None, controller=None,
function=None): function=None,
force_render=False):
if controller and function: resolve = False if controller and function: resolve = False
@@ -3609,7 +3610,7 @@ class Auth(object):
if resolve: if resolve:
action = str(current.request.args(0)).startswith("_") action = str(current.request.args(0)).startswith("_")
if slug and not action: if slug and not action:
wiki = self._wiki.read(slug) wiki = self._wiki.read(slug,force_render)
if isinstance(wiki, dict) and wiki.has_key('content'): if isinstance(wiki, dict) and wiki.has_key('content'):
# We don't want to return a dict object, just the wiki # We don't want to return a dict object, just the wiki
wiki = wiki['content'] wiki = wiki['content']
@@ -5190,7 +5191,7 @@ class Wiki(object):
controller, function, args = items[0], items[1], items[2:] controller, function, args = items[0], items[1], items[2:]
return LOAD(controller, function, args=args, ajax=True).xml() return LOAD(controller, function, args=args, ajax=True).xml()
def get_render(self): def get_renderer(self):
if isinstance(self.settings.render, basestring): if isinstance(self.settings.render, basestring):
r = getattr(self, "%s_render" % self.settings.render) r = getattr(self, "%s_render" % self.settings.render)
elif callable(self.settings.render): elif callable(self.settings.render):
@@ -5251,7 +5252,7 @@ class Wiki(object):
default=[Wiki.everybody]), default=[Wiki.everybody]),
Field('changelog'), Field('changelog'),
Field('html', 'text', Field('html', 'text',
compute=self.get_render(), compute=self.get_renderer(),
readable=False, writable=False), readable=False, writable=False),
auth.signature], auth.signature],
'vars':{'format':'%(title)s', 'migrate':migrate}}), 'vars':{'format':'%(title)s', 'migrate':migrate}}),
@@ -5404,7 +5405,7 @@ class Wiki(object):
elif zero == '_cloud': elif zero == '_cloud':
return self.cloud() return self.cloud()
elif zero == '_preview': elif zero == '_preview':
return self.preview(self.get_render()) return self.preview(self.get_renderer())
def first_paragraph(self, page): def first_paragraph(self, page):
if not self.can_read(page): if not self.can_read(page):
@@ -5418,7 +5419,7 @@ class Wiki(object):
def fix_hostname(self, body): def fix_hostname(self, body):
return (body or '').replace('://HOSTNAME', '://%s' % self.host) return (body or '').replace('://HOSTNAME', '://%s' % self.host)
def read(self, slug): def read(self, slug, force_render=False):
if slug in '_cloud': if slug in '_cloud':
return self.cloud() return self.cloud()
elif slug in '_search': elif slug in '_search':
@@ -5433,10 +5434,12 @@ class Wiki(object):
url = URL(args=('_edit', slug)) url = URL(args=('_edit', slug))
return dict(content=A('Create page "%s"' % slug, _href=url, _class="btn")) return dict(content=A('Create page "%s"' % slug, _href=url, _class="btn"))
else: else:
html = page.html if not force_render else self.get_renderer(page)
content = XML(self.fix_hostname(html))
return dict(title=page.title, return dict(title=page.title,
slug=page.slug, slug=page.slug,
page=page, page=page,
content=XML(self.fix_hostname(page.html)), content=content,
tags=page.tags, tags=page.tags,
created_on=page.created_on, created_on=page.created_on,
modified_on=page.modified_on) modified_on=page.modified_on)