Exemple #1
0
def edit_expense(expense_id):

    form = ExpenseForm(request.form)
    if request.method == 'POST':
        expense = Expense.objects.get(id=form.expense_id.data)
        if form.validate():
            if __get_expense_by_name(form.name.data, expense.id) != None:
                return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects(), error='An expense with that name already exists.')

            expense.name = form.name.data
            expense.category_id = form.category_id.data
            expense.amount = form.amount.data
            expense.date = form.date.data
            expense.save()

            return list_expenses(success='Updated expense "{}".'.format(form.name.data))
        else:
            return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects(), errors=parse_form_errors(form.errors.items()))

    expense = __get_expense(expense_id)

    if expense == None:
        return no_expense_found()

    return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', expense=expense, categories=Category.objects())
Exemple #2
0
def delete(request, id):
    if (request.POST):
        expense = Expense.objects.get(pk=id, user=UserUtil.get_current_user())
        expense.delete()
        return HttpResponseRedirect("{}?month={}&year={}".format(
            reverse("search_expenses"), expense.month, expense.year))
    else:
        form = ExpenseForm(instance=Expense.objects.get(
            pk=id, user=UserUtil.get_current_user()))
    return render(request, "expenses/delete.html", {"form": form})
Exemple #3
0
def create_expense():
    form = ExpenseForm(request.form)
    if request.method == 'POST' and form.validate():
        email = session['email']
        user = User.query.filter_by(email=email).first()
        new_expense = Expense(form.item.data, form.quantity.data,
                              form.price.data)
        new_expense.owner = user
        db.session.add(new_expense)
        db.session.commit()
        return redirect(url_for('expense_list'))
    else:
        return render_template('Expense.html', form=form)
def addAnExpense(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import ExpenseForm
    from tuition.utils.manager import AppManager

    form = ExpenseForm(
        initial={'dateOfExpense': datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
        'form':
        form,
        'loggedInEmployee':
        AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    }
    return render_to_response('newExpense.html',
                              template_values,
                              context_instance=RequestContext(request))
Exemple #5
0
def user_expenses():
    form = ExpenseForm()
    category_query = services.get_categories_query(current_user.id)
    form.category.query = category_query

    if form.validate_on_submit():
        # TODO: Insert expense here
        services.add_expense(name=form.name.data,
                             value=form.value.data,
                             category=form.category.data,
                             user=current_user)
        return redirect(url_for('register'))

    expenses = services.get_expenses_by_user(current_user.id)

    return render_template('expenses.html', expenses=expenses, form=form)
def add_expense():
    user = g.user
    form = ExpenseForm()
    if form.validate_on_submit():
        expense = Expense(date=form.date.data,
                          description=form.description.data.strip(),
                          cost=''.join(i for i in form.cost.data.strip()
                                       if i.isdigit()),
                          merchant=form.merchant.data,
                          category=form.category.data,
                          creator=user)
        db.session.add(expense)
        db.session.commit()
        flash(
            "The Expense from: '{}' was added".format(form.merchant.data.name),
            'success')
        return redirect(url_for('dashboard'))
    return render_template('add_expense.html', user=user, form=form)
Exemple #7
0
def edit(request, id):
    user = UserUtil.get_current_user()
    obj = Expense.objects.get(pk=id, user=user)
    form = ExpenseForm(request.POST or None, instance=obj)

    type_id = obj.type.pk
    if (request.POST):
        type_id = int(request.POST.get('type') or 0)

    form.fields['subtype'].queryset = ExpenseType.objects.filter(
        father_expense_type=type_id)
    if form.is_valid():
        expense = form.save(commit=False)
        expense.year = expense.date_expense.year
        expense.month = expense.date_expense.month
        form.save()
        return HttpResponseRedirect("{}?month={}&year={}".format(
            reverse("search_expenses"), expense.month, expense.year))
    return render(request, "expenses/form.html", {"form": form})
Exemple #8
0
def add_expense():

    if len(Category.objects()) < 1:
        return list_expenses(error='You cannot create an expense until you create at least one category.')

    form = ExpenseForm(request.form)
    if request.method == 'POST':
        if form.validate(): 
            if __get_expense_by_name(form.name.data) != None:
                return render_template('views/expense_form.html', page_name='edit_expense', page_title='Edit Expense', categories=Category.objects(), error='An expense with that name already exists.')

            expense = Expense(name=form.name.data, category_id=form.category_id.data, amount=form.amount.data, date=form.date.data)
            expense.save()

            return list_expenses(success='Created new expense "{}".'.format(form.name.data))
        else:
            return render_template('views/expense_form.html', page_name='add_expense', page_title='Add Expense', categories=Category.objects(), errors=parse_form_errors(form.errors.items()))

    return render_template('views/expense_form.html', page_name='add_expense', page_title='Add Expense', categories=Category.objects())
Exemple #9
0
def expense_detail(id):

    form = ExpenseForm()
    category_query = services.get_categories_query(current_user.id)
    form.category.query = category_query

    if request.method == 'GET':
        expense = services.get_expense_by_id(id)
        form.name.data = expense.Expense.name
        form.value.data = expense.Expense.value
        form.category.data = expense.Category

    if form.validate_on_submit():
        services.update_expense(id=id,
                                name=form.name.data,
                                value=form.value.data,
                                category=form.category.data)
        return redirect(url_for('user_expenses'))

    return render_template('expenses_detail.html', form=form)
Exemple #10
0
def new(request):
    form = ExpenseForm(request.POST or None,
                       initial={
                           'year': date.today().year,
                           'month': date.today().month
                       })

    type_id = 0
    if (request.POST):
        type_id = int(request.POST.get('type') or 0)
    form.fields['subtype'].queryset = ExpenseType.objects.filter(
        father_expense_type=type_id)
    if (form.is_valid()):
        expense = form.save(commit=False)
        expense.user = UserUtil.get_current_user()
        expense.year = expense.date_expense.year
        expense.month = expense.date_expense.month
        expense.save()
        return HttpResponseRedirect("{}?month={}&year={}".format(
            reverse("search_expenses"), expense.month, expense.year))
    return render(request, "expenses/form.html", {"form": form})
def viewUserExpenses(request, userKey=None):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from models import Expenses
    from forms import ExpenseForm, ExpenseYearFilter
    from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT
    from tuition.utils.utils import ExportHandle, ExportClassHandle

    loggedInEmployee = AppManager.getUserByEmail(
        AppManager.getCurrentLoggedInUser().email())
    form = ExpenseForm(
        initial={'dateOfExpense': datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
        'loggedInEmployee': loggedInEmployee,
        'yearFilterForm': ExpenseYearFilter(),
        'monthNameDict': MONTH_NUM_FULL_NAME_DICT,
        'exportHandle': ExportHandle.asDict(),
        'classHandle': ExportClassHandle.asDict(),
        'form': form
    }
    return render_to_response('viewExpenses.html',
                              template_values,
                              context_instance=RequestContext(request))
Exemple #12
0
 def get_form(self, form_class):
     return ExpenseForm(self.request.user.account.organisation,
                        **self.get_form_kwargs())