From 5ef06f8c55c45c8b53030cbfbcbfaba46a8e69d3 Mon Sep 17 00:00:00 2001 From: Yuri Gomes Date: Wed, 6 Jul 2022 18:05:13 -0300 Subject: [PATCH 01/12] Front From 1e28b5acc6b0dfb0f9e7b33a4cb12df5e595e54b Mon Sep 17 00:00:00 2001 From: Yuri Gomes Date: Wed, 6 Jul 2022 18:05:28 -0300 Subject: [PATCH 02/12] Front From befcf1870e329b3ffc83080325c18c8f181e63c1 Mon Sep 17 00:00:00 2001 From: Yuri Gomes Date: Thu, 7 Jul 2022 17:47:33 -0300 Subject: [PATCH 03/12] =?UTF-8?q?Mudan=C3=A7a=20no=20limit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/expenses/form/new-limit.html | 97 +++++++++++++++++++ expenses/views.py | 28 +++++- 2 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 expenses/templates/expenses/form/new-limit.html diff --git a/expenses/templates/expenses/form/new-limit.html b/expenses/templates/expenses/form/new-limit.html new file mode 100644 index 00000000..bd6264dd --- /dev/null +++ b/expenses/templates/expenses/form/new-limit.html @@ -0,0 +1,97 @@ +
+ {% csrf_token %} + {{ form.as_p }} +
+ + +
+ +
+
+ \ No newline at end of file diff --git a/expenses/views.py b/expenses/views.py index 4426f7ac..51e4533f 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -207,10 +207,34 @@ def handle_category(request): def handle_limit(request): title = 'Inserir Limite' + context_extra = {} + if request.POST.get('action') == 'post': + form = ExpenseForm(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 = ExpenseForm() + context = { + 'form': form, + } + html_page = render_to_string('expenses/form/new-expense.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 6fb30f5d5b39fc2bdb5ebe373a8a05f24dd7b325 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 9 Jul 2022 16:20:56 -0300 Subject: [PATCH 04/12] add inserir pagamento --- expenses/forms.py | 16 ++- .../templates/expenses/form/new-category.html | 97 +++++++++++++++++++ .../templates/expenses/form/new-limit.html | 9 +- .../templates/expenses/form/new-payment.html | 97 +++++++++++++++++++ expenses/templates/expenses/main.html | 8 +- expenses/views.py | 73 +++++++++++--- 6 files changed, 278 insertions(+), 22 deletions(-) create mode 100644 expenses/templates/expenses/form/new-category.html create mode 100644 expenses/templates/expenses/form/new-payment.html diff --git a/expenses/forms.py b/expenses/forms.py index b617a3eb..088943b5 100644 --- a/expenses/forms.py +++ b/expenses/forms.py @@ -1,6 +1,6 @@ from django import forms from django.core.exceptions import ValidationError - +from expenses.admin import PaymentAdmin from expenses.models import Category class SelectCategoryForm(forms.Form): @@ -10,6 +10,20 @@ class SelectCategoryForm(forms.Form): from django.core.exceptions import ValidationError +from expenses.models import Category + +from expenses.models import Payment + +class CategoryForm(forms.ModelForm): + class Meta: + model = Category + fields = ['description'] + +class PaymentForm(forms.ModelForm): + class Meta: + model = Payment + fields = ['description'] + class ExpenseForm(forms.ModelForm): class Meta: diff --git a/expenses/templates/expenses/form/new-category.html b/expenses/templates/expenses/form/new-category.html new file mode 100644 index 00000000..0e3c761b --- /dev/null +++ b/expenses/templates/expenses/form/new-category.html @@ -0,0 +1,97 @@ +
+ {% csrf_token %} + {{ form.as_p }} +
+ + +
+ +
+
+ \ No newline at end of file diff --git a/expenses/templates/expenses/form/new-limit.html b/expenses/templates/expenses/form/new-limit.html index bd6264dd..72c542a1 100644 --- a/expenses/templates/expenses/form/new-limit.html +++ b/expenses/templates/expenses/form/new-limit.html @@ -1,4 +1,4 @@ -
+ {% csrf_token %} {{ form.as_p }}
@@ -50,17 +50,14 @@ } return cookieValue; } - $('#formExpense').on('submit', function(e){ + $('#formLimit').on('submit', function(e){ e.preventDefault(); $.ajax({ type : "POST", - url: "{% url 'expenses:create_expense' %}", + url: "{% url 'expenses:handle_limit' %}", data: { - category : $('#id_category').val(), - payment : $('#id_payment').val(), - description : $('#id_description').val(), value : $('#id_value').val(), date : $('#id_date').val(), csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(), diff --git a/expenses/templates/expenses/form/new-payment.html b/expenses/templates/expenses/form/new-payment.html new file mode 100644 index 00000000..8e5f4f24 --- /dev/null +++ b/expenses/templates/expenses/form/new-payment.html @@ -0,0 +1,97 @@ + + {% csrf_token %} + {{ form.as_p }} +
+ + +
+ + +
+ \ No newline at end of file diff --git a/expenses/templates/expenses/main.html b/expenses/templates/expenses/main.html index f1104169..3032cbd7 100644 --- a/expenses/templates/expenses/main.html +++ b/expenses/templates/expenses/main.html @@ -66,7 +66,7 @@
-
+
@@ -139,6 +139,12 @@ $(".action-modal").on('click', function(){ //console.log($(this).data().action) + new_data = {} + if($(this).data().id){ + new_data = { + id: $(this).data().id, + } + } $.ajax({ type: 'GET', diff --git a/expenses/views.py b/expenses/views.py index 51e4533f..873f0ad6 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -1,3 +1,4 @@ +from multiprocessing import context from django.shortcuts import render,redirect from django.urls import reverse @@ -86,11 +87,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", @@ -160,7 +156,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,22 +192,63 @@ 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) +@csrf_exempt + def handle_limit(request): title = 'Inserir Limite' + response = { + 'title' : title, + 'html' : 'a fazer...', + + } + return JsonResponse(response, status = 200) + +from expenses.forms import PaymentForm +@csrf_exempt + +def handle_payment(request): + title = 'Inserir Pagamento' context_extra = {} if request.POST.get('action') == 'post': - form = ExpenseForm(request.POST) + form = PaymentForm(request.POST) if form.is_valid(): model = form.save(commit=False) @@ -225,11 +264,12 @@ def handle_limit(request): } else: - form = ExpenseForm() + form = PaymentForm() context = { 'form': form, + 'limits': Limit.objects.all(), } - html_page = render_to_string('expenses/form/new-expense.html', context) + html_page = render_to_string('expenses/form/new-payment.html', context) response = { 'title' : title, 'html' : html_page, @@ -238,11 +278,16 @@ def handle_limit(request): } return JsonResponse(response, status = 200) -def handle_payment(request): - title = 'Inserir Forma de Pagamento' +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) \ No newline at end of file From 73eda6e3bda6037e95fd3ddb623fa53737b1de01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vinicius?= Date: Mon, 11 Jul 2022 14:23:52 -0300 Subject: [PATCH 05/12] =?UTF-8?q?Bot=C3=A3o=20emprestimo=20-=20Css=20Relat?= =?UTF-8?q?orio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- expenses/templates/expenses/main.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/expenses/templates/expenses/main.html b/expenses/templates/expenses/main.html index 3032cbd7..2b0a3e7f 100644 --- a/expenses/templates/expenses/main.html +++ b/expenses/templates/expenses/main.html @@ -140,11 +140,16 @@ $(".action-modal").on('click', function(){ //console.log($(this).data().action) new_data = {} - if($(this).data().id){ + if($(this).data().action == 'edit-category'){ new_data = { id: $(this).data().id, } } + if($(this).data().action == 'handle-limit'){ + new_data = { + month_year: $('#list_month_year :selected').val(), + } + } $.ajax({ type: 'GET', From 6ee0335e7d5eeef55c1fddd79d9cd0afca085929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vinicius?= Date: Mon, 11 Jul 2022 15:26:49 -0300 Subject: [PATCH 06/12] Add Emprestimo --- GastoSystem | 1 + expenses/forms.py | 8 ++ expenses/models.py | 4 +- expenses/static/expenses/css/modal.css | 1 + .../static/expenses/css/report-expense.css | 14 +++ expenses/templates/base.html | 7 +- expenses/templates/expenses/bank-loan.html | 12 +++ .../templates/expenses/form/edit-expense.html | 97 +++++++++++++++++++ .../expenses/list-expenses-by-category.html | 66 ++++++++----- expenses/templates/expenses/main.html | 10 +- expenses/templates/expenses/report.html | 8 +- expenses/urls.py | 2 + expenses/views.py | 13 ++- 13 files changed, 215 insertions(+), 28 deletions(-) create mode 160000 GastoSystem create mode 100644 expenses/static/expenses/css/report-expense.css create mode 100644 expenses/templates/expenses/bank-loan.html create mode 100644 expenses/templates/expenses/form/edit-expense.html diff --git a/GastoSystem b/GastoSystem new file mode 160000 index 00000000..9952dd44 --- /dev/null +++ b/GastoSystem @@ -0,0 +1 @@ +Subproject commit 9952dd4455b4078e4818397e7473ef0d29408f06 diff --git a/expenses/forms.py b/expenses/forms.py index 088943b5..f1efca2b 100644 --- a/expenses/forms.py +++ b/expenses/forms.py @@ -24,6 +24,14 @@ class Meta: model = Payment fields = ['description'] +class EditExpenseForm(forms.ModelForm): + class Meta: + model = Expense + fields = ['category','payment','description','value','date'] + labels = { + 'category': 'Categoria', + 'payment': 'Pagamento' + } class ExpenseForm(forms.ModelForm): class Meta: diff --git a/expenses/models.py b/expenses/models.py index 6f7f7d57..4a7c4c7a 100644 --- a/expenses/models.py +++ b/expenses/models.py @@ -50,6 +50,8 @@ class Meta: def __str__(self): return f'{self.category.description.upper()} -{self.description.upper()} ({self.value})' + + @staticmethod def list_expenses_by_category(category): from django.db.models import Sum @@ -58,7 +60,7 @@ def list_expenses_by_category(category): ).annotate(total=Sum('value')).order_by( '-date__year','-date__month' ) - + def clean(self): if self.value<0: raise ValidationError(f'''O valor '{self.value}' é inválido diff --git a/expenses/static/expenses/css/modal.css b/expenses/static/expenses/css/modal.css index 7681d11d..33b6643a 100644 --- a/expenses/static/expenses/css/modal.css +++ b/expenses/static/expenses/css/modal.css @@ -174,3 +174,4 @@ td > input{ .modal-content > form > p{ display: flex; } + diff --git a/expenses/static/expenses/css/report-expense.css b/expenses/static/expenses/css/report-expense.css new file mode 100644 index 00000000..9968efd8 --- /dev/null +++ b/expenses/static/expenses/css/report-expense.css @@ -0,0 +1,14 @@ +.breadcamp{ + margin-top: 1em; + margin-left: 1em; +} + +.report-list{ + margin-top: 1em; + margin-left: 2em; +} + +.content-report{ + margin-left: 1em; + margin-top: 1em; +} \ No newline at end of file diff --git a/expenses/templates/base.html b/expenses/templates/base.html index e910ee0c..3dc85539 100644 --- a/expenses/templates/base.html +++ b/expenses/templates/base.html @@ -23,8 +23,10 @@ @@ -33,7 +35,7 @@ {% endblock %}
- +
@@ -45,6 +47,9 @@ $("#nav-report").click(function() { window.open("{% url 'expenses:report' %}","_self") }); + $("#nav-bank-loan").click(function() { + window.open("{% url 'expenses:bank_loan' %}","_self") + }); $("#nav-about").click(function() { window.open("{% url 'expenses:about' %}","_self") }); diff --git a/expenses/templates/expenses/bank-loan.html b/expenses/templates/expenses/bank-loan.html new file mode 100644 index 00000000..44ba0770 --- /dev/null +++ b/expenses/templates/expenses/bank-loan.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} +{% load static %} +{% block title %}Empréstimo Bancário{% endblock %} +{% block content %} + + +
Todos os Relatórios
+ + +{% endblock %} \ No newline at end of file diff --git a/expenses/templates/expenses/form/edit-expense.html b/expenses/templates/expenses/form/edit-expense.html new file mode 100644 index 00000000..aaeb57e2 --- /dev/null +++ b/expenses/templates/expenses/form/edit-expense.html @@ -0,0 +1,97 @@ +
+ {% csrf_token %} + {{ form.as_p }} +
+ + +
+ +
+
+ \ No newline at end of file diff --git a/expenses/templates/expenses/list-expenses-by-category.html b/expenses/templates/expenses/list-expenses-by-category.html index 6543199a..65286392 100644 --- a/expenses/templates/expenses/list-expenses-by-category.html +++ b/expenses/templates/expenses/list-expenses-by-category.html @@ -1,24 +1,46 @@ +{% extends "base.html" %} +{% load static %} +{% block title %}Relatório de Gastos Mensais por Categoria{% endblock %} +{% block style %} + -
- {% csrf_token %} - {{ form.as_p }} - -
+ +{% endblock %} +{% block content %} +
Todos os Relatórios/Relatório de Gastos Mensais por Categoria
+
+
+ {% csrf_token %} + {{ form.as_p }} + +
+ + -
-

{{ category_selected }}

-{% if list %} - - - - - - - {% for result in list %} - - - - - - {% endfor %} -{% endif %} + {% if list %} + +
+
+

Categoria: {{ category_selected }}

+
+
+

+

Mês

+

Ano

+

Total

+

+
+ {% for result in list %} +
+

+

{{ result.date__month }}

+

{{ result.date__year }}

+

{{ result.total|floatformat:2 }}

+

+
+ {% endfor %} +
+ + {% endif %} + + {% endblock %} \ No newline at end of file diff --git a/expenses/templates/expenses/main.html b/expenses/templates/expenses/main.html index 2b0a3e7f..d84977ce 100644 --- a/expenses/templates/expenses/main.html +++ b/expenses/templates/expenses/main.html @@ -66,7 +66,7 @@
-
+
@@ -135,16 +135,22 @@ 'handle-limit': "{% url 'expenses:handle_limit' %}", 'handle-payment': "{% url 'expenses:handle_payment' %}", 'handle-category': "{% url 'expenses:handle_category' %}", + 'edit-expense': "{% url 'expenses:edit_expense' %}", } $(".action-modal").on('click', function(){ //console.log($(this).data().action) new_data = {} - if($(this).data().action == 'edit-category'){ + if($(this).data().action == 'edit-expense'){ new_data = { id: $(this).data().id, } } + // if($(this).data().action == 'edit-category'){ + // new_data = { + // id: $(this).data().id, + // } + // } if($(this).data().action == 'handle-limit'){ new_data = { month_year: $('#list_month_year :selected').val(), diff --git a/expenses/templates/expenses/report.html b/expenses/templates/expenses/report.html index c7c295ac..e31016b3 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..5c82e3f8 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,7 @@ 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"), ] \ No newline at end of file diff --git a/expenses/views.py b/expenses/views.py index 873f0ad6..46a7711d 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -115,6 +115,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): @@ -126,12 +132,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) @@ -278,6 +286,9 @@ def handle_payment(request): } 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']) From 87d4a91eb4701aa589b982dd004472228c622f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vinicius?= Date: Mon, 11 Jul 2022 15:44:03 -0300 Subject: [PATCH 07/12] Refinando Emprestimo --- expenses/static/expenses/css/report-expense.css | 5 ++--- expenses/templates/expenses/bank-loan.html | 6 +----- expenses/templates/expenses/report.html | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/expenses/static/expenses/css/report-expense.css b/expenses/static/expenses/css/report-expense.css index 9968efd8..c263ca22 100644 --- a/expenses/static/expenses/css/report-expense.css +++ b/expenses/static/expenses/css/report-expense.css @@ -1,6 +1,5 @@ .breadcamp{ - margin-top: 1em; - margin-left: 1em; + margin-left: 2em; } .report-list{ @@ -9,6 +8,6 @@ } .content-report{ - margin-left: 1em; + margin-left: 2em; margin-top: 1em; } \ No newline at end of file diff --git a/expenses/templates/expenses/bank-loan.html b/expenses/templates/expenses/bank-loan.html index 44ba0770..7c44371d 100644 --- a/expenses/templates/expenses/bank-loan.html +++ b/expenses/templates/expenses/bank-loan.html @@ -4,9 +4,5 @@ {% block content %} -
Todos os Relatórios
- - +

Empréstimo Bancário

{% endblock %} \ No newline at end of file diff --git a/expenses/templates/expenses/report.html b/expenses/templates/expenses/report.html index e31016b3..62c215f2 100644 --- a/expenses/templates/expenses/report.html +++ b/expenses/templates/expenses/report.html @@ -4,7 +4,7 @@ {% block content %} -
Todos os Relatórios
+

Todos os Relatórios

  • Relatório de Gastos Mensais por Categoria
  • From 9da83341b21dd18d7a48b86d0d1eb67ec2126a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vinicius?= Date: Tue, 12 Jul 2022 15:34:04 -0300 Subject: [PATCH 08/12] Inserir Pagamento - Limite no rumo --- expenses/forms.py | 16 ++++++- .../{new-limit.html => handle-limit.html} | 6 ++- .../templates/expenses/form/new-category.html | 5 +++ .../templates/expenses/form/new-payment.html | 6 +-- expenses/templates/expenses/main.html | 11 +++-- expenses/views.py | 45 +++++++++++++++++-- 6 files changed, 71 insertions(+), 18 deletions(-) rename expenses/templates/expenses/form/{new-limit.html => handle-limit.html} (94%) diff --git a/expenses/forms.py b/expenses/forms.py index f1efca2b..dc5e431b 100644 --- a/expenses/forms.py +++ b/expenses/forms.py @@ -14,10 +14,24 @@ class SelectCategoryForm(forms.Form): from expenses.models import Payment +from expenses.models import Limit + class CategoryForm(forms.ModelForm): class Meta: model = Category - fields = ['description'] + fields = '__all__' + +class LimitForm(forms.ModelForm): + class Meta: + model = Limit + fields = ['year','month','value'] + labels = { + 'year': 'Ano', + 'month': 'Mês', + 'value': 'Valor', + } + # year = forms.IntegerField(disabled=True) + # month = forms.IntegerField(disabled=True) class PaymentForm(forms.ModelForm): class Meta: diff --git a/expenses/templates/expenses/form/new-limit.html b/expenses/templates/expenses/form/handle-limit.html similarity index 94% rename from expenses/templates/expenses/form/new-limit.html rename to expenses/templates/expenses/form/handle-limit.html index 72c542a1..1c900866 100644 --- a/expenses/templates/expenses/form/new-limit.html +++ b/expenses/templates/expenses/form/handle-limit.html @@ -56,10 +56,12 @@ $.ajax({ type : "POST", - url: "{% url 'expenses:handle_limit' %}", + url: "{% url 'expenses:handle_category' %}", data: { value : $('#id_value').val(), - date : $('#id_date').val(), + year : $('#id_year').val(), + month : $('#id_month').val(), + csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(), action: 'post' }, diff --git a/expenses/templates/expenses/form/new-category.html b/expenses/templates/expenses/form/new-category.html index 0e3c761b..c388b2d8 100644 --- a/expenses/templates/expenses/form/new-category.html +++ b/expenses/templates/expenses/form/new-category.html @@ -7,6 +7,11 @@ +
    + {% for category in categories %} + {{ category }} + {% endfor %} +
    @@ -143,7 +150,11 @@ new_data = {} if($(this).data().action == 'edit-expense'){ new_data = { - id: $(this).data().id, + 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'){ @@ -159,6 +170,7 @@ $.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/views.py b/expenses/views.py index 31106089..1778cf16 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -1,4 +1,5 @@ from multiprocessing import context +from unicodedata import category from django.shortcuts import render,redirect from django.urls import reverse From f8b3d11ef5c3c464b53c127b023ec3c858e0daf0 Mon Sep 17 00:00:00 2001 From: Joao Gabriel Date: Tue, 12 Jul 2022 21:59:35 -0300 Subject: [PATCH 11/12] Delete teste --- expenses/templates/expenses/main.html | 8 +++++++- expenses/urls.py | 1 + expenses/views.py | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/expenses/templates/expenses/main.html b/expenses/templates/expenses/main.html index 2e2c0e7f..0314460c 100644 --- a/expenses/templates/expenses/main.html +++ b/expenses/templates/expenses/main.html @@ -70,7 +70,7 @@

    {{ item.payment.description|title }}

    R$ {{ item.value|floatformat:2 }}

    -
    +
    @@ -143,6 +143,7 @@ '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(){ @@ -162,6 +163,11 @@ id: $(this).data().id, } } + if($(this).data().action == 'delete-expense'){ + new_data = { + delete_expense: expense.delete() + } + } if($(this).data().action == 'handle-limit'){ new_data = { month_year: $('#list_month_year :selected').val(), diff --git a/expenses/urls.py b/expenses/urls.py index 5c82e3f8..cc0a86a0 100644 --- a/expenses/urls.py +++ b/expenses/urls.py @@ -21,6 +21,7 @@ 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 1778cf16..9c2fda1e 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -338,5 +338,19 @@ def edit_expense(request): 'title' : title, 'html' : html_page, + } + return JsonResponse(response, status = 200) + +def delete_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' : html_page, + } return JsonResponse(response, status = 200) \ No newline at end of file From 7f4cdf04e7efd9ad705203954fc7040f75f179c5 Mon Sep 17 00:00:00 2001 From: Joao Gabriel Date: Tue, 12 Jul 2022 22:54:41 -0300 Subject: [PATCH 12/12] =?UTF-8?q?add=20dele=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../expenses/form/delete-expense.html | 92 +++++++++++++++++++ expenses/templates/expenses/main.html | 13 +-- expenses/views.py | 18 +++- 3 files changed, 112 insertions(+), 11 deletions(-) create mode 100644 expenses/templates/expenses/form/delete-expense.html diff --git a/expenses/templates/expenses/form/delete-expense.html b/expenses/templates/expenses/form/delete-expense.html new file mode 100644 index 00000000..fa36422d --- /dev/null +++ b/expenses/templates/expenses/form/delete-expense.html @@ -0,0 +1,92 @@ +
    + {% csrf_token %} + {{ form.as_p }} +
    + + +
    + + +
    + \ No newline at end of file diff --git a/expenses/templates/expenses/main.html b/expenses/templates/expenses/main.html index 0314460c..b2be7840 100644 --- a/expenses/templates/expenses/main.html +++ b/expenses/templates/expenses/main.html @@ -42,11 +42,10 @@
    @@ -70,7 +69,7 @@

    {{ item.payment.description|title }}

    R$ {{ item.value|floatformat:2 }}

    -
    +
    @@ -163,11 +162,13 @@ id: $(this).data().id, } } - if($(this).data().action == 'delete-expense'){ + if($(this).data().id){ new_data = { - delete_expense: expense.delete() + id: $(this).data().id, } } + + if($(this).data().action == 'handle-limit'){ new_data = { month_year: $('#list_month_year :selected').val(), diff --git a/expenses/views.py b/expenses/views.py index 9c2fda1e..f5b55079 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -342,15 +342,23 @@ def edit_expense(request): return JsonResponse(response, status = 200) def delete_expense(request): - title = 'Alterar Gasto' - expense = Expense.objects.get(id=request.GET['id']) + title = 'Confirme para deletar:' + context_extra = {} context = { - 'expense': expense, + 'id': request.GET.get('id') } - html_page = render_to_string('expenses/form/edit-expense.html', context) + 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
MêsAnoTotal
{{ result.date__month }}{{ result.date__year }}{{ result.total|floatformat:2 }}