Пример #1
0
def get_exercises_by_month(date_search):
	date_selected = DateHelper.generated_id_by_month_year_to_date(date_search)

	user_has_exercises = db.session.query(exists().where(Exercise.user_id == g.user.id)).scalar()

	if not user_has_exercises:
		flash('You don\'t have any exercises registered')
		return []

	exercises = db.session.query(Exercise)\
		.order_by(Exercise.date)\
		.filter(
			Exercise.user_id == g.user.id,\
			extract('month', Exercise.date) == date_selected.month,\
		).all()

	return exercises
Пример #2
0
def total_on_week_by_month():
	form = TotalOnWeekByMonthForm(request.form)

	# set all months as options of SELECT element on the form
	form.months.choices = get_all_months_as_dictionary()

	# when is a POST action
	if form.validate_on_submit():
		date_selected = DateHelper.generated_id_by_month_year_to_date(form.months.data)

		# get the total exercises a user have done per week on a selected month
		results = db.session.query(extract('week', Exercise.date).label('week'), func.count(Exercise.date).label('total'))\
						.group_by(extract('week', Exercise.date))\
						.order_by('week')\
						.filter(extract('month', Exercise.date) == date_selected.month)\
						.filter(extract('year', Exercise.date) == date_selected.year)\
						.filter(Exercise.user_id == g.user.id)\
						.all()

		# convert list to dictonary
		data = {('Week %i of the year' % (week)): str(total) for (week, total) in results}

		return render_template('exercises/total_on_week_by_month.html', form=form, data=data)
	return render_template('exercises/total_on_week_by_month.html', form=form)