from django.utils.translation import ugettext_lazy as _

from misago.core import forms
from misago.core.validators import validate_sluggable
from misago.forums.forms import ForumsMultipleChoiceField

from misago.threads.models import Prefix


class PrefixForm(forms.ModelForm):
    name = forms.CharField(
        label=_("Prefix name"), validators=[validate_sluggable()])
    css_class = forms.CharField(
        label=_("CSS class"), required=False,
        help_text=_("Optional CSS clas used to style this prefix."))
    forums = ForumsMultipleChoiceField(
        label=_('Forums'), required=False,
        widget=forms.CheckboxSelectMultiple(),
        help_text=_('Select forums this prefix will be available in.'))

    class Meta:
        model = Prefix
        fields = ['name', 'css_class', 'forums']

    def clean_name(self):
        data = self.cleaned_data['name']
        self.instance.set_name(data)
        return data