From 83cba84808ac76b715f3d2bd538d4799a1ca8b7e Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jan 04 2015 09:28:43 +0000 Subject: Move the logic to remove a tag from issues to the backend API --- diff --git a/progit/lib.py b/progit/lib.py index 297faed..5c1ddfb 100644 --- a/progit/lib.py +++ b/progit/lib.py @@ -218,6 +218,29 @@ def add_issue_tag(session, issue, tag, user, ticketfolder): return 'Tag added' +def remove_issue_tags(session, project, tags): + ''' Removes the specified tag of a project. ''' + + if not isinstance(tags, list): + tags = [tags] + + issues = get_issues(session, project, closed=False, tags=tags) + issues.extend(get_issues(session, project, closed=True, tags=tags)) + + msgs = [] + if not issues: + raise progit.exceptions.ProgitException( + 'No issue found with the tag: %s' % tag) + else: + for issue in issues: + for issue_tag in issue[0].tags: + if issue_tag.tag in tags: + tag = issue_tag.tag + session.delete(issue_tag) + msgs.append('Removed tag: %s' % tag) + return msgs + + def add_user_to_project(session, project, user): ''' Add a specified user to a specified project. ''' user_obj = get_user(session, user) diff --git a/progit/ui/issues.py b/progit/ui/issues.py index 2834c27..67bad7e 100644 --- a/progit/ui/issues.py +++ b/progit/ui/issues.py @@ -151,25 +151,9 @@ def remove_tag(repo, username=None): form = progit.forms.AddIssueTagForm() if form.validate_on_submit(): tags = form.tag.data - msgs = [] - tags = [tag.strip() for tag in tags.split(',')] - issues = progit.lib.get_issues( - SESSION, repo, closed=False, tags=tags) - issues.extend(progit.lib.get_issues( - SESSION, repo, closed=True, tags=tags) - ) - - if not issues: - flask.flash('No issue found with the tag: %s' % tag, 'error') - else: - for issue in issues: - for issue_tag in issue[0].tags: - if issue_tag.tag in tags: - tag = issue_tag.tag - SESSION.delete(issue_tag) - msgs.append('Removed tag: %s' % tag) + msgs = progit.lib.remove_issue_tags(SESSION, repo, tags) SESSION.commit() for msg in msgs: