Adding tag support for projects
parent
f0d53c7bd7
commit
58734af321
|
@ -45,3 +45,9 @@ class ProjectsAppConfig(AppConfig):
|
||||||
signals.post_save.connect(handlers.project_post_save,
|
signals.post_save.connect(handlers.project_post_save,
|
||||||
sender=apps.get_model("projects", "Project"),
|
sender=apps.get_model("projects", "Project"),
|
||||||
dispatch_uid='project_post_save')
|
dispatch_uid='project_post_save')
|
||||||
|
|
||||||
|
# Tags
|
||||||
|
signals.pre_save.connect(handlers.tags_normalization,
|
||||||
|
sender=apps.get_model("projects", "Project"))
|
||||||
|
signals.pre_save.connect(handlers.update_project_tags_when_create_or_edit_taggable_item,
|
||||||
|
sender=apps.get_model("projects", "Project"))
|
||||||
|
|
|
@ -18,6 +18,14 @@ from contextlib import closing
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
|
|
||||||
|
|
||||||
|
def _get_project_tags(project):
|
||||||
|
result = set()
|
||||||
|
tags = project.tags or []
|
||||||
|
for tag in tags:
|
||||||
|
result.add(tag)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def _get_stories_tags(project):
|
def _get_stories_tags(project):
|
||||||
result = set()
|
result = set()
|
||||||
for tags in project.user_stories.values_list("tags", flat=True):
|
for tags in project.user_stories.values_list("tags", flat=True):
|
||||||
|
@ -157,6 +165,7 @@ def get_all_tags(project):
|
||||||
tags found on it.
|
tags found on it.
|
||||||
"""
|
"""
|
||||||
result = set()
|
result = set()
|
||||||
|
result.update(_get_project_tags(project))
|
||||||
result.update(_get_issues_tags(project))
|
result.update(_get_issues_tags(project))
|
||||||
result.update(_get_stories_tags(project))
|
result.update(_get_stories_tags(project))
|
||||||
result.update(_get_tasks_tags(project))
|
result.update(_get_tasks_tags(project))
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from taiga.projects.services.filters import get_all_tags
|
from taiga.projects.services.filters import get_all_tags
|
||||||
|
from taiga.projects.models import Project
|
||||||
|
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
|
|
||||||
|
@ -54,4 +55,6 @@ def update_project_tags_colors_handler(instance):
|
||||||
instance.project.tags_colors.append([tag, new_color])
|
instance.project.tags_colors.append([tag, new_color])
|
||||||
|
|
||||||
remove_unused_tags(instance.project)
|
remove_unused_tags(instance.project)
|
||||||
|
|
||||||
|
if not isinstance(instance, Project):
|
||||||
instance.project.save()
|
instance.project.save()
|
||||||
|
|
Loading…
Reference in New Issue