~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/controllers/changelog_ui.py

  • Committer: Robey Pointer
  • Date: 2006-12-24 06:44:26 UTC
  • Revision ID: robey@lag.net-20061224064426-bedaid2zrw69igfg
initial homepage

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import time
22
22
 
23
23
import turbogears
24
 
from cherrypy import InternalError, session
 
24
from cherrypy import HTTPRedirect, session
25
25
 
26
26
from loggerhead import util
27
27
 
28
28
 
 
29
# just thinking out loud here...
 
30
#
 
31
# so, when browsing around, there are 3 pieces of context:
 
32
#     - starting revid 
 
33
#         the current beginning of navigation (navigation continues back to
 
34
#         the original revision) -- this may not be along the primary revision
 
35
#         path since the user may have navigated into a branch
 
36
#     - file_id
 
37
#         if navigating the revisions that touched a file
 
38
#     - current revid
 
39
#         current location along the navigation path (while browsing)
 
40
#
 
41
# current revid is given on the url path.  'file_id' and 'starting revid' are
 
42
# handed along as params.
 
43
 
 
44
 
29
45
class ChangeLogUI (object):
30
46
    
31
47
    def __init__(self, branch):
33
49
        self._branch = branch
34
50
        self.log = branch.log
35
51
        
36
 
    @util.strip_whitespace
37
52
    @turbogears.expose(html='loggerhead.templates.changelog')
38
53
    def default(self, *args, **kw):
39
54
        z = time.time()
54
69
        
55
70
        try:
56
71
            revid, start_revid, revid_list = h.get_view(revid, start_revid, file_id, query)
57
 
            kw['start_revid'] = start_revid
58
 
            util.set_context(kw)
59
 
            
60
72
            if (query is not None) and (len(revid_list) == 0):
61
73
                search_failed = True
62
74
 
66
78
                scan_list = revid_list[h.get_revid_sequence(revid_list, revid):]
67
79
            entry_list = scan_list[:pagesize]
68
80
            entries = h.get_changes(entry_list)
69
 
        except:
70
 
            self.log.exception('Exception fetching changes')
71
 
            raise InternalError('Could not fetch changes')
 
81
        except Exception, x:
 
82
            self.log.error('Exception fetching changes: %s' % (x,))
 
83
            util.log_exception(self.log)
 
84
            raise HTTPRedirect(self._branch.url('/changes'))
72
85
 
73
86
        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)
 
87
                                    file_id=file_id, scan_url='/changes', feed=True)
75
88
        if query is not None:
76
89
            navigation.query = query
77
90
        util.fill_in_navigation(h, navigation)