diff --git a/progit/app.py b/progit/app.py index c9ac476..7012c93 100644 --- a/progit/app.py +++ b/progit/app.py @@ -442,12 +442,36 @@ def view_issue(repo, issueid, username=None): if issue is None: flask.abort(404, 'Issue not found') + status = progit.lib.get_issue_statuses(SESSION) + form = progit.forms.UpdateIssueStatusForm(status=status) + + if form.validate_on_submit(): + try: + message = progit.lib.edit_issue( + SESSION, + issue=issue, + status=form.status.data, + ) + SESSION.commit() + flask.flash(message) + url = flask.url_for('view_issues', repo=repo.name) + if username: + url = flask.url_for( + 'view_fork_issues', username=username, repo=repo.name) + return flask.redirect(url) + except SQLAlchemyError, err: # pragma: no cover + SESSION.rollback() + flask.flash(str(err), 'error') + elif flask.request.method == 'GET': + form.status.data = issue.status + return flask.render_template( 'issue.html', select='issues', repo=repo, username=username, issue=issue, + form=form, ) diff --git a/progit/templates/issue.html b/progit/templates/issue.html index d8299dc..d79a36b 100644 --- a/progit/templates/issue.html +++ b/progit/templates/issue.html @@ -1,4 +1,5 @@ {% extends "repo_master.html" %} +{% from "_formhelper.html" import render_field_in_list %} {% block title %}Home{% endblock %} {%block tag %}home{% endblock %} @@ -9,6 +10,13 @@