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)
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)
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)
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."
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)
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)