Beispiel #1
0
def connect_shoplist_with_ingredients_and_user(ingredients, user_id,
                                               shoplist_name):
    session = Session()

    now = datetime.datetime.now()
    date = now.strftime("%Y-%m-%d %H:%M:%S")

    newshopList = ShopList(shoplist_name, str(date))

    new_user = session.query(User).filter(User.id == user_id).first()
    new_ingredients = (session.query(Ingredient).filter(
        Ingredient.ingredient.in_(ingredients)).all())

    old_ings = []
    for ing in new_ingredients:
        old_ings.append(ing.ingredient)

    for new_ing in ingredients:
        if new_ing not in old_ings:
            insert_new_ingredient(new_ing)

    new_ingredients = (session.query(Ingredient).filter(
        Ingredient.ingredient.in_(ingredients)).all())

    newshopList.users.append(new_user)

    newshopList.ingredients.extend(new_ingredients)

    session.add(newshopList)
    session.commit()
    session.close()
Beispiel #2
0
def connect_recipe_with_ingredients_and_user(
    rec_title,
    rec_instructions,
    rec_ingredients,
    scrape_url,
    rec_image,
    rec_calories,
    rec_carbs,
    rec_fibre,
    rec_sugar,
    rec_protein,
    rec_fats,
    rec_sat_fats,
    rec_serving,
    user_id,
):
    session = Session()

    newRecipe = Recipe(
        rec_title,
        rec_instructions,
        scrape_url,
        rec_image,
        rec_calories,
        rec_carbs,
        rec_fibre,
        rec_sugar,
        rec_protein,
        rec_fats,
        rec_sat_fats,
        rec_serving,
    )

    new_user = session.query(User).filter(User.id == user_id).first()
    new_ingredients = (session.query(Ingredient).filter(
        Ingredient.ingredient.in_(rec_ingredients)).all())

    old_ings = []
    for ing in new_ingredients:
        old_ings.append(ing.ingredient)

    for new_ing in rec_ingredients:
        if new_ing not in old_ings:
            insert_new_ingredient(new_ing)

    new_ingredients = (session.query(Ingredient).filter(
        Ingredient.ingredient.in_(rec_ingredients)).all())

    newRecipe.users.append(new_user)

    newRecipe.ingredients.extend(new_ingredients)

    session.add(newRecipe)
    session.commit()
    session.close()
Beispiel #3
0
def connect_recipe_with_ingredients(rec_id, ing_ids):
    session = Session()

    recipe = session.query(Recipe).filter(Recipe.id == rec_id).first()
    # get ingredients for recipe
    ingredients = session.query(Ingredient).filter(
        Ingredient.id.in_(ing_ids)).all()

    recipe.ingredients = ingredients
    session.add(recipe)
    session.commit()
    session.close()
Beispiel #4
0
def connect_user_with_recipe(user_id, rec_id):
    session = Session()
    user = session.query(User).filter(User.id == user_id).first()
    new_recipe = session.query(Recipe).filter(Recipe.id == rec_id).first()

    # get all current recipes
    all_recipes = user.recipes

    # append new recipe and add as new user.recipes
    all_recipes.append(new_recipe)
    user.recipes = all_recipes

    session.add(user)
    session.commit()
    session.close()
Beispiel #5
0
def get_ingredient_id(ing_name):
    session = Session()
    ing_id = (session.query(
        Ingredient.id).filter(Ingredient.ingredient == ing_name).first())
    session.close()
    ing_id = ing_id[0]
    return ing_id
Beispiel #6
0
 def get_by_key(cls, session, key, value):
     try:
         cls_key = getattr(cls, key)
         return session.query(cls).filter(cls_key == value).all()
     except:
         LOG.debug('Possible key name error in crudMixin')
         return None
Beispiel #7
0
def get_user_recipes_all(session_id):
    session = Session()

    # get current user object
    user = session.query(User).filter(User.id == session_id).first()
    recipe_list = user.recipes
    session.close()
    # returns a list of recipe objects
    return recipe_list
Beispiel #8
0
 def tool_list_for_lcnc(cls, session, machine, pressure, measurement):
     
     measurementid = LinearSystem.get_by_key(session, 'name', measurement)[0].id
     machineid = Machine.get_by_key(session, 'name', machine)[0].id
     pressureid = PressureSystem.get_by_key(session, 'name', pressure)[0].id
     result_set = session.query(cls) \
         .filter(and_( \
                       cls.linearsystemid == measurementid, \
                       cls.machineid == machineid, \
                       cls.pressuresystemid == pressureid \
                     )).order_by(cls.id).all()
     return result_set
Beispiel #9
0
def disconnect_shoplist_from_user(rec_id, user_id):
    session = Session()
    user = session.query(User).filter(User.id == user_id).first()
    shoplist_todelete = session.query(ShopList).filter(
        ShopList.id == rec_id).first()

    new_shoplists = []
    for shoplist in user.shoplists:
        if shoplist != shoplist_todelete:
            new_shoplists.append(shoplist)

    user.shoplists = new_shoplists

    if len(shoplist_todelete.users) == 0:
        for ingredient in shoplist_todelete.ingredients:
            if len(ingredient.recipes) == 0 and len(ingredient.shoplists) == 1:
                session.delete(ingredient)
        session.delete(shoplist_todelete)

    session.add(user)
    session.commit()
    session.close()
Beispiel #10
0
def connect_user_to_shoplist(user_id):
    session = Session()
    user = session.query(User).filter(User.id == user_id).first()

    ingredients_list = []
    for recipe in user.recipes:
        for ingredient in recipe.ingredients:
            ingredients_list.append(ingredient)

    user.ingredients = ingredients_list
    session.add(user)
    session.commit()
    session.close()
Beispiel #11
0
 def get_exact_cut(cls, session, ls=0, ps=0, mch=0, con=0, mat=0, thi=0, op=0, gas=0, qua=0):
     result_set = session.query(cls) \
         .filter(and_( \
                      cls.linearsystemid == ls, \
                      cls.pressuresystemid == ps, \
                      cls.machineid == mch, \
                      cls.consumableid == con, \
                      cls.materialid == mat, \
                      cls.thicknessid == thi, \
                      cls.operationid == op, \
                      cls.gasid == gas, \
                      cls.qualityid == qua\
                     )).order_by(cls.name).all()
     return result_set
Beispiel #12
0
def disconnect_recipe_from_user(rec_title, user_id):
    session = Session()
    user = session.query(User).filter(User.id == user_id).first()
    recipe_todelete = session.query(Recipe).filter(
        Recipe.title == rec_title).first()

    new_recipes = []
    for recipe in user.recipes:
        if recipe != recipe_todelete:
            new_recipes.append(recipe)

    user.recipes = new_recipes

    if len(recipe_todelete.users) == 0:

        for ingredient in recipe_todelete.ingredients:
            if len(ingredient.recipes) == 1:
                session.delete(ingredient)

        session.delete(recipe_todelete)

    session.add(user)
    session.commit()
    session.close()
Beispiel #13
0
def get_ingredients_for_recipeList(recipe_titles):
    session = Session()

    # ingredientList = []
    # for rec_title in recipe_titles:
    #     recipe = session.query(Recipe).filter(Recipe.title == rec_title).first()
    #     for ing in recipe.ingredients:
    #         ingredientList.append(ing.ingredient)

    ingredientList = []

    recipe = session.query(Recipe).filter(
        Recipe.title == recipe_titles).first()
    for ing in recipe.ingredients:
        ingredientList.append(ing.ingredient)

    session.close()
    return ingredientList
Beispiel #14
0
 def get_holes(cls, session, mch=0, mat=0, thi=0):
     """
     Get all holes for a machine/matherial/thickness combo
     
     Params:
         mch = MachineId
         mat = MaterialID
         thi = ThicknessID
     
     Returns:
         Matching hole data ordered by hole_size
     """
     result_set = session.query(cls) \
         .filter(and_( \
                      cls.machineid == mch, \
                      cls.materialid == mat, \
                      cls.thicknessid == thi \
                     )).order_by(cls.hole_size).all()
     return result_set
Beispiel #15
0
def get_user_shoplists(user_id):
    session = Session()

    user = session.query(User).filter(User.id == user_id).first()

    ingList = []

    for shoplist in user.shoplists:
        # shop_ingList = []
        # # for ing in shoplist.ingredients:
        # #     shop_ingList.append(ing.ingredient)
        # # ingList.append(shop_ingList)
        list_dict = {}
        list_dict["id"] = shoplist.id
        list_dict["name"] = shoplist.name
        list_dict["date"] = shoplist.date
        shop_ingList = []
        for ing in shoplist.ingredients:
            shop_ingList.append(ing.ingredient)
        list_dict["ingredients"] = shop_ingList
        ingList.append(list_dict)

    session.close()
    return ingList
Beispiel #16
0
 def get_all(cls, session, linear=None):
     if linear == None:
         return session.query(cls).order_by(cls.thickness).all()
     else:
         return session.query(cls).filter(cls.linearsystemid == linear).order_by(cls.thickness).all()
Beispiel #17
0
def get_all_recipes():
    session = Session()
    allRecipes = session.query(Recipe.title).all()
    session.close()
    return allRecipes
Beispiel #18
0
def get_ingredients_for_user(user_id):
    session = Session()
    user = session.query(User).filter(User.id == user_id).first()
    shoplist = user.ingredients
    session.close()
    return shoplist
Beispiel #19
0
 def get_all(cls, session):
     return session.query(cls).order_by(cls.name).all()
Beispiel #20
0
def get_all_ingredients():
    session = Session()
    all_ingredients = session.query(Ingredient.ingredient).all()
    session.close()
    return all_ingredients
 def get(self, symbol):
     DBSession = sessionmaker(bind=self.engine)
     session = DBSession()
     ticker = session.query(models.Ticker).get(symbol=symbol)
     return ticker
Beispiel #22
0
def get_ingredients_for_recipe(rec_id):
    session = Session()
    recipe = session.query(Recipe).filter(Recipe.id == rec_id).first()
    ingredients = recipe.ingredients
    session.close()
    return ingredients
Beispiel #23
0
def get_id_of_existing_or_inserted_recipe(rec_title):
    session = Session()
    rec_id = session.query(Recipe.id).filter(Recipe.title == rec_title).first()
    session.close()
    rec_id = rec_id[0]
    return rec_id
 def get_many(self, limit=None, offset=None):
     DBSession = sessionmaker(bind=self.engine)
     session = DBSession()
     return session.query(models.Ticker).offset(offset).limit(limit).all()