From d375c2763e68ecf5108ade3d0c6dfe41ce10ae19 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 03 2015 13:44:24 +0000 Subject: [PATCH 1/5] Adjust title of the releases page --- diff --git a/pagure/templates/tags.html b/pagure/templates/tags.html index 9442e88..9c1eac1 100644 --- a/pagure/templates/tags.html +++ b/pagure/templates/tags.html @@ -1,6 +1,6 @@ {% extends "repo_master.html" %} -{% block title %}Tags - {{ repo.name }}{% endblock %} +{% block title %}Releases - {{ repo.name }}{% endblock %} {%block tag %}home{% endblock %} {% block header %} From 7f3fd407890a56fb65d9a18e53ee937a94c0a8e2 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 03 2015 13:45:21 +0000 Subject: [PATCH 2/5] Rename the tags template into releases to be consistent --- diff --git a/pagure/templates/releases.html b/pagure/templates/releases.html new file mode 100644 index 0000000..9c1eac1 --- /dev/null +++ b/pagure/templates/releases.html @@ -0,0 +1,56 @@ +{% extends "repo_master.html" %} + +{% block title %}Releases - {{ repo.name }}{% endblock %} +{%block tag %}home{% endblock %} + +{% block header %} + +{% endblock %} + +{% block repo %} + +

Tags

+ +{% if config.get('UPLOAD_FOLDER_PATH') and config.get('UPLOAD_FOLDER') %} +

+ If the developers have upload one or more tarball(s), you will be able to + find them in the + release folder + . +

+ +{% if repo_admin %} +

+ + + +

+{% endif %} +{% endif %} + +
+ {% if tags %} + + {% else %} +

+ This project has not been tagged. +

+ {% endif %} +
+ +{% endblock %} diff --git a/pagure/templates/tags.html b/pagure/templates/tags.html deleted file mode 100644 index 9c1eac1..0000000 --- a/pagure/templates/tags.html +++ /dev/null @@ -1,56 +0,0 @@ -{% extends "repo_master.html" %} - -{% block title %}Releases - {{ repo.name }}{% endblock %} -{%block tag %}home{% endblock %} - -{% block header %} - -{% endblock %} - -{% block repo %} - -

Tags

- -{% if config.get('UPLOAD_FOLDER_PATH') and config.get('UPLOAD_FOLDER') %} -

- If the developers have upload one or more tarball(s), you will be able to - find them in the - release folder - . -

- -{% if repo_admin %} -

- - - -

-{% endif %} -{% endif %} - -
- {% if tags %} - - {% else %} -

- This project has not been tagged. -

- {% endif %} -
- -{% endblock %} diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index a9a6fad..d808774 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -679,7 +679,7 @@ def view_tags(repo, username=None): tags = pagure.lib.git.get_git_tags_objects(repo) return flask.render_template( - 'tags.html', + 'releases.html', select='tags', username=username, repo=repo, From 9815cab7b7216a70ab15717680e05e338a01f74f Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 03 2015 13:45:55 +0000 Subject: [PATCH 3/5] Use Releases instead of Release to be consistent here as well --- diff --git a/pagure/templates/repo_master.html b/pagure/templates/repo_master.html index e718f9e..406977d 100644 --- a/pagure/templates/repo_master.html +++ b/pagure/templates/repo_master.html @@ -57,7 +57,7 @@
  • Release + repo=repo.name) }}">Releases
  • {% if config.get('ENABLE_TICKETS', True) and repo From d68be679e6bac51c1e66bf21679e6359537d3e15 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 03 2015 13:57:30 +0000 Subject: [PATCH 4/5] Support uploading multiple files at once Fixes https://pagure.io/pagure/issue/385 --- diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index d808774..6b9c4c2 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -713,19 +713,19 @@ def new_release(repo, username=None): form = pagure.forms.UploadFileForm() if form.validate_on_submit(): - filestream = flask.request.files['filestream'] - filename = werkzeug.secure_filename(filestream.filename) - try: - folder = os.path.join( - APP.config['UPLOAD_FOLDER_PATH'], - werkzeug.secure_filename(repo.fullname)) - if not os.path.exists(folder): - os.mkdir(folder) - filestream.save(os.path.join(folder, filename)) - flask.flash('File uploaded') - except Exception as err: # pragma: no cover - APP.logger.exception(err) - flask.flash('Upload failed', 'error') + for filestream in flask.request.files.getlist('filestream'): + filename = werkzeug.secure_filename(filestream.filename) + try: + folder = os.path.join( + APP.config['UPLOAD_FOLDER_PATH'], + werkzeug.secure_filename(repo.fullname)) + if not os.path.exists(folder): + os.mkdir(folder) + filestream.save(os.path.join(folder, filename)) + flask.flash('File "%s" uploaded' % filename) + except Exception as err: # pragma: no cover + APP.logger.exception(err) + flask.flash('Upload failed', 'error') return flask.redirect( flask.url_for('view_tags', repo=repo.name, username=username)) From d164cdf1f6fd5884d05af49820a9e7c4dffa79c9 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Sep 04 2015 09:21:40 +0000 Subject: [PATCH 5/5] Adjust unit-tests for the change in the message returned --- diff --git a/tests/test_progit_flask_ui_repo.py b/tests/test_progit_flask_ui_repo.py index 3b41bf4..200ee10 100644 --- a/tests/test_progit_flask_ui_repo.py +++ b/tests/test_progit_flask_ui_repo.py @@ -1946,7 +1946,8 @@ index 0000000..fb7093d output = self.app.post( '/test/upload/', data=data, follow_redirects=True) self.assertEqual(output.status_code, 404) - self.assertIn('
  • File uploaded
  • ', output.data) + self.assertIn('
  • File', output.data) + self.assertIn('uploaded
  • ', output.data) self.assertIn('
    No git repo found
    ', output.data) repo = tests.create_projects_git(tests.HERE) @@ -1956,7 +1957,8 @@ index 0000000..fb7093d output = self.app.post( '/test/upload/', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) - self.assertIn('
  • File uploaded
  • ', output.data) + self.assertIn('
  • File', output.data) + self.assertIn('uploaded
  • ', output.data) self.assertIn('This project has not been tagged.', output.data) @patch('pagure.ui.repo.admin_session_timedout')