D2800: hgweb: use templater on requestcontext instance
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sun Mar 11 05:24:56 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
After this commit, all @webcommand function no longer use their
"tmpl" argument. Instead, they use the templater attached to the
requestcontext.
This is the same exact object. So there should be no difference in
behavior.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D2800
AFFECTED FILES
hgext/highlight/__init__.py
mercurial/hgweb/webcommands.py
CHANGE DETAILS
diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -95,23 +95,23 @@
"""
if web.req.qsparams.get('file'):
- return filelog(web, req, tmpl)
+ return filelog(web, req, None)
else:
- return changelog(web, req, tmpl)
+ return changelog(web, req, None)
@webcommand('rawfile')
def rawfile(web, req, tmpl):
guessmime = web.configbool('web', 'guessmime')
path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', ''))
if not path:
- return manifest(web, req, tmpl)
+ return manifest(web, req, None)
try:
fctx = webutil.filectx(web.repo, req)
except error.LookupError as inst:
try:
- return manifest(web, req, tmpl)
+ return manifest(web, req, None)
except ErrorResponse:
raise inst
@@ -135,7 +135,7 @@
web.res.setbodybytes(text)
return web.res.sendresponse()
-def _filerevision(web, req, tmpl, fctx):
+def _filerevision(web, req, fctx):
f = fctx.path()
text = fctx.data()
parity = paritygen(web.stripecount)
@@ -184,20 +184,20 @@
be rendered.
"""
if web.req.qsparams.get('style') == 'raw':
- return rawfile(web, req, tmpl)
+ return rawfile(web, req, None)
path = webutil.cleanpath(web.repo, web.req.qsparams.get('file', ''))
if not path:
- return manifest(web, req, tmpl)
+ return manifest(web, req, None)
try:
- return _filerevision(web, req, tmpl, webutil.filectx(web.repo, req))
+ return _filerevision(web, req, webutil.filectx(web.repo, req))
except error.LookupError as inst:
try:
- return manifest(web, req, tmpl)
+ return manifest(web, req, None)
except ErrorResponse:
raise inst
-def _search(web, tmpl):
+def _search(web):
MODE_REVISION = 'rev'
MODE_KEYWORD = 'keyword'
MODE_REVSET = 'revset'
@@ -290,14 +290,16 @@
for ctx in searchfunc[0](funcarg):
count += 1
n = ctx.node()
- showtags = webutil.showtag(web.repo, tmpl, 'changelogtag', n)
- files = webutil.listfilediffs(tmpl, ctx.files(), n, web.maxfiles)
+ showtags = webutil.showtag(web.repo, web.tmpl, 'changelogtag', n)
+ files = webutil.listfilediffs(web.tmpl, ctx.files(), n,
+ web.maxfiles)
- yield tmpl('searchentry',
- parity=next(parity),
- changelogtag=showtags,
- files=files,
- **pycompat.strkwargs(webutil.commonentry(web.repo, ctx)))
+ yield web.tmpl(
+ 'searchentry',
+ parity=next(parity),
+ changelogtag=showtags,
+ files=files,
+ **pycompat.strkwargs(webutil.commonentry(web.repo, ctx)))
if count >= revcount:
break
@@ -308,14 +310,14 @@
try:
revcount = int(web.req.qsparams.get('revcount', revcount))
revcount = max(revcount, 1)
- tmpl.defaults['sessionvars']['revcount'] = revcount
+ web.tmpl.defaults['sessionvars']['revcount'] = revcount
except ValueError:
pass
- lessvars = copy.copy(tmpl.defaults['sessionvars'])
+ lessvars = copy.copy(web.tmpl.defaults['sessionvars'])
lessvars['revcount'] = max(revcount // 2, 1)
lessvars['rev'] = query
- morevars = copy.copy(tmpl.defaults['sessionvars'])
+ morevars = copy.copy(web.tmpl.defaults['sessionvars'])
morevars['revcount'] = revcount * 2
morevars['rev'] = query
@@ -382,7 +384,7 @@
ctx = webutil.changectx(web.repo, req)
symrev = webutil.symrevorshortnode(req, ctx)
elif 'rev' in web.req.qsparams:
- return _search(web, tmpl)
+ return _search(web)
else:
ctx = web.repo['tip']
symrev = 'tip'
@@ -397,7 +399,7 @@
if curcount > revcount + 1:
break
- entry = webutil.changelistentry(web, web.repo[rev], tmpl)
+ entry = webutil.changelistentry(web, web.repo[rev], web.tmpl)
entry['parity'] = next(parity)
yield entry
@@ -410,13 +412,13 @@
try:
revcount = int(web.req.qsparams.get('revcount', revcount))
revcount = max(revcount, 1)
- tmpl.defaults['sessionvars']['revcount'] = revcount
+ web.tmpl.defaults['sessionvars']['revcount'] = revcount
except ValueError:
pass
- lessvars = copy.copy(tmpl.defaults['sessionvars'])
+ lessvars = copy.copy(web.tmpl.defaults['sessionvars'])
lessvars['revcount'] = max(revcount // 2, 1)
- morevars = copy.copy(tmpl.defaults['sessionvars'])
+ morevars = copy.copy(web.tmpl.defaults['sessionvars'])
morevars['revcount'] = revcount * 2
count = len(web.repo)
@@ -461,7 +463,7 @@
difference is the ``shortlog`` template will be rendered instead of the
``changelog`` template.
"""
- return changelog(web, req, tmpl, shortlog=True)
+ return changelog(web, req, None, shortlog=True)
@webcommand('changeset')
def changeset(web, req, tmpl):
@@ -483,7 +485,7 @@
return web.sendtemplate(
'changeset',
- **webutil.changesetentry(web, req, tmpl, ctx))
+ **webutil.changesetentry(web, req, web.tmpl, ctx))
rev = webcommand('rev')(changeset)
@@ -717,11 +719,12 @@
if count > 10: # limit to 10 tags
break
- yield tmpl("tagentry",
- parity=next(parity),
- tag=k,
- node=hex(n),
- date=web.repo[n].date())
+ yield web.tmpl(
+ 'tagentry',
+ parity=next(parity),
+ tag=k,
+ node=hex(n),
+ date=web.repo[n].date())
def bookmarks(**map):
parity = paritygen(web.stripecount)
@@ -743,7 +746,7 @@
for i in revs:
ctx = web.repo[i]
- l.append(tmpl(
+ l.append(web.tmpl(
'shortlogentry',
parity=next(parity),
**pycompat.strkwargs(webutil.commonentry(web.repo, ctx))))
@@ -805,7 +808,7 @@
if 'style' in web.req.qsparams:
style = web.req.qsparams['style']
- diffs = webutil.diffs(web, tmpl, ctx, basectx, [path], style)
+ diffs = webutil.diffs(web, web.tmpl, ctx, basectx, [path], style)
if fctx is not None:
rename = webutil.renamelink(fctx)
ctx = fctx
@@ -878,7 +881,7 @@
pfctx = ctx.parents()[0][path]
leftlines = filelines(pfctx)
- comparison = webutil.compare(tmpl, context, leftlines, rightlines)
+ comparison = webutil.compare(web.tmpl, context, leftlines, rightlines)
if fctx is not None:
rename = webutil.renamelink(fctx)
ctx = fctx
@@ -1028,15 +1031,15 @@
try:
revcount = int(web.req.qsparams.get('revcount', revcount))
revcount = max(revcount, 1)
- tmpl.defaults['sessionvars']['revcount'] = revcount
+ web.tmpl.defaults['sessionvars']['revcount'] = revcount
except ValueError:
pass
lrange = webutil.linerange(req)
- lessvars = copy.copy(tmpl.defaults['sessionvars'])
+ lessvars = copy.copy(web.tmpl.defaults['sessionvars'])
lessvars['revcount'] = max(revcount // 2, 1)
- morevars = copy.copy(tmpl.defaults['sessionvars'])
+ morevars = copy.copy(web.tmpl.defaults['sessionvars'])
morevars['revcount'] = revcount * 2
patch = 'patch' in web.req.qsparams
@@ -1063,7 +1066,7 @@
ctx = fctx.changectx()
basectx = ctx.p1()
path = fctx.path()
- return webutil.diffs(web, tmpl, ctx, basectx, [path], diffstyle,
+ return webutil.diffs(web, web.tmpl, ctx, basectx, [path], diffstyle,
linerange=linerange,
lineidprefix='%s-' % ctx.hex()[:12])
@@ -1255,17 +1258,17 @@
try:
revcount = int(web.req.qsparams.get('revcount', revcount))
revcount = max(revcount, 1)
- tmpl.defaults['sessionvars']['revcount'] = revcount
+ web.tmpl.defaults['sessionvars']['revcount'] = revcount
except ValueError:
pass
- lessvars = copy.copy(tmpl.defaults['sessionvars'])
+ lessvars = copy.copy(web.tmpl.defaults['sessionvars'])
lessvars['revcount'] = max(revcount // 2, 1)
- morevars = copy.copy(tmpl.defaults['sessionvars'])
+ morevars = copy.copy(web.tmpl.defaults['sessionvars'])
morevars['revcount'] = revcount * 2
graphtop = web.req.qsparams.get('graphtop', ctx.hex())
- graphvars = copy.copy(tmpl.defaults['sessionvars'])
+ graphvars = copy.copy(web.tmpl.defaults['sessionvars'])
graphvars['graphtop'] = graphtop
count = len(web.repo)
diff --git a/hgext/highlight/__init__.py b/hgext/highlight/__init__.py
--- a/hgext/highlight/__init__.py
+++ b/hgext/highlight/__init__.py
@@ -58,27 +58,27 @@
highlight.pygmentize(field, fctx, style, tmpl,
guessfilenameonly=filenameonly)
-def filerevision_highlight(orig, web, req, tmpl, fctx):
- mt = ''.join(tmpl('mimetype', encoding=encoding.encoding))
+def filerevision_highlight(orig, web, req, fctx):
+ mt = ''.join(web.tmpl('mimetype', encoding=encoding.encoding))
# only pygmentize for mimetype containing 'html' so we both match
# 'text/html' and possibly 'application/xhtml+xml' in the future
# so that we don't have to touch the extension when the mimetype
# for a template changes; also hgweb optimizes the case that a
# raw file is sent using rawfile() and doesn't call us, so we
# can't clash with the file's content-type here in case we
# pygmentize a html file
if 'html' in mt:
- pygmentize(web, 'fileline', fctx, tmpl)
+ pygmentize(web, 'fileline', fctx, web.tmpl)
- return orig(web, req, tmpl, fctx)
+ return orig(web, req, fctx)
def annotate_highlight(orig, web, req, tmpl):
- mt = ''.join(tmpl('mimetype', encoding=encoding.encoding))
+ mt = ''.join(web.tmpl('mimetype', encoding=encoding.encoding))
if 'html' in mt:
fctx = webutil.filectx(web.repo, req)
- pygmentize(web, 'annotateline', fctx, tmpl)
+ pygmentize(web, 'annotateline', fctx, web.tmpl)
- return orig(web, req, tmpl)
+ return orig(web, req, web.tmpl)
def generate_css(web, req, tmpl):
pg_style = web.config('web', 'pygments_style', 'colorful')
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list