code: def netHours(self):
          '''
          For regular event staff, this is the net hours worked for financial purposes.
          For Instructors, netHours is caclulated net of any substitutes.
          '''
          if self.specifiedHours is not None:
              return self.specifiedHours
          elif self.category in [getConstant('general__eventStaffCategoryAssistant'),getConstant('general__eventStaffCategoryInstructor')]:
              return self.event.duration - sum([sub.netHours for sub in self.replacementFor.all()])
          else:
              return sum([x.duration for x in self.occurrences.filter(cancelled=False)]f netHours(self):
          '''
          For regular event staff, this is the net hours worked for financial purposes.
          For Instructors, netHours is caclulated net of any substitutes.
          '''
          if self.specifiedHours is not None:
              return self.specifiedHours
          elif self.category in [getConstant('general__eventStaffCategoryAssistant'),getConstant('general__eventStaffCategoryInstructor')]:
              return self.event.duration - sum([sub.netHours for sub in self.replacementFor.all()])
          else:
              return sum([x.duration for x in self.occurrences.filter(cancelled=False)])
docs: For regular event staff, this is the net hours worked for financial purposes.
          For Instructors, netHours is caclulated net of any substitutes.