diff --git a/djangalimentation/platformalim/admin.py b/djangalimentation/platformalim/admin.py index e4bbce4..66db4ac 100644 --- a/djangalimentation/platformalim/admin.py +++ b/djangalimentation/platformalim/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin # Register your models here. -from .models import Pro, Association +from .models import Pro, Association, Produit, DonProduit, DonFromPro #from models import Pro, Association class ProAdmin(admin.ModelAdmin): @@ -11,6 +11,28 @@ class ProAdmin(admin.ModelAdmin): ] list_display = ('name', 'email') +class AssoAdmin(admin.ModelAdmin): + fieldsets = [ + ("Nom", {'fields': ['name']}), + ("Email", {'fields': ['email']}), + ] + list_display = ('name', 'email') + +# Inline admin for DonProduit +class DonProduitInline(admin.TabularInline): # or use admin.StackedInline + model = DonProduit + extra = 1 # Adds 1 extra row to the inline formset + +# Admin model for DonFromPro +class DonFromProAdmin(admin.ModelAdmin): + inlines = [DonProduitInline] + admin.site.register(Pro, ProAdmin) -admin.site.register(Association) \ No newline at end of file +admin.site.register(Association, AssoAdmin) + +admin.site.register(Produit) + +admin.site.register(DonProduit) + +admin.site.register(DonFromPro, DonFromProAdmin) \ No newline at end of file diff --git a/djangalimentation/platformalim/models.py b/djangalimentation/platformalim/models.py index aee601e..396be2b 100644 --- a/djangalimentation/platformalim/models.py +++ b/djangalimentation/platformalim/models.py @@ -9,13 +9,40 @@ class Association(models.Model): name = models.CharField(max_length=200) email = models.EmailField("email de contact") +class Produit(models.Model): + name = models.CharField(max_length=100) + active = models.BooleanField(default=True) + + class ProduitType(models.TextChoices): + PRODUIT_ALIMENTAIRE = "A" + OBJET = "O" + + type = models.CharField(max_length=1, + choices=ProduitType, + default=ProduitType.PRODUIT_ALIMENTAIRE, + ) + class DonFromPro(models.Model): - date = models.DateTimeField("Date du don") + date = models.DateField("Date du don") donateur = models.ForeignKey("Pro", on_delete=models.RESTRICT) - associations = models.ForeignKey('Association', on_delete=models.RESTRICT) + +class DonProduit(models.Model): + produit = models.ForeignKey('Produit', on_delete=models.RESTRICT) + qty = models.FloatField() + date_peremption = models.DateField("Date de péremption", null=True) + + class Unite(models.TextChoices): + KILOS = "K" + CAISSE = "C" + LITRE = "L" + UNITE = "U" + + qty_unity = models.CharField(max_length=1, default=Unite.KILOS) + don_pro = models.ForeignKey('DonFromPro', related_name='dons_produits', on_delete=models.CASCADE) + class DonToAsso(models.Model): - date = models.DateTimeField("Date du don") + date = models.DateField("Date du don") donateur = models.ForeignKey("Association", on_delete=models.RESTRICT)