forked from saleor/saleor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
58 lines (45 loc) · 1.79 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from enum import Enum
class ProductAvailabilityStatus(str, Enum):
NOT_PUBLISHED = "not-published"
VARIANTS_MISSSING = "variants-missing"
OUT_OF_STOCK = "out-of-stock"
LOW_STOCK = "low-stock"
NOT_YET_AVAILABLE = "not-yet-available"
READY_FOR_PURCHASE = "ready-for-purchase"
@staticmethod
def get_display(status):
status_mapping = {
ProductAvailabilityStatus.NOT_PUBLISHED: "not published",
ProductAvailabilityStatus.VARIANTS_MISSSING: "variants missing",
ProductAvailabilityStatus.OUT_OF_STOCK: "out of stock",
ProductAvailabilityStatus.LOW_STOCK: "stock running low",
ProductAvailabilityStatus.NOT_YET_AVAILABLE: "not yet available",
ProductAvailabilityStatus.READY_FOR_PURCHASE: "ready for purchase",
}
if status in status_mapping:
return status_mapping[status]
else:
raise NotImplementedError(f"Unknown status: {status}")
class VariantAvailabilityStatus(str, Enum):
AVAILABLE = "available"
OUT_OF_STOCK = "out-of-stock"
@staticmethod
def get_display(status):
status_mapping = {
VariantAvailabilityStatus.AVAILABLE: "available",
VariantAvailabilityStatus.OUT_OF_STOCK: "out of stock",
}
if status in status_mapping:
return status_mapping[status]
else:
raise NotImplementedError(f"Unknown status: {status}")
class AttributeInputType:
"""The type that we expect to render the attribute's values as."""
DROPDOWN = "dropdown"
MULTISELECT = "multiselect"
CHOICES = [
(DROPDOWN, "Dropdown"),
(MULTISELECT, "Multi Select"),
]
# list the input types that cannot be assigned to a variant
NON_ASSIGNABLE_TO_VARIANTS = [MULTISELECT]