def put(self, pageid, name, languageid, text=None, version=None, modified=None): """Edit a page""" lang = tmpl_context.lang or DBSession.query(Language).first().id page = DBSession.query(Page).get(pageid) modified = False if page.name[languageid] != name: page.name[languageid] = name modified = True if page.text[languageid] != text: page.text[languageid] = text modified = True if modified: page.data[languageid].modified = datetime.datetime.now() flash('%s %s' % (_('Updated Page:'), page.string_id), 'ok') else: flash('%s %s' % (_('Page is unchanged:'), page.string_id), 'info') return dict(redirect_to=url('/article/%s/edit' % page.article.id))
def edit(self, linkid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit lang = tmpl_context.lang link = DBSession.query(Link).get(linkid.decode()) tags = ', '.join([t.name[lang] for t in link.tags]) fargs = dict(linkid=link.id, id_=link.id, uri=link.uri, languageid=link.language_id, version=link.version, modified=link.data[0].modified, name=link.name[''], description=link.description[''], tagids=tags, ) languages = [(l.id, l.name) for l in DBSession.query(Language)] data = link.data[0] DataHistory = data.__history_mapper__.class_ query = DBSession.query(DataHistory).filter_by(id=data.id) versions = range(query.count(), 0, -1) versions.insert(0, int(data.version)) fcargs = dict( languageid=dict(options=languages), version=dict(options=versions), ) return dict(title='%s %s' % (_('Edit link:'), link.id), args=fargs, child_args=fcargs)
def post_delete(self, languageid): """Delete a Language""" language = DBSession.query(Language).get(languageid.decode()) DBSession.delete(language) flash('%s %s' % (_('Deleted Language:'), language.id), 'ok') return dict(redirect_to=url('/admin/language/'))
def get_all(self, tag=[], max_results=None, mode='all'): """Return a list of links""" settings = dict([(s.id, s.value) for s in DBSession.query(Setting)]) if max_results is None: max_results = int(settings.get('max_results', 0)) else: max_results = int(max_results) tmpl_context.w_object_title = w_object_title tmpl_context.w_link = w_link query = DBSession.query(Link) query = query.join(Link.associable).filter_by(published=True) query = query.order_by(desc(Link.created)) tot_results = query.count() if max_results: links = query[0:max_results] more_results = max(tot_results - max_results, 0) else: links = query.all() more_results = False if tag: tagids = isinstance(tag, list) and tag or [tag] tagstring = ', '.join(tagids) tags = set(tags_from_string(tagstring, create=False)) if mode == 'all': links = [obj for obj in links if set(obj.tags) >= (tags)] elif mode == 'any': links = [obj for obj in links if set(obj.tags) & (tags)] return dict(links=links, recent=find_recent(), path=('links', ''), more_results=more_results)
def _fill_db(self): language = Language(u'xx', u'test language') DBSession.add(language) DBSession.flush() languageid = language.id transaction.commit() return languageid.encode()
def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test language') DBSession.add(language) DBSession.flush() languageid = language.id return languageid, tadm
def get_all(self, tag=[], max_results=None, mode='all'): """Return a list of media""" settings = dict([(s.id, s.value) for s in DBSession.query(Setting)]) if max_results is None: max_results = int(settings.get('max_results', 0)) else: max_results = int(max_results) tmpl_context.w_object_title = w_object_title tmpl_context.w_media = w_media query = DBSession.query(Media) query = query.join(Media.associable).filter_by(published=True) query = query.order_by(desc(Media.created)) tot_results = query.count() if max_results: media = query[0:max_results] more_results = max(tot_results - max_results, 0) else: media = query.all() more_results = False if tag: tagids = isinstance(tag, list) and tag or [tag] tagstring = ', '.join(tagids) tags = set(tags_from_string(tagstring, create=False)) if mode == 'all': media = [obj for obj in media if set(obj.tags) >= (tags)] elif mode == 'any': media = [obj for obj in media if set(obj.tags) & (tags)] return dict(media=media, recent=find_recent(), path=('media', ''), more_results=more_results)
def test_comment(self): """controllers.admin.Controller.comment is working properly""" languageid, tadm = self._fill_db() comment = Comment(u'anonymous', u'*****@*****.**', u'test comment') DBSession.add(comment) DBSession.flush() commentid = comment.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/comment/', extra_environ=environ, status=200) tr = response.html.table('tr')[1] # Date eq_(str(tr('td')[1]), '<td>%s</td>' % commentid) eq_(str(tr('td')[2]), '<td></td>') eq_(str(tr('td')[3]), '<td>anonymous</td>') eq_(str(tr('td')[4]), '<td>[email protected]</td>') eq_(str(tr('td')[5]), '<td>test comment</td>') # Status actions = tr('td')[7] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay') eq_(str(actions('a')[2]['class']), 'icon approve') eq_(str(actions('a')[3]['class']), 'icon spam')
def post(self, name, languageid): """create a new Tag""" user = tmpl_context.user tag = Tag(name, languageid) DBSession.add(tag) flash('%s %s' % (_('Created Tag:'), tag.id), 'ok') return dict(redirect_to=url('/admin/tag/'))
def put(self, linkid, name, uri, languageid, description=None, tagids=None, version=None, modified=None): """Edit a link""" lang = tmpl_context.lang or DBSession.query(Language).first().id link = DBSession.query(Link).get(linkid.decode()) modified = False if link.uri != uri: link.uri = uri modified = True if link.name[languageid] != name: link.name[languageid] = name modified = True if link.description[languageid] != description: link.description[languageid] = description modified = True tags = tags_from_string(tagids, lang=lang) if link.tags != tags: link.tags[:] = tags modified = True if modified: link.data[languageid].modified = datetime.datetime.now() flash('%s %s' % (_('Updated Link:'), link.id), 'ok') else: flash('%s %s' % (_('Link is unchanged:'), link.id), 'info') return dict(redirect_to=url('/admin/link/'))
def post_delete(self, commentid): """Delete a Comment""" comment = DBSession.query(Comment).get(commentid) DBSession.delete(comment) flash('%s %s' % (_('Deleted Comment:'), comment.id), 'ok') return dict(redirect_to=url('/admin/comment/'))
def post_delete(self, languageid): """Delete a Language""" language = DBSession.query(Language).get(languageid.decode()) DBSession.delete(language) flash('%s %s' % (_('Deleted Language:'), language.id), 'ok') return dict(redirect_to=url('/admin/language/'))
def settings(self): """Return a form to edit settings""" tmpl_context.f_settings = f_settings lang = tmpl_context.lang query = DBSession.query(Setting) settings = dict([('v_%s' % s.id, s.value) for s in query]) fargs = settings querymedia = DBSession.query(Media).filter_by(type=u'image') media_list = [('', '')] media_list.extend([(m.id, m.name[lang]) for m in querymedia]) link_list = [('', '')] link_list.extend([(l.id, l.name[lang]) for l in DBSession.query(Link)]) cc_list = [ ('', ''), ('cc by', 'CC Attribution'), ('cc by-sa', 'CC Attribution Share Alike'), ('cc by-nd', 'CC Attribution No Derivatives'), ('cc by-nc', 'CC Attribution Non-Commercial'), ('cc by-nc-sa', 'CC Attribution Non-Commercial Share Alike'), ('cc by-nc-nd', 'CC Attribution Non-Commercial No Derivatives'), ] fcargs = dict( v_logo_media=dict(options=media_list), v_banner_media=dict(options=media_list), v_banner_link=dict(options=link_list), v_theme=dict(options=G.themes), v_cc=dict(options=cc_list), ) return dict(args=fargs, child_args=fcargs, path=('admin', 'settings'))
def post_delete(self, commentid): """Delete a Comment""" comment = DBSession.query(Comment).get(commentid) DBSession.delete(comment) flash('%s %s' % (_('Deleted Comment:'), comment.id), 'ok') return dict(redirect_to=url('/admin/comment/'))
def _fill_db(self): language = Language(u'xx', u'test language') DBSession.add(language) DBSession.flush() languageid = language.id transaction.commit() return languageid.encode()
def edit(self, articleid, pagestringid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit article = DBSession.query(Article).get(articleid.decode()) page = article.pages[pagestringid] fargs = dict(pageid=page.id, id_=page.id, languageid=page.language_id, version=page.version, modified=page.data[0].modified, name=page.name[''], text=page.text[''], ) languages = [(l.id, l.name) for l in DBSession.query(Language)] data = page.data[0] DataHistory = data.__history_mapper__.class_ query = DBSession.query(DataHistory).filter_by(id=data.id) versions = range(query.count(), 0, -1) versions.insert(0, int(data.version)) fcargs = dict( languageid=dict(options=languages), version=dict(options=versions), ) return dict(title='%s %s' % (_('Edit page:'), page.string_id), args=fargs, child_args=fcargs)
def settings(self): """Return a form to edit settings""" tmpl_context.f_settings = f_settings lang = tmpl_context.lang query = DBSession.query(Setting) settings = dict([('v_%s' % s.id, s.value) for s in query]) fargs = settings querymedia = DBSession.query(Media).filter_by(type=u'image') media_list = [('', '')] media_list.extend([(m.id, m.name[lang]) for m in querymedia]) link_list = [('', '')] link_list.extend([(l.id, l.name[lang]) for l in DBSession.query(Link)]) cc_list = [ ('', ''), ('cc by', 'CC Attribution'), ('cc by-sa', 'CC Attribution Share Alike'), ('cc by-nd', 'CC Attribution No Derivatives'), ('cc by-nc', 'CC Attribution Non-Commercial'), ('cc by-nc-sa', 'CC Attribution Non-Commercial Share Alike'), ('cc by-nc-nd', 'CC Attribution Non-Commercial No Derivatives'), ] fcargs = dict(v_logo_media=dict(options=media_list), v_banner_media=dict(options=media_list), v_banner_link=dict(options=link_list), v_theme = dict(options=G.themes), v_cc = dict(options=cc_list), ) return dict(args=fargs, child_args=fcargs, path=('admin', 'settings'))
def edit(self, mediaid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit lang = tmpl_context.lang media = DBSession.query(Media).get(mediaid.decode()) tags = ', '.join([t.name[lang] for t in media.tags]) fargs = dict( mediaid=media.id, id_=media.id, mediatype_=media.type, uri=media.uri, languageid=media.language_id, version=media.version, modified=media.data[0].modified, name=media.name[''], description=media.description[''], tagids=tags, ) languages = [(l.id, l.name) for l in DBSession.query(Language)] data = media.data[0] DataHistory = data.__history_mapper__.class_ query = DBSession.query(DataHistory).filter_by(id=data.id) versions = range(query.count(), 0, -1) versions.insert(0, int(data.version)) fcargs = dict( languageid=dict(options=languages), version=dict(options=versions), ) return dict(title='%s %s' % (_('Edit media:'), media.id), args=fargs, child_args=fcargs)
def edit(self, articleid, pagestringid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit article = DBSession.query(Article).get(articleid.decode()) page = article.pages[pagestringid] fargs = dict( pageid=page.id, id_=page.id, languageid=page.language_id, version=page.version, modified=page.data[0].modified, name=page.name[''], text=page.text[''], ) languages = [(l.id, l.name) for l in DBSession.query(Language)] data = page.data[0] DataHistory = data.__history_mapper__.class_ query = DBSession.query(DataHistory).filter_by(id=data.id) versions = range(query.count(), 0, -1) versions.insert(0, int(data.version)) fcargs = dict( languageid=dict(options=languages), version=dict(options=versions), ) return dict(title='%s %s' % (_('Edit page:'), page.string_id), args=fargs, child_args=fcargs)
def post_delete(self, tagid): """Delete a Tag""" tag = DBSession.query(Tag).get(tagid.decode()) for tagdata in tag.data: DBSession.delete(tagdata) DBSession.delete(tag) flash('%s %s' % (_('Deleted Tag:'), tag.id), 'ok') return dict(redirect_to=url('/admin/tag/'))
def post(self, mediatype, languageid, name, uri=None, uploadfile=None, fallbackfile=None, description=None, tagids=None): """create a new Media""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id # TODO: redirect to "new" with errors instead of raising an exception if mediatype == 'image': if uploadfile is None: raise HTTPClientError(_('No image uploaded')) origname, ext = os.path.splitext(uploadfile.filename) filename = '%s%s' % (make_id(name), ext) tmpf = open(os.path.join(G.upload_dir, filename), 'w+b') shutil.copyfileobj(uploadfile.file, tmpf) tmpf.close() uri = filename elif mediatype == 'video': if uploadfile is None or fallbackfile is None: raise HTTPClientError(_('No video or no fallback uploaded')) # copy video file in the upload area origname, ext = os.path.splitext(uploadfile.filename) filename = '%s%s' % (make_id(name), ext) tmpf = open(os.path.join(G.upload_dir, filename), 'w+b') shutil.copyfileobj(uploadfile.file, tmpf) tmpf.close() # copy fallback video file in the upload area origname, fallbackext = os.path.splitext(fallbackfile.filename) fallbackname = '%s%s' % (make_id(name), fallbackext) fallbacktmpf = open(os.path.join(G.upload_dir, fallbackname), 'w+b') shutil.copyfileobj(fallbackfile.file, fallbacktmpf) fallbacktmpf.close() uri = filename elif mediatype == 'youtube': if not uri: raise HTTPClientError(_('No video id')) elif mediatype == 'vimeo': if not uri: raise HTTPClientError(_('No video id')) media = Media(mediatype, name, uri, user, languageid, description) DBSession.add(media) tags = tags_from_string(tagids, lang=lang) media.tags[:] = tags flash('%s %s' % (_('Created Media:'), media.id), 'ok') return dict(redirect_to=url('/admin/media/'))
def new(self, articleid, **kwargs): """Display a NEW form.""" tmpl_context.form = f_new article = DBSession.query(Article).get(articleid.decode()) fargs = dict(articleid=article.id) lang_list = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(languageid=dict(options=lang_list)) return dict(title=_('Create a new Page'), args=fargs, child_args=fcargs)
def post_delete(self, pageid): """Delete a Page""" page = DBSession.query(Page).get(pageid) for pagedata in page.data: DBSession.delete(pagedata) DBSession.delete(page) flash('%s %s' % (_('Deleted Page:'), page.string_id), 'ok') return dict(redirect_to=url('/article/%s/edit' % page.article.id))
def post_delete(self, pageid): """Delete a Page""" page = DBSession.query(Page).get(pageid) for pagedata in page.data: DBSession.delete(pagedata) DBSession.delete(page) flash('%s %s' % (_('Deleted Page:'), page.string_id), 'ok') return dict(redirect_to=url('/article/%s/edit' % page.article.id))
def post_delete(self, categoryid): """Delete a Category""" category = DBSession.query(Category).get(categoryid.decode()) for categorydata in category.data: DBSession.delete(categorydata) DBSession.delete(category) flash('%s %s' % (_('Deleted Category:'), category.id), 'ok') return dict(redirect_to=url('/admin/category/'))
def post_delete(self, categoryid): """Delete a Category""" category = DBSession.query(Category).get(categoryid.decode()) for categorydata in category.data: DBSession.delete(categorydata) DBSession.delete(category) flash('%s %s' % (_('Deleted Category:'), category.id), 'ok') return dict(redirect_to=url('/admin/category/'))
def post(self, articleid, name, languageid, text=None): """create a new Page""" user = tmpl_context.user article = DBSession.query(Article).get(articleid.decode()) page = Page(name, languageid, user, text) article.pages.append(page) DBSession.flush() flash('%s %s' % (_('Created Page:'), page.string_id), 'ok') return dict(redirect_to=url('/article/%s/edit' % article.id))
def post(self, articleid, name, languageid, text=None): """create a new Page""" user = tmpl_context.user article = DBSession.query(Article).get(articleid.decode()) page = Page(name, languageid, user, text) article.pages.append(page) DBSession.flush() flash('%s %s' % (_('Created Page:'), page.string_id), 'ok') return dict(redirect_to=url('/article/%s/edit' % article.id))
def new(self, articleid, **kwargs): """Display a NEW form.""" tmpl_context.form = f_new article = DBSession.query(Article).get(articleid.decode()) fargs = dict(articleid=article.id) lang_list = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(languageid=dict(options=lang_list)) return dict(title=_('Create a new Page'), args=fargs, child_args=fcargs)
def post(self, name, uri, languageid, description=None, tagids=None): """create a new Link""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id link = Link(name, uri, user, languageid, description) DBSession.add(link) tags = tags_from_string(tagids, lang=lang) link.tags[:] = tags flash('%s %s' % (_('Created Link:'), link.id), 'ok') return dict(redirect_to=url('/admin/link/'))
def edit(self, tagid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit tag = DBSession.query(Tag).get(tagid.decode()) fargs = dict(tagid=tag.id, id_=tag.id, languageid=tag.language_id, name=tag.name[''], ) languages = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(languageid=dict(options=languages)) return dict(title='%s %s' % (_('Edit tag:'), tag.id), args=fargs, child_args=fcargs)
def post(self, name, uri, languageid, description=None, tagids=None): """create a new Link""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id link = Link(name, uri, user, languageid, description) DBSession.add(link) tags = tags_from_string(tagids, lang=lang) link.tags[:] = tags flash('%s %s' % (_('Created Link:'), link.id), 'ok') return dict(redirect_to=url('/admin/link/'))
def post(self, title, categoryid, languageid, text=None, tagids=None): """create a new Article""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id category = DBSession.query(Category).get(categoryid) article = Article(title, category, languageid, user, text) DBSession.add(article) tags = tags_from_string(tagids, lang=lang) article.tags[:] = tags flash('%s %s' % (_('Created Article:'), article.id), 'ok') return dict(redirect_to=url('/admin/article/'))
def edit(self, categoryid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit lang = tmpl_context.lang category = DBSession.query(Category).get(categoryid.decode()) fargs = dict(categoryid=category.id, id_=category.id, languageid=category.language_id, name=category.name[lang], description=category.description[lang]) languages = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(languageid=dict(options=languages)) return dict(title='%s %s' % (_('Edit Category:'), category.id), args=fargs, child_args=fcargs)
def new(self, **kwargs): """Display a NEW form.""" tmpl_context.form = f_new lang = tmpl_context.lang fargs = dict() cat_list = [(c.id, c.name[lang]) for c in DBSession.query(Category)] lang_list = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(categoryid=dict(options=cat_list), languageid=dict(options=lang_list)) return dict(title=_('Create a new Article'), args=fargs, child_args=fcargs)
def get_page(pageid): """Return a page given its id or its article/string_id path""" try: if isinstance(pageid, int) or pageid.isdigit(): page = DBSession.query(Page).get(pageid) elif '/' in pageid: articleid, pageid = pageid.split('/') query = DBSession.query(Page) query = query.filter_by(string_id=pageid, article_id=articleid) page = query.one() else: page = None except NoResultFound, MultipleResultsFound: page = None
def get_page(pageid): """Return a page given its id or its article/string_id path""" try: if isinstance(pageid, int) or pageid.isdigit(): page = DBSession.query(Page).get(pageid) elif '/' in pageid: articleid, pageid = pageid.split('/') query = DBSession.query(Page) query = query.filter_by(string_id=pageid, article_id=articleid) page = query.one() else: page = None except NoResultFound, MultipleResultsFound: page = None
def edit(self, categoryid, **kwargs): """Display a EDIT form.""" tmpl_context.form = f_edit lang = tmpl_context.lang category = DBSession.query(Category).get(categoryid.decode()) fargs = dict(categoryid=category.id, id_=category.id, languageid=category.language_id, name=category.name[lang], description=category.description[lang]) languages = [(l.id, l.name) for l in DBSession.query(Language)] fcargs = dict(languageid=dict(options=languages)) return dict(title='%s %s' % (_('Edit Category:'), category.id), args=fargs, child_args=fcargs)
def post_delete(self, articleid): """Delete a Article""" article = DBSession.query(Article).get(articleid.decode()) for page in article.pages: for pagedata in page.data: DBSession.delete(pagedata) DBSession.delete(page) DBSession.delete(article.associable) DBSession.delete(article) flash('%s %s' % (_('Deleted Article:'), article.id), 'ok') return dict(redirect_to=url('/admin/article/'))
def revoke(self, commentid): """Revoke comment approval and make it invisible""" comment = DBSession.query(Comment).get(commentid) comment.status = 'waiting' flash('%s %s' % (_('Revoked approval for Comment:'), comment.id), 'ok') redirect(url('/admin/comment'))
def test_post_delete(self): """controllers.link.Controller.post_delete is working properly""" languageid, linkid = self._fill_db() environ = {'REMOTE_USER': '******'} response = self.app.delete('/link?linkid=%s' % linkid, extra_environ=environ, status=200) assert_true('parent.location = "/admin/link/";' in response.body, 'should be redirected to "/admin/link/" via javascript') link = DBSession.query(Link).get(linkid.decode()) assert_true(link is None, 'Link "1" should have been deleted from the db') linkdata = DBSession.query(LinkData).filter_by(parent_id=None).all() assert_false(linkdata, 'orphaned LinkData should have been deleted from the db')
def test_post(self): """controllers.media.Controller.post is working properly""" languageid, mediaid = self._fill_db() environ = {'REMOTE_USER': '******'} response = self.app.post('/media/', dict( mediatype='youtube', uri='nROPFegfRuU', uploadfile='', fallbackfile='', languageid=languageid, name='test video', description='random text', tagids='test_tag', ), extra_environ=environ, status=200) assert_true('parent.location = "/admin/media/";' in response.body, 'should be redirected to "/admin/media/" via javascript') media = DBSession().query(Media).get(u'test-video') eq_(media.type, u'youtube') eq_(media.name[''], u'test video') eq_(media.description[''], u'random text') eq_(media.language_ids, set([languageid])) eq_(media.user.user_name, 'test_admin') eq_(media.tags[0].id, 'test_tag')
def post(self, associableid, name, email, text, came_from='/'): """create a new Comment""" associable = DBSession.query(Associable).get(associableid) comment = Comment(name, email, text) associable.comments.append(comment) flash('%s %s' % (_('Created Comment:'), comment.header), 'ok') return dict(redirect_to=url(came_from))
def translation(self, tagid, value): """Return a tag translation""" tag = DBSession.query(Tag).get(tagid.decode()) name = tag.name[value] return dict(name=name)
def test_post_delete(self): """controllers.tag.Controller.post_delete is working properly""" languageid, tagid = self._fill_db() environ = {'REMOTE_USER': '******'} response = self.app.delete('/tag?tagid=%s' % tagid, extra_environ=environ, status=200) assert_true('parent.location = "/admin/tag/";' in response.body, 'should be redirected to "/admin/tag/" via javascript') tag = DBSession.query(Tag).get(tagid.decode()) assert_true(tag is None, 'Tag should have been deleted from the db') tagdata = DBSession.query(TagData).filter_by(parent_id=None).all() assert_false(tagdata, 'orphaned TagData should have been deleted from the db')
def approve(self, commentid): """Approve a comment and make it visible""" comment = DBSession.query(Comment).get(commentid) comment.status = 'approved' flash('%s %s' % (_('Approved Comment:'), comment.id), 'ok') redirect(url('/admin/comment'))
def approve(self, commentid): """Approve a comment and make it visible""" comment = DBSession.query(Comment).get(commentid) comment.status = 'approved' flash('%s %s' % (_('Approved Comment:'), comment.id), 'ok') redirect(url('/admin/comment'))
def revoke(self, commentid): """Revoke comment approval and make it invisible""" comment = DBSession.query(Comment).get(commentid) comment.status = 'waiting' flash('%s %s' % (_('Revoked approval for Comment:'), comment.id), 'ok') redirect(url('/admin/comment'))
def post(self, associableid, name, email, text, came_from='/'): """create a new Comment""" associable = DBSession.query(Associable).get(associableid) comment = Comment(name, email, text) associable.comments.append(comment) flash('%s %s' % (_('Created Comment:'), comment.header), 'ok') return dict(redirect_to=url(came_from))
def spam(self, commentid): """Mark a comment as spam""" comment = DBSession.query(Comment).get(commentid) comment.status = 'spam' flash('%s %s' % (_('Comment marked as spam:'), comment.id), 'ok') redirect(url('/admin/comment'))
def spam(self, commentid): """Mark a comment as spam""" comment = DBSession.query(Comment).get(commentid) comment.status = 'spam' flash('%s %s' % (_('Comment marked as spam:'), comment.id), 'ok') redirect(url('/admin/comment'))