Switch to unified view

a/Allura/allura/controllers/discuss.py b/Allura/allura/controllers/discuss.py
...
...
174
174
175
    @h.vardec
175
    @h.vardec
176
    @expose()
176
    @expose()
177
    @require_post()
177
    @require_post()
178
    @validate(pass_validator, error_handler=index)
178
    @validate(pass_validator, error_handler=index)
179
    @utils.AntiSpam.validate('Spambot protection engaged')
179
    def post(self, **kw):
180
    def post(self, **kw):
180
        require_access(self.thread, 'post')
181
        require_access(self.thread, 'post')
181
        kw = self.W.edit_post.to_python(kw, None)
182
        kw = self.W.edit_post.to_python(kw, None)
182
        if not kw['text']:
183
        if not kw['text']:
183
            flash('Your post was not saved. You must provide content.', 'error')
184
            flash('Your post was not saved. You must provide content.', 'error')
...
...
261
            redirect('..')
262
            redirect('..')
262
263
263
    @h.vardec
264
    @h.vardec
264
    @expose('jinja:allura:templates/discussion/post.html')
265
    @expose('jinja:allura:templates/discussion/post.html')
265
    @validate(pass_validator)
266
    @validate(pass_validator)
267
    @utils.AntiSpam.validate('Spambot protection engaged')
266
    def index(self, version=None, **kw):
268
    def index(self, version=None, **kw):
267
        c.post = self.W.post
269
        c.post = self.W.post
268
        if request.method == 'POST':
270
        if request.method == 'POST':
269
            require_access(self.post, 'moderate')
271
            require_access(self.post, 'moderate')
270
            post_fields = self.W.edit_post.to_python(kw, None)
272
            post_fields = self.W.edit_post.to_python(kw, None)
...
...
306
308
307
    @h.vardec
309
    @h.vardec
308
    @expose()
310
    @expose()
309
    @require_post()
311
    @require_post()
310
    @validate(pass_validator, error_handler=index)
312
    @validate(pass_validator, error_handler=index)
313
    @utils.AntiSpam.validate('Spambot protection engaged')
311
    @require_post(redir='.')
314
    @require_post(redir='.')
312
    def reply(self, **kw):
315
    def reply(self, **kw):
313
        require_access(self.thread, 'post')
316
        require_access(self.thread, 'post')
314
        kw = self.W.edit_post.to_python(kw, None)
317
        kw = self.W.edit_post.to_python(kw, None)
315
        self.thread.post(parent_id=self.post._id, **kw)
318
        self.thread.post(parent_id=self.post._id, **kw)
...
...
452
455
453
    @h.vardec
456
    @h.vardec
454
    @expose()
457
    @expose()
455
    @require_post()
458
    @require_post()
456
    @validate(pass_validator, error_handler=h.json_validation_error)
459
    @validate(pass_validator, error_handler=h.json_validation_error)
460
    @utils.AntiSpam.validate('Spambot protection engaged')
457
    def reply(self, **kw):
461
    def reply(self, **kw):
458
        require_access(self.thread, 'post')
462
        require_access(self.thread, 'post')
459
        kw = self.W.edit_post.to_python(kw, None)
463
        kw = self.W.edit_post.to_python(kw, None)
460
        post = self.thread.post(parent_id=self.post._id, **kw)
464
        post = self.thread.post(parent_id=self.post._id, **kw)
461
        self.thread.num_replies += 1
465
        self.thread.num_replies += 1
...
...
469
473
470
    @h.vardec
474
    @h.vardec
471
    @expose()
475
    @expose()
472
    @require_post()
476
    @require_post()
473
    @validate(pass_validator, error_handler=h.json_validation_error)
477
    @validate(pass_validator, error_handler=h.json_validation_error)
478
    @utils.AntiSpam.validate('Spambot protection engaged')
474
    def new(self, **kw):
479
    def new(self, **kw):
475
        require_access(self.thread, 'post')
480
        require_access(self.thread, 'post')
476
        kw = self.W.edit_post.to_python(kw, None)
481
        kw = self.W.edit_post.to_python(kw, None)
477
        p = self.thread.add_post(**kw)
482
        p = self.thread.add_post(**kw)
478
        redirect(p.slug + '/')
483
        redirect(p.slug + '/')