aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-23 19:25:48 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-23 19:25:48 +0000
commita5042a986a05e9bedf779af133267257915a426b (patch)
tree59d6719f7aee04716b07357336abfe44b02ee2d8
parentdcfd2b00031a49042f35e1ebaefa05c21edf4c4f (diff)
downloadcheatdb-a5042a986a05e9bedf779af133267257915a426b.tar.xz
Add EditRequest view page
-rw-r--r--app/models.py29
-rw-r--r--app/templates/packages/editrequest_create.html (renamed from app/templates/packages/create_editrequest.html)0
-rw-r--r--app/templates/packages/editrequest_view.html34
-rw-r--r--app/templates/packages/view.html16
-rw-r--r--app/views/packages.py15
5 files changed, 82 insertions, 12 deletions
diff --git a/app/models.py b/app/models.py
index 2f85337..c97bdd9 100644
--- a/app/models.py
+++ b/app/models.py
@@ -107,15 +107,15 @@ class PackageType(enum.Enum):
class PackagePropertyKey(enum.Enum):
- name = "name"
- title = "title"
- shortDesc = "shortDesc"
- desc = "desc"
- type = "type"
- repo = "repo"
- website = "website"
- issueTracker = "issueTracker"
- forums = "forums"
+ name = "Name"
+ title = "Title"
+ shortDesc = "Short Description"
+ desc = "Description"
+ type = "Type"
+ repo = "Repository"
+ website = "Website"
+ issueTracker = "Issue Tracker"
+ forums = "Forum Topic ID"
class Package(db.Model):
@@ -248,17 +248,26 @@ class EditRequest(db.Model):
package_id = db.Column(db.Integer, db.ForeignKey("package.id"))
author_id = db.Column(db.Integer, db.ForeignKey("user.id"))
- title = db.Column(db.String(100), nullable=False)
+ title = db.Column(db.String(100), nullable=False)
desc = db.Column(db.String(1000), nullable=True)
changes = db.relationship("EditRequestChange", backref="request",
lazy="dynamic")
+ def getURL(self):
+ return url_for("view_editrequest_page",
+ ptype=self.package.type.toName(),
+ author=self.package.author.username,
+ name=self.package.name,
+ id=self.id)
+
def applyAll(self, package):
for change in self.changes:
change.apply(package)
+
+
class EditRequestChange(db.Model):
id = db.Column(db.Integer, primary_key=True)
diff --git a/app/templates/packages/create_editrequest.html b/app/templates/packages/editrequest_create.html
index d0c592a..d0c592a 100644
--- a/app/templates/packages/create_editrequest.html
+++ b/app/templates/packages/editrequest_create.html
diff --git a/app/templates/packages/editrequest_view.html b/app/templates/packages/editrequest_view.html
new file mode 100644
index 0000000..b7abbbe
--- /dev/null
+++ b/app/templates/packages/editrequest_view.html
@@ -0,0 +1,34 @@
+{% extends "base.html" %}
+
+{% block title %}
+ {{ request.title }} - {{ package.title }}
+{% endblock %}
+
+{% block content %}
+ <h1>{{ request.title }} by {{ request.author.display_name }}</h1>
+ <p>
+ Package: <a href="{{ package.getDetailsURL() }}">{{ package.title }}</a>
+ </p>
+ <p>
+ {% if request.desc %}
+ {{ request.desc }}
+ {% else %}
+ <i>No description given</i>
+ {% endif %}
+ </p>
+
+ <table>
+ <tr>
+ <th>Property</th>
+ <th>Old</th>
+ <th>New</th>
+ </tr>
+
+ {% for change in request.changes %}
+ <tr>
+ <td>{{ change.key.value }}</td>
+ <td>{{ change.oldValue }}</td>
+ <td>{{ change.newValue }}</td>
+ </tr>
+ {% endfor %}
+{% endblock %}
diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html
index 4ccb4d7..9ed7def 100644
--- a/app/templates/packages/view.html
+++ b/app/templates/packages/view.html
@@ -86,4 +86,20 @@
<li>No releases available.</li>
{% endfor %}
</ul>
+
+ {% if current_user.is_authenticated or package.requests %}
+ <h3>Edit Requests</h3>
+
+ <ul>
+ {% for r in package.requests %}
+ <li>
+ <a href="{{ r.getURL() }}">{{ r.title }}</a>
+ by
+ <a href="{{ url_for('user_profile_page', username=r.author.username) }}">{{ r.author.display_name }}</a>
+ </li>
+ {% else %}
+ <li>No edit requests have been made.</li>
+ {% endfor %}
+ </ul>
+ {% endif %}
{% endblock %}
diff --git a/app/views/packages.py b/app/views/packages.py
index a314d79..6261606 100644
--- a/app/views/packages.py
+++ b/app/views/packages.py
@@ -198,7 +198,7 @@ class UnresolvedPackage(Package):
@app.route("/<ptype>s/<author>/<name>/requests/new/", methods=["GET","POST"])
@login_required
-def create_editrequest_page(ptype=None, author=None, name=None):
+def create_editrequest_page(ptype, author, name):
package = getPageByInfo(ptype, author, name)
form = EditRequestForm(request.form, obj=package)
@@ -243,7 +243,18 @@ def create_editrequest_page(ptype=None, author=None, name=None):
else:
flash("No changes detected", "warning")
- return render_template("packages/create_editrequest.html", package=package, form=form)
+ return render_template("packages/editrequest_create.html", package=package, form=form)
+
+
+@app.route("/<ptype>s/<author>/<name>/requests/<id>/")
+def view_editrequest_page(ptype, author, name, id):
+ package = getPageByInfo(ptype, author, name)
+
+ erequest = EditRequest.query.filter_by(id=id).first()
+ if erequest is None:
+ abort(404)
+
+ return render_template("packages/editrequest_view.html", package=package, request=erequest)
class CreatePackageReleaseForm(FlaskForm):