Skip to content
Snippets Groups Projects
forms.py 2.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django import forms
    
    from .models import Setting, TwitchColor
    
    
    class BaseForm(forms.ModelForm):
        def __init__(self, *args, **kwargs):
            super(BaseForm, self).__init__(*args, **kwargs)
            for field_name, field in self.fields.items():
                if type(field) is forms.fields.BooleanField:
                    field.widget.attrs['class'] = ' w3-check '
                    field.label_suffix = ""
                else:
                    field.widget.attrs['class'] = ' w3-input '
                field.widget.attrs['placeholder'] = field.label
    
    
    class WusstestDuSchonSettingsForm(forms.Form):
        prefix_field = forms.CharField(max_length=50, initial=Setting.objects.get(key="WusstestDuSchonPrefix").value,
                                       label="Präfix")
        loop_field = forms.IntegerField(initial=Setting.objects.get(key="WusstestDuSchonLoop").value,
                                        label="Pause (in Minuten)")
        color_field = forms.ChoiceField(choices=[(color.color, color.display_name) for color in TwitchColor.objects.all()],
                                        label="Text Farbe")
    
        def __init__(self, *args, **kwargs):
            super(WusstestDuSchonSettingsForm, self).__init__(*args, **kwargs)
    
            self.fields["prefix_field"].initial = Setting.objects.get(key="WusstestDuSchonPrefix").value
            self.fields["loop_field"].initial = Setting.objects.get(key="WusstestDuSchonLoop").value
            self.fields["color_field"].initial = TwitchColor.objects.get(
                twitch_name=Setting.objects.get(key="WusstestDuSchonColor").value).color
    
            for field_name, field in self.fields.items():
                if type(field) is forms.fields.BooleanField:
                    field.widget.attrs['class'] = ' w3-check '
                    field.label_suffix = ""
                else:
                    field.widget.attrs['class'] = ' w3-input '
                field.widget.attrs['placeholder'] = field.label
    
        def save(self):
            prefix = Setting.objects.get(key="WusstestDuSchonPrefix")
            prefix.value = self.cleaned_data["prefix_field"]
            prefix.save()
    
            loop = Setting.objects.get(key="WusstestDuSchonLoop")
            loop.value = self.cleaned_data["loop_field"]
            loop.save()
    
            color = Setting.objects.get(key="WusstestDuSchonColor")
            color.value = TwitchColor.objects.get(color=self.cleaned_data["color_field"]).twitch_name
            color.save()