aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
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"