fix bug when fetching metadata on pages that don't exist
This commit is contained in:
parent
bea662e2e7
commit
f2f1e3f51e
|
@ -156,7 +156,18 @@ class Wiki():
|
||||||
sha = sha.encode('latin-1')
|
sha = sha.encode('latin-1')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return self.repo.get_commit_files(sha, paths=[name]).get(name)
|
data = self.repo.get_commit_files(sha, paths=[name]).get(name)
|
||||||
|
if not data:
|
||||||
|
return None
|
||||||
|
partials = {}
|
||||||
|
if data.get('data'):
|
||||||
|
meta = self.get_meta(data['data'])
|
||||||
|
if meta and 'import' in meta:
|
||||||
|
for partial_name in meta['import']:
|
||||||
|
partials[partial_name] = self.get_page(partial_name)
|
||||||
|
data['partials'] = partials
|
||||||
|
return data
|
||||||
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# HEAD doesn't exist yet
|
# HEAD doesn't exist yet
|
||||||
return None
|
return None
|
||||||
|
@ -168,7 +179,6 @@ class Wiki():
|
||||||
if not meta_end:
|
if not meta_end:
|
||||||
return None
|
return None
|
||||||
return yaml.safe_load(content[0:meta_end.start()])
|
return yaml.safe_load(content[0:meta_end.start()])
|
||||||
#return [content[0:meta_end.start()], content[meta_end.end():]]
|
|
||||||
|
|
||||||
def compare(self, name, old_sha, new_sha):
|
def compare(self, name, old_sha, new_sha):
|
||||||
old = self.get_page(name, sha=old_sha)
|
old = self.get_page(name, sha=old_sha)
|
||||||
|
|
|
@ -60,15 +60,10 @@ def edit(name):
|
||||||
username=current_user.username)
|
username=current_user.username)
|
||||||
else:
|
else:
|
||||||
if data:
|
if data:
|
||||||
partials = {}
|
|
||||||
meta = wiki.get_meta(data['data'])
|
|
||||||
if meta and 'import' in meta:
|
|
||||||
for partial_name in meta['import']:
|
|
||||||
partials[partial_name] = wiki.get_page(partial_name)
|
|
||||||
name = remove_ext(data['name'])
|
name = remove_ext(data['name'])
|
||||||
content = data['data']
|
content = data.get('data')
|
||||||
g.assets['js'].append('editor.js')
|
g.assets['js'].append('editor.js')
|
||||||
return render_template('wiki/edit.html', name=name, content=content, partials=partials)
|
return render_template('wiki/edit.html', name=name, content=content, partials=data.get('partials'))
|
||||||
else:
|
else:
|
||||||
return redirect(url_for('wiki.create', name=cname))
|
return redirect(url_for('wiki.create', name=cname))
|
||||||
|
|
||||||
|
@ -107,14 +102,8 @@ def page(name):
|
||||||
return redirect(url_for('wiki.page', name=cname))
|
return redirect(url_for('wiki.page', name=cname))
|
||||||
|
|
||||||
data = wiki.get_page(cname)
|
data = wiki.get_page(cname)
|
||||||
meta = wiki.get_meta(data['data'])
|
|
||||||
|
|
||||||
partials = {}
|
|
||||||
if meta and 'import' in meta:
|
|
||||||
for partial_name in meta['import']:
|
|
||||||
partials[partial_name] = wiki.get_page(partial_name)
|
|
||||||
|
|
||||||
if data:
|
if data:
|
||||||
return render_template('wiki/page.html', name=cname, page=data, partials=partials)
|
return render_template('wiki/page.html', name=cname, page=data, partials=data.get('partials'))
|
||||||
else:
|
else:
|
||||||
return redirect(url_for('wiki.create', name=cname))
|
return redirect(url_for('wiki.create', name=cname))
|
Loading…
Reference in a new issue