pflaenz.li/pflaenzli/pflaenzli/forms.py

48 lines
1.5 KiB
Python
Raw Normal View History

2023-02-19 23:56:05 +01:00
from django import forms
2023-04-05 23:29:30 +02:00
from django.contrib.auth.forms import UserCreationForm
2023-04-15 13:16:40 +02:00
from django.utils.safestring import mark_safe
2023-05-16 23:36:40 +02:00
from django.utils.translation import gettext_lazy as _
2023-05-17 15:35:06 +02:00
from friendly_captcha.fields import FrcCaptchaField
2023-02-19 23:56:05 +01:00
2023-04-16 00:43:56 +02:00
from .models import Offer, PflaenzliUser, Wish
2023-02-19 23:56:05 +01:00
class CreateOfferForm(forms.ModelForm):
class Meta:
model = Offer
fields = ['title', 'description', 'zipcode', 'image']
2023-04-05 23:29:30 +02:00
class RegistrationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = PflaenzliUser
2023-04-09 12:38:05 +02:00
fields = UserCreationForm.Meta.fields + ('email', 'zipcode',)
2023-04-05 23:29:30 +02:00
captcha = FrcCaptchaField()
2023-04-15 13:16:40 +02:00
class FilterForm(forms.Form):
2023-05-17 15:35:33 +02:00
text = forms.CharField(max_length=128, required=False)
zipcode = forms.CharField(max_length=4, required=False)
distance = forms.IntegerField(required=False)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Set the translated labels by session language with icons for each form field
self.fields['text'].label = mark_safe(
f'<i class="fa-solid fa-magnifying-glass"></i> {_("Search")}'
)
self.fields['zipcode'].label = mark_safe(
f'<i class="fa-solid fa-location-dot"></i> {_("ZIP code")}'
)
self.fields['distance'].label = mark_safe(
f'<i class="fa-solid fa-signs-post"></i> {_("Distance")} (km)'
)
2023-04-16 00:43:56 +02:00
class WishForm(forms.ModelForm):
class Meta:
model = Wish
fields = ['title']