def edit_post(id, ver): if ver and ver > 1: abort(404) nom = Nom.query.get_or_404(id) author = current_user._get_current_object() post = Post.query.filter_by(nom=nom, author=author).first() if post is None: post = Post(keyword=nom.keyword, story="", nom=nom, author=author) db.session.add(post) form = PostForm() if form.validate_on_submit(): if post.keyword != form.keyword.data or \ post.story != form.story.data: post.keyword_backup = post.keyword post.keyword = form.keyword.data post.story_backup = post.story post.story = form.story.data post.shared = form.shared.data db.session.add(post) elif post.shared != form.shared.data: post.shared = form.shared.data db.session.add(post) cache.delete_memoized(user) return redirect(url_for('.nom_view', id=nom.id)) form.keyword.data = post.keyword_backup if ver else post.keyword form.story.data = post.story_backup if ver else post.story form.shared.data = post.shared return render_template('main/nom_edit.html', nom=nom, form=form, ver=ver)
def copy_post(id): from_post = Post.query.get_or_404(id) user = current_user._get_current_object() to_post = Post.query.filter_by(author=user, nom_id=from_post.nom_id).first() if current_user.can(Permission.TELL): if to_post is None: to_post = Post(keyword=from_post.keyword, story=from_post.story, nom=from_post.nom, author=user) else: to_post.keyword_backup = to_post.keyword to_post.keyword = from_post.keyword to_post.story_backup = to_post.story to_post.story = from_post.story db.session.add(to_post) return redirect(url_for('.edit_post', id=from_post.nom_id)) else: flash(_('Xin lỗi, bạn không đủ quyền để sao chép câu chuyện')) return redirect(url_for('.nom_view', id=from_post.nom_id))