~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/controllers/revision_ui.py

  • Committer: Robey Pointer
  • Date: 2006-12-21 01:09:00 UTC
  • Revision ID: robey@lag.net-20061221010900-auqh80g9z7r8v5tu
use bzr.dev as the branch name now that it's okay

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
import time
25
25
 
26
26
import turbogears
27
 
from cherrypy import InternalError, session
 
27
from cherrypy import HTTPRedirect, session
28
28
 
29
29
from loggerhead import util
30
30
 
35
35
        # BranchView object
36
36
        self._branch = branch
37
37
        self.log = branch.log
38
 
    
39
 
#    @util.lsprof
40
 
    @util.strip_whitespace
 
38
 
41
39
    @turbogears.expose(html='loggerhead.templates.revision')
42
40
    def default(self, *args, **kw):
43
41
        z = time.time()
44
42
        h = self._branch.get_history()
45
 
        util.set_context(kw)
46
 
        
47
 
        h._branch.lock_read()
 
43
        
 
44
        if len(args) > 0:
 
45
            revid = h.fix_revid(args[0])
 
46
        else:
 
47
            revid = None
 
48
        
 
49
        file_id = kw.get('file_id', None)
 
50
        start_revid = h.fix_revid(kw.get('start_revid', None))
 
51
        query = kw.get('q', None)
 
52
        
48
53
        try:
49
 
            if len(args) > 0:
50
 
                revid = h.fix_revid(args[0])
51
 
            else:
52
 
                revid = None
53
 
 
54
 
            file_id = kw.get('file_id', None)
55
 
            start_revid = h.fix_revid(kw.get('start_revid', None))
56
 
            query = kw.get('q', None)
57
 
            remember = kw.get('remember', None)
58
 
            compare_revid = kw.get('compare_revid', None)
59
 
 
60
 
            try:
61
 
                revid, start_revid, revid_list = h.get_view(revid, start_revid, file_id, query)
62
 
            except:
63
 
                self.log.exception('Exception fetching changes')
64
 
                raise InternalError('Could not fetch changes')
65
 
 
66
 
            navigation = util.Container(revid_list=revid_list, revid=revid, start_revid=start_revid, file_id=file_id,
67
 
                                        pagesize=1, scan_url='/revision', branch=self._branch, feed=True)
68
 
            if query is not None:
69
 
                navigation.query = query
70
 
            util.fill_in_navigation(navigation)
71
 
 
72
 
            change = h.get_change_with_diff(revid, compare_revid)
73
 
            # add parent & merge-point branch-nick info, in case it's useful
74
 
            h.get_branch_nicks([ change ])
75
 
 
76
 
            # let's make side-by-side diff be the default
77
 
            side_by_side = not kw.get('unified', False)
78
 
            if side_by_side:
79
 
                h.add_side_by_side([ change ])
80
 
 
81
 
            vals = {
82
 
                'branch': self._branch,
83
 
                'revid': revid,
84
 
                'change': change,
85
 
                'start_revid': start_revid,
86
 
                'file_id': file_id,
87
 
                'util': util,
88
 
                'history': h,
89
 
                'navigation': navigation,
90
 
                'query': query,
91
 
                'remember': remember,
92
 
                'compare_revid': compare_revid,
93
 
                'side_by_side': side_by_side,
94
 
            }
95
 
            h.flush_cache()
96
 
            self.log.info('/revision: %r seconds' % (time.time() - z,))
97
 
            return vals
98
 
        finally:
99
 
            h._branch.unlock()
 
54
            revid, start_revid, revid_list = h.get_view(revid, start_revid, file_id, query)
 
55
        except Exception, x:
 
56
            self.log.error('Exception fetching changes: %s' % (x,))
 
57
            util.log_exception(self.log)
 
58
            raise HTTPRedirect(self._branch.url('/changes'))
 
59
        
 
60
        navigation = util.Container(revid_list=revid_list, revid=revid, start_revid=start_revid, file_id=file_id,
 
61
                                    pagesize=1, scan_url='/revision', feed=True)
 
62
        if query is not None:
 
63
            navigation.query = query
 
64
        util.fill_in_navigation(h, navigation)
 
65
 
 
66
        change = h.get_changes([ revid ], get_diffs=True)[0]
 
67
        # add parent & merge-point branch-nick info, in case it's useful
 
68
        h.get_branch_nicks([ change ])
 
69
        
 
70
        vals = {
 
71
            'branch': self._branch,
 
72
            'revid': revid,
 
73
            'change': change,
 
74
            'start_revid': start_revid,
 
75
            'file_id': file_id,
 
76
            'util': util,
 
77
            'history': h,
 
78
            'navigation': navigation,
 
79
            'query': query,
 
80
        }
 
81
        h.flush_cache()
 
82
        self.log.info('/revision: %r seconds' % (time.time() - z,))
 
83
        return vals