Étiquettes :
{% for tag in object.defaultTags %}
- {{ tag|tw_highlight }}{% if not forloop.last %}, {% endif %}
+ {{ tag|tw_highlight }}{% if not forloop.last %}, {% endif %}
{% endfor %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/tag.html b/src/agenda_culturel/templates/agenda_culturel/tag.html
index 354cbaa..c2c3e8b 100644
--- a/src/agenda_culturel/templates/agenda_culturel/tag.html
+++ b/src/agenda_culturel/templates/agenda_culturel/tag.html
@@ -62,6 +62,12 @@
{% endif %}
diff --git a/src/agenda_culturel/templates/agenda_culturel/tag_confirm_delete_by_name.html b/src/agenda_culturel/templates/agenda_culturel/tag_confirm_delete_by_name.html
index f385a7b..2dd2d39 100644
--- a/src/agenda_culturel/templates/agenda_culturel/tag_confirm_delete_by_name.html
+++ b/src/agenda_culturel/templates/agenda_culturel/tag_confirm_delete_by_name.html
@@ -20,6 +20,12 @@
{% else %} sera bien sûr conservé, mais perdra cette étiquette.
{% endif %}
{% endif %}
+ {% if nbi > 0 %}
+
Remarquez qu'elle est associée à {{ nbi }} import{{ nbs|pluralize }} récurrent{{ nbs|pluralize }}, qui
+ {% if nbi > 1 %} seront bien sûr conservés, mais perdront cette étiquette.
+ {% else %} sera bien sûr conservé, mais perdra cette étiquette.
+ {% endif %}
+ {% endif %}
{% if obj %}
Différentes informations sont associées à cette étiquette (description, suggestion d'inclusion, etc)
seront également perdues lors de cette suppression.
En renommant l'étiquette {{ tag }}, vous remplacerez cette étiquette par la nouvelle pour tous les événements concernés.
+
En renommant l'étiquette {{ tag }}, vous remplacerez cette étiquette par la nouvelle pour tous les événements et tous les imports récurrents concernés.
diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py
index f6d4850..bf3e4b1 100644
--- a/src/agenda_culturel/views.py
+++ b/src/agenda_culturel/views.py
@@ -1971,10 +1971,10 @@ def view_tag(request, t):
except EmptyPage:
response = paginator.page(paginator.num_pages)
-
+ rimports = RecurrentImport.objects.filter(defaultTags__contains=[t])
tag = Tag.objects.filter(name=t).first()
- context = {"tag": t, "paginator_filter": response, "object": tag}
+ context = {"tag": t, "paginator_filter": response, "object": tag, "rimports": rimports}
return render(request, "agenda_culturel/tag.html", context)
@@ -2037,11 +2037,21 @@ def rename_tag(request, t):
e.tags += [new_name]
Event.objects.bulk_update(events, fields=["tags"])
+ # find all recurrent imports and fix them
+ rimports = RecurrentImport.objects.filter(defaultTags__contains=[t])
+ for ri in rimports:
+ ri.tags = [te for te in ri.defaultTags if te != t]
+ if not new_name in ri.tags:
+ ri.tags += [new_name]
+ RecurrentImport.objects.bulk_update(rimports, fields=["defaultTags"])
+
# find tag object
tag_object = Tag.objects.filter(name=t).first()
if tag_object:
tag_object.name = new_name
tag_object.save()
+
+
messages.success(
request,
(_(
@@ -2060,8 +2070,6 @@ def rename_tag(request, t):
@permission_required("agenda_culturel.delete_tag")
def delete_tag(request, t):
respage = reverse_lazy("view_all_tags")
- nb = Event.objects.filter(tags__contains=[t]).count()
- obj = Tag.objects.filter(name=t).first()
if request.method == "POST":
@@ -2071,6 +2079,12 @@ def delete_tag(request, t):
e.tags = [te for te in e.tags if te != t]
Event.objects.bulk_update(events, fields=["tags"])
+ # remove tag from recurrent imports
+ rimports = RecurrentImport.objects.filter(defaultTags__contains=[t])
+ for ri in rimports:
+ ri.tags = [te for te in ri.defaultTags if te != t]
+ RecurrentImport.objects.bulk_update(rimports, fields=["defaultTags"])
+
# find tag object
tag_object = Tag.objects.filter(name=t).first()
if tag_object:
@@ -2084,11 +2098,14 @@ def delete_tag(request, t):
)
return HttpResponseRedirect(respage)
else:
+ nb = Event.objects.filter(tags__contains=[t]).count()
+ obj = Tag.objects.filter(name=t).first()
+ nbi = RecurrentImport.objects.filter(defaultTags__contains=[t]).count()
cancel_url = request.META.get("HTTP_REFERER", "")
if cancel_url == "":
cancel_url = respage
return render(
request,
"agenda_culturel/tag_confirm_delete_by_name.html",
- {"tag": t, "nb": nb, "cancel_url": cancel_url, "obj": obj},
+ {"tag": t, "nb": nb, "nbi": nbi, "cancel_url": cancel_url, "obj": obj},
)