From f4115d2868a6b8335881bf718f120082b75f444a Mon Sep 17 00:00:00 2001 From: Julien MALKA Date: Wed, 19 Feb 2020 18:43:42 +0100 Subject: [PATCH] Basic fonctionnality of Vente done --- journaldecaisse/models.py | 2 +- .../templates/journaldecaisse/vente.html | 78 ++++++++++++++++++- journaldecaisse/urls.py | 2 + journaldecaisse/views.py | 43 ++++++++-- 4 files changed, 114 insertions(+), 11 deletions(-) diff --git a/journaldecaisse/models.py b/journaldecaisse/models.py index 41ec4288..fa8b0f10 100644 --- a/journaldecaisse/models.py +++ b/journaldecaisse/models.py @@ -45,7 +45,7 @@ class Produit(models.Model): price = models.FloatField("Prix") def __str__(self): - name = str(self.Produit) + " " + self.option_1_value + " " + self.option_2_value + " " + self.option_3_value + " " + self.option_4_value + " " + self.option_5_value + str(self.price) +"€" + name = str(self.Produit) + " " + self.option_1_value + " " + self.option_2_value + " " + self.option_3_value + " " + self.option_4_value + " " + self.option_5_value return name diff --git a/journaldecaisse/templates/journaldecaisse/vente.html b/journaldecaisse/templates/journaldecaisse/vente.html index e5def14e..b9d11b7a 100644 --- a/journaldecaisse/templates/journaldecaisse/vente.html +++ b/journaldecaisse/templates/journaldecaisse/vente.html @@ -9,18 +9,31 @@ {% endfor %} +
{% endblock %} diff --git a/journaldecaisse/urls.py b/journaldecaisse/urls.py index 7c6bc3e7..1afa9e7b 100644 --- a/journaldecaisse/urls.py +++ b/journaldecaisse/urls.py @@ -8,6 +8,8 @@ urlpatterns = [ path('', views.index, name='index'), path('vente.html', views.vente, name='vente'), url(r'^ajax/iterate_options/$', views.iterate_options, name='iterate_options'), + url(r'^ajax/submit_entry/$', views.submit_entry, name='submit_entry'), + ] diff --git a/journaldecaisse/views.py b/journaldecaisse/views.py index ca67ce6a..3240f12a 100644 --- a/journaldecaisse/views.py +++ b/journaldecaisse/views.py @@ -1,7 +1,10 @@ from django.http import HttpResponse -from .models import JournalEntry, Produit +from .models import JournalEntry, Produit, ProduitStock from django.shortcuts import render from django.http import JsonResponse +import datetime + +global_filter = None def index(request): entry_list = JournalEntry.objects.order_by('entry_date') @@ -9,7 +12,11 @@ def index(request): return render(request, 'journaldecaisse/index.html', context) def vente(request): - product_list = Produit.objects.all().values_list() + print(request.user.first_name) + global global_filter + product_list = Produit.objects.all() + global_filter = product_list + product_list = product_list.values_list() products = [] for elem in product_list: products.append(elem[1]) @@ -24,21 +31,45 @@ def vente(request): def iterate_options(request): + global global_filter + elem_selected = None + elem_price = None + elem_stock = None options_selected = request.GET.get('option', None) options_selected = options_selected.split(":") - print(options_selected) field = str(Produit._meta.get_fields()[int(options_selected[2])+3]).split(".")[-1] - print(field) - elems = Produit.objects.filter(**{options_selected[0]: options_selected[1]}) + elems = global_filter.filter(**{options_selected[0]: options_selected[1]}) + global_filter = elems elems = elems.values_list() options = [] for elem in elems: options.append(elem[int(options_selected[2])+2]) options = list(set(options)) + if global_filter.count() == 1: + elem_selected = str(global_filter.first()) + elem_price = global_filter.first().price + elem_stock = ProduitStock.objects.get(ProduitTaille=global_filter.first()).Amount + + + data = { 'options': options, 'options_int': int(options_selected[2])+2, - 'field': field + 'field': field, + 'elem_selected': elem_selected, + 'price': elem_price, + 'stock': elem_stock, + 'name': request.user.first_name } return JsonResponse(data) + + + +def submit_entry(request): + product = global_filter.first() + buyer = request.GET.get('buyer', None) + payment = request.GET.get('payment', None) + author = request.user.first_name + JournalEntry.objects.create(entry_date=datetime.datetime.now(), entry_text=str(product) + " " + buyer, cofeux_id=author, entry_amount=product.price, payment_type=payment) + return JsonResponse({"success":"True"})