docs: def clean(self):
          '''
          This code prevents multiple individuals from substituting for the
          same class and class teacher.  It also prevents an individual from
          substituting for a class in which they are a teacher.
          '''
          super(SubstituteReportingForm,self).clean()
  
          occurrences = self.cleaned_data.get('occurrences',[])
          staffMember = self.cleaned_data.get('staffMember')
          replacementFor = self.cleaned_data.get('replacedStaffMember',[])
          event = self.cleaned_data.get('event')
  
          for occ in occurrences:
              for this_sub in occ.eventstaffmember_set.all():
                  if this_sub.replacedStaffMember == replacementFor:
                      self.add_error('occurrences',ValidationError(_('One or more classes you have selected already has a substitute teacher for that class.'),code='invalid'))
  
          if event and staffMember:
              if staffMember in [x.staffMember for x in event.eventstaffmember_set.filter(category__in=[getConstant('general__eventStaffCategoryAssistant'),getConstant('general__eventStaffCategoryInstructor')])]:
                  self.add_error('event',ValidationError(_('You cannot substitute teach for a class in which you were an instructor.'),code='invalid'))