docs: def _sign_button_press(self, *args):
          """Validate input from ent_id, then sign in to the Timesheet."""
          user_id = self.ent_id.get().strip()
  
          try:
              status = controller.sign(user_id)
  
          # ERROR: User type is unknown (!student and !tutor)
          except ValueError as e:
              logger.error(e, exc_info=True)
              messagebox.showerror(message=e)
  
          # ERROR: User is unregistered
          except controller.UnregisteredUser as e:
              logger.debug(e)
              messagebox.showwarning(message=e)
  
          # User needs to select type
          except controller.AmbiguousUserType as e:
              logger.debug(e)
              u = TkUserTypeSelectionDialog(
                      parent=self.root,
                      title='User Type Selection',
                      entry_to_clear=self.ent_id)
              if u.result:
                  logger.debug('User type selected: {}'.format(u.result))
                  status = controller.sign(user_id, user_type=u.result)
                  self._show_feedback_label(
                      'Signed {}: {} ({})'.format(
                          status.in_or_out, status.user_name, status.user_type
                      )
                  )
  
          # User has signed in or out normally
          else:
              sign_choice_confirmed = self._show_confirm_window(
                  'Sign {}: {}?'.format(status.in_or_out, status.user_name),
                  'Confirm Sign-{}'.format(status.in_or_out)
              )
  
              logger.debug('Sign {} confirmed: {}'.format(
                  status.in_or_out, sign_choice_confirmed
              ))
  
              if not sign_choice_confirmed:
                  # Undo sign-in or sign-out
                  if status.in_or_out == 'in':
                      controller.undo_sign_in(status.entry)
                  elif status.in_or_out == 'out':
                      controller.undo_sign_out(status.entry)
              else:
                  self._show_feedback_label(
                      'Signed {}: {}'.format(status.in_or_out, status.user_name)
                  )
  
          finally:
              self._set_signed_in()
              self.ent_id.delete(0, 'end')
              self.ent_id.focus()