diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-01-21 22:59:44 +0000 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-01-21 23:02:12 +0000 |
commit | 7ac7af477403f67e75018d77901ddf45a9457805 (patch) | |
tree | 5ed09b6b6ae2a0c2f0d2379ca8817451d1136373 /app/models.py | |
parent | 5fa0a7866a53624e65866ec261a4bb7b77d45ef8 (diff) | |
download | cheatdb-7ac7af477403f67e75018d77901ddf45a9457805.tar.xz |
Sort dependencies in package page
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py index 96ef655..714c5a0 100644 --- a/app/models.py +++ b/app/models.py @@ -338,6 +338,14 @@ class Dependency(db.Model): else: raise Exception("Either meta or package must be given, but not both!") + def getName(self): + if self.meta_package: + return self.meta_package.name + elif self.package: + return self.package.name + else: + assert False + def __str__(self): if self.package is not None: return self.package.author.username + "/" + self.package.name @@ -450,6 +458,21 @@ class Package(db.Model): def getIsFOSS(self): return self.license.is_foss and self.media_license.is_foss + def getSortedDependencies(self, is_hard=None): + query = self.dependencies + if is_hard is not None: + query = query.filter_by(optional=not is_hard) + + deps = query.all() + deps.sort(key = lambda x: x.getName()) + return deps + + def getSortedHardDependencies(self): + return self.getSortedDependencies(True) + + def getSortedOptionalDependencies(self): + return self.getSortedDependencies(False) + def getState(self): if self.approved: return "approved" |