Changeset 3089 in products for quintagroup.analytics
- Timestamp:
- Mar 31, 2011 10:51:07 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.analytics/branches/update_mt/quintagroup/analytics/browser/views.py
r3088 r3089 538 538 return '%.2f %sB' % (num, ['', 'K', 'M', 'G', 'T', 'P'][magnitude]) 539 539 540 def getSize(brain): 541 return float(brain.getObjSize.split()[0])*( 542 brain.getObjSize.endswith('kB') and 1024 \ 543 or brain.getObjSize.endswith('MB') and 1024*1024 \ 544 or 1) 545 546 540 547 class SizeByPath(BrowserView): 541 548 def __init__(self, context, request): … … 549 556 self.basepath = bpath and "/"+bpath.strip("/") or "" 550 557 551 # def _getInfo(self, k, path, size): 552 # obpath = "%s/%s" % (path, k) 553 # return {'path': obpath, 554 # 'href': "%s/%s" % (self.purl(), obpath), 555 # 'size': size, 556 # 'human_size': "%d b" % size} 558 559 def _brainsByPath(self, path): 560 return self.cat(path=path, Language="all") 557 561 558 562 def _walk(self, obj, path): 559 560 def getSize(brain):561 return float(brain.getObjSize.split()[0])*(562 brain.getObjSize.endswith('kB') and 1024 \563 or brain.getObjSize.endswith('MB') and 1024*1024 \564 or 1)565 566 brains = self.cat(path=path, Language="all")567 563 result = {} 568 for b in brains:564 for b in self._brainsByPath(path): 569 565 bpath = b.getPath()[len(path):] 570 566 p1 = len(bpath)>1 and bpath.split('/')[1] or '' … … 579 575 self.total = human_format(sum([d['size'] for d in result.values()])) 580 576 581 sresult = [(d['size'], d['brain']) for k,d in result.items() if d['brain']] 582 sresult.sort(key=lambda i:i[0], reverse=True) 583 584 sortedres = [] 585 burl = "%s/%s" % (self.purl(), self.basepath) 586 banalyse_url_tmpl = "%s/@@size_stats?basepath=%s/%%s&submit=Search" % ( 587 self.purl(), self.basepath) 588 for size, b in sresult: 589 isFolder = b.getObject().isPrincipiaFolderish 590 oid = b.getId or b.id 591 sortedres.append({'id': oid, 592 'path': "%s/%s" % (self.basepath, oid), 593 'href': "%s/%s" % (burl, oid), 594 'human_size': human_format(size), 595 'analyse_url': isFolder and banalyse_url_tmpl % oid or "",}) 577 sortedres = [(d['size'], d['brain']) for k,d in result.items() if d['brain']] 578 sortedres.sort(key=lambda i:i[0], reverse=True) 596 579 return sortedres 580 581 def getInfoForTableItem(self, size, brain): 582 oid = brain.getId or brain.id 583 analyse_url = "" 584 if brain.getObject().isPrincipiaFolderish: 585 analyse_url = "%s/@@size_stats?basepath=%s/%s&submit=Search" % ( 586 self.purl(), self.basepath, oid) 587 return {'id': oid, 588 'path': "%s/%s" % (self.basepath, oid), 589 'href': "%s%s/%s" % (self.purl(), self.basepath, oid), 590 'human_size': human_format(size), 591 'analyse_url': analyse_url,} 597 592 598 593 def getSizeStats(self): … … 604 599 605 600 infos = [] 606 for iin self._walk(self.context, path):607 if self.DEBUG or i['size']> 1:608 infos.append( i)601 for size, brain in self._walk(self.context, path): 602 if self.DEBUG or size > 1: 603 infos.append(self.getInfoForTableItem(size, brain)) 609 604 610 605 return infos
Note: See TracChangeset
for help on using the changeset viewer.