Example #1
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")
Example #2
0
def approve_item(item_id):
    # if session.get('admin') is not None:
    item = Item.get_item_by_id(item_id)
    if item is not None:
        item.update_item(attribute_name="approved", attribute_value=True)
        return make_response(pending_items())
    return make_response(pending_items())
Example #3
0
def delete_item(item_id):
    # if session.get('email') is not None:
    item = Item.get_item_by_id(item_id)
    if item is not None:
        user = User.get_user_by_email(email=session['email'],
                                      collection=UserConstants.COLLECTION)
        if item.user_id == user._id:
            item.remove_item()
            return make_response(view_items())
    return render_template("item/items.jinja2",
                           message="You can't remove item")
Example #4
0
def update_contact():
    item_id = request.form['pk']
    value = request.form['value']
    item = Item.get_item_by_id(item_id)
    item.update_item("contact", value)
    if session.get('admin') is not None:
        return render_template("item/item_details.jinja2", item=item)
    else:
        item.update_item(attribute_name="approved", attribute_value=False)
        return render_template(
            "message_center.jinja2",
            message="Item will published as soon as the change is approved")
Example #5
0
 def __init__(self,
              user_email,
              price_limit,
              item_id,
              _id=None,
              last_checked=None):
     self.user_email = user_email
     self.price_limit = price_limit
     self.item = Item.get_item_by_id(item_id)
     self.last_checked = datetime.datetime.utcnow(
     ) if last_checked is None else last_checked
     self._id = uuid.uuid4().hex if _id is None else _id
Example #6
0
def edit_item(item_id, attribute_name, attribute_value):
    item = Item.get_item_by_id(item_id)
    if item is not None:
        item.update_item(attribute_name=attribute_name,
                         attribute_value=attribute_value)
        if session.get('admin') is not None:
            return render_template("item/item_details.jinja2", item=item)
        else:
            item.update_item(attribute_name="approved", attribute_value=False)
            return render_template(
                "message_center.jinja2",
                message="Item will published as soon as the change is approved"
            )
    else:
        return render_template(
            "message_center.jinja2",
            message=
            "Could not update Item {} . Contact Us if you need further information!"
            .format(item.title))
Example #7
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))