from django import forms

from .models import Contrib


ORIENTATIONS = (
    ('N', 'Nord'),
    ('NO', 'Nord-Ouest'),
    ('O', 'Ouest'),
    ('SO', 'Sud-Ouest'),
    ('S', 'Sud'),
    ('SE', 'Sud-Est'),
    ('E', 'Est'),
    ('NE', 'Nord-Est'),
)


class PublicContribForm(forms.ModelForm):
    class Meta:
        model = Contrib

        fields = [
            'name', 'contrib_type',
            'latitude', 'longitude',
            'phone', 'email',
            'comment',
            'access_type',
            'connect_local', 'connect_internet',
            'bandwidth', 'share_part',
            'floor', 'floor_total', 'orientations', 'roof',
            'comment',
            'privacy_name', 'privacy_email', 'privacy_coordinates',
            'privacy_place_details', 'privacy_comment',
        ]
        widgets = {
            'contrib_type': forms.RadioSelect,
            'latitude': forms.HiddenInput,
            'longitude': forms.HiddenInput,
            'connect_local': forms.CheckboxInput,
            'connect_internet': forms.CheckboxInput,
            'comment': forms.Textarea({'rows': 3}),
        }
    # Widget rendering is managed by hand in template for orientions.
    orientations = forms.MultipleChoiceField(choices=ORIENTATIONS)