def update(self): context = self.context request = self.request if 'form.join' in request: context.members.join() member = context.members[request.principal.id] if member.approved: IStatusMessage(request).add(_('You have been joined to group.')) else: IStatusMessage(request).add( _('Your membership has been submitted. Waiting manager approvement.')) self.redirect('./') if 'form.cancel' in request: self.redirect('./')
def getMemberInfo(self, id): member = self.context[id] try: principal = self.auth.getPrincipal(member.__name__) except PrincipalLookupError: principal = None try: profile = IPersonalProfile(principal) except: return image = profile.profileImage if image and IImage.providedBy(image): w, h = image.width, image.height if w > 128: xscale = 128.0/w else: xscale = 1.0 if h > 128: yscale = 120.0/h else: yscale = 1.0 scale = xscale < yscale and xscale or yscale image = (int(round(w*scale)), int(round(h*scale))) default = False else: image = (128, 97) default = True info = { 'id': id, 'title': getattr(profile, 'title', _(u'Unknown')), 'description': getattr(principal, 'description', u''), 'manager': u'', 'personalspace': u'', 'joined': member.joined, 'imagex': image[0], 'imagey': image[1], 'default': default, 'photo': profile.photoUrl(self.request)} space = profile.space if space is not None: info['manager'] = space.title info['personalspace'] = absoluteURL(space, self.request) return info
def selectButtonHandler(self, action): data, errors = self.extractData() context = self.context request = self.request if errors: IStatusMessage(request).add(self.formErrorsMessage, 'error') return uids = data['principals'] if not uids: IStatusMessage(self.request).add( _('Please select user(s).'), 'warning') else: for uid in data['principals']: context.joinPrincipal(uid) IStatusMessage(request).add(u'Users have been added to group.') self.redirect('.')
def update(self): request = self.request context = self.context owner = IOwnership(self.context.__parent__).owner if owner is None: self.owner = {'title': _('Unknown principal'), 'desc': ''} else: self.owner = {'title': owner.title, 'desc': owner.description} pid = request.principal.id ids = request.get('table.members.ids', ()) members = self.context #if pid in ids: # IStatusMessage(request).add(_(u"You can't change your own membership")) if 'members.buttons.member' in request: if not ids: IStatusMessage(request).add( _(u'Please select members.'), 'warning') else: changed = False for id in ids: members.toMember(id) changed = True if changed: IStatusMessage(request).add(_(u'Role has been changed.')) if 'members.buttons.manager' in request: if not ids: IStatusMessage(request).add( _(u'Please select members.'), 'warning') else: changed = False for id in ids: members.toManager(id) changed = True if changed: IStatusMessage(request).add(_(u'Role has been changed.')) if 'members.buttons.remove' in request: if not ids: IStatusMessage(request).add( _(u'Please select members.'), 'warning') else: changed = False for id in ids: if id in members: del members[id] changed = True if changed: IStatusMessage(request).add(_(u'Members have been removed.')) if 'members.buttons.approve' in request: if not ids: IStatusMessage(request).add( _(u'Please select members.'), 'warning') else: changed = False for id in ids: members.approve(id) changed = True if changed: IStatusMessage(request).add(_(u'Members have been updated.')) super(ManageMembersForm, self).update()
def query(self, default=None): if self.content.approved: return _('Approved') else: return _('Not yet approved')
def query(self, default=None): members = self.content.__parent__ if self.content.__name__ in members.managers: return _('Manager') else: return _('Member')