old_contents: from django.db import models
  
  from symposion.proposals.models import ProposalBase
  
  
  class ProposalCategory(models.Model):
  
      name = models.CharField(max_length=100)
      slug = models.SlugField()
      
      def __unicode__(self):
          return self.name
      
      class Meta:
          verbose_name = "proposal category"
          verbose_name_plural = "proposal categories"
  
  
  class Proposal(ProposalBase):
      
      AUDIENCE_LEVEL_NOVICE = 1
      AUDIENCE_LEVEL_EXPERIENCED = 2
      AUDIENCE_LEVEL_INTERMEDIATE = 3
      
      AUDIENCE_LEVELS = [
          (AUDIENCE_LEVEL_NOVICE, "Novice"),
          (AUDIENCE_LEVEL_INTERMEDIATE, "Intermediate"),
          (AUDIENCE_LEVEL_EXPERIENCED, "Experienced"),
      ]
  
      category = models.ForeignKey(ProposalCategory)
      audience_level = models.IntegerField(choices=AUDIENCE_LEVELS)
      
      recording_release = models.BooleanField(
          default=True,
          help_text="By submitting your talk proposal, you agree to give permission to the conference organizers to record, edit, and release audio and/or video of your presentation. If you do not agree to this, please uncheck this box."
      )
      
      class Meta:
          abstract = True
  
  
  class TalkProposal(Proposal):
      class Meta:
          verbose_name = "talk proposal"
  
  
  class TutorialProposal(Proposal):
      class Meta:
          verbose_name = "tutorial proposal"
  
  
  class PosterProposal(Proposal):
      class Meta:
          verbose_name = "poster proposal"
  
new_contents: from django.db import models
  
  from symposion.proposals.models import ProposalBase
  
  
  class Proposal(ProposalBase):
      
      AUDIENCE_LEVEL_NOVICE = 1
      AUDIENCE_LEVEL_EXPERIENCED = 2
      AUDIENCE_LEVEL_INTERMEDIATE = 3
      
      AUDIENCE_LEVELS = [
          (AUDIENCE_LEVEL_NOVICE, "Novice"),
          (AUDIENCE_LEVEL_INTERMEDIATE, "Intermediate"),
          (AUDIENCE_LEVEL_EXPERIENCED, "Experienced"),
      ]
      
      audience_level = models.IntegerField(choices=AUDIENCE_LEVELS)
      
      recording_release = models.BooleanField(
          default=True,
          help_text="By submitting your talk proposal, you agree to give permission to the conference organizers to record, edit, and release audio and/or video of your presentation. If you do not agree to this, please uncheck this box."
      )
      
      class Meta:
          abstract = True
  
  
  class TalkProposal(Proposal):
      class Meta:
          verbose_name = "talk proposal"
  
  
  class TutorialProposal(Proposal):
      class Meta:
          verbose_name = "tutorial proposal"
  
  
  class PosterProposal(Proposal):
      class Meta:
          verbose_name = "poster proposal"
  
subject: simplify example proposal models