示例#1
0
文件: views.py 项目: mpobrien/moblog
def edit(post_id):
    try:
        oid = ObjectId(post_id)
    except:
        return redirect(url_for("newpost"))
    post = db.posts.find_one({"_id": oid})
    if request.method == 'GET':
        form = EditPostForm()
        form.post_id.data = post_id
        form.title.data = post['title']
        form.content.data = post['body']
        return render_template("write.html", form=form, post_id=post_id)
    else:
        form = NewPostForm(request.form)
        if form.validate():
            title = form.title.data
            body = form.content.data
            md = Markdown()
            html = md.convert(gfm(body))
            db.posts.update(
                {"_id": oid},
                {"$set": {
                    "title": title,
                    "body": body,
                    "html": html
                }})
            return redirect(url_for("home"))
        else:
            return render_template("write.html", form=form, post_id=post_id)
示例#2
0
def edit_post(request, post_id): 
    # Obtain the instance of the post 
    instance = Post.objects.get(id=post_id)

    # Get the context from the request.
    context = RequestContext(request, {
        'p' : instance,
        })

    # A HTTP POST?
    if request.method == 'POST':
        form = EditPostForm(request.POST, instance=instance)

        # Have we been provided with a valid form?
        if form.is_valid():
            # Save the new category to the database.
            form.save(commit=True)

            # User show the post that they just edited
            return HttpResponseRedirect('/posts/'+str(post_id))
        else:
            # The supplied form contained errors - just print them to the terminal.
            print form.errors
    else:
        # If the request was not a POST, display the form to enter details.
        form = PostForm(instance=instance)

    # Bad form (or form details), no form supplied...
    # Render the form with error messages (if any).
    return render_to_response('posts/edit_post.html', {'form': form}, context)
示例#3
0
    def put(self, id):
        post = Post.get_by_id(id)
        if post is None:
            flash(gettext('The post was not found'), 'error')
            return redirect(url_for('PostsView:index'))
        if not current_user.is_admin() and not post.is_mine():
            abort(401)

        if request.method in ['POST', 'PUT']:
            form = EditPostForm()
            if form.validate_on_submit():
                try:
                    form.populate_obj(post)
                    post.save()
                    flash(gettext('Post was succesfully saved'))
                    if request.method == 'POST':
                        if form.remain.data:
                            return redirect(url_for('PostsView:get', id=post.id))
                        else:
                            return redirect(url_for('PostsView:index'))
                except:
                    flash(gettext('Error while updating the post'), 'error')
            else:
                flash(gettext('Invalid submission, please check the message below'), 'error')
            
            if request.method == 'PUT':
                return jsonify(redirect_to=url_for('PostsView:index'))
        else:
            form = NewPostForm(post)
        return render_template('admin/posts/edit.html',
            title=gettext('Edit Post: %(title)s', title=post.title),
            form=form,
            post=post)
示例#4
0
文件: admin.py 项目: hssgg/Niflheim
def edit_post(key):
    post = ndb.Key(urlsafe=key).get()
    form = EditPostForm(obj=post)
    if form.validate_on_submit():
        form.save()
        flash(u'文章修改成功')
        return go_delay_redirect(url_for("admin.post.edit", key=key))
    return render_template('admin/new_or_edit_post.html',
                           form=form,
                           post=post,
                           new=False)
示例#5
0
def edit_post(post_id):
    args = dict(request.args)
    session = db_session.create_session()
    post = session.query(Post).filter(Post.id == post_id).first()
    if post.author.id == current_user.id:
        form = EditPostForm(obj=post)
        if form.validate_on_submit():
            post.title = form.title.data
            post.text = form.text.data
            now_datetime = datetime.datetime.now()
            post.editing_date = now_datetime
            post.editing_date_norm_view = date_to_normal_view(now_datetime)
            session.commit()
            return redirect(args['back_url'])
        return render_template('add_edit_post_page.html', form=form, add=False)
    return redirect('/')
示例#6
0
def edit_post(request,tid=0,pid=0):
    tag = get_object_or_404(Tag,pk=1)
    user = get_object_or_404(User,pk=1)
    topic = get_object_or_404(Topic,pk=tid)
    post = get_object_or_404(Post,pk=pid)
    if request.method == "POST":
        f = EditPostForm(request.POST,topic=topic,post=post,user = user)
        if f.is_valid():
            edit_post = f.save()
            ##return HttpResponseRedirect('../')
        return HttpResponseRedirect(reverse(index))
    else:
        f = EditPostForm(post=post,topic=topic)
    args = {}
    args.update(csrf(request))
    args['form'] = f
    return render_to_response('post.html',args)
示例#7
0
def edit_post(pk):
    form = EditPostForm()
    try:
        post_obj = Post.objects.get(pk=pk)
    except(DoesNotExist):
        flash('Does not exist')
        return abort(404)

    if form.validate_on_submit():
        post_obj.post_title = edit_property(post_obj.post_title,
                                            form.post_title.data)
        post_obj.description = edit_property(post_obj.description,
                                             form.description.data)
        post_obj.created_on = datetime.utcnow()
        post_obj.save()
        flash('Edited')
    return render_template('post_edit.html', form=form)
示例#8
0
def create_topic(request, forum, topic=None):
    from forms import TopicForm, PostForm, AddPostForm, EditPostForm
    from django import forms

    forum = get_object_or_404(Forum, active=True, slug=forum)
    if request.method == "GET":
        if topic:
            topic = get_object_or_404(Topic, id=topic)
            apf = EditPostForm(topic=topic, instance=topic.get_body)
        else:
            apf = AddPostForm()

        return render(request, "forum/create_topic.html", {
            "forum": forum,
            "apf": apf,
        })
    if request.method == "POST":
        ip = request.META.get('HTTP_X_FORWARDED_FOR', None)
        post_form_kwargs = {
            "forum": forum,
            "user": request.user,
            "ip": ip,
        }

        apf = AddPostForm(request.POST, **post_form_kwargs)
        if apf.is_valid():
            url = reverse('forum:forum', args=[
                str(forum.slug),
            ])
            apf.save()
            return redirect(url)
        else:
            return HttpResponse("Invalid")
示例#9
0
def edit_post(postid):
    form = EditPostForm()
    post = Post.query.filter_by(id = postid).first()
    if post == None:
        flash('Post not found.')
        return redirect(url_for('index'))
    if post.author.id != g.user.id:
        flash('You cannot edit this post.')
        return redirect(url_for('index'))
    if form.validate_on_submit():
        post.body = form.post.data
        post.timestamp = datetime.utcnow()
        post.author = g.user
        post.image = form.image.data
        post.link1 = form.link1.data
        post.link1_text = form.link1_text.data
        post.link2 = form.link2.data
        post.link2_text = form.link2_text.data
        post.link3 = form.link3.data
        post.link3_text = form.link3_text.data
        post.link4 = form.link4.data
        post.link4_text = form.link4_text.data
        post.link5 = form.link5.data
        post.link5_text = form.link5_text.data
        db.session.commit()
        flash('Your edits are now live!')
        return redirect(url_for('index'))
    elif request.method != "POST":
        form.image.data = post.image
        form.post.data = post.body
        form.link1.data = post.link1
        form.link1_text.data = post.link1_text
        form.link2.data = post.link2
        form.link2_text.data = post.link2_text
        form.link3.data = post.link3
        form.link3_text.data = post.link3_text
        form.link4.data = post.link4
        form.link4_text.data = post.link4_text
        form.link5.data = post.link5
        form.link5_text.data = post.link5_text
    return render_template('edit_post.html',
        form = form)
示例#10
0
def edit_post(id):
    form = EditPostForm()
    post = Post.query.get(id)
    if post is None:
        flash("What? I know no post such as this.")
        return redirect(url_for('index'))
    if post.author.id != g.user.id:
        flash('You cannot edit this post!')
        return redirect(url_for('index'))
    if form.validate_on_submit():
        app.logger.info(g.user.handle, 'pre-edited post ', id, post.body)
        post.body = form.body.data
        db.session.add(post)
        db.session.commit()
        flash('History revised.')
        app.logger.info(g.user.handle, 'edited post ', id, post.body)
        return redirect(url_for('index'))
    else:
        form.body.data = post.body
    return render_template('edit_post.html', form=form, post=post, max_post_length=app.config['MAX_POST_LENGTH'])
示例#11
0
def create_topic(request, forum, topic=None):
    from forms import TopicForm, PostForm, AddPostForm, EditPostForm
    from django import forms

    forum = get_object_or_404(Forum, active=True, slug=forum)
    if request.method == "GET":
        if topic:
            topic       = get_object_or_404(Topic, id=topic)
            apf         = EditPostForm(topic=topic, instance=topic.get_body)
        else:
            apf         = AddPostForm()

        return render(request, "forum/create_topic.html", {
            "forum"         : forum,
            "apf"           : apf,
        })
    if request.method == "POST":
        ip = request.META.get('HTTP_X_FORWARDED_FOR', None)
        post_form_kwargs = {
            "forum"     : forum, 
            "user"      : request.user, 
            "ip"        : ip, 
        }

        apf         = AddPostForm(request.POST, **post_form_kwargs)
        if apf.is_valid():
            url = reverse('forum:forum', args=[str(forum.slug),])
            apf.save()
            return redirect(url)
        else:
            return HttpResponse("Invalid")
示例#12
0
def update_post(post_id):
    """Edit form for user's posts."""

    post = Post.query.get(post_id)

    if "user_id" not in session:
        flash("🚫 You must be logged in to edit posts.")
        return redirect("/")

    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.title = form.title.data
        post.photo_url = form.photo_url.data
        post.purchase_url = form.purchase_url.data
        post.caption = form.caption.data

        db.session.commit()
        flash(f"New post: {post.title} updated. 👍🏻")
        return redirect("/myposts")

    return render_template("posts/post_edit.html", form=form, post=post)
示例#13
0
def edit_post(postid, content, return_where):
    if not permission_to_edit_post(session['userid'], postid):
        flash("You don't have permission to edit this content.")
        return redirect(url_for('error'))

    edit_form = EditPostForm(request.form)
    if edit_form.validate() and request.method == 'POST':
        edit_post_controller(postid, edit_form.content.data)
        if return_where == 'userpage':
            # get userid of page where post belongs to
            userpage = get_page(postid).ownerid
            return redirect(url_for('user_page', userid=userpage))
        elif return_where == 'grouppage':
            grouppage = get_page(postid).groupid
            return redirect(url_for('group_page', groupid=grouppage))
        else:
            return redirect(url_for('post_page', postid=postid))
    else:
        edit_form = EditPostForm()
        edit_form.content.data = content
        return render_template('pages/editpost.html',
                               form=edit_form,
                               content=content)
示例#14
0
文件: views.py 项目: mpobrien/moblog
def edit(post_id):
    try:
        oid = ObjectId(post_id)
    except:
        return redirect(url_for("newpost"))
    post = db.posts.find_one({"_id":oid})
    if request.method == 'GET':
        form = EditPostForm()
        form.post_id.data = post_id
        form.title.data = post['title']
        form.content.data = post['body']
        return render_template("write.html", form=form, post_id=post_id)
    else:
        form = NewPostForm(request.form)
        if form.validate():
            title = form.title.data
            body = form.content.data
            md = Markdown()
            html = md.convert(gfm(body))
            db.posts.update({"_id":oid}, {"$set" :{"title":title, "body":body, "html":html}})
            return redirect(url_for("home"))
        else:
            return render_template("write.html", form=form, post_id=post_id)
示例#15
0
def edit_blog_post(post_id):
    user = current_user
    post = Post.query.filter_by(id=post_id).first_or_404()

    # Check that the user logged in is the post's author, if not redirect to index
    if (post.author.id != user.id):
        flash("Only the author of this post can edit it.")
        return redirect('/index')

    title = 'Edit Blog Post'
    header = 'Edit a Blog Post'

    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        if form.update_ts.data:
            post.timestamp = datetime.datetime.now()

        try:
            db.session.commit()
            flash('Post "' + form.title.data + '" updated!')
            return redirect('/index')
        except e:
            flash(e.message)
            return redirect('/edit_blog_post/' + str(post_id))

    form.populate_obj(post)

    return render_template('edit_blog_post.html',
                           user=user,
                           title=title,
                           header=header,
                           form=form,
                           post=post)
示例#16
0
文件: app.py 项目: brielp/bookmarkit
def edit_post(board_id, post_id):
    """ Edit or add post due date """
    board = Board.query.get_or_404(board_id)

    if not g.user or board.user_id != g.user.id:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    post = Post.query.get_or_404(post_id)
    form = EditPostForm(obj=post)

    if form.validate_on_submit():
        post.complete_by = form.complete_by.data
        db.session.add(post)
        db.session.commit()

        return redirect(f"/boards/{board_id}")

    else:
        notifications = get_notifications(g.user.id)
        return render_template('edit_post.html',
                               form=form,
                               post=post,
                               notifications=notifications)
示例#17
0
def edit_post(id):
    form = EditPostForm()
    task_to_edit = Post.query.get_or_404(id)

    if request.method == 'POST':
        task_to_edit.sub_title = form.sub_title.data
        task_to_edit.content = form.content.data
        db.session.commit()
        flash('updated successfully', 'success')
        return redirect(
            url_for('account',
                    sub_title=task_to_edit.sub_title,
                    content=task_to_edit.content))
    elif request.method == 'GET':
        form.sub_title.data = task_to_edit.sub_title
        form.content.data = task_to_edit.content
    return render_template('edit_post.html', form=form)