コード例 #1
0
def discussions_create():
    form = DiscussionForm(request.form)
    if not form.validate():
        return render_template(
            "discussions/new.html",
            form=DiscussionForm(),
            error=
            "Title length must be between 5 and 100 characters. Content must be between 5 and 2000 characters."
        )
    discussion = Discussion(form.title.data)
    discussion.set_account_id(current_user.id)
    #Tags are separated by whitespace, split them into array and append them to discussion separately.
    discussion_tags = form.tags.data.split(' ')
    for tagname in discussion_tags:
        # Check for empty strings
        if tagname and tagname.strip():
            tag = Tag(tagname)
            discussion.tags.append(tag)
    db.session().add(discussion)
    db.session().commit()

    message = Message(form.content.data)
    message.set_account_id(current_user.id)
    message.set_discussion_id(discussion.id)

    db.session().add(message)
    db.session().commit()

    return redirect(url_for("discussions_show", discussion_id=discussion.id))
コード例 #2
0
def messages_create(thread_id):
    form = MessageForm(request.form)

    if not form.validate():
        thread = Thread.query.filter_by(id=thread_id).first()
        title = thread.title

        return render_template(
            "messages/list.html",
            messages=Message.query.filter_by(thread_id=thread_id).order_by(
                Message.date_created),
            thread_id=thread_id,
            title=title,
            form=form)

    m = Message(form.content.data)
    m.thread_id = thread_id
    m.account_id = current_user.id

    db.session().add(m)
    db.session().commit()

    t = Thread.query.filter_by(id=thread_id).first()
    t.date_modified = datetime.utcnow()
    db.session().commit()

    return redirect(url_for("get_messages_from_thread_id",
                            thread_id=thread_id))
コード例 #3
0
def threads_create():

    categories = [(c.id, c.name) for c in Category.query.all()]

    if request.method == "GET":
        form = ThreadForm()
        form.categories.choices = categories
        return render_template("threads/new.html", form=form)

    form = ThreadForm(request.form)
    form.categories.choices = categories

    if not form.validate():
        return render_template("threads/new.html", form=form)

    t = Thread(form.title.data)
    t.account_id = current_user.id

    categories = form.categories.data
    for c_id in categories:
        c = Category.query.get(c_id)
        t.categories.append(c)

    db.session().add(t)
    db.session().flush()

    m = Message(form.content.data)
    m.thread_id = t.id
    m.account_id = current_user.id

    db.session().add(m)
    db.session().commit()

    return redirect(url_for("threads_index"))
コード例 #4
0
def messages_create(channel_id):

    messageform = MessageForm(request.form)
    channel = Channel.query.get(channel_id)

    if not messageform.validate() or messageform.body.data.isspace():
        return render_template(
            "channels/channel.html",
            messageform=MessageForm(),
            channel=channel,
            que=Message.count_how_many_comments_get_first(channel_id),
            my_channels=Channel.get_my_channels(current_user.id),
            all_channels=Channel.get_channels_where_not_in(current_user.id),
            allready_join=Channel.is_joined(channel_id, current_user.id),
            error="message must be 2 character length",
            public_channels=Channel.get_all_publics())

    message = Message(messageform.body.data, current_user.username)
    message.account_id = current_user.id
    message.channel_id = channel_id

    db.session().add(message)
    db.session().commit()

    return redirect(
        url_for("one_channel_index", channel_id=channel_id, sort='first'))
コード例 #5
0
ファイル: views.py プロジェクト: glinoen/tsoha-Places
def topics_create():
    form = TopicForm(request.form)
    if form.title.validate(form) and form.message.validate(form):
        place = db.session.query(Place).get(form.place.data)
        if form.place.data == 0:
            place_id = 0
        else:
            place_id = place.id
          
        topic = Topic(form.title.data, place_id)
        db.session().add(topic)
        db.session().commit()
        topic_timefix = Topic.query.get(topic.id)
        topic_timefix.date_created = datetime.now().replace(microsecond=0, second = 0)
        db.session().commit

        message = Message(form.message.data, topic.id, current_user.id)
        db.session().add(message)
        db.session().commit()
        message_timefix = Message.query.get(message.id)
        message_timefix.date_created = datetime.now().replace(microsecond=0, second = 0)
        db.session().commit()

        newTopicAccount = topicAccount.insert().values(topic_id=topic.id, account_id=current_user.id)
        db.session().execute(newTopicAccount)
        db.session.commit()

        return redirect(url_for("topics_index"))
    
    places = db.session.query(Place)
    form=TopicForm()
    form.place.choices = [("0", "---")] + [(i.id, i.name) for i in places]

    return render_template("topics/new.html", form = form, error="topic name must be between 1-100 characters and message between 1-1000 characters")
コード例 #6
0
ファイル: views.py プロジェクト: dennsva/Keskustelufoorumi
def thread(thread_id,
           thread_edit=None,
           message_create=Message("", None, None),
           show_errors=False,
           message_edit=None,
           message_edit_id=None):

    if message_edit_id:
        message_edit_id = int(message_edit_id)
        message_edit = Message.query.get(message_edit_id)

    thread = Thread.query.get(thread_id)
    thread.user = User.query.get(thread.account_id)

    if current_user.is_authenticated:
        Read.mark_as_read(current_user.id, thread_id)

    return render_template("thread.html",
                           thread=thread,
                           thread_edit=thread_edit,
                           tags=Tag.find_thread_id(thread_id),
                           other_tags=Tag.find_not_thread_id(thread_id),
                           messages=Message.find_thread_id(thread_id),
                           message_create=message_create,
                           show_errors=show_errors,
                           message_edit=message_edit)
コード例 #7
0
def thread_respond(thread_id):
    form = MessageForm(request.form)
    if not form.validate():
        return render_template("message_response_form.html", form = form)
    new_message = Message(title=form.title.data, content=form.content.data, time_of_sending=datetime.now(), author_id=current_user.id, thread_id=thread_id)
    db.session.add(new_message)
    db.session.commit()
    return render_template("thread_details.html", thread=Thread.query.get(thread_id))
コード例 #8
0
    def post_reply(thread_id, message_text, user_id):
        m = Message(message_text, thread_id=thread_id,
                    user_id=user_id)

        t = Thread.query.get(thread_id)
        t.date_modified = db.func.current_timestamp()

        db.session.add(m)
        db.session.commit()
コード例 #9
0
    def create_thread(title, message_text, user_id, category_id):
        t = Thread(title=title, category_id=category_id)

        db.session.add(t)
        db.session.flush()
        m = Message(message_text=message_text, thread_id=t.id,
                    user_id=user_id, original_post=True)
        db.session.add(m)
        db.session.commit()
コード例 #10
0
ファイル: views.py プロジェクト: Suidat/Keskustelufoorumi
def messages_create(target):
    check_ban(target)
    form = MessageForm(request.form)
    if not form.validate():
        return redirect(url_for("discussion_home", target=target, page=1))
    m = Message(request.form.get("message"), target, current_user.get_id())
    db.session().add(m)
    db.session().commit()
    return redirect(url_for("discussion_home", target=target, page=1))
コード例 #11
0
ファイル: views.py プロジェクト: dennsva/Keskustelufoorumi
def message_create(thread_id):
    text = request.form.get("text")
    message = Message(text, current_user.id, thread_id)

    if not message.validate(new=True):
        return thread(thread_id=thread_id,
                      message_create=message,
                      show_errors=True)

    db.session().add(message)
    db.session().commit()

    return redirect(url_for('thread', thread_id=thread_id))
コード例 #12
0
def discussions_comment(discussion_id):
    form = CommentForm(request.form)
    if not form.validate():
        return redirect(
            url_for("discussions_show", discussion_id=discussion_id))
    message = Message(form.comment.data)
    message.set_account_id(current_user.id)
    message.set_discussion_id(discussion_id)

    db.session().add(message)
    db.session().commit()

    return redirect(url_for("discussions_show", discussion_id=discussion_id))
コード例 #13
0
def message_new(group_id):
    form = MessageForm(request.form)
    if not form.validate():
        return render_template("messages/newMessage.html", form=form)

    m = Message(form.name.data)
    m.text = m.text
    m.account_id = current_user.id
    m.group_id = group_id

    db.session().add(m)
    db.session().commit()

    return redirect(url_for("group_messages", group_id=group_id))
コード例 #14
0
def messages_create(topic_id):
    form = MessageForm(request.form)

    if not form.validate():
      return render_template("messages/new.html", form = form, topic_id=topic_id)
    
    m = Message(form.message.data)
    m.account_id = current_user.id
    m.topic_id = topic_id

    db.session().add(m)
    db.session().commit()

    return redirect(url_for("messages_index", topic_id=topic_id))
コード例 #15
0
ファイル: views.py プロジェクト: anketola/flask-docker
def messages_create():
    form = MessageForm(request.form)

    if not form.validate():
        return render_template("index.html",
                               messages=Message.query.all(),
                               form=form)

    m = Message(form.message.data)

    db.session().add(m)
    db.session().commit()

    return redirect(url_for("index"))
コード例 #16
0
ファイル: views.py プロジェクト: H4m5t3r/Keskustelufoorumi
def messages_create():
    form = MessageForm(request.form)

    if not form.validate():
        return render_template("messages/new.html", form = form)

    t = Message(form.name.data, form.messagetext.data)
    t.account_id = current_user.id
    t.category_id = request.form['category_id']

    db.session().add(t)
    db.session().commit()
  
    return redirect(url_for("messages_index"))
コード例 #17
0
def message_add(club_id):
    club = Club.query.get(club_id)
    if not club or current_user.id != club.leader_id:
        return redirect(url_for("clubs_index"))

    form = MessageForm(request.form)
    if not form.validate():
        return render_template("clubs/club.html", club=club)

    message = Message(form.message.data)
    message.club_id = club.id

    db.session().add(message)
    db.session().commit()

    return redirect(url_for("club_page", club_id=club.id))
コード例 #18
0
ファイル: views.py プロジェクト: mrasola/keskustelufoorumi
def messages_create():
    f = MessageForm()

    if not f.validate():
        return render_template("messages/new.html", form=f)

    m = Message(f.subject.data, f.body.data)
    m.account_id = current_user.id

    for c in f.categories.data:
        cat = Category.query.get(c)
        m.categories.append(cat)

    db.session.add(m)
    db.session.commit()

    return redirect(url_for("messages_index"))
コード例 #19
0
def thread_create():
    user_choices = request.form.getlist("choices")
    topics = []
    for user_choice in user_choices:
        topics.append(Topic.query.get(int(user_choice)))

    new_thread = Thread(title="väliaikainen otsikko", time_of_opening=datetime.now(), author_id=current_user.id, topics=topics)
    db.session.add(new_thread)
    db.session.commit()

    form = MessageForm(request.form)
    if not form.validate():
        return render_template("message_opening_form.html", form = form)
    new_message = Message(title=form.title.data, content=form.content.data, time_of_sending=datetime.now(), author_id=current_user.id, thread_id=new_thread.id)
    new_thread.title = new_message.title

    db.session.add(new_message)
    db.session.commit()
    return render_template("thread_details.html", thread = new_thread)
コード例 #20
0
ファイル: views.py プロジェクト: maarila/discussions-forum
def messages_create(topic_id):
    form = MessageForm(request.form)

    if not form.validate():
        return render_template("topics/one_topic.html",
                               form=form,
                               topic=Topic.query.get(topic_id),
                               messages=Message.query.filter_by(
                                   topic_id=topic_id,
                                   reply_id=None).paginate(page=1,
                                                           per_page=5,
                                                           error_out=False))

    m = Message(form.name.data)
    m.author = current_user.name
    m.account_id = current_user.id
    m.topic_id = topic_id

    db.session.add(m)
    db.session.commit()

    return redirect("/topics/" + topic_id + "/")
コード例 #21
0
ファイル: views.py プロジェクト: glinoen/tsoha-Places
def messages_create(topic_id):
    form = ReplyForm(request.form)
    if form.validate_on_submit():
        message = Message(form.reply.data, topic_id, current_user.id)
        
        db.session().add(message)
        db.session().commit()
        message_timefix = Message.query.get(message.id)
        message_timefix.date_created = datetime.now().replace(microsecond=0, second = 0)
        db.session().commit()

        currentTopicUsers = Topic.query.get(topic_id).accounts.all()
        for user in currentTopicUsers:
            if user.id == current_user.id:
                return redirect(url_for("topic_index", topic_id = topic_id))

        newTopicAccount = topicAccount.insert().values(topic_id=topic_id, account_id=current_user.id)
        db.session().execute(newTopicAccount)
        db.session.commit()   
    
        return redirect(url_for("topic_index", topic_id = topic_id))
    
    return render_template("topics/topic.html", messages = db.session.query(Message).filter(Message.topic_id == topic_id), topic = Topic.query.get(topic_id), form = form, error="message must be between 1-1000 characters")
コード例 #22
0
ファイル: views.py プロジェクト: maarila/discussions-forum
def messages_reply(topic_id, message_id):
    form = MessageForm(request.form)

    if not form.validate():
        return render_template(
            "messages/one.html",
            topic=Topic.query.get(topic_id),
            form=form,
            message=Message.query.get(message_id),
            replies=Message.query.filter_by(reply_id=message_id).all(),
            further_replies=Message.query.filter_by(topic_id=topic_id))

    reply = Message(form.name.data)
    reply.author = current_user.name
    reply.account_id = current_user.id
    reply.topic_id = topic_id
    reply.reply_id = message_id

    db.session.add(reply)
    db.session.commit()

    return redirect("/topics/" + topic_id + "/" + "messages" + "/" +
                    message_id + "/")
コード例 #23
0
ファイル: views.py プロジェクト: hannuorn/Huutokauppa
def messages_create(auction_id):

    html_file = "auctions/view.html"
    a = Auction.query.get(auction_id)
    form = BiddingForm(request.form)

    invalid = False
    if not form.message.validate(form):
        invalid = True

    seller = User.query.get(a.account_id)
    bids = Bid.find_bids(auction_id)
    highest_bid = Bid.highest_bid(auction_id)
    messages = Message.get_messages(auction_id)
    ended = 0
    if a.date_ends < datetime.datetime.now():
        ended = 1
    time_to_go = a.date_ends - datetime.datetime.now()

    if invalid:
        return render_template(html_file,
                               form=form,
                               edit_mode=0,
                               seller=seller,
                               bids=bids,
                               highest_bid=highest_bid,
                               ended=ended,
                               days_to_go=time_to_go.days,
                               messages=messages,
                               auction=a)

    m = Message(auction_id, current_user.id, form.message.data)
    db.session().add(m)
    db.session().commit()

    return redirect(url_for("auctions_view", auction_id=auction_id))