diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-09-16 18:05:37 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-09-16 18:12:53 +0100 |
commit | 258a23cd9a36631d8794fbf9251fa5f23c975661 (patch) | |
tree | 600badfe6a709cabad9e058e78280b6ebd5d9f1c | |
parent | 92fb54556ad0409a519c308e7e34b63e11621903 (diff) | |
download | cheatdb-258a23cd9a36631d8794fbf9251fa5f23c975661.tar.xz |
Allow all users to delete their packages
-rw-r--r-- | app/blueprints/packages/packages.py | 2 | ||||
-rw-r--r-- | app/models.py | 2 | ||||
-rw-r--r-- | app/templates/packages/remove.html | 36 | ||||
-rw-r--r-- | app/templates/todo/list.html | 6 |
4 files changed, 34 insertions, 12 deletions
diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index c7a5c99..c79e931 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -438,7 +438,7 @@ def remove(package): flash("You don't have permission to do that.", "danger") return redirect(package.getDetailsURL()) - package.state = PackageState.READY_FOR_REVIEW + package.state = PackageState.WIP msg = "Unapproved {}".format(package.title) addNotification(package.maintainers, current_user, msg, package.getDetailsURL(), package) diff --git a/app/models.py b/app/models.py index c484f2e..8a7ab65 100644 --- a/app/models.py +++ b/app/models.py @@ -813,7 +813,7 @@ class Package(db.Model): return isOwner or user.rank.atLeast(UserRank.MODERATOR) elif perm == Permission.UNAPPROVE_PACKAGE or perm == Permission.DELETE_PACKAGE: - return user.rank.atLeast(UserRank.EDITOR) + return user.rank.atLeast(UserRank.MEMBER if isOwner else UserRank.EDITOR) elif perm == Permission.CHANGE_RELEASE_URL: return user.rank.atLeast(UserRank.MODERATOR) diff --git a/app/templates/packages/remove.html b/app/templates/packages/remove.html index fd20637..a588c34 100644 --- a/app/templates/packages/remove.html +++ b/app/templates/packages/remove.html @@ -1,19 +1,37 @@ {% extends "base.html" %} {% block title %} - Delete | {{ package.title }} +Delete | {{ package.title }} {% endblock %} {% block content %} - <form method="POST" action="" class="box box_grey "> - <h3>Remove Package</h3> +<form class="card mb-3" style="max-width: 40rem; margin: auto;" method="POST" action="" > + <h3 class="card-header">Remove {{ package.title }}</h3> - <div class="box-body"> - <p>Deleting a package can be undone by the admin, but he'll be very annoyed!</p> + <div class="card-body"> + <p> + In order to avoid data loss, you cannot permanently delete packages. + You can remove them from ContentDB, which will cause them to not be + visible to any users and they may be permanently deleted in the future. + The Admin can restore removed packages, if needed. + </p> - <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" /> - <input type="submit" name="delete" value="Delete" class="btn btn-danger" /> + {% if package.approved %} + <p> + Unapproving a package will put it back into Work in Progress, where + it can be submitted for approval again. + </p> + {% endif %} + + <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" /> + + <a class="btn btn-secondary float-right" href="{{ package.getDetailsURL() }}">Cancel</a> + + <input type="submit" name="delete" value="Remove" class="btn btn-danger mr-2" /> + + {% if package.approved %} <input type="submit" name="unapprove" value="Unapprove" class="btn btn-warning" /> - </div> - </form> + {% endif %} + </div> +</form> {% endblock %} diff --git a/app/templates/todo/list.html b/app/templates/todo/list.html index c3b8118..30b90bb 100644 --- a/app/templates/todo/list.html +++ b/app/templates/todo/list.html @@ -34,7 +34,11 @@ <div class="list-group list-group-flush"> {% for p in wip_packages %} <a href="{{ p.getDetailsURL() }}" class="list-group-item list-group-item-action"> - <span class="mr-2 badge badge-warning">{{ p.state.value }}</span> + {% if p.state == p.state.WIP %} + <span class="mr-2 badge badge-warning">WIP</span> + {% else %} + <span class="mr-2 badge badge-danger">{{ p.state.value }}</span> + {% endif %} {{ p.title }} by {{ p.author.display_name }} </a> |