1
+ from django .db import models
2
+
1
3
from ...optimizely import Optimizely
2
4
3
5
from . import utils
@@ -16,62 +18,92 @@ class DjangoOptimizely(Optimizely):
16
18
"""
17
19
18
20
def activate (self , experiment_key , user_id , attributes = None ):
19
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
20
- return super (DjangoOptimizely , self ).activate (experiment_key , formated_user_id ,
21
+ if not isinstance (user_id , models .Model ):
22
+ return super (DjangoOptimizely , self ).activate (experiment_key , user_id , attributes = attributes )
23
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
24
+ return super (DjangoOptimizely , self ).activate (experiment_key , formatted_user_id ,
21
25
attributes = formatted_attributes )
22
26
23
27
def track (self , event_key , user_id , attributes = None , event_tags = None ):
24
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
25
- return super (DjangoOptimizely , self ).track (event_key , formated_user_id ,
28
+ if not isinstance (user_id , models .Model ):
29
+ return super (DjangoOptimizely , self ).track (event_key , user_id , attributes = attributes , event_tags = event_tags )
30
+
31
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
32
+ return super (DjangoOptimizely , self ).track (event_key , formatted_user_id ,
26
33
attributes = formatted_attributes , event_tags = event_tags )
27
34
28
35
def is_feature_enabled (self , feature_key , user_id , attributes = None ):
29
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
30
- return super (DjangoOptimizely , self ).is_feature_enabled (feature_key , formated_user_id ,
36
+ if not isinstance (user_id , models .Model ):
37
+ return super (DjangoOptimizely , self ).is_feature_enabled (feature_key , user_id , attributes = attributes )
38
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
39
+ return super (DjangoOptimizely , self ).is_feature_enabled (feature_key , formatted_user_id ,
31
40
attributes = formatted_attributes )
32
41
33
42
def get_variation (self , experiment_key , user_id , attributes = None ):
34
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
35
- return super (DjangoOptimizely , self ).get_variation (experiment_key , formated_user_id ,
43
+ if not isinstance (user_id , models .Model ):
44
+ return super (DjangoOptimizely , self ).get_variation (experiment_key , user_id , attributes = attributes )
45
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
46
+ return super (DjangoOptimizely , self ).get_variation (experiment_key , formatted_user_id ,
36
47
attributes = formatted_attributes )
37
48
38
49
def get_enabled_features (self , user_id , attributes = None ):
39
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
40
- return super (DjangoOptimizely , self ).get_enabled_features (formated_user_id , attributes = formatted_attributes )
50
+ if not isinstance (user_id , models .Model ):
51
+ return super (DjangoOptimizely , self ).get_enabled_features (user_id , attributes = attributes )
52
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
53
+ return super (DjangoOptimizely , self ).get_enabled_features (formatted_user_id , attributes = formatted_attributes )
41
54
42
55
def get_feature_variable (self , feature_key , variable_key , user_id , attributes = None ):
43
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
56
+ if not isinstance (user_id , models .Model ):
57
+ return super (DjangoOptimizely , self ).get_feature_variable (feature_key , variable_key , user_id ,
58
+ attributes = attributes )
59
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
44
60
return super (DjangoOptimizely , self ).get_feature_variable (feature_key , variable_key ,
45
- formated_user_id , attributes = formatted_attributes )
61
+ formatted_user_id , attributes = formatted_attributes )
46
62
47
63
def get_feature_variable_boolean (self , feature_key , variable_key , user_id , attributes = None ):
48
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
64
+ if not isinstance (user_id , models .Model ):
65
+ return super (DjangoOptimizely , self ).get_feature_variable_boolean (feature_key , variable_key , user_id ,
66
+ attributes = attributes )
67
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
49
68
return super (DjangoOptimizely , self ).get_feature_variable_boolean (feature_key , variable_key ,
50
- formated_user_id ,
69
+ formatted_user_id ,
51
70
attributes = formatted_attributes )
52
71
53
72
def get_feature_variable_double (self , feature_key , variable_key , user_id , attributes = None ):
54
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
73
+ if not isinstance (user_id , models .Model ):
74
+ return super (DjangoOptimizely , self ).get_feature_variable_double (feature_key , variable_key , user_id ,
75
+ attributes = attributes )
76
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
55
77
return super (DjangoOptimizely , self ).get_feature_variable_double (feature_key , variable_key ,
56
- formated_user_id ,
78
+ formatted_user_id ,
57
79
attributes = formatted_attributes )
58
80
59
81
def get_feature_variable_integer (self , feature_key , variable_key , user_id , attributes = None ):
60
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
82
+ if not isinstance (user_id , models .Model ):
83
+ return super (DjangoOptimizely , self ).get_feature_variable_integer (feature_key , variable_key , user_id ,
84
+ attributes = attributes )
85
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
61
86
return super (DjangoOptimizely , self ).get_feature_variable_integer (feature_key , variable_key ,
62
- formated_user_id ,
87
+ formatted_user_id ,
63
88
attributes = formatted_attributes )
64
89
65
90
def get_feature_variable_string (self , feature_key , variable_key , user_id , attributes = None ):
66
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
91
+ if not isinstance (user_id , models .Model ):
92
+ return super (DjangoOptimizely , self ).get_feature_variable_string (feature_key , variable_key , user_id ,
93
+ attributes = attributes )
94
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id , attributes )
67
95
return super (DjangoOptimizely , self ).get_feature_variable_string (feature_key , variable_key ,
68
- formated_user_id ,
96
+ formatted_user_id ,
69
97
attributes = formatted_attributes )
70
98
71
99
def get_forced_variation (self , experiment_key , user_id ):
72
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id )
73
- return super (DjangoOptimizely , self ).get_forced_variation (experiment_key , formated_user_id )
100
+ if not isinstance (user_id , models .Model ):
101
+ return super (DjangoOptimizely , self ).get_forced_variation (experiment_key , user_id )
102
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id )
103
+ return super (DjangoOptimizely , self ).get_forced_variation (experiment_key , formatted_user_id )
74
104
75
105
def set_forced_variation (self , experiment_key , user_id , variation_key ):
76
- formated_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id )
77
- return super (DjangoOptimizely , self ).set_forced_variation (experiment_key , formated_user_id , variation_key )
106
+ if not isinstance (user_id , models .Model ):
107
+ return super (DjangoOptimizely , self ).set_forced_variation (experiment_key , user_id , variation_key )
108
+ formatted_user_id , formatted_attributes = utils .model_instance_id_and_attributes (user_id )
109
+ return super (DjangoOptimizely , self ).set_forced_variation (experiment_key , formatted_user_id , variation_key )
0 commit comments