Exemple #1
0
def home():
    print(request.form)

    user: User = current_user

    weights = user.weights_dict()
    steps = user.steps_dict()
    today = datetime.today()
    points = []
    message = "You can still log your current weight and steps to gain points, make over 10000 steps to make even more points."
    for weight in weights:
        if (today.strftime("%m/%d/%y") in weight.values()):
            points.append(40)
            message = "Try to make more then 10000 steps tommorow to gain the last 20 points."
            break

    for step in steps:
        if (today.strftime("%m/%d/%y") in step.values()):
            points.append(40)
            message = "Try to make more then 10000 steps tommorow to gain the last 20 points."
            if (step['series'] > 10000):
                points.append(20)
                message = "You've done everything for today. A full one hundred points, be proud!!"
            break

    le_form = LogExerciseForm(prefix='exercise')
    le_form.exercise.choices = [(e.id, e.name) for e in Exercise.query.all()]

    lf_form = LogFoodForm(prefix='food')
    lf_form.ingredient.choices = [(i.id, i.name)
                                  for i in Ingredient.query.all()]

    w_form = AddWeightForm(prefix='weight')

    s_form = AddStepsForm(prefix='steps')

    if lf_form.ingredient.data and lf_form.validate_on_submit():
        food_log = FoodLog(grams=lf_form.grams.data)
        food_log.user = current_user
        food_log.ingredient_id = lf_form.ingredient.data

        db.session.add(food_log)
        db.session.commit()

        flash('Food added!')
        return redirect(url_for('home'))

    if le_form.exercise.data and le_form.validate_on_submit():
        exercise_log = ExerciseLog(amount=le_form.reps.data)
        exercise_log.user = current_user
        exercise_log.exercise_id = le_form.exercise.data

        db.session.add(exercise_log)
        db.session.commit()

        flash('Exercise added!')
        return redirect(url_for('home'))

    if w_form.weight.data and w_form.validate_on_submit():
        weight = Weight(w_form.weight.data)
        weight.user = current_user
        db.session.add(weight)
        db.session.commit()

        flash('Weight added!')
        return redirect(url_for('home'))

    if s_form.steps.data and s_form.validate_on_submit():
        steps = Steps(s_form.steps.data)
        steps.user = current_user
        db.session.add(steps)
        db.session.commit()

        flash('Steps added!')
        return redirect(url_for('home'))

    return render_template('home.html',
                           e_form=le_form,
                           f_form=lf_form,
                           s_form=s_form,
                           w_form=w_form,
                           weights=weights,
                           steps=steps,
                           points=points,
                           message=message)
Exemple #2
0
def import_data():
    if Path('db/app.db').exists():
        click.confirm('app.db already exist, want to remove it?', abort=True)
        Path('db/app.db').unlink()

    upgrade()
    user = create_user()

    with open("data/steps.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            steps = Steps(steps=line['steps'])
            steps.date = datetime.fromisoformat(line['datetime'])
            steps.user = user
            db.session.add(steps)
        db.session.commit()

    with open("data/weights.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            weight = Weight(weight=line['weight'])
            weight.date = datetime.fromisoformat(line['datetime'])
            weight.user = user
            db.session.add(weight)
        db.session.commit()

    with open("data/exercises.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            exercise = Exercise(name=line['name'], kcal_per_rep=line['kcal'])
            db.session.add(exercise)
        db.session.commit()

    with open("data/ingredients.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            ingredient = Ingredient(name=line['name'],
                                    kcal_per_100_gram=line['kcal'])
            db.session.add(ingredient)
        db.session.commit()

    with open("data/food_log.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            food_log = FoodLog()
            food_log.user = user
            food_log.ingredient_id = line['ingredient_id']
            food_log.grams = line['grams']
            food_log.timestamp = datetime.fromisoformat(line['datetime'])
            db.session.add(food_log)
        db.session.commit()

    with open("data/exercise_log.csv", 'r') as f:
        reader = DictReader(f)
        for line in reader:
            exercise_log = ExerciseLog()
            exercise_log.user = user
            exercise_log.exercise_id = line['exercise_id']
            exercise_log.amount = line['amount']
            food_log.timestamp = datetime.fromisoformat(line['datetime'])
            db.session.add(exercise_log)
        db.session.commit()