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)
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)