Пример #1
0
def item_remove(cat_name, item_name):
    item = DBSession.query(Item)\
                            .join(Category)\
                            .filter(Category.name == cat_name)\
                            .filter(Item.name == item_name).one()

    if login_session['user_id'] != item.user_id:
        flash(
            "Hey!, if you are not the owner of a item you CANNOT REMOVE it.",
            "warning"
        )
        return redirect(url_for('catalog.item',
                                cat_name=cat_name,
                                item_name=item_name))

    if request.method == 'POST':
        DBSession.delete(item)
        DBSession.commit()
        flash(
            "The ITEM WAS REMOVED successfully.",
            "success"
        )
        return redirect(url_for('catalog.category', cat_name=cat_name))
    else:
        return render_template('catalog/item_remove.html',
                               cat_name=cat_name,
                               categories=categories,
                               item=item)
Пример #2
0
def createUser(login_session):
    newUser = User(name=login_session['username'],
                   email=login_session['email'],
                   picture=login_session['picture'])
    DBSession.add(newUser)
    DBSession.commit()
    user = DBSession.query(User).filter_by(email=login_session['email']).one()
    return user.id
Пример #3
0
def item_json(item_id):
    item = DBSession.query(Item).filter_by(id=item_id).one_or_none()
    if item:
        return jsonify(item=item.serialize)

    response = make_response(json.dumps('Item not found'), 401)
    response.headers['Content-Type'] = 'application/json'
    return response
Пример #4
0
def catalog_json():
    output = []
    for category in categories:
        items = DBSession.query(Item).filter_by(category_id=category.id).all()
        serialized_category = category.serialize
        serialized_category['items'] = [i.serialize for i in items]
        output.append(serialized_category)
    return jsonify(categories=output)
Пример #5
0
def index():
    items = DBSession.query(Item, Category)\
                     .join(Category)\
                     .order_by(Item.id.desc())[0:10]
    return render_template('catalog/index.html',
                           cat_name='Latest',
                           categories=categories,
                           items=items)
Пример #6
0
def category(cat_name):

    items = DBSession.query(Item, Category)\
                            .join(Category)\
                            .filter(Category.name == cat_name)\
                            .order_by(Item.id.desc()).all()
    return render_template('catalog/index.html',
                           cat_name=cat_name,
                           categories=categories,
                           items=items)
Пример #7
0
def item(cat_name, item_name):
    item = DBSession.query(Item)\
                           .join(Category)\
                           .filter(Category.name == cat_name)\
                           .filter(Item.name == item_name).one_or_none()
    if item is None:
        return render_template('404.html'), 404

    return render_template('catalog/item.html',
                           cat_name=cat_name,
                           categories=categories,
                           item=item)
Пример #8
0
def item_new():
    item = Item()
    if request.method == 'POST':
        item_name = request.form['item_name']
        cat_id, cat_name = request.form['cat'].split('|')
        item_desc = request.form['item_desc']

        if item_name == '' or item_desc == '':
            flash(
                "All fields need to be filled with text.",
                "warning"
            )
            return render_template('catalog/item_new.html',
                                   cat_name=cat_name,
                                   categories=categories,
                                   item={'name': item_name,
                                         'desc': item_desc})

        try:
            item.user_id = login_session['user_id']
            item.category_id = cat_id
            item.name = item_name
            item.desc = item_desc
            DBSession.add(item)
            DBSession.commit()
        except Exception as e:
            flash(
                e.message,
                "danger"
            )
            DBSession.rollback()
            return render_template('catalog/item_new.html',
                                   cat_name=cat_name,
                                   categories=categories,
                                   item=item)
        else:
            flash(
                "The ITEM WAS CREATED successfully.",
                "success"
            )
            return redirect(url_for('catalog.item',
                                    cat_name=cat_name,
                                    item_name=item_name))
    else:
        return render_template('catalog/item_new.html',
                               cat_name=request.args.get('cat_name', ''),
                               categories=categories,
                               item=item)
Пример #9
0
def getUserID(email):
    try:
        user = DBSession.query(User).filter_by(email=email).one()
        return user.id
    except:
        return None
Пример #10
0
def getUserInfo(user_id):
    user = DBSession.query(User).filter_by(id=user_id).one_or_none()
    return user
Пример #11
0
from flask import Blueprint, jsonify, make_response
import json

from item_catalog.db import DBSession
from item_catalog.blueprints.catalog.models import Category, Item

# Define the blueprint: 'api', set its url prefix: app.url/api/v1
# version v1, in the future I could create a v2 api blueprint version
# and keep support for version v1
bp = Blueprint('api', __name__, url_prefix='/api/v1')

# Get all categories to be used later.
categories = DBSession.query(Category).all()

# ============================================================================
# Controlers
# ============================================================================


@bp.route('/catalog')
def catalog_json():
    output = []
    for category in categories:
        items = DBSession.query(Item).filter_by(category_id=category.id).all()
        serialized_category = category.serialize
        serialized_category['items'] = [i.serialize for i in items]
        output.append(serialized_category)
    return jsonify(categories=output)


@bp.route('/catalog/item/<int:item_id>')
Пример #12
0
 OAuth 2.0 framework to allow users to securely and easily login to\
 your web applications."),
    (1, 3, "App Monetization", "Learn how to effectively develop, implement,\
 and measure your monetization strategy, iterating on the model as\
 appropriate."),
    (1, 3, "Rapid Prototyping", "Learning to prototype will save you time and\
 money in the development process. You will create quality apps\
 faster and have confidence in the viability of your products."),
    (1, 3, "Intro to Psychology", "Go on a journey through psychological\
 concepts and principles to enable you to gain a more in-depth\
 understanding of human thought and behavior. IN COLLABORATION WITH\
 San Jose State Universit"),
    (1, 4, "Writing READMEs", "Documentation is an important part of the\
 development process. Learn to write READMEs using Markdown so your\
 code can be used by other humans!"),
    (1, 4, "Linux Command Line Basics", "An introduction to the Linux\
 command line interface."),
    (1, 4, "Version Control with Git", "Learn how to use Git, a popular\
 Version Control System and essential tool for any developer."),
    (1, 3, "First User", "The first registered user will be the owner of\
 of the item entries already created."),
]

for cat in categories:
    DBSession.add(Category(name=cat[0]))

for i in items:
    DBSession.add(Item(user_id=i[0], category_id=i[1], name=i[2], desc=i[3]))

DBSession.commit()
Пример #13
0
def item_edit(cat_name, item_name):
    item = DBSession.query(Item)\
                            .join(Category)\
                            .filter(Category.name == cat_name)\
                            .filter(Item.name == item_name).one()

    if login_session['user_id'] != item.user_id:
        flash(
            "Hey!, if you are not the owner of a item you CANNOT EDIT it.",
            "warning"
        )
        return redirect(url_for('catalog.item',
                                cat_name=cat_name,
                                item_name=item_name))

    if request.method == 'POST':
        item_name = request.form['item_name']
        cat_id, cat_name = request.form['cat'].split('|')
        item_desc = request.form['item_desc']

        if item_name == '' or item_desc == '':
            flash(
                "All fields need to be filled with text.",
                "warning"
            )
            return render_template('catalog/item_edit.html',
                                   cat_name=cat_name,
                                   categories=categories,
                                   item={'name': item_name,
                                         'desc': item_desc})

        try:
            item.category_id = cat_id
            item.name = item_name
            item.desc = item_desc
            DBSession.commit()
        except Exception as e:
            DBSession.rollback()
            flash(
                e.message,
                "danger"
            )
            return render_template('catalog/item_edit.html',
                                   cat_name=cat_name,
                                   categories=categories,
                                   item={'name': item_name,
                                         'desc': item_desc})
        else:
            flash(
                "The ITEM WAS EDITED successfully.",
                "success"
            )
            return redirect(url_for('catalog.item',
                                    cat_name=cat_name,
                                    item_name=item_name))

    else:
        return render_template('catalog/item_edit.html',
                               cat_name=cat_name,
                               categories=categories,
                               item=item)