code: def guard_handler(instance, transition_id):
      
      if not instance:
          return True
      clazz_name = instance.portal_type
      # Inspect if bika.lims.workflow.<clazzname>.<guards> module exists
      wf_module = _load_wf_module('{0}.guards'.format(clazz_name.lower()))
      if not wf_module:
          return True
  
      # Inspect if guard_<transition_id> function exists in the above module
      key = 'guard_{0}'.format(transition_id)
      guard = getattr(wf_module, key, False)
      if not guard:
          return True
  
      #logger.info('{0}.guards.{1}'.format(clazz_name.lower(), key))
      return guard(instance)
docs: Generic workflow guard handler that returns true if the transition_id
      passed in can be performed to the instance passed in.
  
      This function is called automatically by a Script (Python) located at
      bika/lims/skins/guard_handler.py, which in turn is fired by Zope when an
      expression like "python:here.guard_handler('<transition_id>')" is set to
      any given guard (used by default in all bika's DC Workflow guards).
  
      Walks through bika.lims.workflow.<obj_type>.guards and looks for a function
      that matches with 'guard_<transition_id>'. If found, calls the function and
      returns its value (true or false). If not found, returns True by default.
  
      :param instance: the object for which the transition_id has to be evaluated
      :param transition_id: the id of the transition
      :type instance: ATContentType
      :type transition_id: string
      :return: true if the transition can be performed to the passed in instance
      :rtype: bool