Source code for ploneintranet.api.microblog

# -*- coding: utf-8 -*-
from ploneintranet.microblog.interfaces import IMicroblogContext
from ploneintranet.microblog.interfaces import IMicroblogTool
from ploneintranet.network.interfaces import INetworkTool
from zope.component import queryUtility
from zope.globalrequest import getRequest

import logging
import statusupdate  # noqa


logger = logging.getLogger(__name__)

event_keys = (
    "ploneintranet.microblog.content_created",
    "ploneintranet.microblog.content_statechanged",
)


[docs]def get_microblog(): """ Get the microblog utility :returns: microblog utility :rtype: object """ return queryUtility(IMicroblogTool)
[docs]def get_network(): """ Get the network utility :returns: network utility :rtype: object """ return queryUtility(INetworkTool)
[docs]def get_microblog_context(context,): """Get the microblog context :param context: [required] The context for which we want the microblog context. Can be None. :type context: object :returns: microblog context :rtype: object :raises: MissingParameterError InvalidParameterError """ if context is None: return None # context is part of context.aq_chain # but unittests do not always wrap acquisition if IMicroblogContext.providedBy(context): return context try: chain = context.aq_inner.aq_chain except AttributeError: return None for item in chain: if IMicroblogContext.providedBy(item): return item else: return None
[docs]def events_disable(request=None): """Temporarily disable event-driven statusupdate creation for this request. :param request: The request for which events are to be disabled :type request: Request """ if not request: request = getRequest() if not request: logger.error("No request available, cannot toggle event handling.") return for event_key in event_keys: request[event_key] = False
[docs]def events_enable(request=None): """Re-enable event-driven statusupdate creation for this request. This only makes sense if you explicitly disabled statusupdate creation, since it is enabled by default. :param request: The request for which events were disabled :type request: Request """ if not request: request = getRequest() if not request: logger.error("No request available, cannot toggle event handling.") return for event_key in event_keys: request[event_key] = True