Switch to unified view

a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
...
...
198
            flash('Your post was not saved. You must provide content.', 'error')
198
            flash('Your post was not saved. You must provide content.', 'error')
199
            redirect(request.referer)
199
            redirect(request.referer)
200
200
201
        file_info = kw.get('file_info', None)
201
        file_info = kw.get('file_info', None)
202
        p = self.thread.add_post(**kw)
202
        p = self.thread.add_post(**kw)
203
        is_spam = g.spam_checker.check(kw['text'], artifact=p, user=c.user)
204
        p.add_attachment(file_info)
203
        p.add_attachment(file_info)
205
        if self.thread.artifact:
204
        if self.thread.artifact:
206
            self.thread.artifact.mod_date = datetime.utcnow()
205
            self.thread.artifact.mod_date = datetime.utcnow()
207
        flash('Message posted')
206
        flash('Message posted')
208
        redirect(request.referer)
207
        redirect(request.referer)
...
...
315
    @require_post(redir='.')
314
    @require_post(redir='.')
316
    def reply(self, file_info=None, **kw):
315
    def reply(self, file_info=None, **kw):
317
        require_access(self.thread, 'post')
316
        require_access(self.thread, 'post')
318
        kw = self.W.edit_post.to_python(kw, None)
317
        kw = self.W.edit_post.to_python(kw, None)
319
        p = self.thread.add_post(parent_id=self.post._id, **kw)
318
        p = self.thread.add_post(parent_id=self.post._id, **kw)
320
        is_spam = g.spam_checker.check(kw['text'], artifact=p, user=c.user)
321
        p.add_attachment(file_info)
319
        p.add_attachment(file_info)
322
        redirect(request.referer)
320
        redirect(request.referer)
323
321
324
    @h.vardec
322
    @h.vardec
325
    @expose()
323
    @expose()
...
...
329
        require_access(self.post.thread, 'moderate')
327
        require_access(self.post.thread, 'moderate')
330
        if kw.pop('delete', None):
328
        if kw.pop('delete', None):
331
            self.post.delete()
329
            self.post.delete()
332
        elif kw.pop('spam', None):
330
        elif kw.pop('spam', None):
333
            self.post.status = 'spam'
331
            self.post.status = 'spam'
332
            g.spam_checker.submit_spam(self.post.text, artifact=self.post, user=c.user)
334
        elif kw.pop('approve', None):
333
        elif kw.pop('approve', None):
335
            self.post.status = 'ok'
334
            self.post.status = 'ok'
336
        self.thread.update_stats()
335
        self.thread.update_stats()
337
        return dict(result ='success')
336
        return dict(result ='success')
338
337
...
...
456
    @validate(pass_validator, error_handler=h.json_validation_error)
455
    @validate(pass_validator, error_handler=h.json_validation_error)
457
    def reply(self, **kw):
456
    def reply(self, **kw):
458
        require_access(self.thread, 'post')
457
        require_access(self.thread, 'post')
459
        kw = self.W.edit_post.to_python(kw, None)
458
        kw = self.W.edit_post.to_python(kw, None)
460
        post = self.thread.post(parent_id=self.post._id, **kw)
459
        post = self.thread.post(parent_id=self.post._id, **kw)
461
        is_spam = g.spam_checker.check(kw['text'], artifact=post, user=c.user)
462
        self.thread.num_replies += 1
460
        self.thread.num_replies += 1
463
        redirect(post.slug.split('/')[-1] + '/')
461
        redirect(post.slug.split('/')[-1] + '/')
464
462
465
class ThreadRestController(ThreadController):
463
class ThreadRestController(ThreadController):
466
464