import datetime from django.db import models from django.utils import timezone class GroupedOrder(models.Model): name = models.CharField(max_length=100, null=True) # optionnal orga = models.CharField(max_length=100) # a changer, utiliser ForeignKey de user delivery_date = models.DateField("Date de livraison") deadline = models.DateTimeField("Date limite de commande") def is_ongoing(self): """Returns True if the grouped order is open for new Orders - False if it's too late""" return self.deadline >= timezone.now() <<<<<<< HEAD def is_to_be_delivered(self): """Returns True if the grouped order has not been delivered yet - False if it's old""" return self.delivery_date >= timezone.now().date() def __str__(self): # pragma: no cover ======= def __str__(self): >>>>>>> f6ec481 (install black and format files) return ( self.name if self.name else f"Commande groupée {self.pk} du {self.date} organisée par {self.orga}" ) class Order(models.Model): grouped_order = models.ForeignKey( <<<<<<< HEAD GroupedOrder, on_delete=models.CASCADE, related_name="order_set" ======= Grouped_order, on_delete=models.CASCADE, related_name="order_set" >>>>>>> f6ec481 (install black and format files) ) author = models.CharField( max_length=100, verbose_name="Personne qui passe la commande" ) # a changer, utiliser ForeignKey de user <<<<<<< HEAD def __str__(self): # pragma: no cover ======= def __str__(self): >>>>>>> f6ec481 (install black and format files) return f"Commande de {self.author} pour la commande groupée {self.grouped_order.pk}" class Item(models.Model): name = models.CharField(max_length=100) grouped_order = models.ForeignKey( <<<<<<< HEAD GroupedOrder, on_delete=models.CASCADE ======= Grouped_order, on_delete=models.CASCADE >>>>>>> f6ec481 (install black and format files) ) # à transformer en manytomany quand il y aura un catalogue ordered_nb = models.IntegerField(default=0) def __str__(self): # pragma: no cover return f"{self.name} dans la commande groupée {self.grouped_order.pk}" class OrderedItem(models.Model): """Item in one specific Order, and its number""" nb = models.PositiveSmallIntegerField(default=0) # works up to 32767 order = models.ForeignKey( Order, on_delete=models.CASCADE, related_name="ordered_items" ) item = models.ForeignKey(Item, on_delete=models.CASCADE, related_name="orders") <<<<<<< HEAD def __str__(self): # pragma: no cover ======= def __str__(self): >>>>>>> f6ec481 (install black and format files) return f"{self.nb} {self.item}, dans la commande {self.order.pk}"