Exemple #1
0
def subscriptions():
    subscribes = SubscribeModel(db.get_connection())
    user_subscriptions = subscribes.get_all(session['user_id'])
    user_model = UsersModel(db.get_connection())
    news = NewsModel(db.get_connection())
    for_post = []
    for _, user in user_subscriptions:
        for_post.extend([
            list(i) + [user_model.get(user)[1]]
            for i in reversed(news.get_all(user))
        ])
    return render_template('subscriptions.html', news=for_post)
Exemple #2
0
def dialog(user_id):
    mm = MessageModel(db.get_connection())
    um = UsersModel(db.get_connection())
    user_in_session_name = session['user_id']
    all_messages = []
    messages = mm.get_all_between_pair(user_in_session_name, user_id)
    for message in messages:
        all_messages.append((um.get(message[1])[1],
                             message[-1]))  # catch message with sender's name
    all_messages.reverse()
    return render_template('dialog_page.html',
                           messages=all_messages,
                           user_id=user_id)
Exemple #3
0
def send_message(user_id):
    usersmodel = UsersModel(db.get_connection())
    messageModel = MessageModel(db.get_connection())
    username = usersmodel.get(user_id)[1]
    form = MessageSendForm()
    user_id_now = session['user_id']
    if form.validate_on_submit():
        message = form.content.data
        messageModel.send(
            user_id_now, user_id, message
        )  # add to message db sender id, recipient id and message(currently unencrypted)
        return redirect('/messages')
    return render_template('send_message.html', form=form, username=username)
Exemple #4
0
def get_user_page(user_id):
    users = UsersModel(db.get_connection())
    if users.exists_only_by_id(user_id):
        name = users.get(user_id)[1]
        subscribes = SubscribeModel(db.get_connection())
        news = NewsModel(db.get_connection()).get_all(user_id)
        return render_template(
            'view_page.html',
            news=reversed(news),
            current_user_id=user_id,
            user_name=name,
            user_photo="/static/avas/" + str(user_id) + ".jpg",
            subscribed=subscribes.check_subscription(
                session['user_id'],
                user_id))  # return user template if user exists
    return "Sorry. User not found."  # if you go on /user/something_not_in_db you will see page with text "Sorry. User not found."
Exemple #5
0
def get_messages():
    message_model = MessageModel(db.get_connection())
    users_model = UsersModel(db.get_connection())
    user_id_now = session['user_id']
    messages = message_model.get_all(
        user_id_now
    )  # message db has get_all method that returns all the users messages
    news_messages_list = []
    for message in messages:
        user_sender_name = users_model.get(message[1])[1]
        user_getter_name = users_model.get(message[2])[1]
        text = message[3]
        news_messages_list.append(
            (user_sender_name, user_getter_name, text, message[1], message[2]))
    news_messages_list.reverse(
    )  # reverse list because newer messages should be upper than older messages
    return render_template('messages_page.html', messages=news_messages_list)
Exemple #6
0
def get_messages():
    mm = MessageModel(db.get_connection())
    um = UsersModel(db.get_connection())
    user_in_session_name = session['user_id']
    messages = mm.get_all(user_in_session_name)
    news_messages_list = []
    dialog_with = []
    for message in messages:  # add users, with whom there is a dialog
        if message[1] != user_in_session_name:
            if message[1] not in dialog_with:
                dialog_with.append(message[1])
        else:
            if message[2] not in dialog_with:
                dialog_with.append(message[2])
    dialog_with.reverse(
    )  # list of users, who send  a message to user_in_session
    for name in dialog_with:
        last_message = mm.get_all_between_pair(
            user_in_session_name,
            name)[-1][-1]  # catch last message from dialog
        dialog_name = um.get(name)
        news_messages_list.append((dialog_name, last_message))
    return render_template('messages_page.html', messages=news_messages_list)