from django import forms from django.contrib.auth.forms import UserCreationForm from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from friendly_captcha.fields import FrcCaptchaField from .models import Offer, PflaenzliUser, Wish class CreateOfferForm(forms.ModelForm): class Meta: model = Offer fields = ['title', 'description', 'zipcode', 'image'] class RegistrationForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = PflaenzliUser fields = UserCreationForm.Meta.fields + ('email', 'zipcode',) captcha = FrcCaptchaField() class FilterForm(forms.Form): text = forms.CharField(max_length=128, required=False, label=_("Search")) zipcode = forms.CharField(max_length=4, required=False, label=_("ZIP code")) distance = forms.IntegerField(required=False, label=_("Distance")) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # Set the translated labels with the selected language and icons for each form field self.fields['text'].label = mark_safe( f' {self.fields["text"].label}' ) self.fields['zipcode'].label = mark_safe( f' {self.fields["zipcode"].label}' ) self.fields['distance'].label = mark_safe( f' {self.fields["distance"].label} (km)' ) class WishForm(forms.ModelForm): class Meta: model = Wish fields = ['title']