34
34
self.log = branch.log
36
36
@util.strip_whitespace
37
@turbogears.expose(html='zpt:loggerhead.templates.changelog')
37
@turbogears.expose(html='loggerhead.templates.changelog')
38
38
def default(self, *args, **kw):
40
40
h = self._branch.get_history()
41
41
config = self._branch.config
44
revid = h.fix_revid(args[0])
48
file_id = kw.get('file_id', None)
49
query = kw.get('q', None)
50
start_revid = h.fix_revid(kw.get('start_revid', None))
51
orig_start_revid = start_revid
52
pagesize = int(config.get('pagesize', '20'))
46
revid = h.fix_revid(args[0])
56
revid, start_revid, revid_list = h.get_view(revid, start_revid, file_id, query)
57
kw['start_revid'] = start_revid
60
if (query is not None) and (len(revid_list) == 0):
63
if len(revid_list) == 0:
64
scan_list = revid_list
50
filter_file_id = kw.get('filter_file_id', None)
51
query = kw.get('q', None)
52
start_revid = h.fix_revid(kw.get('start_revid', None))
53
orig_start_revid = start_revid
54
pagesize = int(config.get('pagesize', '20'))
58
revid, start_revid, revid_list = h.get_view(
59
revid, start_revid, filter_file_id, query)
60
kw['start_revid'] = start_revid
63
if (query is not None) and (len(revid_list) == 0):
66
if len(revid_list) == 0:
67
scan_list = revid_list
69
if revid in revid_list: # XXX is this always true?
70
i = revid_list.index(revid)
73
scan_list = revid_list[i:]
74
change_list = scan_list[:pagesize]
75
changes = list(h.get_changes(change_list))
76
h.add_changes(changes)
78
self.log.exception('Exception fetching changes')
79
raise InternalError('Could not fetch changes')
81
navigation = util.Container(
82
pagesize=pagesize, revid=revid, start_revid=start_revid,
83
revid_list=revid_list, filter_file_id=filter_file_id,
84
scan_url='/changes', branch=self._branch, feed=True)
86
navigation.query = query
87
util.fill_in_navigation(navigation)
89
# add parent & merge-point branch-nick info, in case it's useful
90
h.get_branch_nicks(changes)
92
# does every change on this page have the same committer? if so,
93
# tell the template to show committer info in the "details block"
94
# instead of on each line.
95
all_same_author = True
98
author = changes[0].author
100
if e.author != author:
101
all_same_author = False
104
def url(pathargs, **kw):
105
return self._branch.url(pathargs, **util.get_context(**kw))
108
'branch': self._branch,
113
'navigation': navigation,
114
'filter_file_id': filter_file_id,
115
'start_revid': start_revid,
116
'viewing_from': (orig_start_revid is not None) and (orig_start_revid != h.last_revid),
118
'search_failed': search_failed,
119
'all_same_author': all_same_author,
122
vals.update(templatefunctions)
124
self.log.info('/changes %r: %r secs' % (revid, time.time() - z))
66
scan_list = revid_list[h.get_revid_sequence(revid_list, revid):]
67
entry_list = scan_list[:pagesize]
68
entries = h.get_changes(entry_list)
70
self.log.exception('Exception fetching changes')
71
raise InternalError('Could not fetch changes')
73
navigation = util.Container(pagesize=pagesize, revid=revid, start_revid=start_revid, revid_list=revid_list,
74
file_id=file_id, scan_url='/changes', branch=self._branch, feed=True)
76
navigation.query = query
77
util.fill_in_navigation(h, navigation)
79
entries = list(entries)
80
# add parent & merge-point branch-nick info, in case it's useful
81
h.get_branch_nicks(entries)
84
'branch': self._branch,
85
'changes': list(entries),
89
'navigation': navigation,
91
'start_revid': start_revid,
92
'viewing_from': (orig_start_revid is not None) and (orig_start_revid != h.last_revid),
94
'search_failed': search_failed,
97
self.log.info('/changes %r: %r secs' % (revid, time.time() - z))