Ejemplo n.º 1
0
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
        })
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
        })