def debts(request): """Renders expenses list page""" assert isinstance(request, HttpRequest) if request.method == 'POST': form = DatePickerForm(request.POST) if form.is_valid(): date_from = form.cleaned_data['date_from'] date_to = form.cleaned_data['date_to'] else: date_from = get_first_day(datetime.today()) date_to = get_last_day(datetime.today()) form = DatePickerForm() else: date_from = get_first_day(datetime.today()) date_to = get_last_day(datetime.today()) form = DatePickerForm() user = Person.objects.get(auth_user_id=request.user) returns = SubExpense.objects.annotate( date=Max('expense__date'), num_debtors=Count('debtors'), payer=Max('expense__payer__name')).exclude(expense__payer_id = user.id).filter( debtors__id=user.id, date__gte = date_from, date__lte = date_to).order_by('expense__payer__name') ret_dict = dict() for ret in returns: ret_dict[ret] = ret.amount / ret.num_debtors return render( request, 'app/debts.html', { 'datepickers': form, 'returns': ret_dict })
def setAlarm(id): t = Task.query.get(id) form = DatePickerForm() if form.validate_on_submit(): t.setAlarm(form.alarm_time.data) db.session.commit() # if t.alarm_time == datetime.date.today(): # flash('Come on, Do the task') return redirect(url_for('addTask')) return render_template('setAlarm.html', form=form)
def expenses(request): """Renders expenses list page""" assert isinstance(request, HttpRequest) if request.method == 'POST': form = DatePickerForm(request.POST) if form.is_valid(): date_from = form.cleaned_data['date_from'] date_to = form.cleaned_data['date_to'] else: date_from = get_first_day(datetime.today()) date_to = get_last_day(datetime.today()) form = DatePickerForm() else: date_from = get_first_day(datetime.today()) date_to = get_last_day(datetime.today()) form = DatePickerForm() user = Person.objects.get(auth_user_id=request.user) expenses = Expense.objects.filter( payer_id=user.id, date__gte = date_from, date__lte = date_to).order_by('-date') resp = OrderedDict() for expense in expenses: db_subs = SubExpense.objects.filter(expense_id=expense.id) subs = dict() for sub in db_subs: subs[sub] = list() for deb in sub.debtors.all(): subs[sub].append(deb) resp[expense] = subs return render( request, 'app/expenses.html', { 'datepickers': form, 'expenses': resp })