def update(self): super(AcknowledgementAddedNotification, self).update() context = self.context object = removeSecurityProxy(context.object) try: principal = getPrincipal(context.principal) except PrincipalLookupError: principal = '' profile = IPersonalProfile(principal, None) datetime = '' if context.date: datetime = context.date.strftime('%Y-%m-%d %H:%M UTC') self.info = { 'title': object.title, 'user': getattr(profile, 'title', 'NO NAME'), 'datetime': datetime, 'url': '%s/' % absoluteURL( object, self.request).replace('/++skin++JSONRPC.acknowledgement', '') }
def getUser(self, uid): principal = getPrincipal(uid) try: profile = IPersonalProfile(principal) return dict(title=profile.title, url=profile.space is not None and u'%s/' % absoluteURL(profile.space, self.request)) except TypeError: return dict(title='Deleted Member', url='#')
def update(self): context = self.context request = self.request principal = context.principal if principal.id != request.principal.id: profile = IPersonalProfile(principal) self.principal_title = profile.title results = getUtility(IAcknowledgements).search( principal={'any_of': (context.principalId,)}) self.batch = Batch( results, size=20, prefix='acknowledgements', context=context, request=request)
def prepare(self): results = getUtility(IAcknowledgements).search(object=self.context) acknowledged = [i.principal for i in results] allusers = searchPrincipals( type=('user',), principalSubscribed={'any_of': (True,)}) members = [] bannedusers = getUtility(IBanPrincipalConfiglet) rolemanager = IPrincipalRoleManager(getSite()) checkroles = ['zope.Anonymous', ] portal_roles = getUtility(IPortalRoles) if 'site.member' in portal_roles: checkroles.append(portal_roles['site.member'].id) for pid in [i.id for i in allusers if i.id not in acknowledged]: # Note: skip banned users if pid in bannedusers.banned: continue try: principal = getPrincipal(pid) except PrincipalLookupError: continue # Note: skip users with Deny roles nextitem = False for role, setting in rolemanager.getRolesForPrincipal(pid): if role == 'zope.Manager': continue if role in checkroles and setting == Deny: nextitem = True break if nextitem: continue profile = IPersonalProfile(principal, None) if profile is None: continue members.append(profile) return self.export(members)
def prepare(self): results = getUtility(IAcknowledgements).search(object=self.context) if len(results) > 0: members = [] # localtz = tz.tzlocal() bannedusers = getUtility(IBanPrincipalConfiglet) rolemanager = IPrincipalRoleManager(getSite()) checkroles = ['zope.Anonymous', ] portal_roles = getUtility(IPortalRoles) if 'site.member' in portal_roles: checkroles.append(portal_roles['site.member'].id) for pid, ack_date in [(i.principal, i.date) for i in results]: # Note: skip banned users if pid in bannedusers.banned: continue try: principal = getPrincipal(pid) except PrincipalLookupError: continue # Note: skip users with Deny roles nextitem = False for role, setting in rolemanager.getRolesForPrincipal(pid): if role == 'zope.Manager': continue if role in checkroles and setting == Deny: nextitem = True break if nextitem: continue profile = IPersonalProfile(principal, None) if profile is None: continue members.append( (profile, ack_date.strftime('%Y-%m-%d %H:%M UTC'))) # NOTE: convert date to local time zone # .replace(tzinfo=utc).astimezone(localtz).strftime('%Y-%m-%d %H:%M %Z') return self.export(members)