def delete_post(board_name): current_user = get_current_user(request) board = Board.get(Board.name == board_name) form = dict(request.forms) if bool(form.get('report')): reason = form.get('report') report_reasons = loads(config['reports.reasons']) if reason not in report_reasons: return redirect(f'{basename}/{board_name}/') for refnum in list(form)[:-1]: report = Report(reason=reason, refnum=refnum, board=board, date=datetime.now().replace(microsecond=0)) report.save() else: for refnum in form: thread = board.posts.where(Post.refnum == refnum).get() if (thread.author == current_user or f':{board_name}:' in current_user.mod): remove_textual_refs(board, thread) if thread.image: remove_media(thread.image) if not thread.is_reply: for reply in board.posts.where( Post.replyrefnum == thread.refnum): if reply.image: remove_media(reply.image) reply.delete_instance() thread.delete_instance() Report.delete().where(refnum == thread.refnum).execute() redirect(f'{basename}/{board_name}/')
def test_model_report(self): obj = Report(name='test') obj.save() self.assertEquals('test', obj.name) self.assertNotEquals(obj.id, None) obj.delete()