Source code for ploneintranet.messaging.browser.viewlets
# -*- coding: utf-8 -*-
from plone import api
from plone.app.layout.viewlets import common as base
from ploneintranet.layout.memoize.view import memoize
from ploneintranet.layout.memoize.view import memoize_contextless
from ploneintranet import api as pi_api
from ploneintranet.layout.app import apps_container_id
[docs]class MessagesViewlet(base.ViewletBase):
"""Display unread messages counter in topbar
"""
[docs] @memoize
def unread(self):
try:
return pi_api.messaging.get_inbox().new_messages_count
except KeyError:
# not even an inbox
return 0
[docs] def digits(self):
return len(str(self.unread()))
@property
@memoize_contextless
def app_app_url(self):
portal = api.portal.get()
apps_container = getattr(portal, apps_container_id)
return apps_container.messages.app_url()