feat: allow search for sex
This commit is contained in:
parent
27541c6fb6
commit
a42a3fa177
@ -187,3 +187,5 @@ def _get_distances():
|
|||||||
class AdoptionNoticeSearchForm(forms.Form):
|
class AdoptionNoticeSearchForm(forms.Form):
|
||||||
location = forms.CharField(max_length=20, label=_("Stadt"))
|
location = forms.CharField(max_length=20, label=_("Stadt"))
|
||||||
max_distance = forms.ChoiceField(choices=_get_distances, label=_("Max. Distanz"))
|
max_distance = forms.ChoiceField(choices=_get_distances, label=_("Max. Distanz"))
|
||||||
|
sex = forms.ChoiceField(choices=SexChoicesWithAll, label=_("Geschlecht"), required=False,
|
||||||
|
initial=SexChoicesWithAll.ALL)
|
||||||
|
@ -16,7 +16,7 @@ from notfellchen import settings
|
|||||||
from fellchensammlung import logger
|
from fellchensammlung import logger
|
||||||
from .models import AdoptionNotice, Text, Animal, Rule, Image, Report, ModerationAction, \
|
from .models import AdoptionNotice, Text, Animal, Rule, Image, Report, ModerationAction, \
|
||||||
User, Location, AdoptionNoticeStatus, Subscriptions, CommentNotification, BaseNotification, RescueOrganization, \
|
User, Location, AdoptionNoticeStatus, Subscriptions, CommentNotification, BaseNotification, RescueOrganization, \
|
||||||
Species, Log, Timestamp, TrustLevel
|
Species, Log, Timestamp, TrustLevel, SexChoicesWithAll
|
||||||
from .forms import AdoptionNoticeForm, AdoptionNoticeFormWithDateWidget, ImageForm, ReportAdoptionNoticeForm, \
|
from .forms import AdoptionNoticeForm, AdoptionNoticeFormWithDateWidget, ImageForm, ReportAdoptionNoticeForm, \
|
||||||
CommentForm, ReportCommentForm, AnimalForm, \
|
CommentForm, ReportCommentForm, AnimalForm, \
|
||||||
AdoptionNoticeSearchForm, AnimalFormWithDateWidget, AdoptionNoticeFormWithDateWidgetAutoAnimal
|
AdoptionNoticeSearchForm, AnimalFormWithDateWidget, AdoptionNoticeFormWithDateWidgetAutoAnimal
|
||||||
@ -169,9 +169,13 @@ def animal_detail(request, animal_id):
|
|||||||
|
|
||||||
def search(request):
|
def search(request):
|
||||||
place_not_found = None
|
place_not_found = None
|
||||||
if request.method == 'POST':
|
|
||||||
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
|
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
|
||||||
active_adoptions = [adoption for adoption in latest_adoption_list if adoption.is_active]
|
active_adoptions = [adoption for adoption in latest_adoption_list if adoption.is_active]
|
||||||
|
if request.method == 'POST':
|
||||||
|
|
||||||
|
sex = request.POST.get("sex")
|
||||||
|
if sex != SexChoicesWithAll.ALL:
|
||||||
|
active_adoptions = [adoption for adoption in active_adoptions if sex in adoption.sexes]
|
||||||
|
|
||||||
search_form = AdoptionNoticeSearchForm(request.POST)
|
search_form = AdoptionNoticeSearchForm(request.POST)
|
||||||
max_distance = int(request.POST.get('max_distance'))
|
max_distance = int(request.POST.get('max_distance'))
|
||||||
@ -188,8 +192,6 @@ def search(request):
|
|||||||
context = {"adoption_notices": adoption_notices_in_distance, "search_form": search_form,
|
context = {"adoption_notices": adoption_notices_in_distance, "search_form": search_form,
|
||||||
"place_not_found": place_not_found}
|
"place_not_found": place_not_found}
|
||||||
else:
|
else:
|
||||||
latest_adoption_list = AdoptionNotice.objects.order_by("-created_at")
|
|
||||||
active_adoptions = [adoption for adoption in latest_adoption_list if adoption.is_active]
|
|
||||||
search_form = AdoptionNoticeSearchForm()
|
search_form = AdoptionNoticeSearchForm()
|
||||||
context = {"adoption_notices": active_adoptions, "search_form": search_form}
|
context = {"adoption_notices": active_adoptions, "search_form": search_form}
|
||||||
return render(request, 'fellchensammlung/search.html', context=context)
|
return render(request, 'fellchensammlung/search.html', context=context)
|
||||||
|
Loading…
Reference in New Issue
Block a user