# Path: pycon/models.py
# class PyConProposalCategory(models.Model):
# 
#     name = models.CharField(max_length=100)
#     slug = models.SlugField()
#     
#     def __unicode__(self):
#         return self.name
#     
#     class Meta:
#         verbose_name = "PyCon proposal category"
#         verbose_name_plural = "PyCon proposal categories"
# 
# class PyConTalkProposal(PyConProposal):
#     
#     DURATION_CHOICES = [
#         (0, "No preference"),
#         (1, "I prefer a 30 minute slot"),
#         (2, "I prefer a 45 minute slot"),
#     ]
#     
#     extreme = models.BooleanField(
#         default=False,
#         help_text="'Extreme' talks are advanced talks with little or no introductory material. See <a href='http://us.pycon.org/2013/speaker/extreme/' target='_blank'>Extreme Talks</a> for details."
#     )
#     duration = models.IntegerField(choices=DURATION_CHOICES)
#     
#     class Meta:
#         verbose_name = "PyCon talk proposal"
# 
# class PyConTutorialProposal(PyConProposal):
#     class Meta:
#         verbose_name = "PyCon tutorial proposal"
# 
# class PyConPosterProposal(PyConProposal):
#     class Meta:
#         verbose_name = "PyCon poster proposal"
# 
# Path: pycon/models.py
# class PyConSponsorTutorialProposal(ProposalBase):
#     class Meta:
#         verbose_name = "PyCon Sponsor Tutorial proposal"


from django import forms
from markitup.widgets import MarkItUpWidget
from pycon.models import PyConProposalCategory, PyConTalkProposal, PyConTutorialProposal, PyConPosterProposal
from pycon.models import PyConSponsorTutorialProposal
        if len(value) > 400:
            raise forms.ValidationError(
                u"The description must be less than 400 characters"
            )
        return value


class PyConTalkProposalForm(PyConProposalForm):

    class Meta:
        model = PyConTalkProposal
        fields = [
            "title",
            "category",
            "audience_level",
            "extreme",
            "duration",
            "description",
            "abstract",
            "additional_notes",
            "recording_release",
        ]
        widgets = {
            "abstract": MarkItUpWidget(),
            "additional_notes": MarkItUpWidget(),
        }


class PyConTutorialProposalForm(PyConProposalForm):


# Path: pycon/models.py
# class PyConProposalCategory(models.Model):
# 
#     name = models.CharField(max_length=100)
#     slug = models.SlugField()
#     
#     def __unicode__(self):
#         return self.name
#     
#     class Meta:
#         verbose_name = "PyCon proposal category"
#         verbose_name_plural = "PyCon proposal categories"
# 
# class PyConTalkProposal(PyConProposal):
#     
#     DURATION_CHOICES = [
#         (0, "No preference"),
#         (1, "I prefer a 30 minute slot"),
#         (2, "I prefer a 45 minute slot"),
#     ]
#     
#     extreme = models.BooleanField(
#         default=False,
#         help_text="'Extreme' talks are advanced talks with little or no introductory material. See <a href='http://us.pycon.org/2013/speaker/extreme/' target='_blank'>Extreme Talks</a> for details."
#     )
#     duration = models.IntegerField(choices=DURATION_CHOICES)
#     
#     class Meta:
#         verbose_name = "PyCon talk proposal"
# 
# class PyConTutorialProposal(PyConProposal):
#     class Meta:
#         verbose_name = "PyCon tutorial proposal"
# 
# class PyConPosterProposal(PyConProposal):
#     class Meta:
#         verbose_name = "PyCon poster proposal"
# 
# Path: pycon/models.py
# class PyConSponsorTutorialProposal(ProposalBase):
#     class Meta:
#         verbose_name = "PyCon Sponsor Tutorial proposal"


# Path: pycon/forms.py
from django import forms
from markitup.widgets import MarkItUpWidget
from pycon.models import PyConProposalCategory, PyConTalkProposal, PyConTutorialProposal, PyConPosterProposal
from pycon.models import PyConSponsorTutorialProposal

        if len(value) > 400:
            raise forms.ValidationError(
                u"The description must be less than 400 characters"
            )
        return value


class PyConTalkProposalForm(PyConProposalForm):

    class Meta:
        model = PyConTalkProposal
        fields = [
            "title",
            "category",
            "audience_level",
            "extreme",
            "duration",
            "description",
            "abstract",
            "additional_notes",
            "recording_release",
        ]
        widgets = {
            "abstract": MarkItUpWidget(),
            "additional_notes": MarkItUpWidget(),
        }


class PyConTutorialProposalForm(PyConProposalForm):


    class Meta: