def category_removed(self): storage = IVTCC(getUtility(IPloneSiteRoot)) category_path = self._category_path_from_request() if not category_path: msgid = _(u"You can't remove root category. Please reload page.") msg = translate(msgid, context=self.request), result = False else: result = storage.remove_category(category_path) if result: msg = translate(_(u'Category removed.'), context=self.request) else: msgid = _(u'Could not remove category. Please reload page.') msg = translate(msgid, context=self.request) return simplejson.dumps(dict(msg=msg, result=result))
def category_added_renamed(self): storage = IVTCC(getUtility(IPloneSiteRoot)) old_id = self.request.form.get('old_id') new_name = self.request.form.get('new_name') if not new_name: return 'Missing new name.' if not old_id: # create new node # strip last element from category_path, because it is newly # created category name which does not exist yet category_path = self._category_path_from_request()[:-1] new_id = storage.add_category(category_path, new_name) if new_id: result = simplejson.dumps(dict( msg=translate(_(u'Category created'), context=self.request), new_id=new_id, result=True)) else: result = simplejson.dumps(dict( msg=translate(_(u'Category creation error!'), context=self.request), new_id='', result=False)) else: # rename old node category_path = self._category_path_from_request() new_id = storage.rename_category(category_path, old_id, new_name) if new_id: result = simplejson.dumps(dict( msg=translate(_(u'Category renamed'), context=self.request), new_id=new_id, result=True)) else: result = simplejson.dumps(dict( msg=translate(_(u'Could not rename category.'), context=self.request), new_id='', result=False)) return result
def categories_tree(self): self.request.response.setHeader('Content-Type', 'application/json; charset=utf-8') storage = IVTCC(getUtility(IPloneSiteRoot)) # inject root node root = dict( attributes={'id': "root-node", 'rel': 'root'}, state="open", data=translate(_("Root node"), context=self.request), children=storage.category_tree() ) return simplejson.dumps(root)
def save_category_keywords(self): portal = getUtility(IPloneSiteRoot) category_path = self._category_path_from_request() kws = self.request.form.get('kws', []) if isinstance(kws, basestring): kws = kws.split(',') if not category_path: return 'No valid category selected' logger.info('Going to save %d keywords to category %r' % (len(kws), category_path)) IVTCC(portal).set(category_path, kws) self.request.response.setHeader('Content-Type', 'text/plain; charset=utf-8') return simplejson.dumps(dict( message=translate(_('Category saved'), context=self.request), keywords=kws ))