Ejemplo n.º 1
0
def add_blog_post():
    user = current_user

    title = 'Add Blog Post'
    header = 'Add a Blog Post'

    form = AddPostForm()
    if form.validate_on_submit():
        new_post = Post(user_id=user.id,
                        title=form.title.data,
                        content=form.content.data,
                        timestamp=datetime.datetime.now())

        try:
            db.session.add(new_post)
            db.session.commit()
            flash('Post "' + form.title.data + '" added!')
            return redirect('/index')
        except IntegrityError as e:
            flash(e.message)
            return redirect('/add_blog_post')

    return render_template('add_blog_post.html',
                           user=user,
                           title=title,
                           header=header,
                           form=form)
Ejemplo n.º 2
0
def add_post():
    """Adds a post."""

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

    form = AddPostForm()

    if form.validate_on_submit():
        # data = {k: v for k, v in form.data.items() if k != "csrf_token"}
        # new_post = Post(**data)
        # image = form.image.data
        title = form.title.data
        photo_url = form.photo_url.data
        purchase_url = form.purchase_url.data
        caption = form.caption.data
        user_id = session["user_id"]

        new_post = Post(user_id=user_id,
                        title=title,
                        photo_url=photo_url,
                        purchase_url=purchase_url,
                        caption=caption)
        db.session.add(new_post)
        db.session.commit()
        flash(f"New post: {new_post.title} added. 👏🏻")
        return redirect("/myposts")

    else:
        # re-present form for editing
        return render_template('/posts/add_post_form.html', form=form)
Ejemplo n.º 3
0
def addPost():
    form = AddPostForm()
    user = current_user
    print(user)
    userid = current_user.id
    print(userid)
    if form.validate_on_submit():
        try:
            print("form.title.data", form.title.data)
            p = Posts(title=form.title.data,
                      url=form.url.data,
                      text=form.text.data,
                      user_id=userid)
            print("p", p)
            db.session.add(p)
            db.session.commit()
        except:
            db.session.rollback()
            # if request.method == "POST":
            #     if len(request.form['name']) > 4 and len(request.form['post']) > 10:
            #         res = dbase.addPost(request.form['name'], request.form['post'], request.form['url'])
            #         if not res:
            #             flash('Ошибка добавления статьи', category = 'error')
            #         else:
            #             flash('Статья добавлена успешно', category='success')
            #     else:
            flash('Ошибка добавления записи', category='error')
        return redirect(url_for('index'))
        # mainmenu = ["Установка", "Первое приложение", "Обратная связь"]
        # return render_template('add_post.html', menu=mainmenu, form=form, title="Добавление статьи")
    # mainmenu = ["Установка", "Первое приложение", "Обратная связь"]
    return render_template('add_post.html',
                           menu=mainmenu,
                           form=form,
                           title="Добавление записи")
Ejemplo n.º 4
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")
Ejemplo n.º 5
0
def add_post(board_id):
    """ Add a post to a board, make request to LinkPreview API """
    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("/")

    form = AddPostForm(request.form)

    if form.validate_on_submit():
        authdata = {"key": API_KEY, "q": form.url.data}

        resp = requests.get("https://api.linkpreview.net/", params=authdata)

        if resp.status_code != 200:
            print(f"{resp.json()}")
            flash(
                "There was an error while adding this Post. Please try again.",
                "danger")
            return redirect(f"/boards/{board_id}")

        title = resp.json()["title"]
        description = resp.json()["description"]
        image_url = resp.json()["image"]
        url = resp.json()["url"]
        complete_by = form.complete_by.data

        if not title:
            flash("No Title could be found for that URL.", "danger")
            return redirect(f"/boards/{board_id}")

        if not image_url:
            image_url = default_image_url

        if not url:
            url = form.url.data

        p1 = Post(title=title,
                  description=description,
                  image_url=image_url,
                  url=url,
                  complete_by=complete_by,
                  board_id=board_id)
        db.session.add(p1)
        db.session.commit()

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

    posts = Post.query.filter_by(board_id=board_id).all()
    dated_posts = readable_date(posts)

    return render_template('board.html',
                           board=board,
                           form=form,
                           posts=dated_posts)
Ejemplo n.º 6
0
def add_post():
    form = AddPostForm(request.form)
    if request.method == 'POST' and form.validate():
        post = Post(form.title.data, form.filename_content.data,
                    datetime.now(), form.category.data, form.author.data)
        db.session.add(post)
        db.session.commit()
        flash('Post added', 'info')
        return redirect(url_for('add_post'))
    return render_template('_add.html',
                           form=form,
                           rows=Post.query.all(),
                           target_model="Post",
                           fields=Post.__mapper__.c.keys(),
                           action="addpost")
Ejemplo n.º 7
0
def add():
    form = AddPostForm()
    if form.validate_on_submit():
        title = form.title.data
        topic = form.topic.data
        author = session['username']
        content = form.content.data

        post = Blogpost(title=title, topic=topic, author=author, \
        content=content, date_posted=datetime.now())

        db.session.add(post)
        db.session.commit()
        return redirect(url_for('profile', username=session['username']))
    return render_template('add.html', form=form)
Ejemplo n.º 8
0
def add_post():
    form = AddPostForm()
    session = db_session.create_session()
    if form.validate_on_submit():
        new_post = Post()
        new_post.author = session.merge(current_user)
        new_post.title = form.title.data
        new_post.text = form.text.data
        now_datetime = datetime.datetime.now()
        new_post.creating_date = datetime.datetime.now()
        new_post.creating_date_norm_view = date_to_normal_view(now_datetime)
        session.add(new_post)
        session.commit()
        return redirect(f'/user/{current_user.id}/1')
    return render_template('add_edit_post_page.html', form=form, add=True)
Ejemplo n.º 9
0
def edit_post(post_id):
    form = AddPostForm()
    categories = Category.query.all()
    form.category.choices = [(c.id, c.name) for c in categories]
    post = Post.query.get_or_404(post_id)
    if request.method == "GET":
        form.title.data = post.title
        form.md_text.data = post.md_text
        form.category.data = post.category
        return render_template("admin/add-post.html",
                               post=post,
                               form=form,
                               categories=categories)
    else:
        post.title = form.title.data
        md_text = form.md_text.data
        post.md_text = md_text
        post.edit_date = datetime.datetime.utcnow()
        post.category_id = form.category.data
        post.html_text = markdown.markdown(
            post.md_text,
            extensions=[
                'markdown.extensions.fenced_code',
                'markdown.extensions.codehilite', 'markdown.extensions.tables'
            ])
        db.session.add(post)
        db.session.commit()
        return redirect(url_for("admin.admin_posts"))
Ejemplo n.º 10
0
def add_post():
    form = AddPostForm()
    if form.validate_on_submit():
        current_time = datetime.datetime.now()
        post = Post(title=form.title.data,
                    body_markdown=form.body_markdown.data,
                    body=markdown.markdown(form.body_markdown.data,
                                           extensions=['codehilite']),
                    tagline=" ".join(form.body_markdown.data.split()[:25]) +
                    "..",
                    timestamp=current_time,
                    user_id=current_user.id)
        post.tags.append(Tag(tag='Sports'))
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('posts'))
    return render_template('add_post.html', form=form)
Ejemplo n.º 11
0
def fuck_self():
    if session['user_available']:
        blogpost = AddPostForm(request.form)
        posts = Post.query.order_by(Post.pid.desc()).limit(10).all()
        user = User.query.all()
        return render_template('p**n.html',
                               blogpost=blogpost,
                               posts=posts,
                               user=user)
    flash('User is not Authenticated')
    return redirect(url_for('index'))
Ejemplo n.º 12
0
def edit_post(postid):
    post = Post.query.filter_by(id=postid).first()
    form = AddPostForm(obj=post)
    if form.validate_on_submit():
        current_time = datetime.datetime.now()
        post.title = form.blog_post_title.data
        post.body_markdown = form.blog_post_markdown.data
        post.body = markdown.markdown(form.blog_post_markdown.data,
                                      extensions=['codehilite'])
        post.tagline = " ".join(
            form.blog_post_markdown.data.split()[:25]) + ".."
        post.timestamp = current_time
        post.user_id = current_user.id
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('posts'))

    return render_template('add_post.html',
                           form=form,
                           post=json.dumps(post.serialize()))
Ejemplo n.º 13
0
def add_post():
    form = AddPostForm()
    categories = Category.query.all()
    form.category.choices = [(c.id, c.name) for c in categories]
    if request.method == "POST":
        Post.add(title=form.title.data,
                 md_text=form.md_text.data,
                 category_id=form.category.data,
                 author_id=current_user.id)
    return render_template("admin/add-post.html",
                           categories=categories,
                           form=form)
Ejemplo n.º 14
0
def wall(request, wall_owner=None):
    """Страница стены юзера. Пользователь может постить себе на стену и другим пользователям"""
    # определяем владельца стены
    if wall_owner == "":
        wall_owner = request.user.username

    form = AddPostForm()
    if request.method == "POST":
        form = AddPostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.commentator_name = request.user.username
            post.wall_owner = wall_owner
            post.save()

    # извлекаем посты хозяина стены
    posts = Post.objects.filter(wall_owner=wall_owner)
    prepared_posts = []
    for post in posts:
        prepared_posts.append({"photo": post.photo, "comment": post.message})

    # извлекаем имена всех зарегистрированных пользователей
    users = list(User.objects.values_list('username', flat=True))
    users.remove("admin")
    context = {"wall_owner": wall_owner, "all_users": users, "form": form, "posts": prepared_posts}

    return render(request, template_name='blog/wall.html', context=context)
Ejemplo n.º 15
0
def add_post(request, forum_id, topic_id):
    topic = get_object_or_404(Topic, pk=topic_id)
    if not topic.forum.category.has_access(request.user):
        return HttpResponseForbidden()
    if topic.closed:
        return HttpResponseRedirect(topic.get_absolute_url())

    posts = topic.posts.all().select_related()[:5]

    if request.method == 'GET':
        form = AddPostForm()
        if 'post_id' in request.GET:
            post_id = request.GET['post_id']
            post = get_object_or_404(Post, pk=post_id)
            form.fields['body'].initial = '[quote]%s:\n%s[/quote]\n%s' %\
                (unicode(post.user), post.body, _('write here'))
    else:
        form = AddPostForm(request.POST)
        if form.is_valid():
            _inject_form(form,
                         ip=request.META.get('REMOTE_ADDR', None),
                         user=request.user,
                         topic=topic)
            post = form.save()
            return HttpResponseRedirect(post.get_absolute_url())

    return 'feincmsforum/add_post.html', {
        'form': form,
        'posts': posts,
        'topic': topic
    }
Ejemplo n.º 16
0
def show_board(board_id):
    """ Show board and posts on board """
    board = Board.query.get_or_404(board_id)

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

    form = AddPostForm()

    incomplete_posts = Post.query.filter(Post.board_id == board_id,
                                         Post.completed == False).order_by(
                                             Post.complete_by).all()
    completed_posts = Post.query.filter(Post.board_id == board_id,
                                        Post.completed == True).all()
    dated_posts = readable_date(incomplete_posts)
    notifications = get_notifications(g.user.id)

    return render_template('board.html',
                           board=board,
                           form=form,
                           posts=dated_posts,
                           completed_posts=completed_posts,
                           notifications=notifications)
Ejemplo n.º 17
0
    def get_context_data(self, **kwargs):
        context = super(ShowTopicView, self).get_context_data(**kwargs)

        last_post = self.topic.last_post

        if self.request.user.is_authenticated():
            self.topic.update_read(self.request.user)

        posts = context['page_obj'].object_list
        users = set(post.user.id for post in posts)
        profiles = Profile.objects.filter(user__pk__in=users)
        profiles = dict((profile.user_id, profile) for profile in profiles)

        for post in posts:
            post.user.forum_profile = profiles[post.user.id]

        initial = {}
        form = AddPostForm(topic=self.topic, initial=initial)

        moderator = self.request.user.is_superuser or\
            self.request.user in self.topic.forum.moderators.all()
        if self.request.user.is_authenticated() and \
                self.request.user in self.topic.subscribers.all():
            subscribed = True
        else:
            subscribed = False

        context.update({
            'topic': self.topic,
            'last_post': last_post,
            'form': form,
            'moderator': moderator,
            'subscribed': subscribed,
            'posts': posts
        })
        return context
Ejemplo n.º 18
0
def kill_self():
    if session['user_available']:
        blogpost = AddPostForm(request.form)
        us = User.query.filter_by(username=session['current_user']).first()
        if request.method == 'POST':
            infile = request.files['imagefile']
            if infile:
                filename = secure_filename(infile.filename)
                randname = str(uuid.uuid4())
                filename = randname + filename
                filepath = os.path.join(UPLOADS_DIR, filename)
                infile.save(filepath)
            else:
                filepath = None

            bp = Post(title=request.form['title'],
                      description=request.form['posttext'],
                      imgpath=filename,
                      puid=us.uid)
            db.session.add(bp)
            db.session.commit()
            return redirect(url_for('fuck_self'))
    flash('User is not Authenticated')
    return redirect(url_for('index'))
Ejemplo n.º 19
0
def new():
    form = AddPostForm()
    return render_template('post/add_post.html', form=form)
Ejemplo n.º 20
0
def edit(post_id):
    data = post.edit(post_id)
    form = AddPostForm()
    form.content.data = data['post'].content
    return render_template('post/edit_post.html', form=form, **data)
Ejemplo n.º 21
0
 def get(self, request):
     form = AddPostForm()
     return render(request,'DailyDiary/add_post.html',{'form':form})