feat: temp barcode templates

This commit is contained in:
2024-05-09 03:33:44 +03:00
parent 61d27d2389
commit 87085379ed
15 changed files with 136 additions and 81 deletions

View File

@@ -1,21 +1,24 @@
# from abc import abstractmethod, ABC
#
# from .article_attribute_writer import ArticleAttributeWriter
# from .name_attribute_writer import NameAttributeWriter
# from ..barcode import Barcode
#
#
# class BaseAttributeWriter(ABC):
# @abstractmethod
# def write(self, barcode: Barcode):
# pass
#
#
# class AttributeWriterFactory:
# @staticmethod
# def get_writer(key: str):
# match key:
# case 'name':
# return NameAttributeWriter()
# case 'article':
# return ArticleAttributeWriter()
from abc import abstractmethod, ABC
from models import Product
from .article_attribute_getter import ArticleAttributeGetter
from .client_name_attribute_getter import ClientNameAttributeGetter
from .name_attribute_getter import NameAttributeGetter
class BaseAttributeGetter(ABC):
@abstractmethod
def get_value(self, product: Product):
pass
class AttributeWriterFactory:
@staticmethod
def get_writer(key: str):
match key:
case 'name':
return NameAttributeGetter()
case 'article':
return ArticleAttributeGetter()
case 'client.name':
return ClientNameAttributeGetter()

View File

@@ -0,0 +1,7 @@
from barcodes.attributes import BaseAttributeGetter
from models import Product
class ArticleAttributeGetter(BaseAttributeGetter):
def get_value(self, product: Product):
return product.article

View File

@@ -1,7 +0,0 @@
# from barcodes.attributes import BaseAttributeWriter
# from barcodes.barcode import Barcode
#
#
# class ArticleAttributeWriter(BaseAttributeWriter):
# def write(self, barcode: Barcode):
# pass

View File

@@ -0,0 +1,8 @@
from barcodes.attributes import BaseAttributeGetter
from models import Product, Client
class ClientNameAttributeGetter(BaseAttributeGetter):
def get_value(self, product: Product):
client: Client = product.client
return client.name

View File

@@ -0,0 +1,7 @@
from barcodes.attributes import BaseAttributeGetter
from models import Product
class NameAttributeGetter(BaseAttributeGetter):
def get_value(self, product: Product):
return product.name

View File

@@ -1,7 +0,0 @@
# from barcodes.attributes import BaseAttributeWriter
# from barcodes.barcode import Barcode
#
#
# class NameAttributeWriter(BaseAttributeWriter):
# def write(self, barcode: Barcode):
# pass