~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/templatefunctions.py

  • Committer: Michael Hudson
  • Date: 2009-02-18 03:50:00 UTC
  • mto: (270.3.2 no-more-mootools)
  • mto: This revision was merged to the branch mainline in revision 272.
  • Revision ID: michael.hudson@canonical.com-20090218035000-bni2qi9fs9a4rc39
tweak, the requirement for which was spotted by using a better monitor :/

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
# along with this program; if not, write to the Free Software
14
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
15
#
16
 
 
17
16
import os
18
 
import urllib
19
 
 
20
 
import pkg_resources
21
 
 
22
 
import bzrlib
23
 
 
24
 
import loggerhead
25
17
from loggerhead.zptsupport import zpt
26
 
from loggerhead.util import html_format
27
18
 
28
19
 
29
20
templatefunctions = {}
46
37
 
47
38
 
48
39
@templatefunc
49
 
def file_change_summary(url, entry, file_changes, style='normal', currently_showing=None):
50
 
    if style == 'fragment':
51
 
        def file_link(filename):
52
 
            if currently_showing and filename == currently_showing:
53
 
                return html_format(
54
 
                    '<b><a href="#%s">%s</a></b>',
55
 
                    urllib.quote(filename.encode('utf-8')), filename)
56
 
            else:
57
 
                return revision_link(
58
 
                    url, entry.revno, filename,
59
 
                    '#' + urllib.quote(filename.encode('utf-8')))
60
 
    else:
61
 
        def file_link(filename):
62
 
            return html_format(
63
 
                '<a href="%s%s" title="View changes to %s in revision %s">'
64
 
                '%s</a>',
65
 
                url(['/revision', entry.revno]),
66
 
                '#' + urllib.quote(filename.encode('utf-8')),
67
 
                filename, entry.revno, filename)
 
40
def file_change_summary(url, entry, modified_file_link):
68
41
    return _pt('revisionfilechanges').expand(
69
 
        entry=entry, file_changes=file_changes, file_link=file_link, **templatefunctions)
 
42
        url=url, entry=entry, modified_file_link=modified_file_link,
 
43
        **templatefunctions)
70
44
 
71
45
 
72
46
@templatefunc
73
 
def revisioninfo(url, branch, entry, file_changes=None, currently_showing=None, merged_in=None):
 
47
def revisioninfo(url, branch, entry, modified_file_link=None):
74
48
    from loggerhead import util
75
49
    return _pt('revisioninfo').expand(
76
50
        url=url, change=entry, branch=branch, util=util,
77
 
        file_changes=file_changes, currently_showing=currently_showing,
78
 
        merged_in=merged_in, **templatefunctions)
 
51
        modified_file_link=modified_file_link,
 
52
        **templatefunctions)
79
53
 
80
54
 
81
55
@templatefunc
82
56
def branchinfo(branch):
83
 
    if branch.served_url is not None:
84
 
        return _pt('branchinfo').expand(branch=branch, **templatefunctions)
85
 
    else:
86
 
        return ''
 
57
    return _pt('branchinfo').expand(branch=branch, **templatefunctions)
87
58
 
88
59
 
89
60
@templatefunc
106
77
        extra = ' ' + entry.branch_nick
107
78
    else:
108
79
        extra = ''
109
 
    return '(%s%s)' % (entry.revno, extra)
 
80
    return '(%s%s)'%(entry.revno, extra)
 
81
 
 
82
 
 
83
@templatefunc
 
84
def modified_file_link_rev(url, entry, item):
 
85
    return _pt('modified-file-link-rev').expand(
 
86
        url=url, entry=entry, item=item,
 
87
        **templatefunctions)
 
88
 
 
89
 
 
90
@templatefunc
 
91
def modified_file_link_log(url, entry, item):
 
92
    return _pt('modified-file-link-log').expand(
 
93
        url=url, entry=entry, item=item,
 
94
        **templatefunctions)
110
95
 
111
96
 
112
97
@templatefunc
124
109
def menu(branch, url, fileview_active=False):
125
110
    return _pt('menu').expand(branch=branch, url=url,
126
111
        fileview_active=fileview_active, **templatefunctions)
127
 
 
128
 
 
129
 
@templatefunc
130
 
def view_link(url, revno, path):
131
 
    return html_format(
132
 
        '<a href="%s" title="Annotate %s">%s</a>',
133
 
        url(['/view', revno, path]), path, path)
134
 
 
135
 
 
136
 
@templatefunc
137
 
def revision_link(url, revno, path, frag=''):
138
 
    return html_format(
139
 
        '<a href="%s%s" title="View changes to %s in revision %s">%s</a>',
140
 
        url(['/revision', revno, path]), frag, path, revno, path)
141
 
 
142
 
 
143
 
@templatefunc
144
 
def loggerhead_version():
145
 
    return loggerhead.__version__
146
 
 
147
 
_cached_generator_string = None
148
 
 
149
 
@templatefunc
150
 
def generator_string():
151
 
    global _cached_generator_string
152
 
    if _cached_generator_string is None:
153
 
        versions = []
154
 
 
155
 
        # TODO: Errors -- e.g. from a missing/invalid __version__ attribute, or
156
 
        # ValueError accessing Distribution.version -- should be non-fatal.
157
 
 
158
 
        versions.append(('Loggerhead', loggerhead.__version__))
159
 
 
160
 
        import sys
161
 
        python_version = bzrlib._format_version_tuple(sys.version_info)
162
 
        versions.append(('Python', python_version))
163
 
 
164
 
        versions.append(('Bazaar', bzrlib.__version__))
165
 
 
166
 
        Paste = pkg_resources.get_distribution('Paste')
167
 
        versions.append(('Paste', Paste.version))
168
 
 
169
 
        try:
170
 
            PasteDeploy = pkg_resources.get_distribution('PasteDeploy')
171
 
        except pkg_resources.DistributionNotFound:
172
 
            pass
173
 
        else:
174
 
            versions.append(('PasteDeploy', PasteDeploy.version))
175
 
 
176
 
        import simpletal
177
 
        versions.append(('SimpleTAL', simpletal.__version__))
178
 
 
179
 
        try:
180
 
            import pygments
181
 
        except ImportError:
182
 
            pass
183
 
        else:
184
 
            versions.append(('Pygments', pygments.__version__))
185
 
 
186
 
        try:
187
 
            from bzrlib.plugins import search
188
 
        except ImportError:
189
 
            pass
190
 
        else:
191
 
            bzr_search_version = bzrlib._format_version_tuple(
192
 
                search.version_info)
193
 
            versions.append(('bzr-search', bzr_search_version))
194
 
 
195
 
        # TODO: On old Python versions, elementtree may be used.
196
 
 
197
 
        import simplejson
198
 
        versions.append(('simplejson', simplejson.__version__))
199
 
 
200
 
        try:
201
 
            Dozer = pkg_resources.get_distribution('Dozer')
202
 
        except pkg_resources.DistributionNotFound:
203
 
            pass
204
 
        else:
205
 
            versions.append(('Dozer', Dozer.version))
206
 
 
207
 
        version_strings = ("%s/%s" % t for t in versions)
208
 
        _cached_generator_string = ' '.join(version_strings)
209
 
    return _cached_generator_string