feat: add option to mark a rescue org to be in active communication
That enables to filter them out from a check without forgetting there are to-dos. Most often this will be used when you want to call a rescue org but they can currently not be reached
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
# Generated by Django 5.2.1 on 2025-07-13 10:54
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('fellchensammlung', '0054_alter_notification_comment'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='rescueorganization',
|
||||||
|
name='ongoing_communication',
|
||||||
|
field=models.BooleanField(default=False, help_text='Es findet gerade Kommunikation zwischen Notfellchen und der Organisation statt.', verbose_name='In aktiver Kommunikation'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='notification',
|
||||||
|
name='user_to_notify',
|
||||||
|
field=models.ForeignKey(help_text='Useraccount der Benachrichtigt wird', on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL, verbose_name='Empfänger*in'),
|
||||||
|
),
|
||||||
|
]
|
@@ -151,6 +151,9 @@ class RescueOrganization(models.Model):
|
|||||||
exclude_from_check = models.BooleanField(default=False, verbose_name=_('Von Prüfung ausschließen'),
|
exclude_from_check = models.BooleanField(default=False, verbose_name=_('Von Prüfung ausschließen'),
|
||||||
help_text=_("Organisation von der manuellen Überprüfung ausschließen, "
|
help_text=_("Organisation von der manuellen Überprüfung ausschließen, "
|
||||||
"z.B. weil Tiere nicht online geführt werden"))
|
"z.B. weil Tiere nicht online geführt werden"))
|
||||||
|
ongoing_communication = models.BooleanField(default=False, verbose_name=_('In aktiver Kommunikation'),
|
||||||
|
help_text=_(
|
||||||
|
"Es findet gerade Kommunikation zwischen Notfellchen und der Organisation statt."))
|
||||||
parent_org = models.ForeignKey("RescueOrganization", on_delete=models.PROTECT, blank=True, null=True)
|
parent_org = models.ForeignKey("RescueOrganization", on_delete=models.PROTECT, blank=True, null=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@@ -30,6 +30,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
<div class="block">
|
||||||
|
<h2 class="title is-3">{% translate "In aktiver Kommunikation" %}</h2>
|
||||||
|
<div class="grid is-col-min-15">
|
||||||
|
{% for rescue_org in rescue_orgs_with_ongoing_communication %}
|
||||||
|
<div class="cell">
|
||||||
|
{% include "fellchensammlung/partials/partial-check-rescue-org.html" %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<h2 class="title is-3">{% translate "Zuletzt geprüft" %}</h2>
|
<h2 class="title is-3">{% translate "Zuletzt geprüft" %}</h2>
|
||||||
<div class="grid is-col-min-15">
|
<div class="grid is-col-min-15">
|
||||||
|
@@ -803,12 +803,15 @@ def rescue_organization_check(request, context=None):
|
|||||||
if comment_form.is_valid():
|
if comment_form.is_valid():
|
||||||
comment_form.save()
|
comment_form.save()
|
||||||
|
|
||||||
rescue_orgs_to_check = RescueOrganization.objects.filter(exclude_from_check=False).order_by("last_checked")[:10]
|
rescue_orgs_to_check = RescueOrganization.objects.filter(exclude_from_check=False, ongoing_communication=False).order_by("last_checked")[:3]
|
||||||
|
rescue_orgs_with_ongoing_communication = RescueOrganization.objects.filter(ongoing_communication=True).order_by("updated_at")
|
||||||
|
rescue_orgs_last_checked = RescueOrganization.objects.filter().order_by("-last_checked")[:10]
|
||||||
|
rescue_orgs_to_comment = rescue_orgs_to_check | rescue_orgs_with_ongoing_communication | rescue_orgs_last_checked
|
||||||
# Prepare a form for each organization
|
# Prepare a form for each organization
|
||||||
comment_forms = {
|
comment_forms = {
|
||||||
org.id: RescueOrgInternalComment(instance=org) for org in rescue_orgs_to_check
|
org.id: RescueOrgInternalComment(instance=org) for org in rescue_orgs_to_comment
|
||||||
}
|
}
|
||||||
rescue_orgs_last_checked = RescueOrganization.objects.filter().order_by("-last_checked")[:10]
|
|
||||||
timeframe = timezone.now().date() - timedelta(days=14)
|
timeframe = timezone.now().date() - timedelta(days=14)
|
||||||
num_rescue_orgs_to_check = RescueOrganization.objects.filter(exclude_from_check=False).filter(
|
num_rescue_orgs_to_check = RescueOrganization.objects.filter(exclude_from_check=False).filter(
|
||||||
last_checked__lt=timeframe).count()
|
last_checked__lt=timeframe).count()
|
||||||
@@ -826,6 +829,7 @@ def rescue_organization_check(request, context=None):
|
|||||||
context["num_rescue_orgs_to_check"] = num_rescue_orgs_to_check
|
context["num_rescue_orgs_to_check"] = num_rescue_orgs_to_check
|
||||||
context["percentage_checked"] = percentage_checked
|
context["percentage_checked"] = percentage_checked
|
||||||
context["num_rescue_orgs_checked"] = num_rescue_orgs_checked
|
context["num_rescue_orgs_checked"] = num_rescue_orgs_checked
|
||||||
|
context["rescue_orgs_with_ongoing_communication"] = rescue_orgs_with_ongoing_communication
|
||||||
return render(request, 'fellchensammlung/rescue-organization-check.html', context=context)
|
return render(request, 'fellchensammlung/rescue-organization-check.html', context=context)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user