From 8056165aa77f213bc9b7679ac97578bdd0c0d40e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 24 2015 13:13:20 +0000 Subject: [PATCH 1/4] Small indentation fix --- diff --git a/pagure/templates/user_info.html b/pagure/templates/user_info.html index 84192ea..9ddc793 100644 --- a/pagure/templates/user_info.html +++ b/pagure/templates/user_info.html @@ -18,7 +18,7 @@

{{ username | avatar(36) | safe }} {{ username }} {% if g.fas_user and g.fas_user.username == username %} - + {% endif %}

From b1987229aef16a62a24dee7f9976a42e1bafe042 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 24 2015 13:13:20 +0000 Subject: [PATCH 2/4] Add a new endpoint to edit the title of a pull-request --- diff --git a/pagure/templates/pull_request_title.html b/pagure/templates/pull_request_title.html new file mode 100644 index 0000000..480ac9b --- /dev/null +++ b/pagure/templates/pull_request_title.html @@ -0,0 +1,29 @@ +{% extends "repo_master.html" %} +{% from "_formhelper.html" import render_field_in_row %} + +{% block title %}Edit PR#{{ request.id }}: {{ request.title }} - {{ repo.name }}{% endblock %} +{%block tag %}home{% endblock %} + + +{% block repo %} + +

Edit PR#{{ request.id }}: {{ request.title }} - {{ repo.name }}

+ +
+
+ +

Enter in the field below the new title

+ + {{ render_field_in_row(form.title) }} +
+

+ + + {{ form.csrf_token }} +

+
+
+ +{% endblock %} diff --git a/pagure/ui/fork.py b/pagure/ui/fork.py index f15cd58..8e5787b 100644 --- a/pagure/ui/fork.py +++ b/pagure/ui/fork.py @@ -324,6 +324,68 @@ def request_pull_patch(repo, requestid, username=None): return flask.Response(patch, content_type="text/plain;charset=UTF-8") + +@APP.route('//pull-request//edit/', + methods=('GET', 'POST')) +@APP.route('//pull-request//edit', + methods=('GET', 'POST')) +@APP.route('/fork///pull-request//edit/', + methods=('GET', 'POST')) +@APP.route('/fork///pull-request//edit', + methods=('GET', 'POST')) +@cla_required +def request_pull_edit(repo, requestid, username=None): + """ Edit the title of a pull-request. + """ + + repo = pagure.lib.get_project(SESSION, repo, user=username) + + if not repo: + flask.abort(404, 'Project not found') + + if not repo.settings.get('pull_requests', True): + flask.abort(404, 'No pull-requests found for this project') + + request = pagure.lib.search_pull_requests( + SESSION, project_id=repo.id, requestid=requestid) + + if not request: + flask.abort(404, 'Pull-request not found') + + if not is_repo_admin(repo) \ + or flask.g.fas_user.username != request.user.username : + flask.abort(403, 'You are not allowed to edit this pull-request') + + form = pagure.forms.RequestPullForm() + + if form.validate_on_submit(): + request.title = form.title.data + SESSION.add(request) + try: + SESSION.commit() + flask.flash('Request pull edited!') + except SQLAlchemyError as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'Could not edit this pull-request in the database', + 'error') + return flask.redirect(flask.url_for( + 'request_pull', username=username, + repo=repo.name, requestid=requestid)) + elif flask.request.method == 'GET': + form.title.data = request.title + + return flask.render_template( + 'pull_request_title.html', + select='requests', + request=request, + repo=repo, + username=username, + form=form, + ) + + @APP.route('//pull-request//comment', methods=['POST']) @APP.route('//pull-request//comment//' From 7d5d7d12d103a28e0fa673f7ebf505aa19d4e705 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 24 2015 13:13:20 +0000 Subject: [PATCH 3/4] Add a button to edit the title of a PR once opened --- diff --git a/pagure/static/pagure.css b/pagure/static/pagure.css index de775ba..c96a3f3 100644 --- a/pagure/static/pagure.css +++ b/pagure/static/pagure.css @@ -723,7 +723,9 @@ header a.button:hover { color: red; } -a.user_settings { +a.user_settings, +a.edit_icon +{ display: inline-block; width: 16px; height: 16px; diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index 64a26a6..f28ce9c 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -22,7 +22,13 @@ {% if pull_request %} -

Pull Request: {{ pull_request.title | noJS("img") | safe }}

+

Pull Request: {{ pull_request.title | noJS("img") | safe + }} {% if g.fas_user and g.fas_user.username == pull_request.user.username + %}{% + endif %}

+
    {% if pull_request.status == 'Open' and repo_admin %} From 3b6d6c92e09f27cafc1911f68268c5b388016f3b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 24 2015 13:13:20 +0000 Subject: [PATCH 4/4] Allow admins to edit the title of a PR --- diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html index f28ce9c..67ec6b4 100644 --- a/pagure/templates/pull_request.html +++ b/pagure/templates/pull_request.html @@ -23,7 +23,8 @@ {% if pull_request %}

    Pull Request: {{ pull_request.title | noJS("img") | safe - }} {% if g.fas_user and g.fas_user.username == pull_request.user.username + }} {% if g.fas_user and (g.fas_user.username == pull_request.user.username + or repo_admin) %}{%