示例#1
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data, content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html', title='New Post',
                           form=form, legend='New Post')
示例#2
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Запись размещена', 'success')
        return redirect(url_for('main.hello'))

    context = {'title': 'Новая запись', 'legend': 'Новая запись'}
    return render_template('create_post.html', context=context, form=form)
示例#3
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash('Your post has been updated!', 'success')
        return redirect(url_for('posts.post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    return render_template('create_post.html', title='Update Post',
                           form=form, legend='Update Post')
示例#4
0
def submit_post():
    form = PostForm()

    if form.validate_on_submit():
        new_post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user)
        db.session.add(new_post)
        db.session.commit()
        flash('Your blog post has been submitted', 'success')
        return redirect(url_for('main.home'))

    return render_template('posts/submit.html',
                           title='Submit a post',
                           legend='Submit a blog post',
                           form=form)
示例#5
0
def post_create(request):
    if not request.user.is_staff or not request.user.is_superuser:
        print('not is_staff')
        raise Http404

    print(request.POST)
    form = PostForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = request.user
        instance.save()
        # message success
        messages.success(request, "Successfully Created")
        return HttpResponseRedirect(instance.get_absolute_url())
    context = {
        "form": form,
    }
    return render(request, "post_form.html", context)
示例#6
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash('Запись изменена', 'success')
        return redirect(url_for('posts.post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    context = {
        'title': 'Редактирование записи',
        'legend': 'Редактирование записи'
    }
    return render_template('create_post.html', context=context, form=form)
示例#7
0
def post_update(request, slug=None):
    if not request.user.is_staff or not request.user.is_superuser:
        raise Http404
    instance = get_object_or_404(Post, slug=slug)
    form = PostForm(request.POST or None,
                    request.FILES or None,
                    instance=instance)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.save()
        messages.success(request,
                         "<a href='#'>Item</a> Saved",
                         extra_tags='html_safe')
        return HttpResponseRedirect(instance.get_absolute_url())

    context = {
        "title": instance.title,
        "instance": instance,
        "form": form,
    }
    return render(request, "post_form.html", context)
示例#8
0
def edit_post(post_id):
    current_post = Post.query.get_or_404(post_id)

    if current_post.author != current_user:
        abort(403)

    form = PostForm()

    if form.validate_on_submit():
        current_post.title = form.title.data
        current_post.content = form.content.data
        db.session.commit()
        flash('Your post have been updated.', 'success')
        return redirect(url_for('posts.post', post_id=current_post.id))

    elif request.method == 'GET':
        form.title.data = current_post.title
        form.content.data = current_post.content

    return render_template('posts/submit.html',
                           title='Edit post',
                           legend='Edit your blog post',
                           form=form)
示例#9
0
文件: views.py 项目: upappteam/UP
def new_post():
    """
    Write a new post with type publications :
    1.public
    2.subsets
    3.uplines
    4.directs
    5.upline
    :return: Data from new post page.
    """
    form = PostForm()
    if request.method == 'POST':
        subject = form.subject.data
        content = form.content.data
        type_publication = form.type_publication.data
        user_data = User.find_by_email(current_user.email)

        if type_publication == 'public':
            Post(user_data["email"],
                 subject,
                 content,
                 type_publication=type_publication).insert(
                     _type=type_publication)

        elif type_publication == 'uplines':
            uplines = current_user.find_uplines(current_user._id)
            if uplines:
                post = Post(user_data["email"],
                            subject,
                            content,
                            type_publication=type_publication)
                post.insert(type_publication)
                for up in uplines:
                    Post.connect(up.email, post._id, type_publication)
            else:
                flash("You have not any uplines.")
                return redirect(url_for('posts.new_post'))

        elif type_publication == 'subsets':
            subsets = User.find_sub(current_user._id)
            if subsets:
                post = Post(user_data["email"],
                            subject,
                            content,
                            type_publication=type_publication)
                post.insert(type_publication)
                for sub in subsets:
                    Post.connect(sub.email, post._id, type_publication)
            else:
                flash("You have not any subsets.")
                return redirect(url_for('posts.new_post'))

        elif type_publication == 'directs':
            directs = User.find_directs(current_user.email)
            if directs:
                post = Post(user_data["email"],
                            subject,
                            content,
                            type_publication=type_publication)
                post.insert(type_publication)
                for direct in directs:
                    Post.connect(direct.email, post._id, type_publication)
            else:
                flash("You have not any directs.")
                return redirect(url_for('posts.new_post'))

        elif type_publication == 'upline':
            upline = User.find_one(current_user.upline_phone_number)
            if upline:
                post = Post(user_data["email"],
                            subject,
                            content,
                            type_publication=type_publication)
                post.insert(type_publication)
                Post.connect(upline["email"], post._id, type_publication)

            else:
                flash("You have not any upline.")
                return redirect(url_for('posts.new_post'))

        return redirect(url_for('posts.view_sent_posts'))

    return render_template("post/new_post.html", form=form)