diff --git a/src/purchase/management/commands/generate_dummy_baskets.py b/src/purchase/management/commands/generate_dummy_baskets.py index 68ae2e5..0cb7d4a 100644 --- a/src/purchase/management/commands/generate_dummy_baskets.py +++ b/src/purchase/management/commands/generate_dummy_baskets.py @@ -36,9 +36,7 @@ class Command(BaseCommand): methods_weights = [random.randint(1, 6) for _ in range(len(payment_methods))] products_weights = [1 / product.display_order for product in products] for _ in range(count): - method = None - if random.random() < 0.99: # noqa: PLR2004 - method = random.choices(payment_methods, weights=methods_weights)[0] + method = random.choices(payment_methods, weights=methods_weights)[0] basket = Basket.objects.create(payment_method=method) items_in_basket = int(random.normalvariate(3, 2)) if items_in_basket > len(products): diff --git a/src/purchase/migrations/0014_alter_basket_payment_method.py b/src/purchase/migrations/0014_alter_basket_payment_method.py new file mode 100644 index 0000000..6be2bb4 --- /dev/null +++ b/src/purchase/migrations/0014_alter_basket_payment_method.py @@ -0,0 +1,35 @@ +# Generated by Django 4.1.7 on 2023-03-27 16:22 + +import django.db.models.deletion +from django.db import migrations, models + + +def delete_baskets_without_payment_method(apps, schema_editor): + Basket = apps.get_model("purchase", "Basket") # noqa: N806 + Basket.objects.using(schema_editor.connection.alias).filter( + payment_method=None, + ).delete() + + +class Migration(migrations.Migration): + dependencies = [ + ("purchase", "0013_remove_basketitem_unique_product_per_basket_and_more"), + ] + + operations = [ + # Remove baskets with no payment method + migrations.RunPython( + delete_baskets_without_payment_method, + migrations.RunPython.noop, + ), + migrations.AlterField( + model_name="basket", + name="payment_method", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="baskets", + to="purchase.paymentmethod", + verbose_name="payment method", + ), + ), + ] diff --git a/src/purchase/models.py b/src/purchase/models.py index 22e7b26..4470d77 100644 --- a/src/purchase/models.py +++ b/src/purchase/models.py @@ -179,17 +179,14 @@ class BasketQuerySet(models.QuerySet): def turnover(self) -> int: return self.priced().aggregate(total=Sum("price"))["total"] - def no_payment_method(self) -> BasketQuerySet: - return self.filter(payment_method=None) - class Basket(Model): payment_method = models.ForeignKey( to=PaymentMethod, on_delete=models.PROTECT, related_name="baskets", - null=True, - blank=True, + null=False, + blank=False, verbose_name=_("payment method"), ) diff --git a/src/purchase/templates/purchase/basket_list.html b/src/purchase/templates/purchase/basket_list.html index f80048d..ffe053e 100644 --- a/src/purchase/templates/purchase/basket_list.html +++ b/src/purchase/templates/purchase/basket_list.html @@ -6,7 +6,7 @@
diff --git a/src/purchase/templates/purchase/reports.html b/src/purchase/templates/purchase/reports.html index 17a232d..c114d7e 100644 --- a/src/purchase/templates/purchase/reports.html +++ b/src/purchase/templates/purchase/reports.html @@ -35,9 +35,6 @@
{% translate "Basket" %} | -{% translate "Price" %} | -
---|---|
- - {{ basket }} - - | -{{ basket.price|currency }} | -