diff --git a/main_app/models.py b/main_app/models.py index 9e87425..cdf5613 100644 --- a/main_app/models.py +++ b/main_app/models.py @@ -2,6 +2,7 @@ from django.urls import reverse from django import forms from django.contrib.auth.models import User +from django.db.models import F @@ -55,6 +56,11 @@ def __str__(self): def get_absolute_url(self): return reverse('kids_detail', kwargs={'kid_id': self.id}) + + # func for piggy bank increase + def add_to_balance(self, amt): + self.current_balance += amt + self.save() class Photo(models.Model): diff --git a/main_app/templates/base.html b/main_app/templates/base.html index 27f2254..1814b03 100644 --- a/main_app/templates/base.html +++ b/main_app/templates/base.html @@ -46,7 +46,11 @@ -
+ +
+ + {% include 'messages.html' %} + {% block content %} {% endblock %}
diff --git a/main_app/templates/kids/detail.html b/main_app/templates/kids/detail.html index 89c403d..9398810 100644 --- a/main_app/templates/kids/detail.html +++ b/main_app/templates/kids/detail.html @@ -1,6 +1,7 @@ {% extends 'base.html' %} {% block content %} +
@@ -75,13 +76,22 @@

{{ kid.name }}'s Chores

+ {{ chore.name }} for + {{ chore.amount }} dollars - + +
+
+ {% csrf_token %} + + +
+
@@ -126,9 +136,11 @@

Available Chores

{{ chore.name }}
+ {{ chore.description }}

{{ chore.amount }}$ +
diff --git a/main_app/templates/messages.html b/main_app/templates/messages.html new file mode 100644 index 0000000..64fb495 --- /dev/null +++ b/main_app/templates/messages.html @@ -0,0 +1,10 @@ + + +{% if messages %} +
    + {% for message in messages %} +
  • {{ message }}
  • + {% endfor %} +
+{% endif %} + diff --git a/main_app/urls.py b/main_app/urls.py index c22265a..9781ec7 100644 --- a/main_app/urls.py +++ b/main_app/urls.py @@ -14,6 +14,7 @@ path('parents//add_kid/', views.add_kid, name='add_kid'), path('kids//assoc_chore//', views.assoc_chore, name='assoc_chore'), + path('kids//unassoc_chore///', views.delete_chore, name='delete_chore'), # add photo path('kids//add_photo/', views.add_photo, name='add_photo'), diff --git a/main_app/views.py b/main_app/views.py index 00c5a5e..a9c7f2d 100644 --- a/main_app/views.py +++ b/main_app/views.py @@ -7,6 +7,7 @@ from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin +from django.contrib import messages import uuid import boto3 @@ -70,7 +71,13 @@ def kids_detail(request, kid_id): chores_kid_hasnt_done = Chore.objects.exclude(id__in=id_list) - return render(request, 'kids/detail.html', { 'kid': kid, 'chores': chores_kid_hasnt_done }) + # updated_balance = Kid.objects.get(id=kid_id).add_to_balance() + + return render(request, 'kids/detail.html', { + 'kid': kid, + 'chores': chores_kid_hasnt_done, + # 'current_balance': updated_balance + }) @login_required def assoc_chore(request, kid_id, chore_id): @@ -79,6 +86,15 @@ def assoc_chore(request, kid_id, chore_id): return redirect('kids_detail', kid_id=kid_id) +@login_required +def delete_chore(request, kid_id, chore_id, chore_amount): + # Note that you can pass a toy's id instead of the whole toy object + Kid.objects.get(id=kid_id).chores.remove(chore_id) + Kid.objects.get(id=kid_id).add_to_balance(chore_amount) + return redirect('kids_detail', kid_id=kid_id) + messages.success(request, "SUCCESS YES") + + # Add the chores index view @login_required def chores_index(request): @@ -158,6 +174,7 @@ class ChoreUpdate(LoginRequiredMixin, UpdateView): class ChoreDelete(LoginRequiredMixin, DeleteView): model = Chore success_url = '/chores' + # messages.success("SUCCESS YES") @login_required def add_photo(request, kid_id): @@ -175,6 +192,7 @@ def add_photo(request, kid_id): return redirect('kids_detail', kid_id=kid_id) return redirect('kids_detail', kid_id=kid_id) + def signup(request): error_message = '' if request.method == 'POST':