fixed issue 1443, automenu for wiki, thanks Alan
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.4.6-stable+timestamp.2013.04.12.10.30.59
|
Version 2.4.6-stable+timestamp.2013.04.12.10.46.23
|
||||||
|
|||||||
@@ -137,5 +137,4 @@ def _():
|
|||||||
)]
|
)]
|
||||||
if DEVELOPMENT_MENU: _()
|
if DEVELOPMENT_MENU: _()
|
||||||
|
|
||||||
|
if "auth" in locals(): auth.wikimenu()
|
||||||
|
|
||||||
|
|||||||
+22
-12
@@ -3389,6 +3389,7 @@ class Auth(object):
|
|||||||
function=function)
|
function=function)
|
||||||
else:
|
else:
|
||||||
self._wiki.env.update(env or {})
|
self._wiki.env.update(env or {})
|
||||||
|
|
||||||
# if resolve is set to True, process request as wiki call
|
# if resolve is set to True, process request as wiki call
|
||||||
# resolve=False allows initial setup without wiki redirection
|
# resolve=False allows initial setup without wiki redirection
|
||||||
wiki = None
|
wiki = None
|
||||||
@@ -3405,6 +3406,13 @@ class Auth(object):
|
|||||||
wiki = XML(wiki)
|
wiki = XML(wiki)
|
||||||
return wiki
|
return wiki
|
||||||
|
|
||||||
|
def wikimenu(self):
|
||||||
|
"""to be used in menu.py for app wide wiki menus"""
|
||||||
|
if (hasattr(self, "_wiki") and
|
||||||
|
self._wiki.settings.controller and
|
||||||
|
self._wiki.settings.function):
|
||||||
|
self._wiki.automenu()
|
||||||
|
|
||||||
|
|
||||||
class Crud(object):
|
class Crud(object):
|
||||||
|
|
||||||
@@ -4987,7 +4995,7 @@ class Wiki(object):
|
|||||||
menu_groups=None, templates=None, migrate=True,
|
menu_groups=None, templates=None, migrate=True,
|
||||||
controller=None, function=None):
|
controller=None, function=None):
|
||||||
|
|
||||||
settings = self.settings = Settings()
|
settings = self.settings = auth.settings.wiki
|
||||||
|
|
||||||
# render: "markmin", "html", ..., <function>
|
# render: "markmin", "html", ..., <function>
|
||||||
settings.render = render
|
settings.render = render
|
||||||
@@ -5005,6 +5013,7 @@ class Wiki(object):
|
|||||||
self.env = env or {}
|
self.env = env or {}
|
||||||
self.env['component'] = Wiki.component
|
self.env['component'] = Wiki.component
|
||||||
self.auth = auth
|
self.auth = auth
|
||||||
|
self.wiki_menu_items = None
|
||||||
|
|
||||||
if self.auth.user:
|
if self.auth.user:
|
||||||
self.settings.force_prefix = force_prefix % self.auth.user
|
self.settings.force_prefix = force_prefix % self.auth.user
|
||||||
@@ -5095,13 +5104,6 @@ class Wiki(object):
|
|||||||
auth.add_membership(gid)
|
auth.add_membership(gid)
|
||||||
|
|
||||||
settings.lock_keys = True
|
settings.lock_keys = True
|
||||||
|
|
||||||
if controller and function:
|
|
||||||
self.automenu = self.menu(settings.controller,
|
|
||||||
settings.function)
|
|
||||||
current.response.menu += self.automenu
|
|
||||||
else:
|
|
||||||
self.automenu = None
|
|
||||||
|
|
||||||
# WIKI ACCESS POLICY
|
# WIKI ACCESS POLICY
|
||||||
|
|
||||||
@@ -5150,12 +5152,20 @@ class Wiki(object):
|
|||||||
|
|
||||||
### END POLICY
|
### END POLICY
|
||||||
|
|
||||||
|
def automenu(self):
|
||||||
|
"""adds the menu if not present"""
|
||||||
|
request = current.request
|
||||||
|
if not self.wiki_menu_items and self.settings.controller and self.settings.function:
|
||||||
|
self.wiki_menu_items = self.menu(self.settings.controller,
|
||||||
|
self.settings.function)
|
||||||
|
current.response.menu += self.wiki_menu_items
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
request = current.request
|
request = current.request
|
||||||
if not self.automenu:
|
settings.controller = settings.controller or request.controller
|
||||||
self.automenu = self.menu(request.controller,
|
settings.function = settings.function or request.function
|
||||||
request.function)
|
self.automenu()
|
||||||
current.response.menu += self.automenu
|
|
||||||
zero = request.args(0) or 'index'
|
zero = request.args(0) or 'index'
|
||||||
if zero and zero.isdigit():
|
if zero and zero.isdigit():
|
||||||
return self.media(int(zero))
|
return self.media(int(zero))
|
||||||
|
|||||||
Reference in New Issue
Block a user