~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/controllers/inventory_ui.py

  • Committer: Michael Hudson
  • Date: 2007-05-30 09:03:52 UTC
  • mfrom: (128.1.15 testing)
  • Revision ID: michael.hudson@canonical.com-20070530090352-2hdhyvs7jxgpoz1e
merge in the fix for #92435 too

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
18
#
19
19
 
 
20
import datetime
20
21
import logging
 
22
import os
21
23
import posixpath
 
24
import textwrap
 
25
import time
22
26
 
23
 
from paste.httpexceptions import HTTPServerError
 
27
import turbogears
 
28
from cherrypy import InternalError, session
24
29
 
25
30
from loggerhead import util
26
 
from loggerhead.controllers import TemplatedBranchView
27
31
 
28
32
 
29
33
log = logging.getLogger("loggerhead.controllers")
34
38
    path = posixpath.dirname(path)
35
39
    return path
36
40
 
37
 
 
38
 
class InventoryUI(TemplatedBranchView):
39
 
 
40
 
    template_path = 'loggerhead.templates.inventory'
41
 
 
42
 
    def get_values(self, h, args, kw, response):
 
41
        
 
42
class InventoryUI (object):
 
43
 
 
44
    def __init__(self, branch):
 
45
        # BranchView object
 
46
        self._branch = branch
 
47
        self.log = branch.log
 
48
 
 
49
    @util.strip_whitespace
 
50
    @turbogears.expose(html='loggerhead.templates.inventory')
 
51
    def default(self, *args, **kw):
 
52
        z = time.time()
 
53
        h = self._branch.get_history()
 
54
        util.set_context(kw)
 
55
        
43
56
        if len(args) > 0:
44
57
            revid = h.fix_revid(args[0])
45
58
        else:
46
 
            revid = h.last_revid
 
59
            revid = None
 
60
        
 
61
        file_id = kw.get('file_id', None)
 
62
        sort_type = kw.get('sort', None)
47
63
 
48
64
        try:
 
65
            revid_list, revid = h.get_file_view(revid, file_id)
 
66
            rev = h.get_revision(revid)
49
67
            inv = h.get_inventory(revid)
50
68
        except:
51
69
            self.log.exception('Exception fetching changes')
52
 
            raise HTTPServerError('Could not fetch changes')
53
 
 
54
 
        file_id = kw.get('file_id', inv.root.file_id)
55
 
        start_revid = kw.get('start_revid', None)
56
 
        sort_type = kw.get('sort', None)
 
70
            raise InternalError('Could not fetch changes')
57
71
 
58
72
        # no navbar for revisions
59
73
        navigation = util.Container()
61
75
        change = h.get_changes([ revid ])[0]
62
76
        # add parent & merge-point branch-nick info, in case it's useful
63
77
        h.get_branch_nicks([ change ])
64
 
 
 
78
        
65
79
        path = inv.id2path(file_id)
66
80
        if not path.startswith('/'):
67
81
            path = '/' + path
75
89
        if updir == '/':
76
90
            updir_file_id = None
77
91
 
78
 
        return {
 
92
        vals = {
79
93
            'branch': self._branch,
80
94
            'util': util,
81
95
            'revid': revid,
84
98
            'path': path,
85
99
            'updir': updir,
86
100
            'updir_file_id': updir_file_id,
87
 
            'filelist': h.get_filelist(inv, file_id, sort_type),
 
101
            'filelist': h.get_filelist(inv, path, sort_type),
88
102
            'history': h,
89
103
            'posixpath': posixpath,
90
104
            'navigation': navigation,
91
 
            'url': self._branch.context_url,
92
 
            'start_revid': start_revid,
93
105
        }
 
106
        h.flush_cache()
 
107
        self.log.info('/inventory %r: %r secs' % (revid, time.time() - z))
 
108
        return vals