Do not copy products, categories and images to web shop

Closes #13161
This commit is contained in:
Cédric Krier committed 2024-04-04 15:55:01 +02:00
1 parent b0d38bd797
commit de7bd32700
2 files changed
+34

No files matched your search

+24
View File
@@ -27,6 +27,12 @@ class Product(metaclass=PoolMeta):
},
help="The list of web shops on which the product is published.")
@classmethod
def copy(cls, products, default=None):
default = default.copy() if default is not None else {}
default.setdefault('web_shops')
return super().copy(products, default=default)
class Category(metaclass=PoolMeta):
__name__ = 'product.category'
@@ -35,6 +41,12 @@ class Category(metaclass=PoolMeta):
'web.shop-product.category', 'category', 'shop', "Web Shops",
help="The list of web shops on which the category is published.")
@classmethod
def copy(cls, categories, default=None):
default = default.copy() if default is not None else {}
default.setdefault('web_shops')
return super().copy(categories, default=default)
class Attribute(metaclass=PoolMeta):
__name__ = 'product.attribute'
@@ -43,8 +55,20 @@ class Attribute(metaclass=PoolMeta):
'web.shop-product.attribute', 'attribute', 'shop', "Web Shops",
help="The list of web shops on which the attribute is published.")
@classmethod
def copy(cls, attributes, default=None):
default = default.copy() if default is not None else {}
default.setdefault('web_shops')
return super().copy(attributes, default=default)
class Image(metaclass=PoolMeta):
__name__ = 'product.image'
web_shop = fields.Boolean("Web Shop")
@classmethod
def copy(cls, images, default=None):
default = default.copy() if default is not None else {}
default.setdefault('web_shop')
return super().copy(images, default=default)
+10
View File
@@ -147,6 +147,16 @@ class Shop(DeactivableMixin, ModelSQL, ModelView):
shop = cls(shop_id)
return shop
@classmethod
def copy(cls, shops, default=None):
default = default.copy() if default is not None else {}
default.setdefault('warehouses')
default.setdefault('products')
default.setdefault('products_removed')
default.setdefault('categories')
default.setdefault('categories_removed')
return super().copy(shops, default=default)
@classmethod
def write(cls, *args):
cls._name_cache.clear()