eaiser wiki. Just do 'def index(): return auth.wiki()' (that is all)
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-07-14 23:05:38) dev
|
Version 2.00.0 (2012-07-14 23:25:31) dev
|
||||||
|
|||||||
+20
-6
@@ -3044,6 +3044,12 @@ class Auth(object):
|
|||||||
new_record[key] = value
|
new_record[key] = value
|
||||||
id = archive_table.insert(**new_record)
|
id = archive_table.insert(**new_record)
|
||||||
return id
|
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):
|
class Crud(object):
|
||||||
|
|
||||||
@@ -4346,8 +4352,10 @@ class Expose(object):
|
|||||||
|
|
||||||
class Wiki(object):
|
class Wiki(object):
|
||||||
regex_redirect = re.compile('redirect\s+(\w+\://\S+)\s*')
|
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.auth = auth
|
||||||
|
self.env = env or {}
|
||||||
|
self.automenu = automenu
|
||||||
db = auth.db
|
db = auth.db
|
||||||
db.define_table(
|
db.define_table(
|
||||||
'wiki_page',
|
'wiki_page',
|
||||||
@@ -4357,14 +4365,18 @@ class Wiki(object):
|
|||||||
db.Field('body','text',notnull=True),
|
db.Field('body','text',notnull=True),
|
||||||
db.Field('menu'),
|
db.Field('menu'),
|
||||||
db.Field('html','text',readable=False,writable=False,
|
db.Field('html','text',readable=False,writable=False,
|
||||||
compute=lambda t: MARKMIN(t.body).xml()),
|
compute=lambda t,env=self.env: \
|
||||||
auth.signature)
|
MARKMIN(t.body,url=True,env=env).xml()),
|
||||||
|
auth.signature,format='%(title)s')
|
||||||
db.define_table(
|
db.define_table(
|
||||||
'wiki_media',
|
'wiki_media',
|
||||||
db.Field('title',required=True),
|
db.Field('title',required=True),
|
||||||
db.Field('file','upload',required=True),
|
db.Field('file','upload',required=True),
|
||||||
auth.signature)
|
auth.signature,format='%(title)s')
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
|
if self.automenu:
|
||||||
|
current.response.menu = self.menu(current.request.controller,
|
||||||
|
current.request.function)
|
||||||
if current.request.args(0)=='_edit':
|
if current.request.args(0)=='_edit':
|
||||||
return self.edit(current.request.args(1) or 'index')
|
return self.edit(current.request.args(1) or 'index')
|
||||||
elif current.request.args(0)=='_pages':
|
elif current.request.args(0)=='_pages':
|
||||||
@@ -4408,11 +4420,13 @@ class Wiki(object):
|
|||||||
def pages(self):
|
def pages(self):
|
||||||
self.check_authorization()
|
self.check_authorization()
|
||||||
self.auth.db.wiki_page.slug.writable = True
|
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)
|
return dict(content=content)
|
||||||
def media(self):
|
def media(self):
|
||||||
self.check_authorization()
|
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)
|
return dict(content=content)
|
||||||
def menu(self,controller='default',function='index'):
|
def menu(self,controller='default',function='index'):
|
||||||
db = self.auth.db
|
db = self.auth.db
|
||||||
|
|||||||
Reference in New Issue
Block a user