Added StoreV2 app, which should replace current store app
rodzic
f4afa2e46a
commit
2fc4a7dd4f
|
@ -539,9 +539,17 @@ class OrderDocument(models.Model):
|
||||||
return pdfkit.from_string(content, False)
|
return pdfkit.from_string(content, False)
|
||||||
|
|
||||||
|
|
||||||
@receiver(saved_file)
|
# Consider ordering
|
||||||
def generate_thumbnails_async(sender, fieldfile, **kwargs):
|
class StorePage(Page):
|
||||||
generate_thumbnails.delay(
|
store = models.OneToOneField("store_api.Store", on_delete=models.CASCADE, related_name="page")
|
||||||
model=sender, pk=fieldfile.instance.pk,
|
description = wagtail_fields.RichTextField(blank=True)
|
||||||
field=fieldfile.field.name
|
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")
|
||||||
|
|
|
@ -2,6 +2,9 @@ from django.db import models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from phonenumber_field.modelfields import PhoneNumberField
|
from phonenumber_field.modelfields import PhoneNumberField
|
||||||
from wagtail.models import Page
|
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):
|
class PersonalData(models.Model):
|
||||||
|
@ -28,10 +31,6 @@ class PersonalData(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class StoreUser(PersonalData, models.Model):
|
class StoreUser(PersonalData, models.Model):
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
auth_user = models.OneToOneField(User, on_delete=models.CASCADE)
|
auth_user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,8 +56,7 @@ class ProductGroup(models.Model):
|
||||||
# Products
|
# Products
|
||||||
class Product(models.Model):
|
class Product(models.Model):
|
||||||
store = models.ForeignKey(Store, on_delete=models.CASCADE)
|
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)
|
name = models.CharField(max_length=255)
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True)
|
||||||
|
|
||||||
|
@ -83,3 +81,11 @@ class ProductVariant(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
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
|
||||||
|
)
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
|
@ -0,0 +1,6 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class Storev2Config(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "storev2"
|
|
@ -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")
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
|
@ -39,6 +39,7 @@ SENTRY_ENVIRONMENT = os.environ.get("SENTRY_ENVIRONMENT", '')
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
"home",
|
"home",
|
||||||
"store",
|
"store",
|
||||||
|
"store_api",
|
||||||
"mailings",
|
"mailings",
|
||||||
"blog",
|
"blog",
|
||||||
"search",
|
"search",
|
||||||
|
|
Ładowanie…
Reference in New Issue