feat: Add subscriptions to admin site

This commit is contained in:
moanos [he/him] 2024-09-29 23:35:18 +02:00
parent 2d20423736
commit a28b6ce4b3
4 changed files with 9 additions and 5 deletions

View File

@ -5,7 +5,7 @@ from django.utils.html import format_html
from .models import User, Language, Text, ReportComment, ReportAdoptionNotice
from .models import Animal, Species, RescueOrganization, AdoptionNotice, Location, Rule, Image, ModerationAction, \
Comment, Report, Announcement, AdoptionNoticeStatus, User
Comment, Report, Announcement, AdoptionNoticeStatus, User, Subscriptions
class StatusInline(admin.StackedInline):
@ -61,3 +61,4 @@ admin.site.register(Language)
admin.site.register(Text)
admin.site.register(Announcement)
admin.site.register(AdoptionNoticeStatus)
admin.site.register(Subscriptions)

View File

@ -597,3 +597,6 @@ class Subscriptions(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE, verbose_name=_('AdoptionNotice'))
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.owner} - { self.adoption_notice }"

View File

@ -8,7 +8,7 @@
{{ search_form.as_p }}
<input class="btn" type="submit" value="Search" name="search">
</form>
{% if not place_found %}
{% if place_not_found %}
<p class="error">{% translate "Ort nicht gefunden" %}</p>
{% endif %}
{% include "fellchensammlung/lists/list-adoption-notices.html" %}

View File

@ -138,6 +138,7 @@ def animal_detail(request, animal_id):
def search(request):
place_not_found = None
if request.method == 'POST':
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
active_adoptions = [adoption for adoption in latest_adoption_list if adoption.is_active]
@ -149,13 +150,12 @@ def search(request):
geo_api = GeoAPI()
search_position = geo_api.get_coordinates_from_query(request.POST['postcode'])
if search_position is None:
place_found = False
place_not_found = True
adoption_notices_in_distance = active_adoptions
else:
place_found = True
adoption_notices_in_distance = [a for a in active_adoptions if a.in_distance(search_position, max_distance)]
context = {"adoption_notices": adoption_notices_in_distance, "search_form": search_form, "place_found": place_found}
context = {"adoption_notices": adoption_notices_in_distance, "search_form": search_form, "place_not_found": place_not_found}
else:
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
active_adoptions = [adoption for adoption in latest_adoption_list if adoption.is_active]