Move a customization out of ezt.py to eliminate unnecessary deltas
against the upstream version of this module. * lib/common.py (TemplateData): Moved here... * lib/ezt.py ...from here. * lib/query.py, * lib/viewvc.py Import 'TemplateData' from 'common' now, and update references to this relocated class. git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@2711 8cb11bc2-c004-0410-86c3-e597b4017df7trunk
parent
5d68a5f883
commit
6fe390a642
|
@ -19,6 +19,42 @@ _RCSDIFF_IS_BINARY = 'binary-diff'
|
|||
_RCSDIFF_ERROR = 'error'
|
||||
_RCSDIFF_NO_CHANGES = "no-changes"
|
||||
|
||||
|
||||
class _item:
|
||||
def __init__(self, **kw):
|
||||
vars(self).update(kw)
|
||||
|
||||
|
||||
class TemplateData:
|
||||
"""A custom dictionary-like object that allows one-time definition
|
||||
of keys, and only value fetches and changes, and key deletions,
|
||||
thereafter.
|
||||
|
||||
EZT doesn't require the use of this special class -- a normal
|
||||
dict-type data dictionary works fine. But use of this class will
|
||||
assist those who want the data sent to their templates to have a
|
||||
consistent set of keys."""
|
||||
|
||||
def __init__(self, initial_data={}):
|
||||
self._items = initial_data
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self._items.__getitem__(key)
|
||||
|
||||
def __setitem__(self, key, item):
|
||||
assert self._items.has_key(key)
|
||||
return self._items.__setitem__(key, item)
|
||||
|
||||
def __delitem__(self, key):
|
||||
return self._items.__delitem__(key)
|
||||
|
||||
def keys(self):
|
||||
return self._items.keys()
|
||||
|
||||
def merge(self, template_data):
|
||||
"""Merge the data in TemplataData instance TEMPLATA_DATA into this
|
||||
instance. Avoid the temptation to use this conditionally in your
|
||||
code -- it rather defeats the purpose of this class."""
|
||||
|
||||
assert isinstance(template_data, TemplateData)
|
||||
self._items.update(template_data._items)
|
||||
|
|
35
lib/ezt.py
35
lib/ezt.py
|
@ -687,41 +687,6 @@ def _write_value(value, args, ctx):
|
|||
ctx.formatters = formatters
|
||||
|
||||
|
||||
class TemplateData:
|
||||
"""A custom dictionary-like object that allows one-time definition
|
||||
of keys, and only value fetches and changes, and key deletions,
|
||||
thereafter.
|
||||
|
||||
EZT doesn't require the use of this special class -- a normal
|
||||
dict-type data dictionary works fine. But use of this class will
|
||||
assist those who want the data sent to their templates to have a
|
||||
consistent set of keys."""
|
||||
|
||||
def __init__(self, initial_data={}):
|
||||
self._items = initial_data
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self._items.__getitem__(key)
|
||||
|
||||
def __setitem__(self, key, item):
|
||||
assert self._items.has_key(key)
|
||||
return self._items.__setitem__(key, item)
|
||||
|
||||
def __delitem__(self, key):
|
||||
return self._items.__delitem__(key)
|
||||
|
||||
def keys(self):
|
||||
return self._items.keys()
|
||||
|
||||
def merge(self, template_data):
|
||||
"""Merge the data in TemplataData instance TEMPLATA_DATA into this
|
||||
instance. Avoid the temptation to use this conditionally in your
|
||||
code -- it rather defeats the purpose of this class."""
|
||||
|
||||
assert isinstance(template_data, TemplateData)
|
||||
self._items.update(template_data._items)
|
||||
|
||||
|
||||
class Context:
|
||||
"""A container for the execution context"""
|
||||
def __init__(self, fp):
|
||||
|
|
|
@ -23,7 +23,7 @@ import sys
|
|||
import string
|
||||
import time
|
||||
|
||||
from common import _item
|
||||
from common import _item, TemplateData
|
||||
import cvsdb
|
||||
import viewvc
|
||||
import ezt
|
||||
|
@ -443,7 +443,7 @@ def main(server, cfg, viewvc_link):
|
|||
if docroot is None and viewvc_link:
|
||||
docroot = viewvc_link + '/' + viewvc.docroot_magic_path
|
||||
|
||||
data = ezt.TemplateData({
|
||||
data = TemplateData({
|
||||
'cfg' : cfg,
|
||||
'address' : cfg.general.address,
|
||||
'vsn' : viewvc.__version__,
|
||||
|
|
|
@ -38,7 +38,7 @@ import types
|
|||
import urllib
|
||||
|
||||
# These modules come from our library (the stub has set up the path)
|
||||
from common import _item, _RCSDIFF_NO_CHANGES, _RCSDIFF_IS_BINARY, _RCSDIFF_ERROR
|
||||
from common import _item, _RCSDIFF_NO_CHANGES, _RCSDIFF_IS_BINARY, _RCSDIFF_ERROR, TemplateData
|
||||
import accept
|
||||
import config
|
||||
import ezt
|
||||
|
@ -1372,13 +1372,13 @@ def html_time(request, secs, extended=0):
|
|||
return s
|
||||
|
||||
def common_template_data(request, revision=None, mime_type=None):
|
||||
"""Return a ezt.TemplateData instance with data dictionary items
|
||||
"""Return a TemplateData instance with data dictionary items
|
||||
common to most ViewVC views."""
|
||||
|
||||
cfg = request.cfg
|
||||
|
||||
# Initialize data dictionary members (sorted alphanumerically)
|
||||
data = ezt.TemplateData({
|
||||
data = TemplateData({
|
||||
'annotate_href' : None,
|
||||
'cfg' : cfg,
|
||||
'docroot' : cfg.options.docroot is None \
|
||||
|
@ -1824,7 +1824,7 @@ def markup_or_annotate(request, is_annotate):
|
|||
'500 Internal Server Error')
|
||||
|
||||
data = common_template_data(request, revision, mime_type)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'mime_type' : mime_type,
|
||||
'log' : None,
|
||||
'date' : None,
|
||||
|
@ -1993,7 +1993,7 @@ def view_roots(request):
|
|||
log_href=log_href))
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'roots' : roots,
|
||||
}))
|
||||
generate_page(request, "roots", data)
|
||||
|
@ -2179,7 +2179,7 @@ def view_directory(request):
|
|||
# Prepare the data that will be passed to the template, based on the
|
||||
# common template data.
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'entries' : rows,
|
||||
'sortby' : sortby,
|
||||
'sortdir' : sortdir,
|
||||
|
@ -2622,7 +2622,7 @@ def view_log(request):
|
|||
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'default_branch' : None,
|
||||
'mime_type' : mime_type,
|
||||
'rev_selected' : selected_rev,
|
||||
|
@ -2863,7 +2863,7 @@ def view_cvsgraph(request):
|
|||
request.get_form(view_func=view_cvsgraph, params={})
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'imagemap' : fp,
|
||||
'imagesrc' : imagesrc,
|
||||
'graph_action' : graph_action,
|
||||
|
@ -3580,7 +3580,7 @@ def view_diff(request):
|
|||
request.get_form(params=no_format_params)
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'diffs' : desc.changes,
|
||||
'diff_format' : desc.diff_format,
|
||||
'hide_legend' : ezt.boolean(desc.hide_legend),
|
||||
|
@ -3930,7 +3930,7 @@ def view_revision(request):
|
|||
request.get_form(params={'revision': None})
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'rev' : str(rev),
|
||||
'author' : author,
|
||||
'date' : date_str,
|
||||
|
@ -4026,7 +4026,7 @@ def view_queryform(request):
|
|||
return request.server.escape(request.query_dict.get(itemname, itemdefault))
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'branch' : escaped_query_dict_get('branch', ''),
|
||||
'branch_match' : escaped_query_dict_get('branch_match', 'exact'),
|
||||
'dir' : escaped_query_dict_get('dir', ''),
|
||||
|
@ -4524,7 +4524,7 @@ def view_query(request):
|
|||
return
|
||||
|
||||
data = common_template_data(request)
|
||||
data.merge(ezt.TemplateData({
|
||||
data.merge(TemplateData({
|
||||
'sql': request.server.escape(db.CreateSQLQueryString(query)),
|
||||
'english_query': english_query(request),
|
||||
'queryform_href': request.get_url(view_func=view_queryform, escape=1),
|
||||
|
|
Loading…
Reference in New Issue