Files @ db95cb618099
Branch filter:

Location: symposion_app/symposion/speakers/forms.py

Luke Hatcher
add utils
from django import forms

from django.contrib import messages

from markitup.widgets import MarkItUpWidget

from symposion.speakers.models import Speaker


class SpeakerForm(forms.ModelForm):
    
    sessions_preference = forms.ChoiceField(
        widget=forms.RadioSelect(),
        choices=Speaker.SESSION_COUNT_CHOICES,
        required=False,
        help_text="If you've submitted multiple proposals, please let us know if you only want to give one or if you'd like to give two talks."
    )
    
    class Meta:
        model = Speaker
        fields = [
            "name",
            "biography",
            "photo",
            "twitter_username",
            "sessions_preference"
        ]
        widgets = {
            "biography": MarkItUpWidget(),
        }
    
    def clean_twitter_username(self):
        value = self.cleaned_data["twitter_username"]
        if value.startswith("@"):
            value = value[1:]
        return value
    
    def clean_sessions_preference(self):
        value = self.cleaned_data["sessions_preference"]
        if not value:
            return None
        return int(value)


# class SignupForm(PinaxSignupForm):
    
#     def save(self, speaker, request=None):
#         # don't assume a username is available. it is a common removal if
#         # site developer wants to use email authentication.
#         username = self.cleaned_data.get("username")
#         email = self.cleaned_data["email"]
#         new_user = self.create_user(username)
#         if speaker.invite_email == new_user.email:
#             # already verified so can just create
#             EmailAddress(user=new_user, email=email, verified=True, primary=True).save()
#         else:
#             if request:
#                 messages.info(request, u"Confirmation email sent to %(email)s" % {"email": email})
#             EmailAddress.objects.add_email(new_user, email)
#             new_user.is_active = False
#             new_user.save()
#         self.after_signup(new_user)
#         return new_user