docs: def clean(self):
          """
          If we're not editing the active entry, ensure that this entry doesn't
          conflict with or come after the active entry.
          """
          active = utils.get_active_entry(self.user)
          start_time = self.cleaned_data.get('start_time', None)
          end_time = self.cleaned_data.get('end_time', None)
  
          if active and active.pk != self.instance.pk:
              if (start_time and start_time > active.start_time) or \
                      (end_time and end_time > active.start_time):
                  raise forms.ValidationError(
                      'The start time or end time conflict with the active '
                      'entry: {activity} on {project} starting at '
                      '{start_time}.'.format(
                          project=active.project,
                          activity=active.activity,
                          start_time=active.start_time.strftime('%H:%M:%S'),
                      ))
  
          month_start = utils.get_month_start(start_time)
          next_month = month_start + relativedelta(months=1)
          entries = self.instance.user.timepiece_entries.filter(
              Q(status=Entry.APPROVED) | Q(status=Entry.INVOICED),
              start_time__gte=month_start,
              end_time__lt=next_month
          )
          entry = self.instance
  
          if not self.acting_user.is_superuser:
              if (entries.exists() and not entry.id or entry.id and entry.status == Entry.INVOICED):
                  message = 'You cannot add/edit entries after a timesheet has been ' \
                      'approved or invoiced. Please correct the start and end times.'
                  raise forms.ValidationError(message)
  
          return self.cleaned_data