trex-model 1.5.14__tar.gz → 1.5.15__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.

Files changed (63) hide show
  1. {trex-model-1.5.14/trex_model.egg-info → trex-model-1.5.15}/PKG-INFO +5 -10
  2. {trex-model-1.5.14 → trex-model-1.5.15}/setup.py +1 -1
  3. {trex-model-1.5.14 → trex-model-1.5.15/trex_model.egg-info}/PKG-INFO +5 -10
  4. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/customer_models.py +16 -1
  5. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/redeem_models.py +37 -1
  6. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/reward_models.py +27 -9
  7. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/voucher_models.py +8 -1
  8. {trex-model-1.5.14 → trex-model-1.5.15}/LICENSE +0 -0
  9. {trex-model-1.5.14 → trex-model-1.5.15}/MANIFEST.in +0 -0
  10. {trex-model-1.5.14 → trex-model-1.5.15}/README.md +0 -0
  11. {trex-model-1.5.14 → trex-model-1.5.15}/setup.cfg +0 -0
  12. {trex-model-1.5.14 → trex-model-1.5.15}/trex_model.egg-info/SOURCES.txt +0 -0
  13. {trex-model-1.5.14 → trex-model-1.5.15}/trex_model.egg-info/dependency_links.txt +0 -0
  14. {trex-model-1.5.14 → trex-model-1.5.15}/trex_model.egg-info/requires.txt +0 -0
  15. {trex-model-1.5.14 → trex-model-1.5.15}/trex_model.egg-info/top_level.txt +0 -0
  16. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/__init__.py +0 -0
  17. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/conf.py +0 -0
  18. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/__init__.py +0 -0
  19. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/__init__.py +0 -0
  20. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/admin_models.py +0 -0
  21. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/analytic_models.py +0 -0
  22. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/app_models.py +0 -0
  23. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/coporate_models.py +0 -0
  24. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/customer_model_helpers.py +0 -0
  25. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/fb_subsriber_models.py +0 -0
  26. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/helper/__init__.py +0 -0
  27. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/helper/reward_model_helpers.py +0 -0
  28. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/helper/reward_transaction_helper.py +0 -0
  29. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/import_models.py +0 -0
  30. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/inventory_model.py +0 -0
  31. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/loyalty_models.py +0 -0
  32. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/lucky_draw_models.py +0 -0
  33. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/marketing_models.py +0 -0
  34. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/membership_models.py +0 -0
  35. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/merchant_models.py +0 -0
  36. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/message_model_helper.py +0 -0
  37. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/message_models.py +0 -0
  38. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/model_decorators.py +0 -0
  39. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/ndb_models.py +0 -0
  40. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/pos_models.py +0 -0
  41. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/prepaid_models.py +0 -0
  42. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/product_models.py +0 -0
  43. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/program_models.py +0 -0
  44. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/rating_models.py +0 -0
  45. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/recruit_models.py +0 -0
  46. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/redemption_catalogue_models.py +0 -0
  47. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/referral_program_model.py +0 -0
  48. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/spending_base_program_model.py +0 -0
  49. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/system_models.py +0 -0
  50. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/task_models.py +0 -0
  51. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/test_models.py +0 -0
  52. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/transaction_models.py +0 -0
  53. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/datastore/user_models.py +0 -0
  54. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/merchant_helpers.py +0 -0
  55. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/model_decorator.py +0 -0
  56. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/models/prepaid_helpers.py +0 -0
  57. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/pos_conf.py +0 -0
  58. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/program_conf.py +0 -0
  59. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/utils/__init__.py +0 -0
  60. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/utils/gcloud/__init__.py +0 -0
  61. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/utils/gcloud/datastore_util.py +0 -0
  62. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/utils/model/__init__.py +0 -0
  63. {trex-model-1.5.14 → trex-model-1.5.15}/trexmodel/utils/model/model_util.py +0 -0
@@ -1,20 +1,15 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trex-model
3
- Version: 1.5.14
3
+ Version: 1.5.15
4
4
  Summary: TRex database module package
5
5
  Home-page: https://bitbucket.org/lokjac/trex-model
6
6
  Author: Jack Lok
7
7
  Author-email: sglok77@gmail.com
8
+ License: UNKNOWN
9
+ Description: This is database modelusing google datastore mode module
10
+
11
+ Platform: UNKNOWN
8
12
  Classifier: Programming Language :: Python :: 3
9
13
  Classifier: License :: OSI Approved :: MIT License
10
14
  Classifier: Operating System :: OS Independent
11
15
  Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: google-cloud-firestore
14
- Requires-Dist: google_cloud_datastore
15
- Requires-Dist: google-cloud-ndb
16
- Requires-Dist: six
17
- Requires-Dist: trex-lib
18
- Requires-Dist: flask-login==0.6.2
19
-
20
- This is database modelusing google datastore mode module
@@ -3,7 +3,7 @@ with open("README.md", "r") as fh:
3
3
  long_description = fh.read()
4
4
  setuptools.setup(
5
5
  name='trex-model',
6
- version='1.5.14',
6
+ version='1.5.15',
7
7
  author="Jack Lok",
8
8
  author_email="sglok77@gmail.com",
9
9
  description="TRex database module package",
@@ -1,20 +1,15 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: trex-model
3
- Version: 1.5.14
3
+ Version: 1.5.15
4
4
  Summary: TRex database module package
5
5
  Home-page: https://bitbucket.org/lokjac/trex-model
6
6
  Author: Jack Lok
7
7
  Author-email: sglok77@gmail.com
8
+ License: UNKNOWN
9
+ Description: This is database modelusing google datastore mode module
10
+
11
+ Platform: UNKNOWN
8
12
  Classifier: Programming Language :: Python :: 3
9
13
  Classifier: License :: OSI Approved :: MIT License
10
14
  Classifier: Operating System :: OS Independent
11
15
  Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: google-cloud-firestore
14
- Requires-Dist: google_cloud_datastore
15
- Requires-Dist: google-cloud-ndb
16
- Requires-Dist: six
17
- Requires-Dist: trex-lib
18
- Requires-Dist: flask-login==0.6.2
19
-
20
- This is database modelusing google datastore mode module
@@ -775,9 +775,14 @@ class CustomerMembership(BaseNModel, DictModel):
775
775
  def merchant_membership_key(self):
776
776
  return self.merchant_membership.urlsafe().decode('utf-8')
777
777
 
778
+ @property
779
+ def customer_key(self):
780
+ return self.key.parent().urlsafe().decode('utf-8')
781
+
778
782
  @property
779
783
  def merchant_acct_entity(self):
780
- return MerchantAcct.fetch(self.merchant_acct.urlsafe())
784
+ if self.merchant_acct:
785
+ return MerchantAcct.fetch(self.merchant_acct.urlsafe())
781
786
 
782
787
  @property
783
788
  def merchant_membership_entity(self):
@@ -855,6 +860,16 @@ class CustomerMembership(BaseNModel, DictModel):
855
860
  valid_memberships_list.append(m)
856
861
 
857
862
 
863
+ return valid_memberships_list
864
+
865
+ @staticmethod
866
+ def list_by_customer(customer):
867
+ memberships_list = CustomerMembership.list_all_by_customer(customer)
868
+ valid_memberships_list = []
869
+ for m in memberships_list:
870
+ valid_memberships_list.append(m)
871
+
872
+
858
873
  return valid_memberships_list
859
874
 
860
875
  @staticmethod
@@ -227,6 +227,38 @@ class CustomerRedemption(BaseNModel, DictModel):
227
227
 
228
228
  return CustomerRedemption.list_all_with_condition_query(query, offset=offset, limit=limit, start_cursor=start_cursor, return_with_cursor=return_with_cursor)
229
229
 
230
+ @staticmethod
231
+ def count_by_merchant_acct(merchant_acct, datetime_ranage_start=None, datetime_range_end=None):
232
+ if datetime_ranage_start and datetime_range_end:
233
+ result = CustomerRedemption.query(ndb.AND(
234
+ CustomerRedemption.merchant_acct==merchant_acct.create_ndb_key(),
235
+ CustomerRedemption.redeemed_datetime>=datetime_ranage_start,
236
+ CustomerRedemption.redeemed_datetime<datetime_range_end,
237
+ )).count(limit=conf.MAX_FETCH_RECORD)
238
+ else:
239
+ result = CustomerRedemption.query(ndb.AND(
240
+ CustomerRedemption.merchant_acct==merchant_acct.create_ndb_key(),
241
+ )).count(limit=conf.MAX_FETCH_RECORD)
242
+
243
+
244
+ return result
245
+
246
+ @staticmethod
247
+ def list_by_merchant_acct_with_cursor(merchant_acct, datetime_ranage_start=None, datetime_range_end=None, offset=0, limit=50, start_cursor=None):
248
+ if is_not_empty(datetime_ranage_start) and is_not_empty(datetime_range_end):
249
+ query = CustomerRedemption.query(ndb.AND(
250
+ CustomerRedemption.merchant_acct==merchant_acct.create_ndb_key(),
251
+ CustomerRedemption.redeemed_datetime>=datetime_ranage_start,
252
+ CustomerRedemption.redeemed_datetime<datetime_range_end,
253
+ ))
254
+ else:
255
+ query = CustomerRedemption.query(ndb.AND(
256
+ CustomerRedemption.merchant_acct==merchant_acct.create_ndb_key(),
257
+ ))
258
+ (result, next_cursor) = CustomerRedemption.list_all_with_condition_query(query, start_cursor=start_cursor, return_with_cursor=True, offset=offset, limit=limit)
259
+
260
+ return (result, next_cursor)
261
+
230
262
  @staticmethod
231
263
  def list_merchant_transaction(merchant_acct, offset=0, limit=conf.PAGINATION_SIZE, start_cursor=None, return_with_cursor=False, reverse_order=True):
232
264
  if reverse_order:
@@ -507,7 +539,11 @@ class CustomerRedemption(BaseNModel, DictModel):
507
539
  }
508
540
 
509
541
 
510
- customer_entitled_voucher.redeem(redeemed_by, redeemed_datetime=redeemed_datetime)
542
+ customer_entitled_voucher.redeem(redeemed_by,
543
+ redeemed_datetime=redeemed_datetime,
544
+ redeemed_outlet=redeemed_outlet,
545
+ transaction_id=transaction_id,
546
+ )
511
547
 
512
548
  transaction_id_list.append(customer_entitled_voucher.transaction_id)
513
549
 
@@ -344,7 +344,8 @@ class CustomerEntitledVoucher(CustomerEntitledReward):
344
344
 
345
345
  @property
346
346
  def redeemed_by_outlet_key(self):
347
- return self.redeemed_by_outlet.urlsafe().decode('utf-8')
347
+ if self.redeemed_by_outlet:
348
+ return self.redeemed_by_outlet.urlsafe().decode('utf-8')
348
349
 
349
350
 
350
351
 
@@ -390,7 +391,7 @@ class CustomerEntitledVoucher(CustomerEntitledReward):
390
391
  result = CustomerEntitledVoucher.query(ndb.AND(
391
392
  CustomerEntitledVoucher.merchant_acct==merchant_acct.create_ndb_key(),
392
393
  CustomerEntitledVoucher.rewarded_datetime>=datetime_ranage_start,
393
- CustomerEntitledVoucher.datetime_range_end<datetime_range_end,
394
+ CustomerEntitledVoucher.rewarded_datetime<datetime_range_end,
394
395
  )).count(limit=conf.MAX_FETCH_RECORD)
395
396
  else:
396
397
  result = CustomerEntitledVoucher.query(ndb.AND(
@@ -401,11 +402,26 @@ class CustomerEntitledVoucher(CustomerEntitledReward):
401
402
  return result
402
403
 
403
404
  @staticmethod
404
- def list_by_merchant_acct_with_cursor(merchant_acct, datetime_ranage_start=None, datetime_range_end=None, offset=0, limit=50, start_cursor=None):
405
- if is_not_empty(datetime_ranage_start) and is_not_empty(datetime_range_end):
405
+ def list_by_merchant_acct(merchant_acct, datetime_range_start=None, datetime_range_end=None, offset=0, limit=50,):
406
+ if is_not_empty(datetime_range_start) and is_not_empty(datetime_range_end):
406
407
  query = CustomerEntitledVoucher.query(ndb.AND(
407
408
  CustomerEntitledVoucher.merchant_acct==merchant_acct.create_ndb_key(),
408
- CustomerEntitledVoucher.rewarded_datetime>=datetime_ranage_start,
409
+ CustomerEntitledVoucher.rewarded_datetime>=datetime_range_start,
410
+ CustomerEntitledVoucher.rewarded_datetime<datetime_range_end,
411
+ ))
412
+ else:
413
+ query = CustomerEntitledVoucher.query(ndb.AND(
414
+ CustomerEntitledVoucher.merchant_acct==merchant_acct.create_ndb_key(),
415
+ ))
416
+ return CustomerEntitledVoucher.list_all_with_condition_query(query, offset=offset, limit=limit)
417
+
418
+
419
+ @staticmethod
420
+ def list_by_merchant_acct_with_cursor(merchant_acct, datetime_range_start=None, datetime_range_end=None, offset=0, limit=50, start_cursor=None):
421
+ if is_not_empty(datetime_range_start) and is_not_empty(datetime_range_end):
422
+ query = CustomerEntitledVoucher.query(ndb.AND(
423
+ CustomerEntitledVoucher.merchant_acct==merchant_acct.create_ndb_key(),
424
+ CustomerEntitledVoucher.rewarded_datetime>=datetime_range_start,
409
425
  CustomerEntitledVoucher.rewarded_datetime<datetime_range_end,
410
426
  ))
411
427
  else:
@@ -437,7 +453,7 @@ class CustomerEntitledVoucher(CustomerEntitledReward):
437
453
  self.put()
438
454
 
439
455
 
440
- def redeem(self, redeemed_by=None, redeemed_datetime=None):
456
+ def redeem(self, redeemed_by=None, redeemed_datetime=None, redeemed_outlet=None, transaction_id=None):
441
457
  self.status = program_conf.REWARD_STATUS_REDEEMED
442
458
 
443
459
  if redeemed_datetime is None:
@@ -447,9 +463,11 @@ class CustomerEntitledVoucher(CustomerEntitledReward):
447
463
  if redeemed_by:
448
464
  redeemed_by_username = redeemed_by.username
449
465
 
450
- self.redeemed_datetime = redeemed_datetime
451
- self.redeemed_by = redeemed_by.create_ndb_key()
452
- self.redeemed_by_username = redeemed_by_username
466
+ self.redeemed_datetime = redeemed_datetime
467
+ self.redeemed_by = redeemed_by.create_ndb_key()
468
+ self.redeemed_by_username = redeemed_by_username
469
+ self.redeemed_outlet = redeemed_outlet.create_ndb_key()
470
+ self.redeemed_transaction_id = transaction_id
453
471
  self.put()
454
472
 
455
473
  def remove(self, removed_by=None, removed_datetime=None):
@@ -363,7 +363,14 @@ class MerchantVoucher(VoucherBase):
363
363
 
364
364
  merchant_acct = voucher.merchant_acct
365
365
  merchant_acct.add_voucher(voucher.to_voucher_configuration())
366
-
366
+
367
+ @staticmethod
368
+ def list_by_voucher_key_list(voucher_key_list):
369
+ ndb_keys_list = []
370
+ for k in voucher_key_list:
371
+ ndb_keys_list.append(ndb.Key(urlsafe=k))
372
+
373
+ return MerchantVoucher.fetch_multi(ndb_keys_list)
367
374
 
368
375
  @staticmethod
369
376
  def list_all_by_merchant_account(merchant_acct):
File without changes
File without changes
File without changes
File without changes