code: def get_action(self):
          
          action = self.request.get("workflow_action_id", None)
          action = self.request.get("workflow_action", action)
          if not action:
              return None
  
          # A condition in the form causes Plone to sometimes send two actions
          # This usually happens when the previous action was not managed properly
          # and the request was not able to complete, so the previous form value
          # is kept, together with the new one.
          if type(action) in (list, tuple):
              actions = list(set(action))
              if len(actions) > 0:
                  logger.warn("Multiple actions in request: {}. Fallback to '{}'"
                              .format(repr(actions), actions[-1]))
              action = actions[-1]
          return action
docs: Returns the action to be taken from the request. Returns None if no
          action is found