def handleSetDefault(self, action): data, errors = self.extractData() avatar = data['avatar'] if not avatar: IStatusMessage(self.request).add( _('Please select avatar.'), 'warning') else: self.context.default = int(avatar) self.default = self.context.default IStatusMessage(self.request).add( _('Default avatar has been selected.'))
def handleRemove(self, action): data, errors = self.extractData() avatar = data['avatar'] if not avatar: IStatusMessage(self.request).add( _('Please select avatar.'), 'warning') else: ids = getUtility(IIntIds) ob = ids.queryObject(int(avatar)) if ob is not None: del self.context[ob.__name__] IStatusMessage(self.request).add(_('Avatar has been removed.')) self.redirect('.')
def handleUpload(self, action): data, errors = self.extractData() if errors: pass else: file = data['data'] image = Image() image.data = file.data image.mimeType = file.mimeType if (image.width > self.container.maxWidth or image.height > self.container.maxHeight): try: image.data = convert( image.data, 'image/jpeg', sourceMimetype = image.mimeType, width = self.container.maxWidth, height = self.container.maxHeight, quality=88) except ConverterException, err: log = logging.getLogger('zojax.profile.avatar') log.log(logging.WARNING, str(err)) IStatusMessage(self.request).add(err, 'error') return if not data['title']: data['title'] = file.filename avatar = self.context.create(title=data['title'], data=image) self.context.add(avatar) IStatusMessage(self.request).add(_(u'Avatar sccessully uploaded.')) self.redirect('.')
def update(self): configlet = getUtility(IProfilesCategory) request = self.request if 'form.button.add' in request: categories = list(configlet.fieldCategories) cat = request.get('form.widget.category', '') if not cat: IStatusMessage(request).add( _('Please enter category title.'), 'warning') elif cat in categories: IStatusMessage(request).add( _('Category already exists.'), 'warning') else: categories.append(cat) configlet.fieldCategories = categories IStatusMessage(request).add(_('Category has been added.')) self.redirect('.') elif 'form.button.remove' in request: cats = request.get('form.widget.categories', ()) if not cats: IStatusMessage(request).add( _('Please select categories.'), 'warning') else: categories = list(configlet.fieldCategories) for cat in cats: if cat in categories: categories.remove(cat) configlet.fieldCategories = categories IStatusMessage(request).add(_('Category has been removed.')) self.redirect('.') elif 'form.button.moveup' in request or \ 'form.button.movedown' in request: cats = request.get('form.widget.categories', ()) if not cats: IStatusMessage(request).add( _('Please select categories.'), 'warning') else: sign = 'form.button.moveup' in request and -1 or 1 categories = list(configlet.fieldCategories) for cat in cats: if cat in categories: ind = categories.index(cat) categories.remove(cat) categories.insert(ind + sign, cat) configlet.fieldCategories = categories IStatusMessage(request).add(_('Category has been moved.')) self.redirect('.') elif 'form.button.sort' in request: categories = list(configlet.fieldCategories) categories.sort() configlet.fieldCategories = categories IStatusMessage(request).add(_('Categories has been sorted.')) self.redirect('.') self.categories = configlet.fieldCategories super(FieldCategories, self).update()
def description(self): context = self.container return _( u'Create new avatar. Maximum size: ${width} x ${height} pixels.', mapping={'width': context.maxWidth, 'height': context.maxHeight})