##// END OF EJS Templates
hgweb: separate generation of entries and sorting (cleanup)
Benoit Boissinot -
r10600:033d2fdc default
parent child Browse files
Show More
@@ -195,11 +195,8 b' class hgwebdir(object):'
195 yield {"type" : i[0], "extension": i[1],
195 yield {"type" : i[0], "extension": i[1],
196 "node": nodeid, "url": url}
196 "node": nodeid, "url": url}
197
197
198 sortdefault = None, False
198 def rawentries(subdir="", **map):
199 def entries(sortcolumn="", descending=False, subdir="", **map):
200
199
201 rows = []
202 parity = paritygen(self.stripecount)
203 descend = self.ui.configbool('web', 'descend', True)
200 descend = self.ui.configbool('web', 'descend', True)
204 for name, path in self.repos:
201 for name, path in self.repos:
205
202
@@ -253,19 +250,19 b' class hgwebdir(object):'
253 lastchange=d,
250 lastchange=d,
254 lastchange_sort=d[1]-d[0],
251 lastchange_sort=d[1]-d[0],
255 archives=archivelist(u, "tip", url))
252 archives=archivelist(u, "tip", url))
256 if (not sortcolumn or (sortcolumn, descending) == sortdefault):
253 yield row
257 # fast path for unsorted output
254
258 row['parity'] = parity.next()
255 sortdefault = None, False
259 yield row
256 def entries(sortcolumn="", descending=False, subdir="", **map):
260 else:
257 rows = rawentries(subdir=subdir, **map)
261 rows.append((row["%s_sort" % sortcolumn], row))
258
262 if rows:
259 if sortcolumn and sortdefault != (sortcolumn, descending):
263 rows.sort()
260 sortkey = '%s_sort' % sortcolumn
264 if descending:
261 rows = sorted(rows, key=lambda x: x[sortkey],
265 rows.reverse()
262 reverse=descending)
266 for key, row in rows:
263 for row, parity in zip(rows, paritygen(self.stripecount)):
267 row['parity'] = parity.next()
264 row['parity'] = parity
268 yield row
265 yield row
269
266
270 self.refresh()
267 self.refresh()
271 sortable = ["name", "description", "contact", "lastchange"]
268 sortable = ["name", "description", "contact", "lastchange"]
General Comments 0
You need to be logged in to leave comments. Login now