diff --git a/gestion/forms.py b/gestion/forms.py index 20822bc..cb75c03 100644 --- a/gestion/forms.py +++ b/gestion/forms.py @@ -49,11 +49,10 @@ class CreateKegForm(forms.ModelForm): class Meta: model = Keg - fields = ["name", "stockHold", "amount", "capacity"] + fields = ["name", "stockHold", "amount", "capacity", "deg"] widgets = {'amount': forms.TextInput} category = forms.ModelChoiceField(queryset=Category.objects.all(), label="Catégorie", help_text="Catégorie dans laquelle placer les produits pinte, demi (et galopin si besoin).") - deg = forms.DecimalField(max_digits=5, decimal_places=2, label="Degré", validators=[MinValueValidator(0)]) create_galopin = forms.BooleanField(required=False, label="Créer le produit galopin ?") def clean(self): @@ -68,7 +67,7 @@ class EditKegForm(forms.ModelForm): class Meta: model = Keg - fields = ["name", "stockHold", "amount", "capacity", "pinte", "demi", "galopin"] + fields = ["name", "stockHold", "amount", "capacity", "pinte", "demi", "galopin", "deg"] widgets = {'amount': forms.TextInput} def clean(self): diff --git a/gestion/migrations/0014_auto_20190912_0951.py b/gestion/migrations/0014_auto_20190912_0951.py new file mode 100644 index 0000000..e1f5dba --- /dev/null +++ b/gestion/migrations/0014_auto_20190912_0951.py @@ -0,0 +1,33 @@ +# Generated by Django 2.1 on 2019-09-12 07:51 + +import django.core.validators +from django.db import migrations, models + +def update(apps, schema_editor): + Keg = apps.get_model('gestion', 'Keg') + for keg in Keg.objects.all(): + keg.deg = keg.pinte.deg + keg.save() + +def reverse(apps, schema_editor): + pass + +class Migration(migrations.Migration): + + dependencies = [ + ('gestion', '0013_auto_20190829_1219'), + ] + + operations = [ + migrations.AddField( + model_name='historicalkeg', + name='deg', + field=models.DecimalField(decimal_places=2, default=0, max_digits=5, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Degré'), + ), + migrations.AddField( + model_name='keg', + name='deg', + field=models.DecimalField(decimal_places=2, default=0, max_digits=5, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Degré'), + ), + migrations.RunPython(update, reverse) + ] diff --git a/gestion/models.py b/gestion/models.py index 627cebf..f736d66 100644 --- a/gestion/models.py +++ b/gestion/models.py @@ -194,6 +194,7 @@ class Keg(models.Model): """ If True, will be displayed on :func:`~gestion.views.manage` view """ + deg = models.DecimalField(default=0,max_digits=5, decimal_places=2, verbose_name="Degré", validators=[MinValueValidator(0)]) history = HistoricalRecords() def __str__(self): diff --git a/gestion/views.py b/gestion/views.py index fc45a4b..54266df 100644 --- a/gestion/views.py +++ b/gestion/views.py @@ -592,7 +592,29 @@ def editKeg(request, pk): keg = get_object_or_404(Keg, pk=pk) form = EditKegForm(request.POST or None, instance=keg) if(form.is_valid()): - form.save() + try: + price_profile = PriceProfile.objects.get(use_for_draft=True) + except: + messages.error(request, "Il n'y a pas de profil de prix pour les pressions") + return redirect(reverse('preferences:priceProfilesIndex')) + keg = form.save() + # Update produtcs + name = form.cleaned_data["name"][4:] + pinte_price = compute_price(keg.amount/(2*keg.capacity), price_profile.a, price_profile.b, price_profile.c, price_profile.alpha) + pinte_price = ceil(10*pinte_price)/10 + keg.pinte.deg = keg.deg + keg.pinte.amount = pinte_price + keg.pinte.name = "Pinte " + name + keg.pinte.save() + keg.demi.deg = keg.deg + keg.demi.amount = ceil(5*pinte_price)/10 + keg.demi.name = "Demi " + name + keg.demi.save() + if(keg.galopin): + keg.galopin.deg = deg + keg.galopin.amount = ceil(2.5 * pinte_price)/10 + keg.galopin.name = "Galopin " + name + keg.galopin.save() messages.success(request, "Le fût a bien été modifié") return redirect(reverse('gestion:kegsList')) return render(request, "form.html", {"form": form, "form_title": "Modification d'un fût", "form_button": "Modifier", "form_button_icon": "pencil-alt"}) diff --git a/preferences/views.py b/preferences/views.py index 12fe461..d8bc7b9 100644 --- a/preferences/views.py +++ b/preferences/views.py @@ -274,8 +274,8 @@ def improvements_index(request): """ Display all improvements """ - todo_improvements = Improvement.objects.filter(done=False) - done_improvements = Improvement.objects.filter(done=True) + todo_improvements = Improvement.objects.filter(done=False).order_by('-date') + done_improvements = Improvement.objects.filter(done=True).order_by('-date') return render(request, "preferences/improvements_index.html", {"todo_improvements": todo_improvements, "done_improvements": done_improvements})