Пример #1
0
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))
Пример #2
0
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")
Пример #3
0
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")
Пример #4
0
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...')
Пример #5
0
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)
Пример #6
0
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")
Пример #7
0
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")
Пример #8
0
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)
Пример #9
0
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)
Пример #10
0
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)
Пример #11
0
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")
Пример #12
0
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...')
Пример #13
0
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))
Пример #14
0
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...')
Пример #15
0
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...')
Пример #16
0
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...')
Пример #17
0
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')
Пример #18
0
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))
Пример #19
0
__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()