Пример #1
0
def logout():
    # only disconnect if user is logged in
    creds = flask.session.get('credentials')
    if creds is None:
        response = flask.make_response(
            json.dumps('Current user not connected.'), 401
        )
        response.headers['Content-Type'] = 'application/json'
        return response

    del flask.session['credentials']
    del flask.session['gplus_id']
    del flask.session['username']
    if 'email' in flask.session.keys():
        del flask.session['email']

    content = str(
        page_design.make_page_header('') +
        "<body><h3>You successfully logged out.</h3></body>"
    )
    return flask.render_template_string(content)
Пример #2
0
def home():
    # grab user id if user is logged in
    user_id = ''
    if 'gplus_id' in flask.session:
        user_id = flask.session['gplus_id']

    # set defaults
    item_list = []
    cat_to_sel = ''
    desc_to_show = None
    please_edit_item = False
    saved_item = False

    # handle form responses. Code written in order of possible use
    if flask.request.method == 'POST':

        # 1. New Category
        if 'newcat' in flask.request.form:
            new_cat = flask.request.form['new_category']
            create_category(new_cat.strip(), user_id)
        else:
            for each in flask.request.form:
                # 2A. Delete Category
                if each[:6] == 'catdel':
                    cat_to_del = each[each.find('_')+1:each.rfind('_')]
                    delete_category_by_id(cat_to_del)
                # 2B. Select Category
                elif (
                    each[:6] == 'catsel' or each[:5] == 'newit' or
                    each[:5] == 'itdel' or each[:5] == 'itsel' or
                    each[:4] == 'ited' or each[:5] == 'nited'
                ):
                    form_name = each[each.find('_')+1:each.rfind('_')]
                    if form_name.count('-') > 0:
                        cat_to_sel = form_name[form_name.rfind('-')+1:]
                        it_to_sel = form_name[:form_name.find('-')]
                    else:
                        cat_to_sel = form_name

                    # 3A. New Item in Selected Category
                    if each[:5] == 'newit':
                        new_it = flask.request.form['new_item']
                        new_it_desc = flask.request.form['new_item_desc']
                        new_pic = flask.request.form['new_pic']
                        add_item(new_it, cat_to_sel, new_it_desc, user_id,
                                 new_pic)
                    # 3B. Delete Item in Selected Category
                    elif each[:5] == 'itdel':
                        delete_item(it_to_sel)
                    # 3C. Select Item (for/not for edit) in Selected Category
                    elif each[:5] == 'itsel' or each[:4] == 'ited':
                        item_stuff = get_item(it_to_sel)
                        desc_to_show = item_stuff[1]
                        item_name = item_stuff[0]
                        if each[:4] == 'ited':
                            please_edit_item = True
                    # 3D. Edit Item in Selected Category
                    elif each[:5] == 'nited':
                        ed_it_desc = flask.request.form['desc_edit']
                        ed_it_name = flask.request.form['it_name']
                        ed_it_cat = flask.request.form['cat_edit']
                        ed_it_pic = flask.request.form['pic_edit']
                        edit_item(it_to_sel, ed_it_name, ed_it_desc, ed_it_cat,
                                  ed_it_pic)
                        # item_stuff = get_item(it_to_sel)
                        # desc_to_show = item_stuff[1]
                        item_name = get_item(it_to_sel)[0]
                        saved_item = True

                    # all in 2B or above require getting items from a selected
                    #     category
                    item_list = get_items_by_cat_id(cat_to_sel)
                    if item_list == []:
                        # setting to None will trigger 'no categories' message
                        item_list = [None]

    # Make page content
    page_content = page_design.make_page_header(user_id)
    cats = get_categories()
    page_content += page_design.make_category_content(cats, user_id)

    # If Category selected, make item list content
    if cat_to_sel != '':
        page_content += page_design.make_item_content(
            get_category_name(cat_to_sel), item_list, cat_to_sel, user_id
        )
        # If Item selected/edited, make description content
        if saved_item is True:
            page_content += page_design.make_saved_item(item_name)
        elif desc_to_show is not None:
            page_content += page_design.make_description(
                it_to_sel, item_stuff, cat_to_sel,
                please_edit_item, cats, user_id
            )
        else:
            page_content += '<td width="33%"><td>'
    page_content += '</tr></table></body>'
    return flask.render_template_string(page_content)