aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-01-21 22:59:44 +0000
committerrubenwardy <rw@rubenwardy.com>2020-01-21 23:02:12 +0000
commit7ac7af477403f67e75018d77901ddf45a9457805 (patch)
tree5ed09b6b6ae2a0c2f0d2379ca8817451d1136373 /app/models.py
parent5fa0a7866a53624e65866ec261a4bb7b77d45ef8 (diff)
downloadcheatdb-7ac7af477403f67e75018d77901ddf45a9457805.tar.xz
Sort dependencies in package page
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py23
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"