+
-
@@ -135,14 +141,43 @@
'handle-limit': "{% url 'expenses:handle_limit' %}",
'handle-payment': "{% url 'expenses:handle_payment' %}",
'handle-category': "{% url 'expenses:handle_category' %}",
+ 'edit-expense': "{% url 'expenses:edit_expense' %}",
+ 'delete-expense': "{% url 'expenses:delete_expense' %}",
}
$(".action-modal").on('click', function(){
//console.log($(this).data().action)
+ new_data = {}
+ if($(this).data().action == 'edit-expense'){
+ new_data = {
+ category: $('#category :selected').val(),
+ payment: $('#payment :selected').val(),
+ description: $('#description :selected').val(),
+ value: $('#value :selected').val(),
+ date: $('#date :selected').val(),
+ }
+ }
+ if($(this).data().action == 'edit-category'){
+ new_data = {
+ id: $(this).data().id,
+ }
+ }
+ if($(this).data().id){
+ new_data = {
+ id: $(this).data().id,
+ }
+ }
+
+ if($(this).data().action == 'handle-limit'){
+ new_data = {
+ month_year: $('#list_month_year :selected').val(),
+ }
+ }
$.ajax({
type: 'GET',
url: action_modal[$(this).data().action],
+ data: new_data,
success: function (response) {
$('.modal-description').text(response.title);
$('.modal-content').html(response.html);
diff --git a/expenses/templates/expenses/report.html b/expenses/templates/expenses/report.html
index c7c295ac..62c215f2 100644
--- a/expenses/templates/expenses/report.html
+++ b/expenses/templates/expenses/report.html
@@ -2,5 +2,11 @@
{% load static %}
{% block title %}Relatórios{% endblock %}
{% block content %}
- Contéudo de relatório...
+
+
+
Todos os Relatórios
+
+
{% endblock %}
\ No newline at end of file
diff --git a/expenses/urls.py b/expenses/urls.py
index ac4e30dd..cc0a86a0 100644
--- a/expenses/urls.py
+++ b/expenses/urls.py
@@ -10,6 +10,7 @@
path('get/report/list-expenses-by-category/', list_expenses_by_category, name="list_expenses_by_category"),
path('report/', report, name="report"),
path('about/', about, name="about"),
+ path('bank-loan/', bank_loan, name="bank_loan"),
path('get-total-expenses/',get_total_expenses_ajax,name="get_total_expenses_ajax"),
@@ -19,6 +20,8 @@
path('handle/limit', handle_limit, name="handle_limit"),
path('handle/payment', handle_payment, name="handle_payment"),
path('handle/category', handle_category, name="handle_category"),
+ path('edit/expense', edit_expense, name="edit_expense"),
+ path('delete/expense', delete_expense, name="delete_expense")
]
\ No newline at end of file
diff --git a/expenses/views.py b/expenses/views.py
index 4426f7ac..f5b55079 100644
--- a/expenses/views.py
+++ b/expenses/views.py
@@ -1,3 +1,5 @@
+from multiprocessing import context
+from unicodedata import category
from django.shortcuts import render,redirect
from django.urls import reverse
@@ -86,11 +88,6 @@ def home(request,page=None):
# list_item_expenses = Expense.objects.all()[:NUMBER_ITENS]
# else:
# list_item_expenses = Expense.objects.all()
-
-
-
-
-
context = {
'page_selected': "home",
@@ -119,6 +116,12 @@ def report(request):
}
return render(request,"expenses/report.html", context)
+def bank_loan(request):
+ context = {
+ 'page_selected': "bank-loan",
+ }
+ return render(request,"expenses/bank-loan.html", context)
+
def list_expenses_by_category(request):
@@ -130,12 +133,14 @@ def list_expenses_by_category(request):
context = {
'form': form,
'category_selected': category,
- 'list':list
+ 'list':list,
+ 'page_selected': "report",
}
return render(request,'expenses/list-expenses-by-category.html',context)
form = SelectCategoryForm()
context = {
'form': form,
+ 'page_selected': "report",
}
return render(request,'expenses/list-expenses-by-category.html',context)
@@ -160,7 +165,9 @@ def get_total_expenses_ajax(request):
from expenses.forms import ExpenseForm
from django.template.loader import render_to_string
+from django.views.decorators.csrf import csrf_exempt
+@csrf_exempt
def create_expense(request):
title = 'Inserir Gasto'
context_extra = {}
@@ -194,31 +201,164 @@ def create_expense(request):
}
return JsonResponse(response, status = 200)
+from expenses.forms import CategoryForm
+@csrf_exempt
def handle_category(request):
- title = 'Inserir Categoria'
+ title = "Inserir Categoria"
+ context_extra = {}
+ if request.POST.get('action') == 'post':
+ form = CategoryForm(request.POST)
+
+ if form.is_valid():
+ model = form.save(commit=False)
+ model.save()
+ context_extra = {
+ 'response' : 'Criado com sucesso!',
+ 'error': False,
+ }
+ else:
+ context_extra = {
+ 'response' : 'Erros ocorreram!',
+ 'error': True
+ }
+
+ else:
+ form = CategoryForm()
+ context = {
+ 'form': form,
+ 'categories': Category.objects.all()
+ }
+ html_page = render_to_string('expenses/form/new-category.html', context)
response = {
'title' : title,
- 'html' : 'a fazer...',
-
+ 'html' : html_page,
+ 'response' : context_extra['response'] if 'response' in context_extra else None,
+ 'error': context_extra['error'] if 'error' in context_extra else None,
}
return JsonResponse(response, status = 200)
-
+from expenses.forms import LimitForm
+from expenses.models import Limit
+@csrf_exempt
def handle_limit(request):
title = 'Inserir Limite'
+ context_extra = {}
+ if request.POST.get('action') == 'post':
+
+ month, year = request.POST['month'], request.POST['year']
+
+ if Limit.objects.filter(month=month,year=year).exists():
+ instance = Limit.objects.get(month=month,year=year)
+ form = LimitForm(request.POST,instance=instance)
+ else:
+ form = LimitForm(request.POST)
+
+ if form.is_valid():
+ model = form.save(commit=False)
+ model.save()
+ context_extra = {
+ 'response' : 'Criado com sucesso!',
+ 'error': False,
+ }
+ else:
+ context_extra = {
+ 'response' : 'Erros ocorreram!',
+ 'error': True
+ }
+
+ else:
+ value = request.GET['month_year']
+ value = value.split('-')
+ month, year = value[0], value[1]
+ total = 0
+ if Limit.objects.filter(month=month,year=year).exists():
+ total = Limit.objects.get(month=month,year=year).value
+ form = LimitForm(initial={'month': month, 'year': year, 'value': total})
+ context = {
+ 'form': form,
+ }
+ html_page = render_to_string('expenses/form/handle-limit.html', context)
response = {
'title' : title,
- 'html' : 'a fazer...',
-
+ 'html' : html_page,
+ 'response' : context_extra['response'] if 'response' in context_extra else None,
+ 'error': context_extra['error'] if 'error' in context_extra else None,
}
return JsonResponse(response, status = 200)
+from expenses.forms import PaymentForm
+@csrf_exempt
+
def handle_payment(request):
- title = 'Inserir Forma de Pagamento'
+ title = 'Inserir Pagamento'
+ context_extra = {}
+ if request.POST.get('action') == 'post':
+ form = PaymentForm(request.POST)
+
+ if form.is_valid():
+ model = form.save(commit=False)
+ model.save()
+ context_extra = {
+ 'response' : 'Criado com sucesso!',
+ 'error': False,
+ }
+ else:
+ context_extra = {
+ 'response' : 'Erros ocorreram!',
+ 'error': True
+ }
+
+ else:
+ form = PaymentForm()
+ context = {
+ 'form': form,
+ 'payments': Payment.objects.all(),
+ }
+ html_page = render_to_string('expenses/form/new-payment.html', context)
+ response = {
+ 'title' : title,
+ 'html' : html_page,
+ 'response' : context_extra['response'] if 'response' in context_extra else None,
+ 'error': context_extra['error'] if 'error' in context_extra else None,
+ }
+ return JsonResponse(response, status = 200)
+
+from expenses.forms import EditExpenseForm
+@csrf_exempt
+
+def edit_expense(request):
+ title = 'Alterar Gasto'
+ expense = Expense.objects.get(id=request.GET['id'])
+ context = {
+ 'expense': expense,
+ }
+ html_page = render_to_string('expenses/form/edit-expense.html', context)
response = {
'title' : title,
- 'html' : 'a fazer...',
+ 'html' : html_page,
}
+ return JsonResponse(response, status = 200)
+
+def delete_expense(request):
+ title = 'Confirme para deletar:'
+ context_extra = {}
+ context = {
+ 'id': request.GET.get('id')
+ }
+ if request.GET.get('action') == 'delete':
+ id = request.GET.get('id')
+ Expense.objects.filter(id=id).delete()
+ context_extra = {
+ 'response' : 'Deletado com sucesso!',
+ 'error': False,
+ }
+ html_page = render_to_string('expenses/form/delete-expense.html', context)
+ response = {
+ 'title' : title,
+ 'html' : html_page,
+ 'response' : context_extra['response'] if 'response' in context_extra else None,
+ 'error': context_extra['error'] if 'error' in context_extra else None,
+ }
return JsonResponse(response, status = 200)
\ No newline at end of file