feat: Add overview page for adoption notice social media actions

This commit is contained in:
2026-02-07 21:36:22 +01:00
parent 00e32e0f7c
commit 153dc8c048
4 changed files with 87 additions and 1 deletions

View File

@@ -114,7 +114,17 @@
<i class="fas fa-chart-line fa-fw"></i> {% trans 'Aufrufe' %}
</a>
{% endif %}
<hr class="dropdown-divider">
<a class="dropdown-item"
href="{% url 'adoption-notice-social-media-template-selection' adoption_notice_id=adoption_notice.pk %}">
<i class="fab fa-instagram fa-fw"
aria-hidden="true"></i> {% trans 'Social Media Vorlagen' %}
</a>
<hr class="dropdown-divider">
<a class="dropdown-item is-warning"
href="{% url adoption_notice_meta|admin_urlname:'change' adoption_notice.pk %}">
<i class="fa-solid fa-tools fa-fw"></i> Admin interface

View File

@@ -0,0 +1,62 @@
{% extends "fellchensammlung/base.html" %}
{% load i18n %}
{% load widget_tweaks %}
{% load admin_urls %}
{% block title %}
<title>Social Media Post für {{ adoption_notice }}</title>
{% endblock %}
{% block content %}
<h1 class="title is-1">Social Media Post für {{ adoption_notice }}</h1>
<div class="columns block">
<div class="column">
<div class="box">
{% include 'fellchensammlung/partials/social_media/post-to-fedi.html' %}
<p class="block">
{% blocktranslate %}
Die Vermittlung wird auf unserem Fediverse-Account gepostet
{% endblocktranslate %}
</p>
</div>
</div>
<div class="column">
<div class="box block">
<a href="{% url 'adoption-notice-story-pic' adoption_notice.pk %}"
class="button is-primary is-fullwidth">
<i class="fab fa-instagram fa-fw"></i> {% trans 'Instagram Storyvorlage' %}
</a>
<p class="block">
{% blocktranslate %}
Eine Vorlage für eine Instagram-Story im Format 1080x1980px.
{% endblocktranslate %}
</p>
</div>
</div>
<div class="column">
<div class="box block">
<a href="{% url 'adoption-notice-sharepic' adoption_notice.pk %}"
class="button is-primary block is-fullwidth">
<i class="fab fa-instagram fa-fw"></i> {% trans 'Instagram Post' %}
</a>
<p class="block">
{% blocktranslate %}
Eine Vorlage für eine Instagram-Post mit einer Slide pro Tier.
{% endblocktranslate %}
</p>
</div>
</div>
</div>
<div class="block">
<p>
{% blocktranslate %}
Die Vorlagen werden idealerweise im Grafikprogramm Inkscape weiterbearbeitet.
{% endblocktranslate %}
</p>
<a href="https://inkscape.org/" class="button is-link block is-fullwidth">
<i class="fab fa-inkscape fa-fw"></i>
{% translate 'Inkscape herunterladen' %}
</a>
</div>
{% endblock %}

View File

@@ -30,6 +30,9 @@ urlpatterns = [
path("tier/<int:animal_id>/add-photo", views.add_photo_to_animal, name="animal-add-photo"),
# ex: /adoption_notice/7/
path("vermittlung/<int:adoption_notice_id>/", views.adoption_notice_detail, name="adoption-notice-detail"),
# ex: /adoption_notice/7/social-media-templates
path("vermittlung/<int:adoption_notice_id>/social-media-templates", views.adoption_notice_social_media_templates,
name="adoption-notice-social-media-template-selection"),
# ex: /adoption_notice/7/sharepic
path("vermittlung/<int:adoption_notice_id>/sharepic", views.adoption_notice_sharepic,
name="adoption-notice-sharepic"),

View File

@@ -13,7 +13,6 @@ from django.contrib.auth.decorators import user_passes_test
from django.core.serializers import serialize
from django.utils.translation import gettext_lazy as _
import json
import requests
from .mail import notify_mods_new_report
from notfellchen import settings
@@ -1036,6 +1035,18 @@ def adoption_notice_story_pic(request, adoption_notice_id):
return HttpResponse(svg_data, content_type="image/svg+xml")
def adoption_notice_social_media_templates(request, adoption_notice_id):
context = {}
if request.method == "POST":
action = request.POST.get("action")
if action == "post_to_fedi":
context = handle_post_fedi_action()
adoption_notice = get_object_or_404(AdoptionNotice, pk=adoption_notice_id)
context["adoption_notice"] = adoption_notice
return render(request, 'fellchensammlung/misc/social-media-template-selection.html', context=context)
@login_required
def rescue_org_create_or_update(request, rescue_organization_id=None):
"""