예제 #1
0
def search():

    client = data.get_client()
    search_by = request.args.get('search_by')
    search_str = request.args.get('search')
    filter_by_cat = request.args.get('filter_by_cat')
    filter_by_rating = request.args.get('filter_by_rating')
    results = dao.search_by_query(client, search_str,
                                  search_by,
                                  filter_by_cat,
                                  filter_by_rating)

    no_of_result = results.count()
    categories = dao.get_all_categories(client)

    all_users = dao.get_all_users(client)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
    else:
        user = None

    return render_template('search_result.template.html',results=results, search_str=search_str, user=user, cat=categories, all_users=all_users, no_of_result=no_of_result)
예제 #2
0
def process_add_user():

    client = data.get_client()
    categories = dao.get_all_categories(client)

    password = request.form.get('password')
    encrypted_password = pbkdf2_sha256.hash(password)

    email = request.form.get('email')
    name = request.form.get('name')
    age = request.form.get('age')
    gender = request.form.get('gender')
    occupation = request.form.get('occupation')

    user_exist = dao.get_user_by_email(client, email)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
    else:
        user = None

    if user_exist:
        flash('You have already registered! Please login.')
        return render_template('register.template.html', cat=categories, user=user)
    else:
        dao.add_user_to_db(client, email, name, encrypted_password, age, gender, occupation)
        redirect_url = request.args.get('redirect')

        if redirect_url is None:
            redirect_url = "/"

        return redirect(redirect_url)
예제 #3
0
def edit_profile(user_id):

    client = data.get_client()

    user = check_user_log_in(client)
    categories = dao.get_all_categories(client)

    return render_template('edit_profile.template.html', user=user, cat=categories)
예제 #4
0
def confirm_delete_review(review_id):

    client = data.get_client()

    review = dao.get_review_by_review_id(client, review_id)
    user = check_user_log_in(client)
    categories = dao.get_all_categories(client)

    return render_template('delete_review.template.html', r=review, user=user, cat=categories)
예제 #5
0
def edit_review(review_id):
    client = data.get_client()
    public_key = os.environ.get('UPLOADCARE_PUBLIC_KEY')

    review = dao.get_review_by_review_id(client, review_id)
    user = dao.get_one_user(client, review['user_id'])
    categories = dao.get_all_categories(client)

    return render_template('edit_review.template.html', r=review, user=user, cat=categories, public_key=public_key, ratings=ratings)
예제 #6
0
def rebuild_category_map():
    """Rebuilds category map file"""
    all_cats = dao.get_all_categories()
    tree = build_category_tree(all_cats)
    map_json = json.dumps([tree], separators=(',', ':'), ensure_ascii=False)
    storage = staticstorage.GCSStorage()
    storage.put('category_map.json', map_json.encode('utf-8'), 'application/json')
    rebuild_flag = dao.CachedPersistentValue('map_rebuild_flag')
    rebuild_flag.put(False)
예제 #7
0
def read_reviews():
    client = data.get_client()

    latest_review = client[DB_NAME].user_reviews.find().sort('posted', pymongo.DESCENDING).limit(4)

    users = dao.get_all_users(client)
    categories = dao.get_all_categories(client)

    skincare_reviews = client[DB_NAME].user_reviews.find(
        {
             'categories.name': 'Skin Care'
        }
    ).sort('posted', pymongo.DESCENDING).limit(4)

    cosmetic_reviews = client[DB_NAME].user_reviews.find(
        {
            'categories.name': 'Make Up'
        }
    ).sort('posted', pymongo.DESCENDING).limit(4)

    bodycare_reviews = client[DB_NAME].user_reviews.find(
        {
            'categories.name': 'Body Care'
        }
    ).sort('posted', pymongo.DESCENDING).limit(1)

    haircare_reviews = client[DB_NAME].user_reviews.find(
        {
            'categories.name': 'Hair Care'
        }
    ).sort('posted', pymongo.DESCENDING).limit(1)

    formen_reviews = client[DB_NAME].user_reviews.find(
        {
            'categories.name': 'For Men'
        }
    ).sort('posted', pymongo.DESCENDING).limit(1)

    user_list = []
    for user in users:
        user_list.append(user)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
        else:
            user = None


    return render_template('read_reviews.template.html', review=latest_review, cat=categories, users=user_list, skincare=skincare_reviews, cosmetics=cosmetic_reviews, bodycare=bodycare_reviews, haircare=haircare_reviews, formen=formen_reviews, user=user)
예제 #8
0
def add_user():

    client = data.get_client()

    categories = dao.get_all_categories(client)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
    else:
        user = None

    return render_template('register.template.html', cat=categories, user=user)
예제 #9
0
def view_review_details(review_id):

    client = data.get_client()

    review = dao.get_review_by_review_id(client, review_id)
    all_users = dao.get_all_users(client)
    all_cat = dao.get_all_categories(client)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
    else:
        user = None

    return render_template('review_details.template.html', cat=all_cat, review=review, user=user, all_users=all_users)
예제 #10
0
def read_reviews_by_category(cat_id):

    client = data.get_client()
    reviews = dao.get_reviews_by_cat_id(client, cat_id)
    current_cat = dao.get_category_by_id(client, cat_id)
    all_cat = dao.get_all_categories(client)
    all_users = dao.get_all_users(client)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
    else:
        user = None

    return render_template('read_reviews_by_cat.template.html', current_cat=current_cat, cat=all_cat, reviews=reviews, user=user, all_users=all_users)
예제 #11
0
def process_edit_profile(user_id):
    client = data.get_client()

    user = check_user_log_in(client)
    email = request.form.get('email')
    name = request.form.get('name')
    password = user['password']
    age = request.form.get('age')
    gender = request.form.get('gender')
    occupation = request.form.get('occupation')

    dao.update_user_profile(client, user_id, email, name, password, age, gender, occupation)

    user = dao.get_one_user(client, user_id)
    categories = dao.get_all_categories(client)

    flash('Profile Updated')

    return render_template('edit_profile.template.html', user=user, cat=categories)
예제 #12
0
def view_my_reviews(user_id):

    client = data.get_client()

    my_reviews = dao.get_review_by_userid(client, user_id)
    categories = dao.get_all_categories(client)
    user = dao.get_one_user(client, user_id)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
        else:
            user = None
    else:
        return redirect('/user_login?redirect=/read_reviews')

    return render_template('my_reviews.template.html', reviews=my_reviews, user=user, cat=categories)
예제 #13
0
def add_review():

    client = data.get_client()
    public_key = os.environ.get('UPLOADCARE_PUBLIC_KEY')

    categories = dao.get_all_categories(client)
    cat_list = []

    for cat in categories:
        cat_list.append(cat)

    if flask_login.current_user.is_authenticated:
        current_user = flask_login.current_user

        if current_user:
            user = dao.get_user_by_email(client, current_user.id)
        else:
            user = None
    else:
        return redirect('/user_login?redirect=/add_review')

    return render_template('add_review.template.html',cat=cat_list, ratings=ratings, public_key=public_key, user=user)
예제 #14
0
def show_item_crud(category_id, item_id=None):
    """ Show Item CRUD """
    categories = get_all_categories()
    item = get_item_by_id(item_id)
    return render_template("item_crud.html", pagename="Add New Item", method="new",\
                            category_id=category_id, categories=categories, item=item)
예제 #15
0
CATEGORY_2 = Category(category_name="Appliances",
                      category_description="Appliances")
insert_category(CATEGORY_2)
CATEGORY_3 = Category(category_name="Furniture",
                      category_description="Furniture")
insert_category(CATEGORY_3)
CATEGORY_4 = Category(category_name="Jewelry", category_description="Jewelry")
insert_category(CATEGORY_4)
CATEGORY_5 = Category(category_name="Computers",
                      category_description="Computers")
insert_category(CATEGORY_5)
CATEGORY_6 = Category(category_name="Cell Phones",
                      category_description="Cell Phones")
insert_category(CATEGORY_6)
CATEGORY_7 = Category(category_name="Video Gaming",
                      category_description="Video Gaming")
insert_category(CATEGORY_7)
CATEGORY_8 = Category(category_name="Electronics",
                      category_description="Electronics")
insert_category(CATEGORY_8)
CATEGORY_9 = Category(category_name="Cars", category_description="Cars")
insert_category(CATEGORY_9)
CATEGORY_10 = Category(category_name="Collectibles",
                       category_description="Collectibles")
insert_category(CATEGORY_10)

CATEGORIES = get_all_categories()
for item in CATEGORIES:
    print("Name: %s, Id: %s, Desc: %s") %(item.category_name,\
                                          item.category_id, item.category_description)
예제 #16
0
def get_categories():
    return success_response(dao.get_all_categories())
예제 #17
0
def show_catalog():
    """ Homepage """
    categories = get_all_categories()
    items = get_lates_items()
    return render_template("catalog.html", categories=categories, items=items)