Issue
Opened
-
+
Priority (reset )
@@ -130,8 +130,9 @@
{{
issue.date_created | humanize}}
-
+
{% if issue.priority %}
+
+
+
+{% endblock %}
diff --git a/pagure/ui/filters.py b/pagure/ui/filters.py
index 1f877db..ba46f13 100644
--- a/pagure/ui/filters.py
+++ b/pagure/ui/filters.py
@@ -399,3 +399,9 @@ def return_md5(text):
m = md5.new()
m.update(text)
return pagure.lib.clean_input(m.hexdigest())
+
+@APP.template_filter('increment_largest_priority')
+def text_wraps(dictionary):
+ """ Template filter to return the largest priority +1
+ """
+ return int(max(dictionary.keys(), key=int))+1
From 282f8794af03e834e20ff7a346b68eb7222a782c Mon Sep 17 00:00:00 2001
From: Ryan Lerch
Date: Apr 12 2016 08:58:22 +0000
Subject: [PATCH 10/25] added stupidtable js
---
diff --git a/pagure/static/stupidtable.min.js b/pagure/static/stupidtable.min.js
new file mode 100644
index 0000000..bc7bfd3
--- /dev/null
+++ b/pagure/static/stupidtable.min.js
@@ -0,0 +1,4 @@
+(function(c){c.fn.stupidtable=function(b){return this.each(function(){var a=c(this);b=b||{};b=c.extend({},c.fn.stupidtable.default_sort_fns,b);a.data("sortFns",b);a.on("click.stupidtable","thead th",function(){c(this).stupidsort()})})};c.fn.stupidsort=function(b){var a=c(this),g=0,f=c.fn.stupidtable.dir,e=a.closest("table"),k=a.data("sort")||null;if(null!==k){a.parents("tr").find("th").slice(0,c(this).index()).each(function(){var a=c(this).attr("colspan")||1;g+=parseInt(a,10)});var d;1==arguments.length?
+d=b:(d=b||a.data("sort-default")||f.ASC,a.data("sort-dir")&&(d=a.data("sort-dir")===f.ASC?f.DESC:f.ASC));e.trigger("beforetablesort",{column:g,direction:d});e.css("display");setTimeout(function(){var b=[],l=e.data("sortFns")[k],h=e.children("tbody").children("tr");h.each(function(a,e){var d=c(e).children().eq(g),f=d.data("sort-value");"undefined"===typeof f&&(f=d.text(),d.data("sort-value",f));b.push([f,e])});b.sort(function(a,b){return l(a[0],b[0])});d!=f.ASC&&b.reverse();h=c.map(b,function(a){return a[1]});
+e.children("tbody").append(h);e.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc");a.data("sort-dir",d).addClass("sorting-"+d);e.trigger("aftertablesort",{column:g,direction:d});e.css("display")},10);return a}};c.fn.updateSortVal=function(b){var a=c(this);a.is("[data-sort-value]")&&a.attr("data-sort-value",b);a.data("sort-value",b);return a};c.fn.stupidtable.dir={ASC:"asc",DESC:"desc"};c.fn.stupidtable.default_sort_fns={"int":function(b,a){return parseInt(b,10)-parseInt(a,10)},
+"float":function(b,a){return parseFloat(b)-parseFloat(a)},string:function(b,a){return b.localeCompare(a)},"string-ins":function(b,a){b=b.toLocaleLowerCase();a=a.toLocaleLowerCase();return b.localeCompare(a)}}})(jQuery);
From a427075cfe636375fac7b51046dbbae4342a9625 Mon Sep 17 00:00:00 2001
From: Ryan Lerch
Date: Apr 12 2016 08:58:22 +0000
Subject: [PATCH 11/25] editied the styling of priorituy editing in repo settings
---
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
index b9d11e0..834de2d 100644
--- a/pagure/templates/settings.html
+++ b/pagure/templates/settings.html
@@ -365,43 +365,57 @@
-
@@ -524,17 +538,23 @@ $('#new_priority').click(function(e) {
console.log('new priority');
console.log($('#priorities'));
$('#priorities').append(
- ' \
- \
- \
- \
- \
- \
- \
-
\
- '
+ ' \
+
\
+ \
+
\
+
\
+ \
+
\
+
\
+ \
+ \
+ \
+
\
+
'
);
console.log($('#priorities'));
});
From 830df457e22f754fda2b5d53f4d3224163a01b37 Mon Sep 17 00:00:00 2001
From: Ryan Lerch
Date: Apr 12 2016 08:58:22 +0000
Subject: [PATCH 12/25] split long line out into 3 lines
---
diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html
index 18a00ce..379481b 100644
--- a/pagure/templates/issues.html
+++ b/pagure/templates/issues.html
@@ -130,7 +130,9 @@
{{
issue.date_created | humanize}}
-
+
{% if issue.priority %}
Date: Apr 12 2016 08:58:22 +0000
Subject: [PATCH 14/25] Ensure each weight and each title are only listed once
---
diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py
index 3be4cc2..b1e34f4 100644
--- a/pagure/ui/repo.py
+++ b/pagure/ui/repo.py
@@ -975,6 +975,26 @@ def update_priorities(repo, username=None):
'error')
error = True
+ for weight in weights:
+ if weights.count(weight) != 1:
+ flask.flash(
+ 'Priority weight %s is present %s times' % (
+ weight, weights.count(weight)
+ ),
+ 'error')
+ error = True
+ break
+
+ for title in titles:
+ if titles.count(title) != 1:
+ flask.flash(
+ 'Priority %s is present %s times' % (
+ title, titles.count(title)
+ ),
+ 'error')
+ error = True
+ break
+
if not error:
priorities = {}
for cnt in range(len(weights)):
From 03d09712d0c7bd89938e4e0de43f0b554239b7ca Mon Sep 17 00:00:00 2001
From: Pierre-Yves Chibon
Date: Apr 12 2016 08:58:23 +0000
Subject: [PATCH 15/25] Drop the delete buttons since we no longer use them
---
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
index 834de2d..08e8c7f 100644
--- a/pagure/templates/settings.html
+++ b/pagure/templates/settings.html
@@ -389,13 +389,6 @@
-
-
-
-
-
{% endfor %}
@@ -547,13 +540,6 @@ $('#new_priority').click(function(e) {
\
\
- \
- \
- \
- \
-
\
'
);
console.log($('#priorities'));
From 8334f291f94ff5ab17ea889e0e3f95f8e1301e1a Mon Sep 17 00:00:00 2001
From: Pierre-Yves Chibon
Date: Apr 12 2016 08:58:23 +0000
Subject: [PATCH 16/25] Add a set of default priorities and a button to add them
---
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
index 08e8c7f..e5bd625 100644
--- a/pagure/templates/settings.html
+++ b/pagure/templates/settings.html
@@ -393,9 +393,14 @@
{% endfor %}
-
@@ -542,6 +547,25 @@ $('#new_priority').click(function(e) {
\
'
);
+});
+
+$('#default_priorities').click(function(e) {
+ $('#priorities').html('');
+ var def_priorities = ['', 'High', 'Normal', 'Low'];
+ for (var cnt = 1; cnt < def_priorities.length; cnt++) {
+ $('#priorities').append(
+ ''
+ );
+ }
console.log($('#priorities'));
});
From 70aed86b204f9ac7c9d22d08ae3e171f4b5ca060 Mon Sep 17 00:00:00 2001
From: Pierre-Yves Chibon
Date: Apr 12 2016 08:58:23 +0000
Subject: [PATCH 17/25] Do not show the 'Default priority set' button if there are priorities
---
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
index e5bd625..b5a59e9 100644
--- a/pagure/templates/settings.html
+++ b/pagure/templates/settings.html
@@ -398,11 +398,13 @@
Add new priority
+ {% if not repo.priorities %}
+ {% endif %}
@@ -548,7 +550,7 @@ $('#new_priority').click(function(e) {
'
);
});
-
+{% if not repo.priorities %}
$('#default_priorities').click(function(e) {
$('#priorities').html('');
var def_priorities = ['', 'High', 'Normal', 'Low'];
@@ -568,6 +570,7 @@ $('#default_priorities').click(function(e) {
}
console.log($('#priorities'));
});
+{% endif %}
{% endblock %}
From af88e94737295c2e30260dcae706dfee5e79e6cb Mon Sep 17 00:00:00 2001
From: Pierre-Yves Chibon
Date: Apr 12 2016 08:58:23 +0000
Subject: [PATCH 18/25] Start unit-tests for the priorities
---
diff --git a/tests/test_pagure_flask_ui_priorities.py b/tests/test_pagure_flask_ui_priorities.py
new file mode 100644
index 0000000..9039be7
--- /dev/null
+++ b/tests/test_pagure_flask_ui_priorities.py
@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+
+"""
+ (c) 2016 - Copyright Red Hat Inc
+
+ Authors:
+ Pierre-Yves Chibon
+
+"""
+
+__requires__ = ['SQLAlchemy >= 0.8']
+import pkg_resources
+
+import datetime
+import json
+import unittest
+import shutil
+import sys
+import tempfile
+import os
+
+import pygit2
+from mock import patch
+
+sys.path.insert(0, os.path.join(os.path.dirname(
+ os.path.abspath(__file__)), '..'))
+
+import pagure.lib
+import tests
+from pagure.lib.repo import PagureRepo
+
+
+class PagureFlaskPrioritiestests(tests.Modeltests):
+ """ Tests for the behavior of priorities in pagure """
+
+ def setUp(self):
+ """ Set up the environnment, ran before every tests. """
+ super(PagureFlaskPrioritiestests, self).setUp()
+
+ pagure.APP.config['TESTING'] = True
+ pagure.SESSION = self.session
+ pagure.ui.SESSION = self.session
+ pagure.ui.app.SESSION = self.session
+ pagure.ui.filters.SESSION = self.session
+ pagure.ui.repo.SESSION = self.session
+ pagure.ui.issues.SESSION = self.session
+
+ pagure.APP.config['GIT_FOLDER'] = tests.HERE
+ pagure.APP.config['REQUESTS_FOLDER'] = os.path.join(
+ tests.HERE, 'requests')
+ pagure.APP.config['TICKETS_FOLDER'] = os.path.join(
+ tests.HERE, 'tickets')
+ pagure.APP.config['DOCS_FOLDER'] = os.path.join(
+ tests.HERE, 'docs')
+ self.app = pagure.APP.test_client()
+
+ @patch('pagure.lib.git.update_git')
+ @patch('pagure.lib.notify.send_email')
+ def test_ticket_with_no_priority(self, p_send_email, p_ugt):
+ """ Test creating a ticket without priority. """
+ p_send_email.return_value = True
+ p_ugt.return_value = True
+
+ tests.create_projects(self.session)
+ tests.create_projects_git(os.path.join(tests.HERE), bare=True)
+
+ user = tests.FakeUser()
+ user.username = 'pingou'
+ with tests.user_set(pagure.APP, user):
+
+ # Get the CSRF token
+ output = self.app.get('/test/new_issue')
+ self.assertEqual(output.status_code, 200)
+ self.assertTrue(
+ '
-
+
{% if issue.priority %}
From accf04b2bdf616356380819a101cfc9174bdcb60 Mon Sep 17 00:00:00 2001
From: Pierre-Yves Chibon
Date: Apr 12 2016 08:58:23 +0000
Subject: [PATCH 25/25] Fix in the documentation of the priorities in the settings page
---
diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html
index a64e921..ebafaab 100644
--- a/pagure/templates/settings.html
+++ b/pagure/templates/settings.html
@@ -265,7 +265,7 @@