57 ulid = ' ' |
57 ulid = ' ' |
58 if toplevel: |
58 if toplevel: |
59 self._init_headers(treeid, toplevel_thru_ajax) |
59 self._init_headers(treeid, toplevel_thru_ajax) |
60 ulid = ' id="tree-%s"' % treeid |
60 ulid = ' id="tree-%s"' % treeid |
61 self.w(u'<ul%s class="%s">' % (ulid, self.css_classes)) |
61 self.w(u'<ul%s class="%s">' % (ulid, self.css_classes)) |
62 for rowidx in xrange(len(self.rset)): |
62 for i, entity in enumerate(sorted(self.rset.entities(), key=lambda x: x.dc_title())): |
63 self.wview(self.itemvid, self.rset, row=rowidx, col=0, |
63 if i+1 < len(self.rset): |
64 vid=subvid, parentvid=self.id, treeid=treeid, **morekwargs) |
64 morekwargs['is_last'] = False |
|
65 else: |
|
66 morekwargs['is_last'] = True |
|
67 entity.view(self.itemvid, vid=subvid, parentvid=self.id, |
|
68 treeid=treeid, w=self.w, **morekwargs) |
65 self.w(u'</ul>') |
69 self.w(u'</ul>') |
66 |
70 |
67 def cell_call(self, *args, **allargs): |
71 def cell_call(self, *args, **allargs): |
68 """ does not makes much sense until you have to invoke |
72 """ does not makes much sense until you have to invoke |
69 somentity.view('treeview') """ |
73 somentity.view('treeview') """ |
70 allargs.pop('row') |
74 allargs.pop('row') |
71 allargs.pop('col') |
75 allargs.pop('col') |
72 self.call(*args, **allargs) |
76 self.call(*args, **allargs) |
|
77 |
73 |
78 |
74 class FileTreeView(TreeView): |
79 class FileTreeView(TreeView): |
75 """specific version of the treeview to display file trees |
80 """specific version of the treeview to display file trees |
76 """ |
81 """ |
77 id = 'filetree' |
82 id = 'filetree' |
127 treestate = cookies.get(treecookiename(treeid)) |
132 treestate = cookies.get(treecookiename(treeid)) |
128 if treestate: |
133 if treestate: |
129 return str(eeid) in treestate.value.split(';') |
134 return str(eeid) in treestate.value.split(';') |
130 return self.default_branch_state_is_open |
135 return self.default_branch_state_is_open |
131 |
136 |
132 def cell_call(self, row, col, treeid, vid='oneline', parentvid='treeview', **morekwargs): |
137 def cell_call(self, row, col, treeid, vid='oneline', parentvid='treeview', |
|
138 is_last=False, **morekwargs): |
133 w = self.w |
139 w = self.w |
134 entity = self.entity(row, col) |
140 entity = self.entity(row, col) |
135 liclasses = [] |
141 liclasses = [] |
136 is_last = row == len(self.rset) - 1 |
|
137 is_open = self.open_state(entity.eid, treeid) |
142 is_open = self.open_state(entity.eid, treeid) |
138 is_leaf = not hasattr(entity, 'is_leaf') or entity.is_leaf() |
143 is_leaf = not hasattr(entity, 'is_leaf') or entity.is_leaf() |
139 if is_leaf: |
144 if is_leaf: |
140 if is_last: |
145 if is_last: |
141 liclasses.append('last') |
146 liclasses.append('last') |