diff --git a/pagure/templates/roadmap.html b/pagure/templates/roadmap.html index 88d33f5..0825134 100644 --- a/pagure/templates/roadmap.html +++ b/pagure/templates/roadmap.html @@ -9,7 +9,7 @@

- {{ issues|count }} Milestones + Milestone Roadmap +
Milestones:  + + {% for stone in allmilestones|sort %} + {% if stone in requested_stones %} + + {{ stone }} + {% else %} + + {{ stone }} + {% endif %} + {% endfor %} + +
+
Status:  {% if not status %} Open - All {% else %} - Open All {% endif %} - +
+ +
Tags:  {% for tag in tag_list %} - {% if tag.tag in tags %} - + {% if tag in tags %} + {% else %} - + {% endif %} - - {{ tag.tag }} + {{ tag }} {% endfor %} - +
+
{% for milestone in milestones %}
-
-
- Milestone: {{ milestone }} - {% if repo.milestones[milestone] %} - - Due: {{ repo.milestones[milestone] }} - - {% endif %} -
-
-
- - +
+ + + + + {% if status and status|lower != 'open' %} + + {% else %} + + {% endif %} + + {% if not status or status|lower == 'open' %} + + {% endif %} + {% if repo.milestones[milestone] %} + + Due: {{ repo.milestones[milestone] }} + + {% endif %} + + + - {% for issue in issues[milestone] |sort(attribute='priority') %} + {% for issue in issues[milestone] |sort(attribute='priority') %} + {% if status is none or (status and issue.status == 'Open') %} + + + {% endif %} {% else %} @@ -195,6 +266,12 @@
Milestone: {{ milestone }}OpenedClosedModified + Priority (reset) + + Assignee (reset) + Status
#{{ issue.id }} - {% if status and status != 'Open' %} + {% if status is none or status != 'Open' %} {{issue.status}} + issue.close_status|lower == 'invalid' %}label-danger{% + elif issue.close_status|lower == 'fixed' %}label-success{% + elif issue.close_status|lower == 'insufficient data' %}label-warning{% + elif issue.close_status|lower == 'duplicate' %}label-default{% + elif issue.close_status %}label-default{% + endif %}">{{issue.close_status}} {% endif %} {% if issue.private %} @@ -163,6 +230,10 @@ {{ issue.date_created | humanize}} + {{ + issue.last_updated | humanize}} + - {% if issue.status != 'Open' %} - {{ issue.status }} + {% if issue.assignee %} + {{ issue.assignee.default_email | avatar(16) | safe }} + {{ issue.assignee.user }} {% else %} - {% if issue.assignee %} - {{ issue.assignee.default_email | avatar(16) | safe }} - {{ issue.assignee.user }} - {% else %} - unassigned - {% endif %} + unassigned {% endif %} + {{ issue.status }} +
No issues found
+{% else %} +
+ + No issues found + +
{% endfor %} {% endblock %} {% block jscripts %} diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index 4ce8d5d..e192a7e 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -686,6 +686,7 @@ def view_roadmap(repo, username=None, namespace=None): if status.lower() == 'all': status = None milestone = flask.request.args.getlist('milestone', None) + tags = flask.request.args.getlist('tag', None) repo = flask.g.repo @@ -701,12 +702,17 @@ def view_roadmap(repo, username=None, namespace=None): if flask.g.repo_admin: private = None + requested_stones = None + if milestone is not None: + requested_stones = milestone milestones = milestone or list(repo.milestones.keys()) + all_milestones = list(repo.milestones.keys()) issues = pagure.lib.search_issues( SESSION, repo, milestones=milestones, + tags=tags, private=private, ) @@ -732,12 +738,10 @@ def view_roadmap(repo, username=None, namespace=None): if not active: del milestone_issues[key] - if milestone: - for mlstone in milestone: - if mlstone not in milestone_issues: - milestone_issues[mlstone] = [] - - tag_list = pagure.lib.get_tags_of_project(SESSION, repo) + all_tags = pagure.lib.get_tags_of_project(SESSION, repo) + tag_list = [] + for tag in all_tags: + tag_list.append(tag.tag) reponame = pagure.get_repo_path(repo) repo_obj = pygit2.Repository(reponame) @@ -755,8 +759,10 @@ def view_roadmap(repo, username=None, namespace=None): tag_list=tag_list, status=status, milestones=milestones_ordered, + requested_stones=requested_stones, + allmilestones=all_milestones, issues=milestone_issues, - tags=milestone, + tags=tags, )