def entries(sortcolumn="", descending=False, subdir="", **map): rows = [] parity = common.paritygen(stripecount) for repo in Repository.objects.has_view_permission(request.user): contact = smart_str(repo.owner.get_full_name()) lastchange = (common.get_mtime(repo.location), util.makedate()[1]) row = dict(contact=contact or "unknown", contact_sort=contact.upper() or "unknown", name=smart_str(repo.name), name_sort=smart_str(repo.name), url=repo.get_absolute_url(), description=smart_str(repo.description) or "unknown", description_sort=smart_str(repo.description.upper()) or "unknown", lastchange=lastchange, lastchange_sort=lastchange[1]-lastchange[0], archives=archivelist(u, "tip", url)) if (not sortcolumn or (sortcolumn, descending) == sortdefault): # fast path for unsorted output row['parity'] = parity.next() yield row else: rows.append((row["%s_sort" % sortcolumn], row)) if rows: rows.sort() if descending: rows.reverse() for key, row in rows: row['parity'] = parity.next() yield row
def last_update(self): try: last_update = common.get_mtime(self.repo_directory) last_update = datetime.datetime.fromtimestamp(last_update) except: last_update = None return last_update