fixed issue 1124, create new auth.wiki page from slug model, thanks Nico
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.2.1 (2012-11-01 21:09:04) stable
|
Version 2.2.1 (2012-11-01 21:33:00) stable
|
||||||
|
|||||||
+18
-11
@@ -4823,7 +4823,7 @@ class Wiki(object):
|
|||||||
elif not zero or not zero.startswith('_'):
|
elif not zero or not zero.startswith('_'):
|
||||||
return self.read(zero)
|
return self.read(zero)
|
||||||
elif zero == '_edit':
|
elif zero == '_edit':
|
||||||
return self.edit(request.args(1) or 'index')
|
return self.edit(request.args(1) or 'index',request.args(2) or 0)
|
||||||
elif zero == '_editmedia':
|
elif zero == '_editmedia':
|
||||||
return self.editmedia(request.args(1) or 'index')
|
return self.editmedia(request.args(1) or 'index')
|
||||||
elif zero == '_create':
|
elif zero == '_create':
|
||||||
@@ -4898,7 +4898,7 @@ class Wiki(object):
|
|||||||
raise HTTP(401, "Not Authorized")
|
raise HTTP(401, "Not Authorized")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def edit(self, slug):
|
def edit(self,slug,from_template=0):
|
||||||
auth = self.auth
|
auth = self.auth
|
||||||
db = auth.db
|
db = auth.db
|
||||||
page = db.wiki_page(slug=slug)
|
page = db.wiki_page(slug=slug)
|
||||||
@@ -4912,15 +4912,14 @@ class Wiki(object):
|
|||||||
% self.force_prefix
|
% self.force_prefix
|
||||||
redirect(URL(args=('_edit', self.force_prefix + slug)))
|
redirect(URL(args=('_edit', self.force_prefix + slug)))
|
||||||
db.wiki_page.can_read.default = [Wiki.everybody]
|
db.wiki_page.can_read.default = [Wiki.everybody]
|
||||||
user_group_role = auth.user_group_role()
|
db.wiki_page.can_edit.default = [auth.user_group_role()]
|
||||||
db.wiki_page.can_edit.default = [user_group_role]
|
|
||||||
db.wiki_page.title.default = title_guess
|
db.wiki_page.title.default = title_guess
|
||||||
db.wiki_page.slug.default = slug
|
db.wiki_page.slug.default = slug
|
||||||
if slug == 'wiki-menu':
|
if slug == 'wiki-menu':
|
||||||
db.wiki_page.body.default = \
|
db.wiki_page.body.default = \
|
||||||
'- Menu Item > @////index\n- - Submenu > http://web2py.com'
|
'- Menu Item > @////index\n- - Submenu > http://web2py.com'
|
||||||
else:
|
else:
|
||||||
db.wiki_page.body.default = '## %s\n\npage content\n\n[[new page @////new_page]]\n' % title_guess
|
db.wiki_page.body.default = db(db.wiki_page.id==from_template).select(db.wiki_page.body)[0].body if int(from_template) > 0 else '## %s\n\npage content' % title_guess
|
||||||
vars = current.request.post_vars
|
vars = current.request.post_vars
|
||||||
if vars.body:
|
if vars.body:
|
||||||
vars.body = vars.body.replace('://%s' % self.host, '://HOSTNAME')
|
vars.body = vars.body.replace('://%s' % self.host, '://HOSTNAME')
|
||||||
@@ -5004,13 +5003,21 @@ class Wiki(object):
|
|||||||
if not self.can_edit():
|
if not self.can_edit():
|
||||||
return self.not_authorized()
|
return self.not_authorized()
|
||||||
db = self.auth.db
|
db = self.auth.db
|
||||||
form = FORM(INPUT(_name='slug', value=current.request.args(1),
|
slugs=db(db.wiki_page.id>0).select(db.wiki_page.id,db.wiki_page.slug)
|
||||||
requires=(IS_SLUG(),
|
options=[OPTION(row.slug,_value=row.id) for row in slugs]
|
||||||
IS_NOT_IN_DB(db, db.wiki_page.slug))),
|
|
||||||
INPUT(_type='submit',
|
options.insert(0, OPTION('',_value=''))
|
||||||
_value=current.T('Create Page from Slug')))
|
form = FORM(LABEL(INPUT(_name='slug',value=current.request.args(1),
|
||||||
|
requires=(IS_SLUG(),
|
||||||
|
IS_NOT_IN_DB(db,db.wiki_page.slug)))),
|
||||||
|
LABEL(SELECT(*options,**dict(
|
||||||
|
_name='from_template',requires=IS_EMPTY_OR(IS_IN_DB(db,db.wiki_page.id)))),current.T(" Choose Template or empty for new Page")),
|
||||||
|
INPUT(_type='submit',
|
||||||
|
_value=current.T('Create Page from Slug')),
|
||||||
|
_class="well span6")
|
||||||
if form.process().accepted:
|
if form.process().accepted:
|
||||||
redirect(URL(args=('_edit', form.vars.slug)))
|
# form.vars.from_template = 0 if not form.vars.from_template else form.vars.from_template
|
||||||
|
redirect(URL(args=('_edit',form.vars.slug,form.vars.from_template or 0))) # added param
|
||||||
return dict(content=form)
|
return dict(content=form)
|
||||||
|
|
||||||
def pages(self):
|
def pages(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user