38
38
39
39
40
40
class ConfiguredOrderManager (SoftDeleteExportableManager , models .Manager [ModelT ]):
41
- def __init__ (
42
- self , * args : typing . Any , setting_name : str , ** kwargs : typing . Any
43
- ) -> None :
41
+ setting_name : str
42
+
43
+ def __init__ ( self , * args : typing . Any , ** kwargs : typing . Any ) -> None :
44
44
super ().__init__ (* args , ** kwargs )
45
- self .enable_specific_ordering = getattr (settings , setting_name )
45
+ self .enable_specific_ordering = getattr (settings , self . setting_name )
46
46
47
47
def get_queryset (
48
48
self ,
@@ -58,6 +58,14 @@ def get_queryset(
58
58
return qs
59
59
60
60
61
+ class SegmentRuleManager (ConfiguredOrderManager ["SegmentRule" ]):
62
+ setting_name = "SEGMENT_RULES_EXPLICIT_ORDERING_ENABLED"
63
+
64
+
65
+ class SegmentConditionManager (ConfiguredOrderManager ["Condition" ]):
66
+ setting_name = "SEGMENT_CONDITIONS_EXPLICIT_ORDERING_ENABLED"
67
+
68
+
61
69
class Segment (
62
70
LifecycleModelMixin , # type: ignore[misc]
63
71
SoftDeleteExportableModel ,
@@ -244,9 +252,7 @@ class SegmentRule(
244
252
245
253
history_record_class_path = "segments.models.HistoricalSegmentRule"
246
254
247
- objects : typing .ClassVar [ConfiguredOrderManager ["SegmentRule" ]] = (
248
- ConfiguredOrderManager (setting_name = "SEGMENT_RULES_EXPLICIT_ORDERING_ENABLED" )
249
- )
255
+ objects : typing .ClassVar [SegmentRuleManager ] = SegmentRuleManager ()
250
256
251
257
def __str__ (self ): # type: ignore[no-untyped-def]
252
258
return "%s rule for %s" % (
@@ -315,11 +321,7 @@ class Condition(
315
321
created_at = models .DateTimeField (null = True , auto_now_add = True )
316
322
updated_at = models .DateTimeField (null = True , auto_now = True )
317
323
318
- objects : typing .ClassVar [ConfiguredOrderManager ["Condition" ]] = (
319
- ConfiguredOrderManager (
320
- setting_name = "SEGMENT_CONDITIONS_EXPLICIT_ORDERING_ENABLED"
321
- )
322
- )
324
+ objects : typing .ClassVar [SegmentConditionManager ] = SegmentConditionManager ()
323
325
324
326
def __str__ (self ) -> str :
325
327
return "Condition for %s: %s %s %s" % (
0 commit comments