aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-07-12 02:22:35 +0100
committerrubenwardy <rw@rubenwardy.com>2020-07-12 02:22:35 +0100
commit284683e7e541b8124b5a13bf3c7139423e063985 (patch)
treeb2df02f0b3689846fe55af2a5c975b172e684b3b /app/models.py
parent868ced76a86585c098c4d54caff4693cbb9f3a0a (diff)
downloadcheatdb-284683e7e541b8124b5a13bf3c7139423e063985.tar.xz
Add reimport of package meta from latest release
Fixes #127
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/app/models.py b/app/models.py
index d508619..4102049 100644
--- a/app/models.py
+++ b/app/models.py
@@ -80,6 +80,7 @@ class Permission(enum.Enum):
MAKE_RELEASE = "MAKE_RELEASE"
DELETE_RELEASE = "DELETE_RELEASE"
ADD_SCREENSHOTS = "ADD_SCREENSHOTS"
+ REIMPORT_META = "REIMPORT_META"
APPROVE_SCREENSHOT = "APPROVE_SCREENSHOT"
APPROVE_RELEASE = "APPROVE_RELEASE"
APPROVE_NEW = "APPROVE_NEW"
@@ -358,11 +359,12 @@ class Dependency(db.Model):
optional = db.Column(db.Boolean, nullable=False, default=False)
__table_args__ = (db.UniqueConstraint("depender_id", "package_id", "meta_package_id", name="_dependency_uc"), )
- def __init__(self, depender=None, package=None, meta=None):
+ def __init__(self, depender=None, package=None, meta=None, optional=False):
if depender is None:
return
self.depender = depender
+ self.optional = optional
packageProvided = package is not None
metaProvided = meta is not None
@@ -673,6 +675,10 @@ class Package(db.Model):
return url_for("packages.remove_self_maintainers",
author=self.author.username, name=self.name)
+ def getUpdateFromReleaseURL(self):
+ return url_for("packages.update_from_release",
+ author=self.author.username, name=self.name)
+
def getReviewURL(self):
return url_for('packages.review',
author=self.author.username, name=self.name)
@@ -705,7 +711,8 @@ class Package(db.Model):
elif perm == Permission.MAKE_RELEASE or perm == Permission.ADD_SCREENSHOTS:
return isMaintainer
- elif perm == Permission.EDIT_PACKAGE or perm == Permission.APPROVE_CHANGES or perm == Permission.APPROVE_RELEASE:
+ elif perm == Permission.EDIT_PACKAGE or perm == Permission.REIMPORT_META or \
+ perm == Permission.APPROVE_CHANGES or perm == Permission.APPROVE_RELEASE:
return isMaintainer and user.rank.atLeast(UserRank.MEMBER if self.approved else UserRank.NEW_MEMBER)
# Anyone can change the package name when not approved, but only editors when approved