Added StoreV2 app, which should replace current store app

feature/code_formatting
mtyton 2024-01-14 12:25:07 +01:00
rodzic f4afa2e46a
commit 2fc4a7dd4f
10 zmienionych plików z 70 dodań i 12 usunięć

Wyświetl plik

@ -539,9 +539,17 @@ class OrderDocument(models.Model):
return pdfkit.from_string(content, False)
@receiver(saved_file)
def generate_thumbnails_async(sender, fieldfile, **kwargs):
generate_thumbnails.delay(
model=sender, pk=fieldfile.instance.pk,
field=fieldfile.field.name
)
# Consider ordering
class StorePage(Page):
store = models.OneToOneField("store_api.Store", on_delete=models.CASCADE, related_name="page")
description = wagtail_fields.RichTextField(blank=True)
tags = TaggableManager(blank=True)
class AllProductsListPage(Page):
store = models.OneToOneField("store_api.Store", on_delete=models.CASCADE, related_name="all_products_list")
class GroupListPage(Page):
store = models.ForeignKey("store_api.Store", on_delete=models.CASCADE, related_name="product_lists")
group = models.OneToOneField("store_api.ProductGroup", on_delete=models.CASCADE, related_name="page")

Wyświetl plik

@ -2,6 +2,9 @@ from django.db import models
from django.contrib.auth.models import User
from phonenumber_field.modelfields import PhoneNumberField
from wagtail.models import Page
from django.dispatch import receiver
from easy_thumbnails.signals import saved_file
from wagtail_store.tasks import generate_thumbnails
class PersonalData(models.Model):
@ -28,10 +31,6 @@ class PersonalData(models.Model):
class StoreUser(PersonalData, models.Model):
class Meta:
abstract = True
auth_user = models.OneToOneField(User, on_delete=models.CASCADE)
@ -57,8 +56,7 @@ class ProductGroup(models.Model):
# Products
class Product(models.Model):
store = models.ForeignKey(Store, on_delete=models.CASCADE)
group = models.ForeignKey(ProductGroup, on_delete=models.CASCADE, blank=True, null=True)
name = models.CharField(max_length=255)
description = models.TextField(blank=True)
@ -83,3 +81,11 @@ class ProductVariant(models.Model):
def __str__(self):
return self.name
@receiver(saved_file)
def generate_thumbnails_async(sender, fieldfile, **kwargs):
generate_thumbnails.delay(
model=sender, pk=fieldfile.instance.pk,
field=fieldfile.field.name
)

Wyświetl plik

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

Wyświetl plik

@ -0,0 +1,6 @@
from django.apps import AppConfig
class Storev2Config(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "storev2"

Wyświetl plik

@ -0,0 +1,28 @@
from django.db import models
from wagtail.models import Page
from wagtail import fields as wagtail_fields
from taggit.managers import TaggableManager
from store_api.models import Product
# Create your models here.
class StorePage(Page):
store = models.OneToOneField("store_api.Store", on_delete=models.CASCADE, related_name="page")
description = wagtail_fields.RichTextField(blank=True)
tags = TaggableManager(blank=True)
class AllProductsListPage(Page):
store = models.OneToOneField("store_api.Store", on_delete=models.CASCADE, related_name="all_products_list")
def get_context(self, request):
context = super().get_context(request)
context["items"] = Product.objects.filter(store=self.store)
return context
class GroupListPage(Page):
store = models.ForeignKey("store_api.Store", on_delete=models.CASCADE, related_name="product_lists")
group = models.OneToOneField("store_api.ProductGroup", on_delete=models.CASCADE, related_name="page")

Wyświetl plik

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

Wyświetl plik

@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

Wyświetl plik

@ -39,6 +39,7 @@ SENTRY_ENVIRONMENT = os.environ.get("SENTRY_ENVIRONMENT", '')
INSTALLED_APPS = [
"home",
"store",
"store_api",
"mailings",
"blog",
"search",