code: def hide_samples(portal):
      
      logger.info("Removing Samples from navbar ...")
      if "samples" in portal:
          portal.manage_delObjects(["samples"])
  
      def remove_samples_action(content_type):
          type_info = content_type.getTypeInfo()
          actions = map(lambda action: action.id, type_info._actions)
          for index, action in enumerate(actions, start=0):
              if action == 'samples':
                  type_info.deleteActions([index])
                  break
  
      def remove_actions_from_sample(sample):
          type_info = sample.getTypeInfo()
          idxs = [index for index, value in enumerate(type_info._actions)]
          type_info.deleteActions(idxs)
  
      logger.info("Removing Samples action view from inside Clients ...")
      for client in portal.clients.objectValues("Client"):
          remove_samples_action(client)
  
      logger.info("Removing Samples action view from inside Batches ...")
      for batch in portal.batches.objectValues("Batch"):
          remove_samples_action(batch)
  
      logger.info("Removing actions from inside Samples ...")
      for sample in api.search(dict(portal_type="Sample"), "bika_catalog"):
          remove_actions_from_sample(api.get_object(sample))
      commit_transaction(portal)
docs: Removes samples views from everywhere, related indexes, etc.