feat: Add adoption notice template for contacting a person directly
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.2.1 on 2025-09-05 14:04
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('fellchensammlung', '0062_alter_adoptionnotice_adoption_notice_status_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='adoptionnotice',
|
||||
name='adoption_process',
|
||||
field=models.TextField(blank=True, choices=[('contact_person_in_an', 'Kontaktiere die Person im Vermittlungstext')], max_length=64, null=True, verbose_name='Adoptionsprozess'),
|
||||
),
|
||||
]
|
@@ -11,7 +11,7 @@ from .tools import misc, geo
|
||||
from notfellchen.settings import MEDIA_URL, base_url
|
||||
from .tools.geo import LocationProxy, Position
|
||||
from .tools.misc import time_since_as_hr_string
|
||||
from .tools.model_helpers import NotificationTypeChoices, AdoptionNoticeStatusChoices
|
||||
from .tools.model_helpers import NotificationTypeChoices, AdoptionNoticeStatusChoices, AdoptionProcess
|
||||
from .tools.model_helpers import ndm as NotificationDisplayMapping
|
||||
|
||||
|
||||
@@ -391,6 +391,9 @@ class AdoptionNotice(models.Model):
|
||||
owner = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Creator'))
|
||||
adoption_notice_status = models.TextField(max_length=64, verbose_name=_('Status'),
|
||||
choices=AdoptionNoticeStatusChoices.all_choices())
|
||||
adoption_process = models.TextField(null=True, blank=True,
|
||||
max_length=64, verbose_name=_('Adoptionsprozess'),
|
||||
choices=AdoptionProcess)
|
||||
|
||||
@property
|
||||
def animals(self):
|
||||
|
@@ -0,0 +1,7 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div class="content">
|
||||
{% translate 'Kontaktiere die Person mit den Kontaktdaten in der Beschreibung.' %}
|
||||
</div>
|
||||
|
||||
|
@@ -94,7 +94,7 @@ class AdoptionNoticeStatusChoices:
|
||||
|
||||
|
||||
class AdoptionNoticeStatusChoicesDescriptions:
|
||||
_ansc = AdoptionNoticeStatusChoices # Mapping for readability
|
||||
_ansc = AdoptionNoticeStatusChoices # Mapping for readability
|
||||
mapping = {_ansc.Active.SEARCHING.value: "",
|
||||
_ansc.Active.INTERESTED: _("Jemand hat bereits Interesse an den Tieren."),
|
||||
_ansc.Closed.SUCCESSFUL_WITH_NOTFELLCHEN: _("Vermittlung erfolgreich abgeschlossen."),
|
||||
@@ -104,10 +104,21 @@ class AdoptionNoticeStatusChoicesDescriptions:
|
||||
_ansc.Closed.NOT_OPEN_ANYMORE: _("Tier(e) stehen nicht mehr zur Vermittlung bereit."),
|
||||
_ansc.Closed.OTHER: _("Vermittlung geschlossen."),
|
||||
|
||||
_ansc.AwaitingAction.WAITING_FOR_REVIEW: _("Deaktiviert bis Moderator*innen die Vermittlung prüfen können."),
|
||||
_ansc.AwaitingAction.WAITING_FOR_REVIEW: _(
|
||||
"Deaktiviert bis Moderator*innen die Vermittlung prüfen können."),
|
||||
_ansc.AwaitingAction.NEEDS_ADDITIONAL_INFO: _("Deaktiviert bis Informationen nachgetragen werden."),
|
||||
|
||||
_ansc.Disabled.AGAINST_RULES: _("Vermittlung deaktiviert da sie gegen die Regeln verstößt."),
|
||||
_ansc.Disabled.UNCHECKED: _("Vermittlung deaktiviert bis sie vom Team auf Aktualität geprüft wurde."),
|
||||
_ansc.Disabled.OTHER: _("Vermittlung deaktiviert.")
|
||||
}
|
||||
|
||||
|
||||
class AdoptionProcess(TextChoices):
|
||||
CONTACT_PERSON_IN_AN = "contact_person_in_an", _("Kontaktiere die Person im Vermittlungstext")
|
||||
|
||||
|
||||
class AdoptionNoticeProcessTemplates:
|
||||
_bp = "fellchensammlung/partials/adoption_process/" # Base path for ease
|
||||
mapping = {AdoptionProcess.CONTACT_PERSON_IN_AN: f"{_bp}contact_person_in_an.html",
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ from .tools.admin import clean_locations, get_unchecked_adoption_notices, deacti
|
||||
from .tasks import post_adoption_notice_save
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
from .tools.model_helpers import AdoptionNoticeStatusChoices
|
||||
from .tools.model_helpers import AdoptionNoticeStatusChoices, AdoptionNoticeProcessTemplates
|
||||
from .tools.search import AdoptionNoticeSearch, RescueOrgSearch
|
||||
|
||||
|
||||
@@ -170,10 +170,17 @@ def adoption_notice_detail(request, adoption_notice_id):
|
||||
return HttpResponseForbidden()
|
||||
else:
|
||||
comment_form = CommentForm(instance=adoption_notice)
|
||||
|
||||
# Set the adoption notice template, use default when not set
|
||||
if adoption_notice.adoption_process is not None:
|
||||
adoption_process_template = AdoptionNoticeProcessTemplates.mapping[adoption_notice.adoption_process]
|
||||
else:
|
||||
adoption_process_template = "fellchensammlung/partials/adoption_process/generic.html"
|
||||
|
||||
context = {"adoption_notice": adoption_notice, "comment_form": comment_form, "user": request.user,
|
||||
"has_edit_permission": has_edit_permission, "is_subscribed": is_subscribed,
|
||||
"adoption_notice_meta": adoption_notice_meta,
|
||||
"adoption_process_template": "fellchensammlung/partials/adoption_process/generic.html",
|
||||
"adoption_process_template": adoption_process_template,
|
||||
"oxitraffic_base_url": settings.OXITRAFFIC_BASE_URL}
|
||||
return render(request, 'fellchensammlung/details/detail-adoption-notice.html', context=context)
|
||||
|
||||
|
Reference in New Issue
Block a user