trex-model 1.5.18__tar.gz → 1.5.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of trex-model might be problematic. Click here for more details.
- {trex-model-1.5.18 → trex-model-1.5.19}/PKG-INFO +1 -1
- {trex-model-1.5.18 → trex-model-1.5.19}/setup.py +1 -1
- {trex-model-1.5.18 → trex-model-1.5.19}/trex_model.egg-info/PKG-INFO +1 -1
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/helper/reward_transaction_helper.py +10 -10
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/marketing_models.py +1 -1
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/merchant_models.py +5 -1
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/pos_models.py +51 -9
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/rating_models.py +63 -2
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/transaction_models.py +11 -7
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/merchant_helpers.py +1 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/LICENSE +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/MANIFEST.in +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/README.md +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/setup.cfg +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trex_model.egg-info/SOURCES.txt +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trex_model.egg-info/dependency_links.txt +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trex_model.egg-info/requires.txt +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trex_model.egg-info/top_level.txt +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/conf.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/admin_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/analytic_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/app_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/coporate_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/customer_model_helpers.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/customer_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/fb_subsriber_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/helper/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/helper/reward_model_helpers.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/import_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/inventory_model.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/loyalty_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/lucky_draw_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/membership_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/message_model_helper.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/message_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/model_decorators.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/ndb_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/prepaid_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/product_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/program_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/recruit_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/redeem_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/redemption_catalogue_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/referral_program_model.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/reward_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/spending_base_program_model.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/system_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/task_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/test_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/user_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/voucher_models.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/model_decorator.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/prepaid_helpers.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/pos_conf.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/program_conf.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/utils/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/utils/gcloud/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/utils/gcloud/datastore_util.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/utils/model/__init__.py +0 -0
- {trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/utils/model/model_util.py +0 -0
|
@@ -194,21 +194,21 @@ def create_reward_transaction(customer, transact_outlet=None, sales_amount=.0, t
|
|
|
194
194
|
|
|
195
195
|
return __start_transaction_for_customer_transaction()
|
|
196
196
|
|
|
197
|
-
def give_reward_from_sales_transaction(customer, sales_transaction):
|
|
197
|
+
def give_reward_from_sales_transaction(customer, sales_transaction, for_testing=False):
|
|
198
198
|
|
|
199
199
|
logger.debug('---give_reward_from_sales_transaction---')
|
|
200
200
|
|
|
201
201
|
@model_transactional(desc='give_reward_from_sales_transaction')
|
|
202
202
|
def __start_transaction(customer, sales_transaction):
|
|
203
|
-
customer_transaction = CustomerTransaction.create_from_sales_transaction(customer, sales_transaction)
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
203
|
+
customer_transaction = CustomerTransaction.create_from_sales_transaction(customer, sales_transaction, for_testing=for_testing)
|
|
204
|
+
if for_testing==False:
|
|
205
|
+
trigger_check_reward_success = trigger_spending_reward_for_transaction(customer_transaction)
|
|
206
|
+
|
|
207
|
+
logger.debug('trigger_check_reward_success=%s', trigger_check_reward_success)
|
|
208
|
+
|
|
209
|
+
if trigger_check_reward_success:
|
|
210
|
+
create_transaction_message(customer_transaction)
|
|
211
|
+
create_merchant_customer_transaction_upstream_for_merchant(customer_transaction, streamed_datetime=sales_transaction.transact_datetime)
|
|
212
212
|
|
|
213
213
|
return customer_transaction
|
|
214
214
|
|
|
@@ -390,7 +390,7 @@ class MerchantNewsFile(BaseNModel, DictModel):
|
|
|
390
390
|
merchant_news.start_date = start_date
|
|
391
391
|
merchant_news.end_date = end_date
|
|
392
392
|
merchant_news.completed_status = program_conf.MERCHANT_NEWS_STATUS_BASE
|
|
393
|
-
merchant_news.modified_by = modified_by
|
|
393
|
+
merchant_news.modified_by = modified_by.create_ndb_key()
|
|
394
394
|
merchant_news.modified_by_username = modified_by_username
|
|
395
395
|
merchant_news.modified_datetime = datetime.utcnow()
|
|
396
396
|
|
|
@@ -300,6 +300,10 @@ class MerchantAcct(MerchantMin):
|
|
|
300
300
|
return self.program_settings.get('referral_program').get('referee_promote_image')
|
|
301
301
|
|
|
302
302
|
|
|
303
|
+
@property
|
|
304
|
+
def is_rating_review_enabled(self):
|
|
305
|
+
return self.program_settings.get('rating_review', False)
|
|
306
|
+
|
|
303
307
|
@staticmethod
|
|
304
308
|
def default_program_settings():
|
|
305
309
|
return {
|
|
@@ -307,7 +311,7 @@ class MerchantAcct(MerchantMin):
|
|
|
307
311
|
'days_of_repeat_purchase_measurement' : 7,
|
|
308
312
|
'membership_renew_advance_day' : 7,
|
|
309
313
|
'membership_renew_late_day' : 30,
|
|
310
|
-
|
|
314
|
+
'rating_review' : False,
|
|
311
315
|
}
|
|
312
316
|
|
|
313
317
|
def update_referrer_program_promote_text(self,
|
|
@@ -17,18 +17,34 @@ class POSSetting(BaseNModel,DictModel):
|
|
|
17
17
|
'''
|
|
18
18
|
merchant_acct as ancestor
|
|
19
19
|
'''
|
|
20
|
-
device_name
|
|
21
|
-
activation_code
|
|
22
|
-
device_id
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
device_name = ndb.StringProperty(required=True)
|
|
21
|
+
activation_code = ndb.StringProperty(required=True)
|
|
22
|
+
device_id = ndb.StringProperty(required=False)
|
|
23
|
+
enable_lock_screen = ndb.BooleanProperty(required=True, default=False)
|
|
24
|
+
lock_screen_code = ndb.StringProperty(required=False, default='')
|
|
25
|
+
lock_screen_length_in_second = ndb.IntegerProperty(required=False, default=30)
|
|
26
|
+
activated = ndb.BooleanProperty(required=True, default=False)
|
|
27
|
+
assigned_outlet = ndb.KeyProperty(name="assigned_outlet", kind=Outlet)
|
|
25
28
|
#assigned_catalogue = ndb.KeyProperty(name="assigned_outlet", kind=ProductCatalogue)
|
|
26
|
-
created_datetime
|
|
27
|
-
activated_datetime
|
|
28
|
-
testing
|
|
29
|
+
created_datetime = ndb.DateTimeProperty(required=True, auto_now_add=True)
|
|
30
|
+
activated_datetime = ndb.DateTimeProperty(required=False)
|
|
31
|
+
testing = ndb.BooleanProperty(required=False, default=False)
|
|
32
|
+
device_details = ndb.JsonProperty()
|
|
29
33
|
|
|
30
34
|
dict_properties = ['device_name', 'activation_code', 'device_id', 'activated', 'assigned_outlet_key',
|
|
31
|
-
'
|
|
35
|
+
'enable_lock_screen', 'lock_screen_code', 'lock_screen_length_in_second',
|
|
36
|
+
'device_details', 'activated_datetime', 'created_datetime']
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def device_tokens_list(self):
|
|
40
|
+
_tokens_list = []
|
|
41
|
+
|
|
42
|
+
if self.device_details:
|
|
43
|
+
|
|
44
|
+
for k,v in self.device_details.items():
|
|
45
|
+
for dd in v:
|
|
46
|
+
_tokens_list.append(dd.get('device_token'))
|
|
47
|
+
return _tokens_list
|
|
32
48
|
|
|
33
49
|
@property
|
|
34
50
|
def is_test_setting(self):
|
|
@@ -83,6 +99,32 @@ class POSSetting(BaseNModel,DictModel):
|
|
|
83
99
|
|
|
84
100
|
return pos_setting
|
|
85
101
|
|
|
102
|
+
def update_device_details(self, platform, device_token):
|
|
103
|
+
if self.device_details:
|
|
104
|
+
found_device_details_list_by_platform = self.device_details.get(platform)
|
|
105
|
+
if found_device_details_list_by_platform:
|
|
106
|
+
self.device_details[platform] = {
|
|
107
|
+
'device_token' : device_token,
|
|
108
|
+
'last_updated_datetime' : datetime.utcnow().strftime("%d-%m-%Y %H:%M:%S"),
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
else:
|
|
114
|
+
self.device_details[platform] = {
|
|
115
|
+
'device_token' : device_token,
|
|
116
|
+
'last_updated_datetime' : datetime.utcnow().strftime("%d-%m-%Y %H:%M:%S"),
|
|
117
|
+
}
|
|
118
|
+
else:
|
|
119
|
+
self.device_details = {
|
|
120
|
+
platform : {
|
|
121
|
+
'device_token' : device_token,
|
|
122
|
+
'last_updated_datetime' : datetime.utcnow().strftime("%d-%m-%Y %H:%M:%S"),
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
self.put()
|
|
127
|
+
|
|
86
128
|
@staticmethod
|
|
87
129
|
def get_by_activation_code(activation_code):
|
|
88
130
|
pos_setting = POSSetting.query(POSSetting.activation_code ==activation_code).get()
|
|
@@ -10,6 +10,7 @@ from trexmodel.models.datastore.user_models import User
|
|
|
10
10
|
from trexconf import conf
|
|
11
11
|
from datetime import datetime, timedelta
|
|
12
12
|
import logging
|
|
13
|
+
from trexmodel.models.datastore.transaction_models import SalesTransaction
|
|
13
14
|
|
|
14
15
|
logger = logging.getLogger('model')
|
|
15
16
|
|
|
@@ -65,10 +66,11 @@ class OutletRating(RatingBase):
|
|
|
65
66
|
return OutletRating.query(ndb.AND(OutletRating.merchant_acct==merchant_acct.create_ndb_key(), OutletRating.updated==True, OutletRating.modified_datetime>checking_datetime_from)).fetch(limit=conf.MAX_FETCH_RECORD)
|
|
66
67
|
|
|
67
68
|
@staticmethod
|
|
68
|
-
def create(user_acct, outlet, service_rating=.5, ambience_rating=.5, food_rating=.5, value_rating=.5):
|
|
69
|
+
def create(user_acct, outlet, merchant_acct=None, service_rating=.5, ambience_rating=.5, food_rating=.5, value_rating=.5):
|
|
69
70
|
outlet_rating = OutletRating.get_user_rating_by_outlet(user_acct, outlet)
|
|
70
71
|
if outlet_rating is None:
|
|
71
|
-
merchant_acct
|
|
72
|
+
if merchant_acct is None:
|
|
73
|
+
merchant_acct = outlet.merchant_acct_entity
|
|
72
74
|
outlet_rating = OutletRating(
|
|
73
75
|
user_acct = user_acct.create_ndb_key(),
|
|
74
76
|
merchant_acct = merchant_acct.create_ndb_key(),
|
|
@@ -133,6 +135,65 @@ class OutletRating(RatingBase):
|
|
|
133
135
|
|
|
134
136
|
return OutletRating.__calculate_rating(merchant_rating_list)
|
|
135
137
|
|
|
138
|
+
class TransactionRating(RatingBase):
|
|
139
|
+
outlet = ndb.KeyProperty(name="outlet", kind=Outlet)
|
|
140
|
+
merchant_acct = ndb.KeyProperty(name="merchant_acct", kind=MerchantAcct)
|
|
141
|
+
transaction_id = ndb.StringProperty(required=True)
|
|
142
|
+
service_rating = ndb.FloatProperty(required=True, default=.0)
|
|
143
|
+
ambience_rating = ndb.FloatProperty(required=True, default=.0)
|
|
144
|
+
food_rating = ndb.FloatProperty(required=True, default=.0)
|
|
145
|
+
value_rating = ndb.FloatProperty(required=True, default=.0)
|
|
146
|
+
created_datetime = ndb.DateTimeProperty(required=True, auto_now_add=True)
|
|
147
|
+
|
|
148
|
+
dict_properties = ['transaction_id','service_rating', 'ambience_rating', 'food_rating','value_rating',
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
@staticmethod
|
|
152
|
+
def create(user_acct, transaction_id, service_rating=.5, ambience_rating=.5, food_rating=.5, value_rating=.5, for_testing=False):
|
|
153
|
+
sales_transaction = SalesTransaction.get_by_transaction_id(transaction_id)
|
|
154
|
+
if sales_transaction is not None:
|
|
155
|
+
outlet = sales_transaction.transact_outlet_entity
|
|
156
|
+
merchant_acct = sales_transaction.transact_merchant_acct
|
|
157
|
+
|
|
158
|
+
transaction_rating = TransactionRating.get_by_transaction_id(transaction_id)
|
|
159
|
+
if transaction_rating is None:
|
|
160
|
+
transaction_rating = TransactionRating(
|
|
161
|
+
user_acct = user_acct.create_ndb_key(),
|
|
162
|
+
merchant_acct = merchant_acct.create_ndb_key(),
|
|
163
|
+
outlet = outlet.create_ndb_key(),
|
|
164
|
+
transaction_id = transaction_id,
|
|
165
|
+
|
|
166
|
+
service_rating = service_rating,
|
|
167
|
+
ambience_rating = ambience_rating,
|
|
168
|
+
food_rating = food_rating,
|
|
169
|
+
value_rating = value_rating,
|
|
170
|
+
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
else:
|
|
174
|
+
transaction_rating.service_rating = service_rating
|
|
175
|
+
transaction_rating.ambience_rating = ambience_rating
|
|
176
|
+
transaction_rating.food_rating = food_rating
|
|
177
|
+
transaction_rating.value_rating = value_rating
|
|
178
|
+
|
|
179
|
+
if for_testing==False:
|
|
180
|
+
transaction_rating.put()
|
|
181
|
+
|
|
182
|
+
OutletRating.create(user_acct, outlet,
|
|
183
|
+
merchant_acct = merchant_acct,
|
|
184
|
+
service_rating = service_rating,
|
|
185
|
+
ambience_rating = ambience_rating,
|
|
186
|
+
food_rating = food_rating,
|
|
187
|
+
value_rating = value_rating,
|
|
188
|
+
)
|
|
189
|
+
MerchantRatingResult.update(merchant_acct)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
@staticmethod
|
|
193
|
+
def get_by_transaction_id(transaction_id):
|
|
194
|
+
return TransactionRating.query(ndb.AND(TransactionRating.transaction_id==transaction_id)).get()
|
|
195
|
+
|
|
196
|
+
|
|
136
197
|
class RatingResult(BaseNModel, DictModel):
|
|
137
198
|
total_rating_count = ndb.IntegerProperty(required=True, default=0)
|
|
138
199
|
rating_result = ndb.JsonProperty()
|
|
@@ -185,7 +185,7 @@ class CustomerTransaction(SalesTransaction):
|
|
|
185
185
|
|
|
186
186
|
is_from_instant_transaction = ndb.BooleanProperty(required=False, default=False)
|
|
187
187
|
is_reward_redeemed = ndb.BooleanProperty(required=False, default=False)
|
|
188
|
-
|
|
188
|
+
is_rating_review_enabled = ndb.BooleanProperty(required=False, default=False)
|
|
189
189
|
|
|
190
190
|
|
|
191
191
|
is_membership_purchase = ndb.BooleanProperty(required=False, default=False)
|
|
@@ -204,6 +204,7 @@ class CustomerTransaction(SalesTransaction):
|
|
|
204
204
|
'transact_datetime', 'created_datetime', 'transact_outlet_key', 'is_revert', 'reverted_datetime', 'reverted_by_username',
|
|
205
205
|
'transact_by', 'transact_by_username', 'is_reward_redeemed', 'is_sales_transaction', 'allow_to_revert',
|
|
206
206
|
'is_membership_purchase', 'purchased_merchant_membership_key', 'is_tier_membership_upgraded', 'upgraded_merchant_tier_membership_key',
|
|
207
|
+
'is_rating_review_enabled',
|
|
207
208
|
]
|
|
208
209
|
|
|
209
210
|
def to_transaction_details_json(self):
|
|
@@ -337,12 +338,14 @@ class CustomerTransaction(SalesTransaction):
|
|
|
337
338
|
)
|
|
338
339
|
|
|
339
340
|
@staticmethod
|
|
340
|
-
def create_from_sales_transaction(customer, sales_transaction):
|
|
341
|
+
def create_from_sales_transaction(customer, sales_transaction, for_testing=False):
|
|
341
342
|
if sales_transaction:
|
|
343
|
+
merchant_acct = customer.registered_merchant_acct
|
|
344
|
+
is_rating_review_enabled = merchant_acct.is_rating_review_enabled
|
|
342
345
|
customer_transaction = CustomerTransaction(
|
|
343
346
|
parent = customer.create_ndb_key(),
|
|
344
347
|
|
|
345
|
-
transact_merchant =
|
|
348
|
+
transact_merchant = merchant_acct.create_ndb_key(),
|
|
346
349
|
transact_outlet = sales_transaction.transact_outlet,
|
|
347
350
|
|
|
348
351
|
tax_amount = sales_transaction.tax_amount,
|
|
@@ -358,7 +361,7 @@ class CustomerTransaction(SalesTransaction):
|
|
|
358
361
|
|
|
359
362
|
transact_datetime = sales_transaction.transact_datetime,
|
|
360
363
|
is_from_instant_transaction = True,
|
|
361
|
-
|
|
364
|
+
is_rating_review_enabled = is_rating_review_enabled
|
|
362
365
|
#is_sales_transaction = True,
|
|
363
366
|
#allow_to_revert = True,
|
|
364
367
|
#is_membership_purchase = False,
|
|
@@ -368,9 +371,10 @@ class CustomerTransaction(SalesTransaction):
|
|
|
368
371
|
)
|
|
369
372
|
|
|
370
373
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
+
if for_testing==False:
|
|
375
|
+
customer_transaction.put()
|
|
376
|
+
sales_transaction.used = True
|
|
377
|
+
sales_transaction.put()
|
|
374
378
|
return customer_transaction
|
|
375
379
|
|
|
376
380
|
@staticmethod
|
|
@@ -246,6 +246,7 @@ def construct_setting_by_outlet(outlet, device_setting=None, is_pos_device=False
|
|
|
246
246
|
'outlet_details' : outlet_details,
|
|
247
247
|
'program_configurations' : program_configurations,
|
|
248
248
|
'membership_configurations' : merchant_acct.membership_configuration,
|
|
249
|
+
'rating_review' : merchant_acct.program_settings.get('rating_review', False),
|
|
249
250
|
}
|
|
250
251
|
if device_setting:
|
|
251
252
|
setting['activation_code'] = device_setting.activation_code
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/customer_model_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/helper/reward_model_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/redemption_catalogue_models.py
RENAMED
|
File without changes
|
{trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/referral_program_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{trex-model-1.5.18 → trex-model-1.5.19}/trexmodel/models/datastore/spending_base_program_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|