~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/controllers/annotate_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:
25
25
import time
26
26
 
27
27
import turbogears
28
 
from cherrypy import HTTPError, InternalError, session
 
28
from cherrypy import HTTPRedirect, session
29
29
 
30
30
from loggerhead import util
31
31
 
46
46
        self._branch = branch
47
47
        self.log = branch.log
48
48
 
49
 
    @util.strip_whitespace
50
49
    @turbogears.expose(html='loggerhead.templates.annotate')
51
50
    def default(self, *args, **kw):
52
51
        z = time.time()
53
52
        h = self._branch.get_history()
54
 
        util.set_context(kw)
55
53
        
56
54
        if len(args) > 0:
57
55
            revid = h.fix_revid(args[0])
58
56
        else:
59
57
            revid = None
60
 
        path = None
61
 
        if len(args) > 1:
62
 
            path = '/'.join(args[1:])
63
 
            if not path.startswith('/'):
64
 
                path = '/' + path
65
58
        
66
59
        file_id = kw.get('file_id', None)
67
 
        if (file_id is None) and (path is None):
68
 
            raise HTTPError(400, 'No file_id or filename provided to annotate')
69
 
 
70
60
        if file_id is None:
71
 
            file_id = h.get_file_id(revid, path)
 
61
            raise HTTPRedirect(self._branch.url('/changes'))
72
62
 
73
63
        try:
74
64
            revid_list, revid = h.get_file_view(revid, file_id)
75
 
        except:
76
 
            self.log.exception('Exception fetching changes')
77
 
            raise InternalError('Could not fetch changes')
 
65
        except Exception, x:
 
66
            self.log.error('Exception fetching changes: %s' % (x,))
 
67
            util.log_exception(self.log)
 
68
            raise HTTPRedirect(self._branch.url('/changes'))
78
69
            
79
70
        # no navbar for revisions
80
71
        navigation = util.Container()
81
72
        
82
 
        if path is None:
83
 
            path = h.get_path(revid, file_id)
 
73
        path = h.get_path(revid, file_id)
84
74
        filename = os.path.basename(path)
85
75
 
86
76
        vals = {