def newCatalogItem(): catalog = session.query(Catalog).filter_by(parent_id=1).all() catalog_all = session.query(Catalog) newest_catalog = session.query(Catalog).filter(Catalog.id != 1).order_by( Catalog.id.desc()).limit(1).first() try: parentid = int(request.args.get('parentid')) except (ValueError, TypeError): parentid = 1 # print u'new_catalog_item: ', login_session if request.method == 'POST': if not session.query(Catalog).all(): Catalogitem1 = Catalog(name="(ROOT)", id=1, lvl=0, description="Real Root(does not display)", slug="/") session.add(Catalogitem1) try: session.commit() except: # (IntegrityError,InvalidRequestError): session.rollback() if request.form['name']: newname = request.form['name'] else: newname = 'No Name #' + str(newest_catalog.id + 1) if request.form['slug']: newslug = slugify(request.form['slug']) else: newslug = str(newest_catalog.id) new_item_slug = slugify(newslug) parent_node = catalog_all.filter_by( id=int(request.form['moveto'])).first() createdby = session.query(User).filter_by( email=login_session['email']).first() newItem = Catalog(name=newname, description=request.form['description'], parent_id=parent_node.id, slug=new_item_slug, lvl=parent_node.lvl + 1, user_id=createdby.id) if valid_item(newItem, session, catalog_all.all()): session.add(newItem) session.commit() else: response = make_response( json.dumps('422 Unprocessable Entity: Duplicated Slug?'), 422) response.headers['Content-Type'] = 'application/json' return response return redirect(url_for('catalogItem', catalog_path=newItem.slug)) else: return render_template('newCatalogItem.html', catalog=catalog, parentid=parentid)
def newCatalog(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': if 'provider' in login_session: if login_session['provider'] == 'google': try: userExists = session.query(User).filter_by(email=login_session['email']).one() except: createUser(login_session) newCatalog = Catalog( name=request.form['name'], user_id=login_session['email']) session.add(newCatalog) flash('New Catalog %s Successfully Created' % newCatalog.name) session.commit() return redirect(url_for('showCatalogs')) elif login_session['provider'] == 'facebook': try: userExists = session.query(User).filter_by(email=login_session['email']).one() except: createUser(login_session) newCatalog = Catalog( name=request.form['name'], user_id=login_session['email']) session.add(newCatalog) flash('New Catalog %s Successfully Created' % newCatalog.name) session.commit() return redirect(url_for('showCatalogs')) else: return render_template('newcatalog.html')
def add_catalog(): if 'username' not in login_session: return redirect(url_for('showLogin')) form = AddCatalogForm() if form.validate_on_submit(): #print "form ok" #print form.name.data #print form.description.data # temp = CatalogItems(name = form.name, description = form.description, # catalog_id = catalog_id) temp = Catalog(name = form.name.data, user_id = login_session['user_id']) session.add(temp) session.commit() current_catalog = session.query(Catalog).filter_by(name= form.name.data).all() catalog_id = current_catalog[0].id # print "item saved" return redirect(url_for('catalog_select', catalog_id = catalog_id)) #return render_template('additemsuccess.html') else: #print "first time form render" return render_template('addcatalog.html', form = form) #session.close() catalogs = session.query(Catalog).all() items = session.query(CatalogItems).filter_by(catalog_id=catalog_id).all() return render_template('main.html', catalogs=catalogs,items=items,catalog_id = catalog_id, active_catalog=active_catalog)
def main(): """Creats catalog database entries from a JSON file """ current_dir = os.path.dirname(os.path.abspath(__file__)) engine = create_engine(database_path) Base.metadata.create_all(engine) DBSession = sessionmaker(bind=engine) session = DBSession() json_file_path = os.path.join(current_dir, 'initial_catalog_data.json') with open(json_file_path, 'r') as f: data = json.load(f) for catalog_data in data: catalog = Catalog(name=catalog_data['name']) session.add(catalog) session.commit() catalog_id = session.query(Catalog)\ .filter_by(name=catalog_data['name'])\ .one()\ .id for item_data in catalog_data['items']: item = CatalogItem(name=item_data['name'], description=item_data['description'], catalog_id=catalog_id, creation_date=datetime.now(), user_id=item_data['user_id']) session.add(item) session.commit() session.close()
def newCatalog(): """ Logged in users can create a new catalog. Only logged in users have access to this page. The primary key in the CATALOG table is catalog_id, However, Catalog names are unique. There will be a message for users in case they added a duplicate catalog name. Args: Return: A new record with different catalog name will be added to the CATALOG talbe in the database. """ if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCatalog) try: session.commit() flash('New Catalog %s Successfully Created' % newCatalog.name) return redirect(url_for('showCatalog')) except Exception as err: session.rollback() if "UNIQUE constraint failed" in str(err): flash("Oops! Catalog Name Already Exists!") return redirect(url_for('newCatalog')) else: flash("Oops! Something Went Wrong! Try Again!") return redirect(url_for('showCatalog')) else: userid = getUserId(login_session['email']) return render_template('newCatalog.html', userid=userid)
def newItem(): """ Adding new idem and catalog (if catalog for user doesnot exist)""" if 'username' not in login_session: return redirect('/login') catalogs = session.query(Catalog).order_by(asc(Catalog.name)) catalogUnique = session.query(Catalog.name).distinct() if request.method == 'POST': catalogUser = session.query(Catalog).filter_by( user_id=login_session['user_id'], name=request.form['categories']) if catalogUser.count() == 0: catItem = Catalog(name=request.form['categories'], user_id=login_session['user_id']) print("______________") session.add(catItem) session.commit() # print(request.form['categories']) catalog = session.query(Catalog).filter_by( name=request.form['categories'], user_id=login_session['user_id']) newItem = MenuItem(name=request.form['title'], description=request.form['description'], price=request.form['price'], catalog_id=catalog[0].id, user_id=login_session['user_id']) session.add(newItem) session.commit() flash('New Menu %s Item Successfully Created' % (newItem.name)) return redirect(url_for('showCateg', catalog_name=catalog[0].name)) else: return render_template('newitem.html', catalogs=catalogUnique)
def newCatalog(): if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCatalog) session.commit() return redirect(url_for('showCatalogs')) else: return render_template('newCatalog.html')
def addCatalog(): if request.method == 'POST': newCatalog = Catalog(name=request.form['catalog'], created_by=current_user) db.session.add(newCatalog) db.session.commit() flash('Catalog Added Succesfully') return redirect(url_for('index')) else: return render_template('add_catalog.html', method="ADD")
def newCatalog(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form.get('name'), user_id=login_session.get('user_id')) session.add(newCatalog) session.commit() return redirect(url_for('showCatalogs')) else: return render_template('newCatalog.html')
def editItem(item_name, catalog_id, item_id): """ Editing item details and updating MenuItem and Catalog table""" if 'username' not in login_session: return redirect('/login') editedItem = session.query(MenuItem).filter_by(id=item_id).one() catalog = session.query(Catalog).filter_by(id=catalog_id).one() catalogUnique = session.query(Catalog.name).distinct() if login_session['user_id'] != catalog.user_id: return "<script>function myFunction() {alert('You are not " +\ "authorized to edit this items. Please create your own " +\ "catalog/item in order to edit items.');}</script><body " +\ "onload='myFunction()'>" if request.method == 'POST': catalogUser = session.query(Catalog).filter_by( user_id=login_session['user_id'], name=request.form['categories']) if catalogUser.count() == 0: catItem = Catalog(name=request.form['categories'], user_id=login_session['user_id']) print("______________") session.add(catItem) session.commit() catalogs = session.query(Catalog).order_by(asc(Catalog.name)) if request.form['title']: editedItem.name = request.form['title'] if request.form['description']: editedItem.description = request.form['description'] if request.form['price']: editedItem.price = request.form['price'] if request.form['categories']: for cat in catalogs: if cat.name == request.form[ 'categories'] and cat.user_id == login_session[ 'user_id']: catalog_name = cat.name editedItem.catalog_id = cat.id session.add(editedItem) session.commit() flash('Item Successfully Edited') return redirect(url_for('showCateg', catalog_name=cat.name)) else: print(catalog.name) return render_template('edititem.html', catalog_id=catalog_id, item_id=item_id, item=editedItem, catalog_name=catalog.name, catalogs=catalogUnique)
def newCatalog(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name']) session.add(newCatalog) flash('A new catalog %s was created successfully' % newCatalog.name) session.commit() return redirect(url_for('showCatalogs')) else: return render_template('newCatalog.html')
def newCatalog(): if request.method == 'POST': addedCatalogs = Catalog(name=request.form['name'], user_id=session['user_id']) sessionDB.add(addedCatalogs) sessionDB.commit() flash("The catalog %s added successfully " % request.form['name']) return redirect(url_for('catalogs')) else: return render_template('newCatalog.html')
def newCatalogItem(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newItem = Catalog( name=request.form['name'], user_id=login_session.get('user_id')) session.add(newItem) flash('New Catalog %s added successfully' % newItem.name) session.commit() return redirect(url_for('main_page')) else: return render_template('newcatalog.html')
def insert_category(): category = db_object["category"] test_user = populate_user_database() for items in category: name = category[0].keys()[0] id = category[0][name][0]["id"] image = category[0][name][1]["image"] query = Catalog(id=id, name=name, user=test_user, image=image) session.add(query) session.commit() print "Category created" return query
def newCategory(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCategory = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCategory) flash('New Category %s Successfully Created' % newCategory.name) session.commit() return redirect(url_for('showCatalog')) else: return render_template('newCategory.html')
def newCategory(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': added = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(added) session.commit() flash("successful New category was Added") return redirect(url_for('showCatalog')) else: return render_template('addcategory.html')
def editCatalog(catalog_path): edited = session.query(Catalog).filter_by(slug=catalog_path).first() catalog = session.query(Catalog).filter_by(parent_id=1).all() catalog_all = session.query(Catalog) createdby = session.query(User).filter_by( email=login_session['email']).first() if edited.user_id != createdby.id: # checking for User Authorization return "Category 403 - Don't touch things that don't belong to you.", 403 if edited: if request.method == 'POST': if request.form: if request.form['name']: newname = request.form['name'] else: newname = 'No Name #' + request.form['id'] if request.form['slug']: newslug = slugify(request.form['slug']) else: newslug = request.form['id'] parent_node = catalog_all.filter_by( id=int(request.form['moveto'])).first() # define a new item to check, # avoiding flush() which may cause constraint conflict check_item = Catalog(id=int(request.form['id']), name=newname, description=request.form['description'], parent_id=request.form['moveto'], slug=newslug) if valid_item(check_item, session, catalog_all.all()): edited.name = newname edited.description = request.form['description'] edited.parent_id = request.form['moveto'] edited.slug = newslug edited.lvl = parent_node.lvl + 1 session.merge(edited) session.commit() flash('Catalog Successfully Edited %s' % edited.name) return redirect( url_for('catalogItem', catalog_path=edited.slug)) else: response = make_response( json.dumps( '422 Unprocessable Entity: duplicated slug?'), 422) return response else: return render_template('editCatalog.html', edited=edited, catalog=catalog) else: return 'Category 404 - Not Found', 404
def createCatalog(): if 'user_id' not in login_session: return redirect(url_for('showLogin')) if request.method == 'POST': session = DBSession() catalog = Catalog(name=request.form['name'], description=request.form['description'], user_id=login_session['user_id']) session.add(catalog) session.commit() return redirect(url_for('listCatalog')) else: return render_template('catalog-new.html', user=login_session['email'])
def newcatalog(): catalogs = session.query(Catalog).order_by(asc(Catalog.name)) if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newcatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newcatalog) flash('New catalog %s Successfully Created' % newcatalog.name) session.commit() return redirect(url_for('showcatalogs', catalogs=catalogs)) else: return render_template('newCatalog.html', catalogs=catalogs)
def createNewCatalog(): """ A new route to create a new catalogs """ if request.method == 'POST': newCatalog = Catalog(name=request.form['newCatalogName'], user_id=login_session['user_id']) session.add(newCatalog) session.commit() flash("New menu item created!") return redirect(url_for('catalog.showAllCatalogs')) else: return render_template('catalogs_new.html')
def newCatalog(): """This page makes new catalog""" if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCatalog) session.commit() flash('New catalog sucessfully created!') return redirect(url_for('showCatalogs')) else: return render_template('newCatalog.html')
def addCatalog(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], description=request.form['description'], category=request.form['category'], user_id=login_session['user_id']) session.add(newCatalog) flash('New Game %s Successfully Created' % newCatalog.name) session.commit() return redirect(url_for('showCatalogs')) else: return render_template('addcatalog.html')
def newCatalog(): if request.method == 'POST': if request.form['name']: newCatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCatalog) flash('New Catalog %s Successfully Created' % newCatalog.name) session.commit() return redirect(url_for('showCatalogs')) else: flash('Please Complete Name Field') return render_template('newCatalog.html') else: return render_template('newCatalog.html')
def newCatalog(): """ This function allows user to add new food categories. :return: """ if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], user_id=login_session['user_id']) session.add(newCatalog) flash('New Catalog Item %s Successfully Created' % newCatalog.name) session.commit() return redirect(url_for('showCatalog')) else: return render_template('newcatalog.html')
def newcat(): # this if statements are found in all the pages where it creates, edits, # or deletes an item or a catalog. Checks if the user is logged in. if 'username' not in login_session: flash('This option requires you to log in!') return redirect('/login') if request.method == 'POST': if request.form['name']: newcat = Catalog(name=request.form['name'], user_id=getUserID(login_session['email'])) session.add(newcat) session.commit() flash('NEW CAT %s IS IN THE HAUS' % request.form['name']) return redirect('/kittycat') else: return render_template('401.html') return render_template('newcat.html', login_session=login_session)
def addItem(): '''This page will add a new item to the catalog''' if request.method == 'POST': newItem = Catalog( name = request.form['name'], description = request.form['description'], imageURL = request.form['imageURL'], category = request.form['category'], user_id=login_session['user_id'] ) session.add(newItem) session.commit() flash('{} was successfully added to the catalog'.format(request.form['name'])) return redirect(url_for('showCatalog')) else: auth = 'username' in login_session return render_template('addItem.html', categories=categories, auth=auth)
def catalog(catalog_id=None, catagory_id=None): ''' This route shows the main app page. ''' if not catalog_id: ## Default to catalog 1, since interface does not yet support switching. catalog_id = 1 if session.query(Catalog).count() == 0: ## Create the default catalog, since interface does not yet support ## Catalog creation. ## Also, create a few default catagories, since interface does not support ## creating these. ## Create a test item to drive the demo ## Create Anonymous user catagoryA = Catagory(description="clothes") catagoryB = Catagory(description="sports") catagoryC = Catagory(description="electronics") new_catalog = Catalog(name="catalogosphere") new_user = User(name="Anonymous") new_item = Item(title="Shirt", content="its awesome, its made out of synthetics.", user=new_user, catalog=new_catalog, catagory=catagoryA) session.add(new_item) session.add(catagoryB) session.add(catagoryC) session.commit() print "test catalog content created..." catagoriesForId = session.query(Catagory).filter_by(id=catagory_id) catagory = None if catagoriesForId.count() < 1 else catagoriesForId.one() if catagory: searchCriteria = catagory.description items = session.query(Item).filter_by(catalog_id=catalog_id, catagory_id=catagory_id).all() else: searchCriteria = "Recently added items" items = session.query(Item).filter_by( catalog_id=catalog_id).order_by("id desc").all()[:5] catalog = session.query(Catalog).filter_by(id=catalog_id).one() return render_template('catalog.html', catalog_id=catalog_id, catalog=catalog, catagory_id=catagory_id, items=items, searchCriteria=searchCriteria, catagories=allCatagories(catalog), currentUser=currentUser())
def newCatalog(): """ Requires a user to be logged in. If they are not logged in, they are automatically redirected to the login page. """ if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCatalog = Catalog(name=request.form['name'], description=request.form['description']) session.add(newCatalog) session.commit() catalogs = session.query(Catalog).all() flash("New Catalog Created!") return render_template('main.html', catalogs=catalogs) else: return render_template('newcatalog.html')
def newItem(): if 'email' not in login_session: flash("Please login to access") return redirect('/login/') if request.method == 'POST': if session.query(Catalog.name).filter_by( name=request.form['category']).scalar() is not None: if (request.form['category'] and request.form['name'] and request.form['description']): category = session.query(Catalog).filter_by( name=request.form['category']).one() newItem = Item(name=request.form['name'], description=request.form['description'], category_id=category.id, user_id=login_session['id']) session.add(newItem) session.commit() flash('New Item Created') return redirect(url_for('showCatalog')) else: flash('Not all the fields were filled!') return redirect(url_for('newItem')) else: if (request.form['category'] and request.form['name'] and request.form['description']): newCategory = Catalog(name=request.form['category'], user_id=login_session['id']) session.add(newCategory) session.commit() category = session.query(Catalog).filter_by( name=request.form['category']).one() newItem = Item(name=request.form['name'], description=request.form['description'], category_id=category.id, user_id=login_session['id']) session.add(newItem) session.commit() flash('New Category Created') flash('New Item Created') return redirect(url_for('showCatalog')) else: flash('Not all the fields were filled!') return redirect(url_for('newItem')) else: return render_template('newitem.html')
def addCatalog(): if 'username' not in login_session: return redirect('/login') if request.method == 'POST': if request.form['name'] == '': return redirect(url_for('addCatalog')) else: newCat = Catalog(name=request.form['name']) session.add(newCat) try: session.commit() except: session.rollback() raise return redirect(url_for('showCatalogs')) else: catalogs = session.query(Catalog).all() return render_template('add-catalog.html')