diff --git a/coopeV3/settings.py b/coopeV3/settings.py
index 4a4abca..7b3448b 100644
--- a/coopeV3/settings.py
+++ b/coopeV3/settings.py
@@ -38,6 +38,7 @@ INSTALLED_APPS = [
'dal_select2',
'simple_history',
'django_tex',
+ 'debug_toolbar'
]
MIDDLEWARE = [
@@ -50,6 +51,7 @@ MIDDLEWARE = [
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'simple_history.middleware.HistoryRequestMiddleware',
'django.contrib.admindocs.middleware.XViewMiddleware',
+ 'debug_toolbar.middleware.DebugToolbarMiddleware',
]
ROOT_URLCONF = 'coopeV3.urls'
@@ -127,3 +129,4 @@ LOGIN_URL = '/users/login'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mediafiles')
MEDIA_URL = '/media/'
+INTERNAL_IPS = ["127.0.0.1"]
\ No newline at end of file
diff --git a/coopeV3/urls.py b/coopeV3/urls.py
index a4768a3..b65889a 100644
--- a/coopeV3/urls.py
+++ b/coopeV3/urls.py
@@ -30,3 +30,10 @@ urlpatterns = [
path('gestion/', include('gestion.urls')),
path('preferences/', include('preferences.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+
+
+if settings.DEBUG:
+ import debug_toolbar
+ urlpatterns = [
+ path('__debug__/', include(debug_toolbar.urls)),
+ ] + urlpatterns
diff --git a/gestion/templates/gestion/ranking.html b/gestion/templates/gestion/ranking.html
index fb9d4eb..0f1d00c 100644
--- a/gestion/templates/gestion/ranking.html
+++ b/gestion/templates/gestion/ranking.html
@@ -60,10 +60,10 @@
{% for customer in bestDrinkers %}
{{ forloop.counter }} |
- {{ customer.0.username }} |
- {{ customer.1 }} |
+ {{ customer.username }} |
+ {{ customer.profile.alcohol }} |
- {%endfor%}
+ {% endfor %}
diff --git a/gestion/views.py b/gestion/views.py
index fe9d35f..54f10c5 100644
--- a/gestion/views.py
+++ b/gestion/views.py
@@ -163,6 +163,7 @@ def order(request):
consumption.save()
ch = ConsumptionHistory(customer=user, quantity=quantity, paymentMethod=paymentMethod, product=product, amount=Decimal(quantity*product.amount), coopeman=request.user)
ch.save()
+ user.profile.alcohol += Decimal(quantity * float(product.deg) * product.volume * 0.79 /10 /1000)
if(paymentMethod.affect_balance):
if(user.profile.balance >= Decimal(product.amount*quantity)):
user.profile.debit += Decimal(product.amount*quantity)
@@ -187,11 +188,10 @@ def order(request):
if(article.stockHold > 0):
article.stockHold -= 1
article.save()
+ user.profile.alcohol += Decimal(quantity * float(product.deg) * product.volume * 0.79 /10 /1000)
user.save()
return HttpResponse("La commande a bien été effectuée")
except Exception as e:
- print(e)
- print("test")
return HttpResponse(error_message)
@active_required
@@ -274,7 +274,8 @@ def cancel_consumption(request, pk):
user = consumption.customer
if consumption.paymentMethod.affect_balance:
user.profile.debit -= consumption.amount
- user.save()
+ user.profile.alcohol -= Decimal(consumption.quantity * float(consumption.product.deg) * consumption.product.volume * 0.79 /10 /1000)
+ user.save()
consumptionT = Consumption.objects.get(customer=user, product=consumption.product)
consumptionT.quantity -= consumption.quantity
consumptionT.save()
@@ -301,6 +302,8 @@ def cancel_menu(request, pk):
consumptionT = Consumption.objects.get(customer=user, product=product)
consumptionT -= menu_history.quantity
consumptionT.save()
+ user.profile.alcohol -= Decimal(menu_history.quantity * float(menu_history.product.deg) * menu_history.product.volume * 0.79 /10 /1000)
+ user.save()
menu_history.delete()
messages.success(request, "La consommation du menu a bien été annulée")
return redirect(reverse('users:profile', kwargs={'pk': user.pk}))
@@ -715,12 +718,7 @@ def ranking(request):
Displays the ranking page.
"""
bestBuyers = User.objects.order_by('-profile__debit')[:25]
- customers = User.objects.all()
- list = []
- for customer in customers:
- alcohol = customer.profile.alcohol
- list.append([customer, alcohol])
- bestDrinkers = sorted(list, key=lambda x: x[1], reverse=True)[:25]
+ bestDrinkers = User.objects.order_by('-profile__alcohol')[:25]
form = SearchProductForm(request.POST or None)
if(form.is_valid()):
product_ranking = form.cleaned_data['product'].ranking
diff --git a/users/migrations/0006_auto_20190611_0105.py b/users/migrations/0006_auto_20190611_0105.py
new file mode 100644
index 0000000..caab186
--- /dev/null
+++ b/users/migrations/0006_auto_20190611_0105.py
@@ -0,0 +1,38 @@
+# Generated by Django 2.1 on 2019-06-10 23:05
+
+from django.db import migrations, models
+
+def update(apps, schema_editor):
+ db_alias = schema_editor.connection.alias
+ users = apps.get_model('auth', 'User').objects.using(db_alias).all()
+ for user in users:
+ consumptions = apps.get_model('gestion', 'ConsumptionHistory').objects.using(db_alias).filter(customer=user).select_related('product')
+ alcohol = 0
+ for consumption in consumptions:
+ product = consumption.product
+ alcohol += consumption.quantity * float(product.deg) * product.volume * 0.79 /10 /1000
+ user.profile.alcohol = alcohol
+ user.profile.save()
+
+def reverse_update(apps, schema_editor):
+ pass
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0005_auto_20190227_0859'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='historicalprofile',
+ name='alcohol',
+ field=models.DecimalField(decimal_places=2, default=0, max_digits=5, null=True),
+ ),
+ migrations.AddField(
+ model_name='profile',
+ name='alcohol',
+ field=models.DecimalField(decimal_places=2, default=0, max_digits=5, null=True),
+ ),
+ migrations.RunPython(update, reverse_update)
+ ]
diff --git a/users/models.py b/users/models.py
index beae6fc..64e5700 100644
--- a/users/models.py
+++ b/users/models.py
@@ -120,6 +120,10 @@ class Profile(models.Model):
"""
Date of end of cotisation for the client
"""
+ alcohol = models.DecimalField(max_digits=5, decimal_places=2, default=0, null=True)
+ """
+ Ingerated alcohol
+ """
history = HistoricalRecords()
@property
@@ -152,18 +156,6 @@ class Profile(models.Model):
"""
return Profile.objects.filter(debit__gte=self.debit).count()
- @property
- def alcohol(self):
- """
- Computes ingerated alcohol.
- """
- consumptions = ConsumptionHistory.objects.filter(customer=self.user).select_related('product')
- alcohol = 0
- for consumption in consumptions:
- product = consumption.product
- alcohol += consumption.quantity * float(product.deg) * product.volume * 0.79 /10 /1000
- return alcohol
-
@property
def nb_pintes(self):
"""