def add_message(item_id): if session.get('email') is None: return render_template("login.jinja2", message="You must be logged in to add items") else: if request.method == 'GET': return render_template("user/messages/add_message.jinja2", item_id=item_id) else: # TODO: add check sender_id and recipient id to verify they are not same to avoind sending to oneself. user = User.get_user_by_email(collection=UserConstants.COLLECTION, email=session['email']) title = request.form['title'] content = request.form['content'] item_id = item_id recipient_id = Item.get_user_id(item_id) recipient_user = User.get_user_by_id( collection=UserConstants.COLLECTION, user_id=recipient_id["user_id"]) # TODO: verify none is none or empty. message = Message(title=title, content=content, item_id=item_id, sender_id=user._id, sender_username=user.username, recipient_id=recipient_id["user_id"], recipient_username=recipient_user.username) message.save_to_mongo() return make_response(get_sent_messages(user.email))
def get_message_details(message_id): # TODO: add verification mechanism to verify that user is part of the message (user_id, sender_id, recipient_id) if session.get('email') is None: return render_template("login.jinja2", message="You must be logged in to add items") else: message = Message.get_message_by_id(message_id) if message is not None: user = User.get_user_by_email(collection=UserConstants.COLLECTION, email=session['email']) if (user._id == message.sender_id) or (user._id == message.recipient_id): if (user._id == message.recipient_id): message.mark_massage_read() item = Item.get_item_by_id(message.item_id) messages = Message.get_messages_by_item_id(message.item_id) for reply in messages: if (user._id == reply.recipient_id): reply.mark_massage_read() session['msgs_count'] = Message.get_unread_messages_count( user._id) return render_template("user/messages/message_details.jinja2", user_id=user._id, msgs=messages, item=item) else: return render_template( "message_center.jinja2", message= "you are not allowed to view details of this message") else: return render_template("message_center.jinja2", message="could not find message details")
def submit(): if request.method == 'POST': email = request.form['sender_email'] name = request.form['sender_name'] content = request.form['message'] newMsg = Message(name, email, content) newMsg.save_to_database() return render_template("index.jinja2")
def send_message(): try: all_users = User.get_all() recivers = [] if request.method == 'POST': title = request.form['title'] content = request.form['content'] if request.form['reciver_email'] in [None, [], ""]: return render_template( 'messages/send_message.html', e= 'Your receiver field is empty. Please fill in at least ONE receiver.', all_users=all_users, title=title, content=content) try: # reciver_id = User.find_by_email(request.form['reciver_email'])._id recivers_string = request.form['reciver_email'].split() for email in recivers_string: recivers.append(User.find_by_email(email)._id) except Exception: return render_template( 'messages/send_message.html', e= "Please Check That you have coped EXACTLY the target user's email! And separated the emails with spaces!!", all_users=all_users, title=title, content=content) sender_id = User.find_by_email(session['email'])._id message = Message(title=title, content=content, reciver_id=recivers, sender_id=sender_id, is_a_noteOBJ=False) message.save_to_mongo() return redirect(url_for('.my_sended_messages', user_id=sender_id)) return render_template('messages/send_message.html', all_users=all_users) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_(error_msg=''.join(error_msg), error_location='send_message message sending') Error_obj.save_to_mongo() return render_template( 'error_page.html', error_msgr='Crashed during sending your message...')
def send_note_radio(note_id): note = Note.find_by_id(note_id) all_notes = Note.get_all() all_users = User.get_all() if request.method == 'POST': try: note = Note.find_by_id(request.form['note']) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_(error_msg=''.join(error_msg), error_location='send_note note finding/reading') Error_obj.save_to_mongo() return render_template( 'error_page.html', error_msgr='Crashed during preparing page...') message_title = request.form['title'] if request.form.getlist("user") in [None, [], ""]: return render_template( 'messages/send_note.html', e= "You hadn't selected an reciver. Please select at least ONE reciver.", all_users=all_users, title=message_title, ) else: recivers = request.form.getlist("user") sender_id = User.find_by_email(session['email'])._id message = Message(title=message_title, content=note._id, reciver_id=recivers, sender_id=sender_id, is_a_noteOBJ=True) message.save_to_mongo() return redirect(url_for('.my_sended_messages', user_id=sender_id)) return render_template('messages/send_note.html', all_notes=all_notes, all_users=all_users, note_=note)
def login(): if session.get('email') is None: if request.method == 'GET': return render_template('login.jinja2') else: username_email = request.form['username_email'] password = request.form['password'] user = User.get_user_by_email(username_email, UserConstants.COLLECTION) if user is not None: if user.password == password: session['email'] = user.email admin = Admin.get_user_by_email(username_email, AdminConstants.COLLECTION) if admin is not None: session['admin'] = admin.email unread_messages = Message.get_unread_messages_count(user._id) session['msgs_count'] = unread_messages return make_response(view_items()) else: return render_template("login.jinja2", message="Invalid login") else: return render_template("login.jinja2", message="User does not exist") else: if session['email'] is not None: return render_template("message_center.jinja2", message="You are already logged In.") else: return render_template("login.jinja2")
def add_reply(item_id): if session.get('email') is None: return render_template("login.jinja2", message="You must be logged in to add items") else: if request.method == 'POST': # TODO: add check sender_id and recipient id to verify they are not same to avoind sending to oneself. content = request.form['content'] message = Message.get_main_message_by_item_id(item_id) if message is not None: user = User.get_user_by_email( collection=UserConstants.COLLECTION, email=session['email']) if user._id == message.sender_id: # TODO: verify none is none or empty. new_message = Message( title=message.title, content=content, item_id=item_id, sender_id=user._id, sender_username=user.username, recipient_id=message.recipient_id, recipient_username=message.recipient_username, parent_id=message._id) new_message.save_to_mongo() return make_response(get_sent_messages(user.email)) elif user._id == message.recipient_id: new_message = Message( title=message.title, content=content, item_id=item_id, sender_id=user._id, sender_username=user.username, recipient_id=message.sender_id, recipient_username=message.sender_username, parent_id=message._id) new_message.save_to_mongo() return make_response(get_sent_messages(user.email)) else: return render_template( "message_center.jinja2", message= "you are not allowed to view details of this message") else: return render_template( "message_center.jinja2", message="could not find message to reply to") else: return render_template("message_center.jinja2")
def view_all_items(): if session.get('email') is None: flash("sign up for FREE to post your items.") else: user = User.get_user_by_email(session['email'], UserConstants.COLLECTION) session['msgs_count'] = Message.get_unread_messages_count(user._id) items = Item.get_all_approved_items() return render_template("item/all_items.jinja2", items=items)
def view_items(): # if session.get('email') is None: # return render_template("login.jinja2", message="You must be logged in to view your items") # else: if session.get('email') is None: return render_template( "login.jinja2", message="You must be logged in to view your items") user = User.get_user_by_email(session['email'], UserConstants.COLLECTION) items = Item.get_items_by_user_id(user._id) session['msgs_count'] = Message.get_unread_messages_count(user._id) return render_template("item/items.jinja2", items=items)
def list_message(cid): email = session['email'] user_data = User.find_by_email(email) session['cid'] = cid channel_data = Channel.find_by_cid(cid) cname = channel_data.cname lists = Message.list_messages_by_uid_and_cid(user_data._id, cid) return render_template("messages/list.jinja2", lists=lists, unick=user_data.unick, cname=cname)
def get_recieved_messages(user_email): if session.get('email') is None: return render_template("login.jinja2", message="You must be logged in to add items") else: if user_email == session['email']: user = User.get_user_by_email(collection=UserConstants.COLLECTION, email=user_email) if user is not None: messages = Message.get_recieved_messages_by_user_id(user._id) unread_messages_count = Message.get_unread_recieved_messages_count( user._id) sent_messages = Message.get_sent_messages_by_user_id(user._id) unread_sent_messages_count = 0 for sent_message in sent_messages: unread_sent_messages_count += Message.get_unread_sent_messages_count( user_id=sent_message.sender_id, item_id=sent_message.item_id) unread_replies_list = {} for message in messages: unread_replies_list[ message. _id] = message.get_unread_recieved_replies_count( user_id=user._id, item_id=message.item_id) session['msgs_count'] = Message.get_unread_messages_count( user._id) return render_template( "user/messages/recieved_messages.jinja2", msgs=messages, user_id=user._id, unread_messages_count=unread_messages_count, unread_replies=unread_replies_list, unread_sent_messages_count=unread_sent_messages_count) else: return render_template("message_center.jinja2", message="Could not locate user") else: return render_template( "message_center.jinja2", message= "Looks like you used an email that could not be authorized")
def register_user(): try: if request.method == 'POST': email = request.form['email'] password = request.form['password'] nick_name = request.form['nickname'] try: if User.register_user(email, password, nick_name): session['email'] = email message = Message( title="Welcome to Note-it™!", content="""Welcome to Note-it! You can make a note, and share it with other users! Or you can just keep the note to your selves. You can send messages to other users too! Check out this website!!""", reciver_id=User.find_by_email(email)._id, sender_id=User.find_by_email('*****@*****.**')._id) message.save_to_db() return redirect(url_for("home")) except UserErrors.UserError as e: return e.message return render_template("users/register.html") except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_( error_msg=''.join(error_msg), error_location='register_user while registering user') Error_obj.save_to_mongo() return render_template('error_page.html', error_msgr='Crashed during registering you...')
def new_message(): if request.method == 'POST': email = session['email'] user_data = User.find_by_email(email) user_id = user_data._id cid = session['cid'] mcontext = request.form.get('mcontext') try: if Message.new_message(user_id, cid, mcontext): print('New Message posted!') return redirect(url_for('.list_message', cid=cid)) except MessageErrors.MessageError as e: return e.message cid = session['cid'] return redirect(url_for('.list_message', cid=cid))
def all_messages(): try: all_messagess = Message.find_all() return render_template('messages/all_messages.html', all_messagess=all_messagess) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_(error_msg=''.join(error_msg), error_location='message reading') Error_obj.save_to_mongo() return render_template( 'error_page.html', error_msgr='Crashed during reading your messages...')
def delete_message(message_id): try: message = Message.find_by_id(message_id) message.delete() return redirect(url_for('.my_recived_messages', user_id=session['_id'])) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_(error_msg=''.join(error_msg), error_location='delete_message message deleting') Error_obj.save_to_mongo() return render_template( 'error_page.html', error_msgr='Crashed during deleteing your message...')
def message(message_id, is_sended=False): try: message = Message.find_by_id(message_id) if message is None: return 'There was an server error. Please try again a another time!' if message.readed_by_reciver is False and is_sended is False and session[ '_id'] in message.reciver_id and message.readed_date is None: message.readed_by_reciver = True message.readed_date = datetime.datetime.now() message.save_to_mongo() sender_nickname = User.find_by_id(message.sender_id).nick_name if type(message.reciver_id) is list: reciver_nickname = [] for reciver in message.reciver_id: reciver_nickname.append(User.find_by_id(reciver).nick_name) else: reciver_nickname = User.find_by_id(message.reciver_id).nick_name if message.is_a_noteOBJ: note = Note.find_by_id(message.content) else: note = None return render_template('messages/message.html', message=message, sender_nickname=sender_nickname, reciver_nickname=reciver_nickname, is_a_note=message.is_a_noteOBJ, note=note) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_(error_msg=''.join(error_msg), error_location='message message reading') Error_obj.save_to_mongo() return render_template('error_page.html', error_msgr='Crashed during reading message...')
def my_recived_messages(user_id): try: messages = Message.find_by_reciver_id(user_id) user_nickname = User.find_by_id(session['_id']).nick_name return render_template('messages/my_recived_messages.html', messages=messages, user_nickname=user_nickname) except: error_msg = traceback.format_exc().split('\n') Error_obj = Error_( error_msg=''.join(error_msg), error_location='my_recived_messages-during message finding') Error_obj.save_to_mongo() return render_template( 'error_page.html', error_msgr='Crashed during reading your messages')
def item_details(item_id): item = Item.get_item_by_id(item_id) if item is not None: if session.get('email') is not None: user = User.get_user_by_email(email=session['email'], collection=UserConstants.COLLECTION) session['msgs_count'] = Message.get_unread_messages_count(user._id) if (user._id == item.user_id) or (session.get('admin') is not None): return render_template("item/item_details.jinja2", item=item, editable=True) else: return render_template("item/item_details.jinja2", item=item) else: return render_template("item/item_details.jinja2", item=item) else: return render_template( "message_center.jinja2", message= "Item {} does not have details. Contact Us if you need further information!" .format(item.title))
__author__ = 'salton' # test script for some API import pymysql from src.common.database import Database #from src.models.users.user import User from src.models.workspaces.workspace import Workspace from src.models.channels.channel import Channel #import src.models.workspaces.constants as WorkspaceConstants from src.models.winvitations.winvitation import Winvitation from src.models.cinvitations.cinvitation import Cinvitation from src.models.messages.message import Message Database.initialize() message_data = Message.list_messages_by_uid_and_cid(1, 4) print(message_data[0]) #print(user_data) #data = Channel.list_channels_by_uid(6) Database.close()