code: def onPlanParticipation(
          self,
          mid=None,
          plan=None,
          take_part=None,
          author_id=None,
          thread_id=None,
          thread_type=None,
          ts=None,
          metadata=None,
          msg=None,
      ):
          
          if take_part:
              log.info(
                  "{} will take part in {} in {} ({})".format(
                      author_id, plan, thread_id, thread_type.name
                  )
              )
          else:
              log.info(
                  "{} won't take part in {} in {} ({})".format(
                      author_id, plan, thread_id, thread_type.name
                  )
              )
docs: Called when the client is listening, and somebody takes part in a plan or not
  
          :param mid: The action ID
          :param plan: Plan
          :param take_part: Whether the person takes part in the plan or not
          :param author_id: The ID of the person who will participate in the plan or not
          :param thread_id: Thread ID that the action was sent to. See :ref:`intro_threads`
          :param thread_type: Type of thread that the action was sent to. See :ref:`intro_threads`
          :param ts: A timestamp of the action
          :param metadata: Extra metadata about the action
          :param msg: A full set of the data recieved
          :type plan: models.Plan
          :type take_part: bool
          :type thread_type: models.ThreadType