def deleteItem(item_name, category_name):
    '''
    Deletes item, only allows creator to delete
    '''
    # check if user is logged in
    if not 'user_id' in login_session:
        flash("You need to be logged-in to perform this action", 'error')
        return redirect('/')

    item = session.query(Item).filter_by(name=item_name).one()

    # check if user has permission
    if login_session['user_id'] != item.user_id:
        flash("You do not have permissions to edit this item", 'error')
        return redirect('/')

    if request.method == 'POST':
        session.delete(item)
        session.commit()
        category = session.query(Category).filter_by(
            name=category_name).first()
        itemsLeft = session.query(Item).filter_by(category=category).first()
        # if there are no more items in category delete it.
        if itemsLeft == None:
            session.delete(category)
            session.commit()

        flash("menu item deleted!", 'success')
        return redirect('/')
    else:
        return render_template(
            'deleteitem.html', item=item)
Example #2
0
def createPricelist():
    if 'username' not in login_session:
        return redirect('/oauth/login')
    else:
        pass

    if request.method == 'POST':

        ### begin custom logic for form ###
        if request.form['communicated'] == '':
            communicated = datetime.datetime.now()
        else:
            communicated = datetime.datetime.strptime(request.form['communicated'], '%Y-%m-%d')
        if request.form['vigente'] == 'True':
            vigente = True
        else:
            vigente = False
        ### end custom logic for form ###
        user_id = getUserID(login_session['email'])
        newItem = PriceList(name= request.form['name'],
                            communicated= communicated,
                            user_id= user_id,
                            vigente= vigente,
                            moneda= request.form['moneda'],
                            incoterm= request.form['incoterm'])
        session.add(newItem)
        session.commit()
        flash("new price list created!")
        return redirect(url_for('pxlst.readPricelists'))

    else:
        return render_template('pxlst/createPricelist.html')
Example #3
0
def createSku(price_list_id):
    if 'username' not in login_session:
        return redirect('/oauth/login')
    else:
        pass

    if request.method == 'POST':
        price = int(request.form.get('price'))
        if request.form.get('price2'):
            price2 = int(request.form.get('price2'))

        pxlist = price_list_id
        user_id = getUserID(login_session['email'])
        newSku = Sku(name = request.form['name'],
                     varietal = request.form['varietal'],
                     price = price,
                     price2 = price2,
                     price_list_id=pxlist,
                     user_id=user_id)
        session.add(newSku)
        session.commit()
        flash('new sku item created!')
        return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id))

    pxlist = session.query(PriceList).filter_by(id=price_list_id).one()
    #protection from non creator
    if login_session['username'] != pxlist.user.name:
        flash("Debes ser el creador de la lista para crear un nuevo Sku.")
        return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id))

    else:
        return render_template('pxlst/createSku.html', price_list_id=price_list_id)
Example #4
0
def import_targets():
    from app.models.target import Target
    with open('nutritionTablesReformatted.csv', 'rU') as csvfile:
        reader = csv.reader(csvfile, delimiter=',')
        #to skip the first row in the csv file containing headings
        reader.next()

        for row in reader:
            #create a new line in the database using sqlalchemy
            #instantiate in instance of the model, add it and commit
            target = Target()
            target.group = row[0]
            target.lower_age = float(row[1])
            target.upper_age = float(row[2])
            target.nutrient_no = row[3]
            
            if row[4] == "":
                target.value = None
            else:
                target.value = row[4]
            
            if row[5] == "":
                target.upper_limit = None
            else:
                target.upper_limit = row[5]
            session.add(target)
        session.commit()
def createUser(login_session):
	newUser = User(name=login_session['username'], email=login_session[
				   'email'], picture=login_session['picture'])
	session.add(newUser)
	session.commit()
	user = session.query(User).filter_by(email=login_session['email']).one()
	return user.id
Example #6
0
def updatePricelist(price_list_id):
    if 'username' not in login_session:
        return redirect('/oauth/login')
    else:
        pass

    item = session.query(PriceList).filter_by(id=price_list_id).one()

    if request.method == 'POST':
        if request.form.get('name'):
            item.name = request.form['name']
        if request.form.get('communicated'):
            item.communicated = datetime.datetime.strptime(request.form['communicated'], '%Y-%m-%d')
        if request.form['vigente'] == 'True':
            item.vigente = True
        else:
            item.vigente = False
        session.add(item)
        session.commit()
        flash("lista de precios editada!")
        return redirect(url_for('pxlst.readPricelists'))

    #protection from non creator
    if login_session['username'] != item.user.name:
        flash("Debes ser el creador de la lista para editarla.")
        return redirect(url_for('pxlst.readPricelists'))

    else:
        return render_template('pxlst/updatePricelist.html', price_list_id=price_list_id, item=item)
Example #7
0
def add_saved_meal_post():
    #don't use the reequest.args.get('user') to avoid malicious user.
    #user_id incorporates the user_id via flask.
    user = current_user
    meal_name = request.args.get('meal_name')
    #query the data base Meal.
    meal = session.query(Meal).filter_by(name=meal_name, user_id=user.id).first()   
    food_log = get_food_log(user)
    for food in meal.foods:
        #food is the name of the food in the MealFoodAssociation
        #create a new FoodLogFoodAssociation() for each MealFoodAssociation
        flfa = FoodLogFoodAssociation()
        #copy over the attributes of the MealFoodAssociation to FoodLogFoodAssociation
        flfa.food_NDB_No = food.food_NDB_No
        flfa.unit_Seq = food.unit_Seq
        flfa.quantity = food.quantity
        #append FoodLogFoodAssociation to food_log.foods
        food_log.foods.append(flfa)
        #send back this info to the client side via html which will then 
        #be sent to the javascript which will insert the info on the page.
    session.commit()
    nutrient_definitions = session.query(NutrientDefinition).all()
    #fix me-should pass targets in.
    foods = build_food_list(meal.foods, nutrient_definitions)
    return render_template('partial_food_log.html', foods=foods)
Example #8
0
def updateSku(price_list_id, sku_id):
    if 'username' not in login_session:
        return redirect('/oauth/login')
    else:
        pass

    sku = session.query(Sku).filter_by(id=sku_id).one()

    if request.method == 'POST':
        if request.form.get('name'):
            sku.name = request.form['name']
        if request.form.get('varietal'):
            sku.varietal = request.form['varietal']
        if request.form.get('price'):
            sku.price = int(request.form['price'])
        if request.form.get('price2'):
            sku.price2 = int(request.form['price2'])

        session.add(sku)
        session.commit()
        print 'sku commited'
        flash("sku editado!")
        return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id))

    #protection from non creator
    if login_session['username'] != sku.user.name:
        flash("Debes ser el creador de la lista para editar este Sku.")
        return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id))

    else:
        return render_template('pxlst/updateSku.html', price_list_id=price_list_id, sku_id=sku_id, sku=sku)
Example #9
0
def fill_gender():
    try:
        session.add(Gender(name="Male"))
        session.add(Gender(name="Female"))
        session.commit()
    except:
        session.rollback()
Example #10
0
def register():

    form = RegistrationForm(request.form)
    print form.validate()
    print form.errors
    if request.method == 'POST' and form.validate():
        user = User(form.username.data, form.email.data,
            form.password.data)
        session.add(user)
        try:
            session.commit()
        except IntegrityError as error:
            flash("Registration is unsucessful. A user with the same username or email address is already in use.")
            print error
            session.rollback()
            return render_template(
                'register.html',
                title="Register",
                form=form
            )
        flash("Registration is successful.")
        return redirect(url_for('login'))
    return render_template(
        'register.html',
        title="Register",
        form=form
        )
Example #11
0
def food_log_post():
    user = current_user

    quantity = request.form.get('quantity')
    unit = request.form.get('unit')
    unit = json.loads(unit)

    food_log = get_food_log(user)

    association = FoodLogFoodAssociation(
        food_NDB_No=unit["NDB_No"],
        unit_Seq=unit["Seq"],
        quantity=float(quantity)
    )


    food_log.foods.append(association)

    #build the query
    favorite_query = session.query(FavoriteAssociation)
    favorite_query = favorite_query.filter_by(NDB_No=unit["NDB_No"], user_id=user.id)
    #executing the query
    favorite = favorite_query.first()

    if favorite == None:
        favorite = FavoriteAssociation(
            NDB_No=unit["NDB_No"],
            user_id=user.id,
            popularity=1
        )
        session.add(favorite)
    else:
        favorite.popularity += 1
    session.commit()
    return redirect(url_for('food_log_get'))
Example #12
0
def get_food_log(user):
    food_log = session.query(FoodLog).filter_by(user=user).first()
    if food_log is None:
        food_log = FoodLog()
        food_log.user = user
        session.add(food_log)

        session.commit()
    return food_log
Example #13
0
def saved_meal_post():
    #don't use the reequest.args.get('user') to avoid malicious user.
    user = current_user
    #request.args.get('meal_name') gets the value associated 
    #with the query string 'meal_name' 
    #ex: /add_saved_meal_post?meal_name=breakfast
    selected_foods = request.args.get('selected_foods')
    meal_name = request.args.get('meal_name')


    #think about keys and values. look at the flask documentation for requesting
    #keys and values.



   #do not use 'if not selected_foods' because the id of 0 evaluates to False.
    if selected_foods == None or selected_foods == "":  
        return ""
        #need to first strip leading and trailing commas to create a clean and valid list
        #of strings separated by commas.
    selected_foods = selected_foods.strip(",").split(',')
    
    #create an instance of the Meal model
    #creating a Meal object by calling the Meal constructor.
    #can set any column values as identified in the models, in this case models/meal.py
    #creating a name for the saved_meal 
    saved_meal = Meal(name=meal_name)

    
    #loop through the food_ids to save the selected foods as a meal.
    #selected_foods is a list.
    for food_id in selected_foods:
        #making an instance of the  Class MealFoodAssociation
        meal_food_association = MealFoodAssociation()

        #query the FoodLogFoodAssociation table to get the row (the matching association) that has the specific 
        #food_id.
        food_log_food_association = session.query(FoodLogFoodAssociation).get(int(food_id))

        #access the attribute of the variable which is an instance of the class
        #copy the attributes from the food_log_food_association to the
        #attribute mealfoodassociation
        #integer primary keys are automatically filled in.
        meal_food_association.food_NDB_No = food_log_food_association.food_NDB_No
        meal_food_association.unit_Seq = food_log_food_association.unit_Seq
        meal_food_association.quantity = food_log_food_association.quantity
        #add the saved food to the Meal
        saved_meal.foods.append(meal_food_association)
    #append the saved _meal to the list user.meals
    #save it once. Take it out of the for loop.
    user.meals.append(saved_meal)
        #save the meal
    session.add(saved_meal)
    session.commit()
    #returning an empty string is saying that the code works.
    return ""
Example #14
0
def get_food_log(user, date=None):
    if date is None:
        date = datetime.date.today()
    food_log = session.query(FoodLog).filter_by(user=user, date=date).first()
    if food_log is None:
        food_log = FoodLog()
        food_log.user = user
        session.add(food_log)
        session.commit()    
    return food_log
def categoryCheck(form):
	'''
	Checks if parsed category name exists, if not it creates one
	'''
	category = session.query(Category).filter_by(name=form.category.data).first()
	if category == None:
		newCategory = Category(name=form.category.data, user_id=login_session['user_id'])
		session.add(newCategory)
		session.commit()
		category = session.query(Category).filter_by(name=form.category.data).first()
	return category
Example #16
0
 def on_delete(self, req, resp):
     body = req.stream.read()
     body = json.loads(body)
     stid = req.get_param("student_id")
     tid = req.get_param("teacher_id")
     date = req.get_param("date")
     date = datetime.datetime.strptime(date, "%Y-%m-%d").date()
     schedule = sess.query(ms.Schedule).get(stid, tid, date)
     if schedule is None:
         resp.status = falcon.HTTP_400
         resp.body = "Student Not Found"
     sess.delete(schedule)
     sess.commit()
     resp.body = "Schedule Successfully Removed"
def test_db():
    # INSERT
    if not session.query(exists().where(User.email == '*****@*****.**')).scalar():
        u1 = User()
        u1.name = "Test user"
        u1.email = "*****@*****.**"

        a1 = Address()
        a1.street = "Str 123"
        a1.city = "City WTF"

        u1.address = a1
        session.add(a1)
        session.add(u1)
        session.commit()

    # check if record exists in db:
    # print session.query(Address).filter_by(city='City WTF').count()
    # print bool( session.query(Address).filter_by(city='City WTF').count() )

    #   SELECT
    if session.query(exists().where(Address.city == 'City WTF')).scalar():
        a2 = session.query(Address).filter_by(city='City WTF').first()
        print a2.city

    if bool(session.query(Address).filter_by(city='City WTF').count()):
        a2 = session.query(Address).filter_by(city='City WTF').first()
        print a2.city


    # UPDATE
    if session.query(exists().where(User.email == '*****@*****.**')).scalar():
        session.query(User).filter_by(email='*****@*****.**').update({"nick": "a"})
        session.commit()

    if session.query(exists().where(User.email == '*****@*****.**')).scalar():
        u = session.query(User).filter_by(email='*****@*****.**').first()
        u.nick = "b"
        session.commit()


    # DELETE
    if session.query(exists().where(User.email == '*****@*****.**')).scalar():
        session.query(User).filter_by(email='*****@*****.**').delete()
        session.commit()

    if session.query(exists().where(Address.city == 'City WTF')).scalar():
        session.query(Address).filter_by(city='City WTF').delete()
        session.commit()
def deleteCategory(category_name):
    if 'username' not in login_session:
        return redirect(url_for('auth.showLogin'))
    categoryToDelete = session.query(Category).filter_by(name=category_name).one()
    print categoryToDelete.user_id
    if categoryToDelete.user_id != login_session['user_id']:
        return "<script>function myFunction() {alert('You are not authorized to delete this category. Please create your own category in order to delete.');}</script><body onload='myFunction()''>"

    if request.method == 'POST':
        session.delete(categoryToDelete)
        flash('%s Successfully Deleted' % categoryToDelete.name)
        session.commit()
        return redirect(url_for('catalog.showCatalog'))
    else:
        return render_template('catalog/deletecategory.html', item=categoryToDelete)
Example #19
0
 def get(self, user_name):
     user = session.query(User).filter(User.name == user_name).first()
     if user is None:
         logger.error('GET User "{}" not found in DB'.format(user_name))
         return {'error': 'Specified user does not exist'}, 404
     if user != g.user:
         logger.error('GET Auth user {} does not match specified user {}'.format(user, g.user))
         return {'error': 'Authenticated user does not match specified user'}, 403
     assert isinstance(user, User)
     logger.info('GET User {}; username {}'.format(user, user_name))
     # Update when User last seen
     user.last_seen = datetime.utcnow()
     session.add(user)
     session.commit()
     return UserAPI.user_info(user)
def deleteItem(item_name):
    if 'username' not in login_session:
        return redirect(url_for('auth.showLogin'))
    itemToDelete = session.query(Item).filter_by(name=item_name).one()

    if itemToDelete.user_id != login_session['user_id']:
        return "<script>function myFunction() {alert('You are not authorized to delete this item. Please create your own item in order to delete.');}</script><body onload='myFunction()''>"

    if request.method == 'POST':
        session.delete(itemToDelete)
        session.commit()
        flash('Item Successfully Deleted')
        return redirect(url_for('catalog.showCatalog'))
    else:
        return render_template('items/deleteitem.html', item=itemToDelete)
def newCategory():
    if 'username' not in login_session:
        return redirect(url_for('auth.showLogin'))
    if request.method == 'POST':
        if request.form['name']:
            newCategory = Category(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('catalog.showCatalog'))
        else:
            flash('Name is mandatory')
            return render_template('catalog/newcategory.html')
    else:
        return render_template('catalog/newcategory.html')
Example #22
0
def saved_meal_post():
    user = current_user

    selected_foods = request.args.get('selected_foods')

    #think about keys and values. look at the flask documentation for requesting
    #keys and values.



    snacks = request.args.get('snacks')
    if selected_foods == None:
        return ""
        #need to first strip leading and trailing commas to create a clean and valid list
        #of strings separated by commas.
    selected_foods = selected_foods.strip(",").split(',')
    
    #create an instance of the Meal model
    saved_meal = Meal()
    
    #loop through the food_ids to save the selected foods as a meal.
    #selected_foods is a list.
    for food_id in selected_foods:
        #making an instance of the  Class MealFoodAssociation
        meal_food_association = MealFoodAssociation()

        #query the FoodLogFoodAssociation table to get the row (the matching association) that has the specific 
        #food_id.
        food_log_food_association = session.query(FoodLogFoodAssociation).get(int(food_id))

        #access the attribute of the variable which is an instance of the class
        #copy the attributes from the food_log_food_association to the
        #attribute mealfoodassociation
        #integer primary keys are automatically filled in.
        meal_food_association.food_NDB_No = food_log_food_association.food_NDB_No
        meal_food_association.unit_Seq = food_log_food_association.unit_Seq
        meal_food_association.quantity = food_log_food_association.quantity
        #add the saved food to the Meal
        saved_meal.foods.append(meal_food_association)
    #append the saved _meal to the list user.meals
    #save it once. Take it out of the for loop.
    user.meals.append(saved_meal)
        #save the meal
    session.add(saved_meal)
    session.commit()
    print "save_meal"
    print request.args.get('selected_foods')
    return ""
def add_user():
    name = request.form['name']
    mail = request.form['email']
    nick = request.form['nick']
    address_id = request.form['address']

    address = session.query(Address).filter_by(id=address_id).scalar()

    u = User()
    u.name = name
    u.email = mail
    u.nick = nick
    u.address = address
    session.commit()

    return redirect(url_for('users'))
Example #24
0
 def on_post(self, req, resp):
     today = datetime.date.today()
     absent = req.get_param_as_list("absent")
     # req.log_error(" ".join(absent))
     present = req.get_param_as_list("present")
     # req.log_error(" ".join(present))
     for stid in absent:
         if sess.query(ms.Absence).get((stid, today)) is None:
             sess.add(ms.Absence(stid, today))
     for stid in present:
         temp = sess.query(ms.Absence).get((stid, today))
         if temp is not None:
             sess.delete(temp)
     sess.commit()
     resp.status = falcon.HTTP_200
     resp.body = "Attendance Successfully Taken"
Example #25
0
 def on_post(self, req, resp):
     teacher_id = req.get_param("id")
     if sess.query(ms.Teacher).get(teacher_id) is None:
         resp.status = falcon.HTTP_409
         resp.body = "That id is already taken"
         return
     first_name, last_name, room_id =\
         req.get_param("first_name"), req.get_param("last_name"), req.get_param("room_id")
     if first_name is None or last_name is None or room_id is None:
         resp.status = falcon.HTTP_500
         resp.body = "A first_name, last_name, and room_id are required."
         return
     teach = ms.Teacher(teacher_id, first_name, last_name, room_id)
     sess.add(teach)
     sess.commit()
     resp.status = falcon.HTTP_200
     resp.body = json.dumps(teach.to_dict())
Example #26
0
def selected_food_groups():
    user = current_user

    # Get and parse a comma-seperated query string
    food_groups = request.args.get('food_groups')
    if food_groups == None:
        return ""
    food_groups = food_groups.split(',')

    user.selected_food_groups = []
    for code in food_groups:
        association = UserFoodGroupAssociation(
            food_group_code=code
        )
        user.selected_food_groups.append(association)

    session.commit()
    return ""
Example #27
0
def food_log_post():
    user = current_user

    quantity = request.form.get('quantity')
    unit = request.form.get('unit')
    unit = json.loads(unit)

    food_log = get_food_log(user)

    association = FoodLogFoodAssociation(
        food_NDB_No=unit["NDB_No"],
        unit_Seq=unit["Seq"],
        quantity=float(quantity)
    )

    food_log.foods.append(association)

    session.commit()
    return redirect(url_for('food_log_get'))
def newItem():
    if 'username' not in login_session:
        return redirect(url_for('auth.showLogin'))
    categories = session.query(Category).order_by(asc(Category.name))
    if request.method == 'POST':
        if request.form['name'] and request.form['description'] and request.form['category_id']:
            newItem = Item(name=request.form['name'],
                           description=request.form['description'],
                           category_id=request.form['category_id'],
                           user_id=login_session['user_id'])
            session.add(newItem)
            session.commit()
            flash('New Item %s Successfully Created' % (newItem.name))
            return redirect(url_for('catalog.showCatalog'))
        else:
            flash('All fields are mandatory')
            return render_template('items/newitem.html', categories=categories)
    else:
        return render_template('items/newitem.html', categories=categories)
Example #29
0
def selected_food_groups():
    user = current_user

    # Get and parse a comma-seperated query string
    food_groups = request.args.get('food_groups')
    if food_groups == None:
        return ""
    food_groups = food_groups.split(',')

    # user.selected_food_groups is linked to the nutrition database.
    session.query(UserFoodGroupAssociation).delete()
    for code in food_groups:
        association = UserFoodGroupAssociation(
            food_group_code=code
        )
        user.selected_food_groups.append(association)

    session.commit()
    return ""
def generate_mileage():
    """Generate fixed mileage entries to be nullified in SQL if false"""

    description = 'IDC-Google 53 miles x 2 @ $.54/mile (2017)'
    contract = session.query(models.Contract).get(1664)
    employee = session.query(models.Employee).get(1479)
    mileage_cat = session.query(models.ExpenseCategory).get(2)
    startdate = dt.datetime(year=contract.startdate.year, month=contract.startdate.month, day=contract.startdate.day)
    delta = dt.datetime.now() - startdate
    for i in range(delta.days + 1):
        day = startdate + dt.timedelta(days=i)
        if day.weekday() in range(0, 5):
            exp_count = session.query(models.Expense).filter(models.Expense.category == mileage_cat,
                                                             models.Expense.description == description,
                                                             models.Expense.date == day).count()
            if exp_count == 0:
                exp = models.Expense(category=mileage_cat, description=description, amount=53 * 2 * .54, date=day,
                                     employee=employee)
                session.add(exp)
                session.commit()
Example #31
0
    def save(self, obj):
        """ Save an object to the database """

        session.add(obj)
        session.commit()
Example #32
0
    def remove(self, obj):
        """ Remove an object from the database """

        session.delete(obj)
        session.commit()
Example #33
0
 def tearDown(self):
     session.commit()
     Base.metadata.drop_all(bind=engine)
Example #34
0
def archive(apostile_id):
    apostile = session.query(Apostile).filter(Apostile.id == apostile_id).first()
    apostile.is_archived = not apostile.is_archived
    session.commit()
    return redirect(f'/apostile/{apostile_id}')
Example #35
0
 def __init__(self, name, password):
     self.name = name
     self.password = pwd.encrypt(password)
     session.add(self)
     session.commit()
Example #36
0
def delete_database():
    session.begin()
    session.query(Location).delete()
    session.query(User).delete()
    session.commit()
    return redirect(url_for('home'))
Example #37
0
def user_add(username, password, is_admin):

    new_user = User(username, password, is_admin)
    session.add(new_user)
    session.commit()
    return new_user
Example #38
0
def clean_database():
    BaseModel.metadata.drop_all(bind=ENGINE)
    BaseModel.metadata.create_all(bind=ENGINE)
    session.commit()
Example #39
0
def order_add(number, adress):

    new_order = Order(number, adress)
    session.add(new_order)
    session.commit()
    return new_order
Example #40
0
def on_message(client, userdata, msg):
    print("MQTT, Topic: ", msg.topic + ', Message: ' + str(msg.payload))

    if msg.topic == 'control/app/00001214':
        # time.sleep(1) 이게 느리면 웹에 반영이 느림

        c = session.query(AppModel).order_by('id').all()

        # c = AppModel.query.all()
        # for i in c:
        #     print('c', i.app_switch)
        # query = session.query(AppModel).filter_by(id=18).first()
        # query = session.query(AppModel).order_by(AppModel.id.desc()).first()
        # print('qq,c', query.app_switch)

        # session.commit()

        res = post(api_url + 'app/save',
                   data=json.dumps(c, cls=AlchemyEncoder))
        print(res)

        # res = post('http://127.0.0.1:5000/' + 'app/save', data=json.dumps(c, cls=AlchemyEncoder))
        # print('res', res)

        # for i in json.loads(json.dumps(c, cls=AlchemyEncoder)):
        #     print('data', i['app_name'])

    elif msg.topic == 'app/upload/00001214':
        app_title = getAppModi(app_origin=msg.payload.decode())
        print('upload completed')
        # time.sleep(3)
        #
        # connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
        # channel = connection.channel()
        # channel.queue_declare(queue='app_q')
        # channel.basic_publish(exchange='', routing_key='app_q', body='app_upload,' + app_title)
        # print("RABBITMQ,", 'app_upload,' + app_title)
        # connection.close()

    elif msg.topic == 'control/motor/00001214':
        # rabbit
        connection = pika.BlockingConnection(
            pika.ConnectionParameters(host='localhost'))
        channel = connection.channel()
        channel.queue_declare(queue='motor_q')
        channel.basic_publish(exchange='',
                              routing_key='motor_q',
                              body=msg.payload.decode())
        print("RABBITMQ, Send " + str(msg.payload))
        connection.close()

    elif msg.topic == 'control/led/00001214':
        data = msg.payload.decode().split(',')
        app_id = data[0]
        query = session.query(AppModel).filter_by(app_id=app_id).first()
        query.app_output_detail = data[1]
        session.commit()

        res = post(api_url + 'app/save/one',
                   data=json.dumps(query, cls=AlchemyEncoder))

        # rabbit
        connection = pika.BlockingConnection(
            pika.ConnectionParameters(host='localhost'))
        channel = connection.channel()
        channel.queue_declare(queue='led_q')
        channel.basic_publish(exchange='',
                              routing_key='led_q',
                              body=msg.payload.decode())
        print("RABBITMQ, Send " + str(msg.payload))
        connection.close()

    elif msg.topic == 'app/switch_toggle/00001214':
        app_id = msg.payload.decode()
        query = session.query(AppModel).filter_by(app_id=app_id).first()

        # print('query1', (query.app_switch))
        if query:
            if query.app_switch:
                query.app_switch = False
            else:
                query.app_switch = True
            session.commit()

            # c = session.query(AppModel).order_by('id').all()
            # res = post(api_url + 'app/save', data=json.dumps(c, cls=AlchemyEncoder))
            # print(res)

            res = post(api_url + 'app/save/one',
                       data=json.dumps(query, cls=AlchemyEncoder))
            print(res)

            # rabbit
            connection = pika.BlockingConnection(
                pika.ConnectionParameters(host='localhost'))
            channel = connection.channel()
            channel.queue_declare(queue='app_q')
            channel.basic_publish(exchange='',
                                  routing_key='app_q',
                                  body='app_switch_toggle,' +
                                  msg.payload.decode() + ',' +
                                  str(query.app_switch))
            print("RABBITMQ, Send " + str(msg.payload))
            connection.close()

    elif msg.topic == 'app/output/00001214':
        data = msg.payload.decode().split(',')
        app_id = data[0]
        query = session.query(AppModel).filter_by(app_id=app_id).first()
        query.app_output_detail = data[1]
        session.commit()

        res = post(api_url + 'app/save/one',
                   data=json.dumps(query, cls=AlchemyEncoder))

        # rabbit
        connection = pika.BlockingConnection(
            pika.ConnectionParameters(host='localhost'))
        channel = connection.channel()
        channel.queue_declare(queue=data[2])
        channel.basic_publish(exchange='',
                              routing_key=data[2],
                              body=msg.payload.decode())
        print("RABBITMQ, Send " + str(msg.payload))
        connection.close()

    elif msg.topic == 'app/setting/00001214':

        data = msg.payload.decode().split(',')
        app_id = data[0]

        session.query(AppSetting).filter_by(app_id=app_id).delete()
        session.add(AppSetting(app_id, data[1], data[2], data[3], data[4]))
        session.commit()
Example #41
0
def deletar_pedido(id):
    del_pedido = session.get(tbl_pedido, id)
    session.delete(del_pedido)
    session.commit()
    session.close()
    return redirect(url_for('admin_pedido'))
Example #42
0
def getAppModi(app_origin):
    # 가져온 정보
    app = app_origin.split(',')
    app_title = app[0]
    app_sub = app[1]
    # app_sub = app[2]

    app_content = app[2]

    # print('app_title', app_title)
    print('app_content', app_content)

    # 앱 제작 중
    app_switch = False

    # 만약 특정 변수가 발견되면 그 변수에 맞는거 가져옴
    pre = '#-*- coding: utf-8 -*-\n\n'

    app_input = ''
    input_detail = ''
    output = ''
    output_meta = ''
    output_detail = None

    # input
    if app_content.count('temperatureFromSky()'):
        pre += open('pre/temp_pre.py', 'r').read() + '\n\n'
        app_input += '기상청 온도 및 습도'
        input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str(
            getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str(
                getHumi()) + "%'}]"
    elif app_content.count('humidityFromSky()'):
        pre += open('pre/humi_pre.py', 'r').read() + '\n\n'
        app_input += '기상청 온도 및 습도'
        input_detail = "[{'icon': 'sun icon', 'value': 온도 : '" + str(
            getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str(
                getHumi()) + "%'}]"
    elif app_content.count('SKYFromSky()'):
        pre += open('pre/sky_pre.py', 'r').read() + '\n\n'
        app_input += '하늘 상태 및 강수 형태'
        input_detail = "[{'icon': 'sun icon', 'value': '하늘 : " + getSKY(
        ) + "'}, {'icon': 'umbrella  icon', 'value': '강수 : " + getPTY() + "'}]"
    elif app_content.count('PTYFromSky()'):
        pre += open('pre/pty_pre.py', 'r').read() + '\n\n'
        app_input += '하늘 상태 및 강수 형태'
        input_detail = "[{'icon': 'sun icon', 'value': '하늘 : " + getSKY(
        ) + "'}, {'icon': 'umbrella  icon', 'value': '강수 : " + getPTY() + "'}]"

    elif app_content.count('PM10FromSky()'):
        pre += open('pre/PM10_pre.py', 'r').read() + '\n\n'
        app_input += '미세먼지(10㎛)'
        input_detail = "[{'icon': 'certificate icon', 'value': ' : " + mise(
            'PM10') + "㎍/㎥'}]"
    elif app_content.count('PM25FromSky()'):
        pre += open('pre/PM25_pre.py', 'r').read() + '\n\n'
        app_input += '초미세먼지(2.5㎛)'
        input_detail = "[{'icon': 'certificate icon', 'value': '" + mise(
            'PM25') + "㎍/㎥'}]"
    elif app_content.count('O3FromSky()'):
        pre += open('pre/O3_pre.py', 'r').read() + '\n\n'
        app_input += '오존농도(ppm)'
        input_detail = "[{'icon': 'certificate icon', 'value': '" + mise(
            'O3') + "ppm'}]"

    # sensor
    elif app_content.count('soilHumidity()'):
        pre += open('pre/soil_pre.py', 'r').read() + '\n\n'
        app_input += '토양 습도 센서'
        input_detail = "[{'icon': 'theme icon', 'value': '습도 : " + str(
            getTemp()) + "%'}]"
    elif app_content.count('temperatureFromSensor()'):
        pre += open('pre/temp_sensor_pre.py', 'r').read() + '\n\n'
        app_input += '온습도 센서'
        input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str(
            getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str(
                getHumi()) + "%'}]"
    elif app_content.count('humidityFromSensor()'):
        pre += open('pre/humi_sensor_pre.py', 'r').read() + '\n\n'
        app_input += '온습도 센서'
        input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str(
            getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str(
                getHumi()) + "%'}]"
    #
    elif app_content.count('recognizeHuman()'):
        pre += open('pre/recog_human_pre.py', 'r').read() + '\n\n'
        app_input += '사람 인식'
        input_detail = "[{'icon': 'add user icon', 'value': '사람" + '' + " 인식'}]"
    elif app_content.count('clapCount()'):
        pre += open('pre/clap_cnt_pre.py', 'r').read() + '\n\n'
        app_input += '박수 횟수'
        input_detail = "[{'icon': 'sign language icon', 'value': '횟수 : " + str(
            getTemp(
            )) + "번'}, {'icon': 'bullseye icon', 'value': '세기 : " + str(
                getHumi()) + "%'}]"
    elif app_content.count('checkButtonCount()'):
        pre += open('pre/btn_cnt_pre.py', 'r').read() + '\n\n'
        app_input += '버튼 눌림 횟수'
        input_detail = "[{'icon': 'hand pointer icon', 'value': '버튼 " + str(
            getTemp()) + "번 눌림'}]"

    # output
    if app_content.count('motorRun'):
        pre += open('pre/motor_pre.py', 'r').read() + '\n\n'
        output += '서보 모터'
        output_detail = '0'
    elif app_content.count('remoteControl'):
        pre += open('pre/remote_pre.py', 'r').read() + '\n\n'
        output += '리모컨'
        output_detail = '0'
    elif app_content.count('ledRun'):
        pre += open('pre/led_pre.py', 'r').read() + '\n\n'
        output += 'LED'
        output_detail = '000000'
    elif app_content.count('buzzerRun'):
        pre += open('pre/buzzer_pre.py', 'r').read() + '\n\n'
        output += '부저'
        output_detail = '0'

        # add db
        # db_app = session.query(AppModel).filter_by(app_name=app_title).first()
        # if db_app:
        # session.query(AppModel).filter_by(app_name=app_title).delete()

    app_id = app[3]
    session.add(
        AppModel(app_id, app_title, app_sub, app_switch, app_input,
                 input_detail, output, output_detail))
    session.commit()

    # query = session.query(AppModel).order_by(AppModel.id.desc()).first()
    # print('query.id', query.id)

    session.add(AppSetting(app_id, 0, 0, 0, 0))
    session.commit()

    # final pre
    pre += 'rabbit_app_id = ' + str(app_id) + '\n\n'
    pre += open('pre/rabbit_pre.py', 'r').read() + '\n\n'

    # 앱 변형
    modi = pre + '\n' + app_content

    # 완료된 앱 저장
    f_modi = open('./app_user/' + str(app_id) + '.py', 'w')
    f_modi.write(modi)
    f_modi.close()

    query = session.query(AppModel).all()
    # print('query', (query))
    c = query
    res = post(api_url + 'app/save', data=json.dumps(c, cls=AlchemyEncoder))

    session.close()
    return app_title
Example #43
0
def deletar_produto(id):
    id_produto = session.get(tbl_produto, id)
    session.delete(id_produto)
    session.commit()
    session.close()
    return redirect(url_for('admin_produto'))
Example #44
0
def mockup():
    users = [
        User(firstname='testn',
             lastname='testsg',
             email='*****@*****.**',
             password='******',
             role='client'),
        User(firstname='testmng',
             lastname='testmng',
             email='*****@*****.**',
             password='******',
             role='manager')
    ]
    session.add_all(users)
    stations = [
        Station(name="лубянка-1", province="Рязанская область"),
        Station(name="искра-1", province="Рязанская область"),
        Station(name="боровое-1", province="Рязанская область"),
        Station(name="Ковылкиноб", province="Мордовия")
    ]
    session.add_all(stations)
    session.commit()
    routes = [BaseRoute(name="Рязань - Мордовия")]
    session.add_all(routes)
    session.commit()
    stops = [
        Stop(station_id=stations[0].id,
             route_id=routes[0].id,
             departure=datetime(2020, 10, 1, 0, 0)),
        Stop(station_id=stations[1].id,
             route_id=routes[0].id,
             arriving=datetime(2020, 10, 1, 2, 0),
             departure=datetime(2020, 10, 1, 2, 5)),
        Stop(station_id=stations[2].id,
             route_id=routes[0].id,
             arriving=datetime(2020, 10, 1, 4, 0),
             departure=datetime(2020, 10, 1, 4, 5)),
        Stop(station_id=stations[3].id,
             route_id=routes[0].id,
             arriving=datetime(2020, 10, 1, 7, 0))
    ]
    session.add_all(stops)
    session.commit()
    trains = [Train()]
    session.add_all(trains)
    session.commit()
    wagons = [
        Wagon(train_id=trains[0].id, type='Купе', places_count=5),
        Wagon(train_id=trains[0].id, type='Плацкартовый', places_count=4),
        Wagon(train_id=trains[0].id, type='Купе', places_count=2)
    ]
    session.add_all(wagons)
    session.commit()
    schedules = [
        Schedule(train_id=trains[0].id,
                 base_route_id=routes[0].id,
                 departure_time=stops[0].departure)
    ]
    session.add_all(schedules)
    session.commit()
    tickets = [
        Ticket(departure_stop_id=stops[2].id,
               arrival_stop_id=stops[3].id,
               cost=34,
               wagon_id=wagons[0].id,
               place=2,
               schedule_id=schedules[0].id,
               is_booked=False,
               user_id=users[0].id),
        Ticket(departure_stop_id=stops[1].id,
               arrival_stop_id=stops[3].id,
               cost=34,
               wagon_id=wagons[1].id,
               place=3,
               schedule_id=schedules[0].id,
               is_booked=False,
               user_id=users[0].id),
        Ticket(departure_stop_id=stops[0].id,
               arrival_stop_id=stops[3].id,
               cost=34,
               wagon_id=wagons[1].id,
               place=1,
               schedule_id=schedules[0].id,
               is_booked=True,
               user_id=users[0].id,
               book_end_date=datetime(2020, 9, 25, 0, 0)),
        Ticket(departure_stop_id=stops[0].id,
               arrival_stop_id=stops[3].id,
               cost=34,
               wagon_id=wagons[1].id,
               place=2,
               schedule_id=schedules[0].id,
               is_booked=True,
               user_id=users[0].id,
               book_end_date=datetime(2020, 9, 25, 0, 0)),
        Ticket(departure_stop_id=stops[0].id,
               arrival_stop_id=stops[3].id,
               cost=34,
               wagon_id=wagons[1].id,
               place=3,
               schedule_id=schedules[0].id,
               is_booked=True,
               user_id=users[0].id,
               book_end_date=datetime(2020, 9, 25, 0, 0))
    ]
    session.add_all(tickets)
    session.commit()
Example #45
0
def deletar_pessoajuridica(id):
    id_log = session.get(tbl_cliente, id)
    session.delete(id_log)
    session.commit()
    session.close()
    return redirect(url_for('adminpj'))
Example #46
0
 def setUp(self):
     session.commit()
     Base.metadata.create_all(engine)
Example #47
0
def adicionar_pessoajuridica():
    cidades = session.query(tbl_cidade).order_by(tbl_cidade.cidade).all()

    if request.method == 'POST':

        # tbl_cliente
        usuario = request.form['usuario']
        senha = request.form['senha']
        senha = generate_password_hash(senha, method='sha256', salt_length=2)
        endereco = request.form['endereco']
        num_endereco = request.form['num_endereco']
        complemento = request.form['complemento']
        bairro = request.form['bairro']
        cep = request.form['cep']
        cod_cidade = request.form['cod_cidade']
        contato = request.form['contato']
        email = request.form['email']
        observacao = request.form['observacao']
        cliente = tbl_cliente(usuario=usuario,
                              senha=senha,
                              endereco=endereco,
                              num_endereco=num_endereco,
                              complemento=complemento,
                              bairro=bairro,
                              cep=cep,
                              cod_cidade=cod_cidade,
                              contato=contato,
                              email=email,
                              observacao=observacao)
        session.add(cliente)
        session.commit()

        # tbl_pessoa_juridica
        nome_fantasia = request.form['nome_fantasia']
        razao_social = request.form['razao_social']
        cnpj = request.form['cnpj']
        inscricao_estadual = request.form['inscricao_estadual']
        data_fundacao = request.form['data_fundacao']
        pessoa_juridica = tbl_pessoa_juridica(
            id_pessoa_juridica=cliente.id_cliente,
            nome_fantasia=nome_fantasia,
            razao_social=razao_social,
            cnpj=cnpj,
            inscricao_estadual=inscricao_estadual,
            data_fundacao=data_fundacao)
        session.add(pessoa_juridica)
        session.commit()

        # tbl_telefone
        ddd = request.form['ddd']
        telefone = request.form['telefone']
        tb_telefone = tbl_telefone(ddd=ddd,
                                   telefone=telefone,
                                   cod_cliente=cliente.id_cliente)
        session.add(tb_telefone)
        session.commit()
        session.close()

        return redirect(url_for('adminpj'))
    session.close()
    return render_template('adicionar_pessoajuridica.html', cidades=cidades)
Example #48
0
def update_holder(obj_id):
    obj = session.query(User).filter(User.id == obj_id).first()
    obj.is_active = not obj.is_active
    session.commit()
    return redirect(request.args['url'])
Example #49
0
def load_node_info_to_database(ansible_facts_dir):
    nodes=session.query(models.Node).all()

    res={"succeed" : 0, "error":0}
    for node in nodes:
        node.updated_at=datetime.now()
        node.node_type="oenstack"

        with open(ansible_facts_dir+ '/'+str(node.management_ip)) as data_node:
            node_data = json.load(data_node)
            ansible_facts=node_data.get('ansible_facts')


            if ansible_facts is not None:
                #print(node_data)
                node_name = ansible_facts.get('ansible_hostname')
                memory_mb = ansible_facts.get('ansible_memtotal_mb')
                memory_mb_free=ansible_facts.get('ansible_memfree_mb')
                numa_topology=None
                metrics= None
                processor_core=ansible_facts.get('ansible_processor_cores')
                processor_count=ansible_facts.get('ansible_processor_count')
                processor_threads_per_core=ansible_facts.get('ansible_processor_threads_per_core')
                processor_vcpu=ansible_facts.get('ansible_processor_vcpus')
                os_family=ansible_facts.get('ansible_os_family')
                pkg_mgr=ansible_facts.get('ansible_pkg_mgr')
                os_version=ansible_facts.get('ansible_distribution_version')
                default_ipv4=ansible_facts.get('ansible_default_ipv4').get('address')
                default_broadcast=ansible_facts.get('ansible_default_ipv4').get('broadcast')
                default_gateway=ansible_facts.get('ansible_default_ipv4').get('gateway')
                default_interface_id=ansible_facts.get('ansible_default_ipv4').get('interface')

                node_info=models.Node_info(node_name=node_name,memory_mb=memory_mb,memory_mb_free=memory_mb_free,numa_topology=numa_topology,metrics=metrics,processor_core=processor_core,processor_count=processor_count,processor_threads_per_core=processor_threads_per_core, processor_vcpu=processor_vcpu,os_family=os_family, pkg_mgr=pkg_mgr,os_version=os_version,default_ipv4=default_ipv4,default_broadcast=default_broadcast,default_gateway=default_gateway,default_interface_id=default_interface_id)
                interface_resources=[]

                for interface in ansible_facts['ansible_interfaces']:
                    if "docker" not in interface and "veth" not in interface and "virb" not in interface :

                        interface_info=ansible_facts.get('ansible_'+interface)
                        if interface_info is not None:
                            device_name=interface_info.get('device')
                            speed=interface_info.get('speed')
                            port_info=None
                            active=str(interface_info.get('active'))
                            features=str(interface_info.get('features'))
                            macaddress=interface_info.get('macaddress')
                            module=interface_info.get('module')
                            mtu=interface_info.get('mtu')
                            pciid=interface_info.get('pciid')
                            phc_index=interface_info.get('phc_index')
                            type_interface=interface_info.get('type_interface')
                            if device_name==ansible_facts.get('ansible_default_ipv4').get('interface'):
                                is_default_ip='True'
                            else:
                                is_default_ip='False'

                            interface_resource=models.Interface_resource(device_name=device_name,speed=speed,port_info=port_info,active=active,features=features,macaddress=macaddress,module=module,mtu=mtu,pciid=pciid,phc_index=phc_index,type_interface=type_interface,is_default_ip=is_default_ip)
                            interface_resources.append(interface_resource)
                node_info.interface_resources=interface_resources
                #node_info.update(interface_resources=interface_resources)

                disk_resources=[]
                for device in ansible_facts['ansible_devices']:
                    if "sd" in device:
                        device_data=ansible_facts.get('ansible_devices').get(str(device))
                        device_name=device
                        size = int(float(device_data.get('size')[0:-2].replace(" ", "")))
                        model = device_data.get('model')
                        removable= device_data.get('removable')
                        sectors = device_data.get('sectors')
                        sectorsize=device_data.get('sectorsize')
                        serial = device_data.get('serial')
                        vendor = device_data.get('vendor')
                        support_discard=device_data.get('support_discard')
                        virtual=device_data.get('virtual')

                        disk_resource= models.Disk_resource(device_name=device_name, size=size, model=model, removable=removable,sectors=sectors,sectorsize=sectorsize,serial=serial, vendor=vendor,support_discard=support_discard,virtual=virtual)
                        disk_resources.append(disk_resource)

                node_info.disk_resources=disk_resources
                node.node_info=node_info
                node.status = "success access node info"
                res['succeed']+=1
            else :
                node.status = json.dumps(node_data)
                res['error']+=1
            session.add(node)
            session.commit()
    session.close()
    return res