Przeglądaj źródła

[feat] multiple expense add

Adrien Carteron 3 lat temu
rodzic
commit
c547e361d4

BIN
db.sqlite3


BIN
expenses/__pycache__/models.cpython-38.pyc


BIN
expenses/__pycache__/urls.cpython-38.pyc


BIN
expenses/__pycache__/views.cpython-38.pyc


+ 8 - 2
expenses/models.py

@@ -14,6 +14,9 @@ class AuthoringDatesModel(models.Model):
 class Source(AuthoringDatesModel):
     name = models.CharField(max_length=150)
 
+    def __str__(self):
+        return self.name
+
 
 class OnlineSource(Source):
     url = models.URLField(max_length=200)
@@ -86,8 +89,8 @@ class Expense(models.Model):
     )
     content_object = GenericForeignKey("content_type", "object_id")
     # Surcharge de la manière d'afficher un objet sensor
-    """ def __str__(self):
-        return self.name """
+    def __str__(self):
+        return self.content_object.name
 
     class Meta:
         # db_table = 'book' # Permet de personnaliser le nom de la table en BDD
@@ -104,3 +107,6 @@ class MultiplePaymentExepense(MetaExpense):
         RawExpense, related_name="multiple_payment_expense", on_delete=models.PROTECT
     )
     number_of_payment = models.PositiveIntegerField()
+
+    def __str__(self):
+        return self.name

+ 1 - 1
expenses/templates/expense_list.html

@@ -11,6 +11,6 @@
     <li><a href="">{{ expense.content_object.name }}</a></li>
     {% endfor %}
 </ul>
-<a class="btn btn-info" href="{% url 'expenses:expense_create' %}">Create category</a>
+<a class="btn btn-info" href="{% url 'expenses:lone_expense_create' %}">Create category</a>
 
 {% endblock content %}

+ 1 - 1
expenses/templates/lone_expense_create.html

@@ -4,7 +4,7 @@
 {% block content %}
 {% load django_bootstrap5 %}
 
-{% block page_title %}Create category{% endblock %}
+{% block page_title %}Create expense{% endblock %}
 
 <form action="" method="post">
     {% csrf_token %}

+ 7 - 1
expenses/urls.py

@@ -8,6 +8,7 @@ from expenses.views import (
     CategoryDeleteView,
     expenses_list,
     lone_expense_create,
+    multiple_expense_create,
 )
 
 app_name = "expenses"
@@ -26,5 +27,10 @@ urlpatterns = [
     ),
     # path("category/", CategoryView.as_view(), name="category"),
     path("expenses", expenses_list, name="expense_list"),
-    path("expenses/lone/create", lone_expense_create, name="expense_create"),
+    path("expenses/lone/create", lone_expense_create, name="lone_expense_create"),
+    path(
+        "expenses/multiple/create",
+        multiple_expense_create,
+        name="multiple_expense_create",
+    ),
 ]

+ 12 - 0
expenses/views.py

@@ -85,6 +85,18 @@ def lone_expense_create(request):
     return render(request, "lone_expense_create.html", {"form": form})
 
 
+def multiple_expense_create(request):
+    form = MultiplePaymentExepenseForm(request.POST or None)
+    if form.is_valid():
+        instance = form.save()
+        expense = Expense(
+            content_object=instance,
+        )
+        expense.save()
+        return redirect("expenses:expense_list")
+    return render(request, "lone_expense_create.html", {"form": form})
+
+
 def create_expense(request):
     form = ExpenseForm(request.POST or None)
     if form.is_valid():