Skip to content

Commit 0dcd073

Browse files
fix(infra): use ConfiguredOrderManager as a base class instead (#5948)
1 parent c8c3afd commit 0dcd073

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

api/segments/models.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@
3838

3939

4040
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:
4444
super().__init__(*args, **kwargs)
45-
self.enable_specific_ordering = getattr(settings, setting_name)
45+
self.enable_specific_ordering = getattr(settings, self.setting_name)
4646

4747
def get_queryset(
4848
self,
@@ -58,6 +58,14 @@ def get_queryset(
5858
return qs
5959

6060

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+
6169
class Segment(
6270
LifecycleModelMixin, # type: ignore[misc]
6371
SoftDeleteExportableModel,
@@ -244,9 +252,7 @@ class SegmentRule(
244252

245253
history_record_class_path = "segments.models.HistoricalSegmentRule"
246254

247-
objects: typing.ClassVar[ConfiguredOrderManager["SegmentRule"]] = (
248-
ConfiguredOrderManager(setting_name="SEGMENT_RULES_EXPLICIT_ORDERING_ENABLED")
249-
)
255+
objects: typing.ClassVar[SegmentRuleManager] = SegmentRuleManager()
250256

251257
def __str__(self): # type: ignore[no-untyped-def]
252258
return "%s rule for %s" % (
@@ -315,11 +321,7 @@ class Condition(
315321
created_at = models.DateTimeField(null=True, auto_now_add=True)
316322
updated_at = models.DateTimeField(null=True, auto_now=True)
317323

318-
objects: typing.ClassVar[ConfiguredOrderManager["Condition"]] = (
319-
ConfiguredOrderManager(
320-
setting_name="SEGMENT_CONDITIONS_EXPLICIT_ORDERING_ENABLED"
321-
)
322-
)
324+
objects: typing.ClassVar[SegmentConditionManager] = SegmentConditionManager()
323325

324326
def __str__(self) -> str:
325327
return "Condition for %s: %s %s %s" % (

0 commit comments

Comments
 (0)