From 8a819785c56dae27af99e828c55d6d1c62d792b8 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sat, 14 Jul 2012 23:25:34 -0500 Subject: [PATCH] eaiser wiki. Just do 'def index(): return auth.wiki()' (that is all) --- VERSION | 2 +- gluon/tools.py | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/VERSION b/VERSION index c5887c13..a0ea0c27 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-07-14 23:05:38) dev +Version 2.00.0 (2012-07-14 23:25:31) dev diff --git a/gluon/tools.py b/gluon/tools.py index f8bd23e4..179eae93 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -3044,6 +3044,12 @@ class Auth(object): new_record[key] = value id = archive_table.insert(**new_record) return id + def wiki(self,slug=None,env=None): + if not hasattr(self,'_wiki'): + self._wiki = Wiki(self,env=env) + else: + self._wiki.env.update(env or {}) + return self._wiki.read(slug)['content'] if slug else self._wiki() class Crud(object): @@ -4346,8 +4352,10 @@ class Expose(object): class Wiki(object): regex_redirect = re.compile('redirect\s+(\w+\://\S+)\s*') - def __init__(self,auth): + def __init__(self,auth,env=None,automenu=True): self.auth = auth + self.env = env or {} + self.automenu = automenu db = auth.db db.define_table( 'wiki_page', @@ -4357,14 +4365,18 @@ class Wiki(object): db.Field('body','text',notnull=True), db.Field('menu'), db.Field('html','text',readable=False,writable=False, - compute=lambda t: MARKMIN(t.body).xml()), - auth.signature) + compute=lambda t,env=self.env: \ + MARKMIN(t.body,url=True,env=env).xml()), + auth.signature,format='%(title)s') db.define_table( 'wiki_media', db.Field('title',required=True), db.Field('file','upload',required=True), - auth.signature) + auth.signature,format='%(title)s') def __call__(self): + if self.automenu: + current.response.menu = self.menu(current.request.controller, + current.request.function) if current.request.args(0)=='_edit': return self.edit(current.request.args(1) or 'index') elif current.request.args(0)=='_pages': @@ -4408,11 +4420,13 @@ class Wiki(object): def pages(self): self.check_authorization() self.auth.db.wiki_page.slug.writable = True - content=SQLFORM.grid(self.auth.db.wiki_page,args=['_pages']) + content=SQLFORM.grid(self.auth.db.wiki_page,args=['_pages'], + orderby = self.auth.db.wiki_page.title) return dict(content=content) def media(self): self.check_authorization() - content=SQLFORM.grid(self.auth.db.wiki_media,args=['_media']) + content=SQLFORM.grid(self.auth.db.wiki_media,args=['_media'], + orderby = self.auth.db.wiki_media.title) return dict(content=content) def menu(self,controller='default',function='index'): db = self.auth.db