Example #1
0
    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('./')
Example #2
0
    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
Example #3
0
 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('.')
Example #4
0
    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()
Example #5
0
 def query(self, default=None):
     if self.content.approved:
         return _('Approved')
     else:
         return _('Not yet approved')
Example #6
0
 def query(self, default=None):
     members = self.content.__parent__
     if self.content.__name__ in members.managers:
         return _('Manager')
     else:
         return _('Member')