diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-07-12 02:22:35 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-07-12 02:22:35 +0100 |
commit | 284683e7e541b8124b5a13bf3c7139423e063985 (patch) | |
tree | b2df02f0b3689846fe55af2a5c975b172e684b3b /app/models.py | |
parent | 868ced76a86585c098c4d54caff4693cbb9f3a0a (diff) | |
download | cheatdb-284683e7e541b8124b5a13bf3c7139423e063985.tar.xz |
Add reimport of package meta from latest release
Fixes #127
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 11 |
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 |