Adding tag support for projects
parent
f0d53c7bd7
commit
58734af321
|
@ -45,3 +45,9 @@ class ProjectsAppConfig(AppConfig):
|
|||
signals.post_save.connect(handlers.project_post_save,
|
||||
sender=apps.get_model("projects", "Project"),
|
||||
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
|
||||
|
||||
|
||||
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):
|
||||
result = set()
|
||||
for tags in project.user_stories.values_list("tags", flat=True):
|
||||
|
@ -157,6 +165,7 @@ def get_all_tags(project):
|
|||
tags found on it.
|
||||
"""
|
||||
result = set()
|
||||
result.update(_get_project_tags(project))
|
||||
result.update(_get_issues_tags(project))
|
||||
result.update(_get_stories_tags(project))
|
||||
result.update(_get_tasks_tags(project))
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
from django.conf import settings
|
||||
|
||||
from taiga.projects.services.filters import get_all_tags
|
||||
from taiga.projects.models import Project
|
||||
|
||||
from hashlib import sha1
|
||||
|
||||
|
@ -52,6 +53,8 @@ def update_project_tags_colors_handler(instance):
|
|||
new_color = _get_new_color(tag, settings.TAGS_PREDEFINED_COLORS,
|
||||
exclude=used_colors)
|
||||
instance.project.tags_colors.append([tag, new_color])
|
||||
|
||||
|
||||
remove_unused_tags(instance.project)
|
||||
instance.project.save()
|
||||
|
||||
if not isinstance(instance, Project):
|
||||
instance.project.save()
|
||||
|
|
Loading…
Reference in New Issue