ob-dj-store 0.0.21.9__py3-none-any.whl → 0.0.22.1__py3-none-any.whl

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.
@@ -120,8 +120,18 @@ class Wallet(models.Model):
120
120
  method=payment_method,
121
121
  amount=amount,
122
122
  )
123
- tap_payment = payment.tap_payment
124
- return (tap_payment.payment_url, tap_payment.charge_id)
123
+
124
+ provider = payment_method.payment_provider
125
+ if provider == settings.TAP_ALL:
126
+ return (payment.tap_payment.payment_url, payment.tap_payment.charge_id)
127
+ elif provider == settings.STRIPE:
128
+ return (
129
+ payment.stripe_payment.payment_url,
130
+ payment.stripe_payment.payment_intent_id,
131
+ )
132
+ else:
133
+ logger.warning(f"Unsupported payment provider: {provider}")
134
+ return (None, None)
125
135
 
126
136
 
127
137
  class WalletTransaction(models.Model):
@@ -1,3 +1,5 @@
1
+ import logging
2
+
1
3
  from django.conf import settings
2
4
  from django.db.models.signals import post_save, pre_save
3
5
  from django.dispatch import receiver
@@ -15,6 +17,8 @@ from ob_dj_store.core.stores.models import (
15
17
  from ob_dj_store.core.stores.utils import get_currency_by_country
16
18
  from ob_dj_store.utils.utils import resize_image
17
19
 
20
+ logger = logging.getLogger(__name__)
21
+
18
22
 
19
23
  @receiver(
20
24
  post_save,
@@ -22,19 +26,37 @@ from ob_dj_store.utils.utils import resize_image
22
26
  dispatch_uid="create_customer_cart_and_wallet_handler",
23
27
  )
24
28
  def create_customer_cart_and_wallet_handler(sender, instance, created, **kwargs):
25
- if not created:
26
- return
27
- cart = Cart(customer=instance)
28
- cart.save()
29
- wallet_media = WalletMedia.objects.filter(is_default=True)
30
- wallet_currencies = settings.WALLET_CURRENCIES
31
- if getattr(instance, "country", "") and instance.country:
32
- currency = get_currency_by_country(instance.country.code)
33
- if currency not in wallet_currencies:
34
- wallet_currencies = settings.US_WALLET_CURRENCIES
35
-
36
- for currency in wallet_currencies:
37
- instance.wallets.create(currency=currency, media_image=wallet_media.first())
29
+ try:
30
+ logger.info(f"Creating cart and wallet for user {instance.id}")
31
+ if not hasattr(instance, "cart"):
32
+ cart = Cart(customer=instance)
33
+ cart.save()
34
+
35
+ wallet_media = WalletMedia.objects.filter(is_default=True)
36
+ wallet_currencies = settings.WALLET_CURRENCIES
37
+ logger.info(f"Wallet currencies: {wallet_currencies}")
38
+ # getattr(instance, "country", "") : only for bypassing ob_dj_store users
39
+ if getattr(instance, "country", "") and instance.country:
40
+ currency = get_currency_by_country(instance.country.code)
41
+ if currency not in wallet_currencies:
42
+ wallet_currencies = settings.US_WALLET_CURRENCIES
43
+ logger.info(f"Wallet currencies: {wallet_currencies}")
44
+
45
+ # check if wallet exists since we now run the signal on every user update
46
+ for currency in wallet_currencies:
47
+ instance.wallets.get_or_create(
48
+ currency=currency, media_image=wallet_media.first()
49
+ )
50
+
51
+ # delete gcc wallets if exists for US based users
52
+ if getattr(instance, "country", "") and instance.country:
53
+ currency = get_currency_by_country(instance.country.code)
54
+ if currency not in settings.US_WALLET_CURRENCIES:
55
+ instance.wallets.filter(
56
+ currency__in=settings.WALLET_CURRENCIES
57
+ ).delete()
58
+ except Exception:
59
+ logger.error(f"Error creating cart for user {instance.id}")
38
60
 
39
61
 
40
62
  # add receiver to ProductVariant to create inventory
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ob-dj-store
3
- Version: 0.0.21.9
3
+ Version: 0.0.22.1
4
4
  Summary: OBytes django application for managing ecommerce stores.
5
5
  Home-page: https://www.obytes.com/
6
6
  Author: OBytes
@@ -18,7 +18,7 @@ ob_dj_store/core/stores/admin.py,sha256=aI1t3nIeOw_Vcy2E2LNaAxMRX2GjvVrVeBaH-n4I
18
18
  ob_dj_store/core/stores/admin_inlines.py,sha256=9_35VwwRh5w8YU2CRTJ7sENUjF-D-J-o9jXhLEPpS3w,2900
19
19
  ob_dj_store/core/stores/apps.py,sha256=ZadmEER_dNcQTH617b3fAsYZJSyRw0g46Kjp4eOAsOU,498
20
20
  ob_dj_store/core/stores/managers.py,sha256=Q0PUB_LSz0bufJ0OfgHuvSC-5uAGSsDDlhitisFJqw4,10141
21
- ob_dj_store/core/stores/receivers.py,sha256=qL9PNuGe_rcnq89pRoxeFRkZA4uAbpmqmc0T-kW7J4E,4015
21
+ ob_dj_store/core/stores/receivers.py,sha256=iQZfQo_6hUipUFX4VMRHkTc54CCNPf0-NSmXNyzzwhU,5008
22
22
  ob_dj_store/core/stores/settings_validation.py,sha256=eTkRaI6CG5OEJQyI5CF-cNAcvjzXf3GwX5sR97O3v98,3977
23
23
  ob_dj_store/core/stores/utils.py,sha256=r6YdjQu5gsrZmO_qgXb21xcB50tbAI9vffN4Yp6n6iA,3427
24
24
  ob_dj_store/core/stores/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -167,12 +167,12 @@ ob_dj_store/core/stores/models/_partner.py,sha256=OuYvevUWn1sYHs9PcFf51EUUC1uqyt
167
167
  ob_dj_store/core/stores/models/_payment.py,sha256=SfAMVrdP2Hfz604AyO8EOjeiOgGMeJ8My0s5U4GZ7Yc,6650
168
168
  ob_dj_store/core/stores/models/_product.py,sha256=KUi2hkA4VNCrWwWp3AM_tkubFptpOdiFt0Twzi2wW14,18535
169
169
  ob_dj_store/core/stores/models/_store.py,sha256=0K-CNJWuXNqeyULL1J0M9hiNcVla0UNNjdCdN_nzNEE,9833
170
- ob_dj_store/core/stores/models/_wallet.py,sha256=YvT-rvED-jrYjePLJpvdLXXoBudR6TGPu5cNE0m2fWo,5643
170
+ ob_dj_store/core/stores/models/_wallet.py,sha256=QktPaDH2gOGDyOqBqY0lXU91gL2_MhHhy2d7GcCO1ZA,6019
171
171
  ob_dj_store/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  ob_dj_store/utils/helpers.py,sha256=o7wgypM7mI2vZqZKkhxnTcnHJC8GMQDOuYMnRwXr6tY,2058
173
173
  ob_dj_store/utils/model.py,sha256=DV7hOhTaZL3gh9sptts2jTUFlTArKG3i7oPioq9HLFE,303
174
174
  ob_dj_store/utils/utils.py,sha256=8UVAFB56qUSjJJ5f9vnermtw638gdFy4CFRCuMbns_M,1342
175
- ob_dj_store-0.0.21.9.dist-info/METADATA,sha256=NXl_1kU9ayMBqYtsW3auF2nr4Z-lA0E3V4KbI58dQXA,2850
176
- ob_dj_store-0.0.21.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
177
- ob_dj_store-0.0.21.9.dist-info/top_level.txt,sha256=CZG3G0ptTkzGnc0dFYN-ZD7YKdJBmm47bsmGwofD_lk,12
178
- ob_dj_store-0.0.21.9.dist-info/RECORD,,
175
+ ob_dj_store-0.0.22.1.dist-info/METADATA,sha256=EPL0g7lRSJkPFVBKE0cEmKXzmKXVqQuT8ZRGtltup3k,2850
176
+ ob_dj_store-0.0.22.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
177
+ ob_dj_store-0.0.22.1.dist-info/top_level.txt,sha256=CZG3G0ptTkzGnc0dFYN-ZD7YKdJBmm47bsmGwofD_lk,12
178
+ ob_dj_store-0.0.22.1.dist-info/RECORD,,