Amélioration relation imports récurrents / étiquettes
- les imports récurrents sont mis à jour quand on renomme ou supprime une étiquette - ajout de liens pour naviguer entre deux de ces objets
This commit is contained in:
parent
c9275c5ea0
commit
41f6dbc352
@ -39,13 +39,13 @@
|
||||
<li><strong>Adresse naviguable :</strong> <a href="{{ object.browsable_url }}">{{ object.browsable_url }}</a></li>
|
||||
<li><strong>Valeurs par défaut :</strong>
|
||||
<ul>
|
||||
<li><strong>Publié :</strong> {{ object.defaultPublished }}</li>
|
||||
<li><strong>Localisation :</strong> {{ object.defaultLocation }}</li>
|
||||
<li><strong>Publié :</strong> {{ object.defaultPublished|yesno:"Oui,Non" }}</li>
|
||||
{% if object.defaultLocation %}<li><strong>Localisation :</strong> {{ object.defaultLocation }}</li>{% endif %}
|
||||
<li><strong>Catégorie :</strong> {{ object.defaultCategory }}</li>
|
||||
<li><strong>Organisateur :</strong> <a href="{{ object.defaultOrganiser.get_absolute_url }}">{{ object.defaultOrganiser }}</a></li>
|
||||
{% if object.defaultOrganiser %}<li><strong>Organisateur :</strong> <a href="{{ object.defaultOrganiser.get_absolute_url }}">{{ object.defaultOrganiser }}</a></li>{% endif %}
|
||||
<li><strong>Étiquettes :</strong>
|
||||
{% for tag in object.defaultTags %}
|
||||
{{ tag|tw_highlight }}{% if not forloop.last %}, {% endif %}
|
||||
<a href="{% url 'view_tag' tag %}">{{ tag|tw_highlight }}</a>{% if not forloop.last %}, {% endif %}
|
||||
{% endfor %}
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -62,6 +62,12 @@
|
||||
{% endif %}
|
||||
|
||||
<footer>
|
||||
{% if user.is_authenticated and rimports %}
|
||||
<p>Cette étiquette est ajoutée par défaut {% if rimports.count == 1 %}à l'import récurrent{% else %}aux imports récurrents :{% endif %}
|
||||
{% for ri in rimports %}
|
||||
<a href="{{ ri.get_absolute_url }}">{{ ri.name }}</a>{% if not forloop.last %}, {% endif %}
|
||||
{% endfor %}</p>
|
||||
{% endif %}
|
||||
{% include 'agenda_culturel/paginator.html' %}
|
||||
</footer>
|
||||
</article>
|
||||
|
@ -20,6 +20,12 @@
|
||||
{% else %} sera bien sûr conservé, mais perdra cette étiquette.
|
||||
{% endif %}</p>
|
||||
{% endif %}
|
||||
{% if nbi > 0 %}
|
||||
<p>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 %}</p>
|
||||
{% endif %}
|
||||
{% if obj %}
|
||||
<p>Différentes informations sont associées à cette étiquette (description, suggestion d'inclusion, etc)
|
||||
seront également perdues lors de cette suppression.</p>
|
||||
|
@ -17,7 +17,7 @@
|
||||
<article>
|
||||
<header>
|
||||
<h1>Renommer l'étiquette {{ tag }}</em></h1>
|
||||
<p>En renommant l'étiquette {{ tag }}, vous remplacerez cette étiquette par la nouvelle pour tous les événements concernés.</p>
|
||||
<p>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.</p>
|
||||
</header>
|
||||
|
||||
|
||||
|
@ -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},
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user