ob-dj-store 0.0.20.1__tar.gz → 0.0.20.3__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.
Files changed (200) hide show
  1. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.github/workflows/test-build.yml +3 -3
  2. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.pre-commit-config.yaml +9 -9
  3. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/Makefile +7 -7
  4. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/PKG-INFO +1 -1
  5. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/config/settings.py +3 -7
  6. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/stores/filters.py +5 -19
  7. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/stores/rest/serializers/serializers.py +13 -17
  8. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/stores/views.py +74 -226
  9. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/tap/views.py +2 -6
  10. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/admin.py +3 -20
  11. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/admin_inlines.py +1 -7
  12. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/admin.py +1 -3
  13. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/managers.py +1 -6
  14. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0001_initial.py +1 -3
  15. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/models.py +3 -12
  16. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/utils.py +2 -7
  17. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/managers.py +1 -3
  18. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0001_initial.py +1 -4
  19. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0005_auto_20220425_2119.py +2 -5
  20. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0005_auto_20220427_1729.py +1 -2
  21. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0006_auto_20220428_0100.py +2 -8
  22. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0007_cart_cartitem_order_orderitem.py +2 -8
  23. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0010_auto_20220509_1633.py +1 -4
  24. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0012_auto_20220514_0633.py +1 -4
  25. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0013_auto_20220518_1539.py +1 -4
  26. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0014_auto_20220519_0018.py +3 -12
  27. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0017_auto_20220524_0912.py +3 -10
  28. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0018_auto_20220524_1613.py +1 -3
  29. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0021_auto_20220531_1849.py +1 -4
  30. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0026_auto_20220630_1913.py +8 -32
  31. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0031_auto_20220811_1733.py +1 -4
  32. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0033_auto_20220815_0133.py +2 -8
  33. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0039_auto_20220831_1521.py +1 -4
  34. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0044_remove_productvariant_has_inventory.py +1 -4
  35. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0049_auto_20221029_1524.py +2 -8
  36. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0050_favoriteextra.py +1 -3
  37. ob_dj_store-0.0.20.3/ob_dj_store/core/stores/migrations/0052_auto_20221129_1732.py +15 -0
  38. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0059_auto_20230217_2006.py +2 -8
  39. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0062_auto_20230226_2005.py +2 -6
  40. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0064_auto_20230228_1814.py +1 -2
  41. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0066_auto_20230304_1532.py +2 -8
  42. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0070_auto_20230323_1628.py +1 -4
  43. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0071_auto_20230328_1825.py +2 -5
  44. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0082_auto_20230613_1424.py +1 -4
  45. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0084_payment_result.py +1 -3
  46. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0087_auto_20230828_2138.py +1 -4
  47. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0097_auto_20231108_1939.py +1 -4
  48. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0100_remove_shippingmethod_type_arabic.py +1 -4
  49. ob_dj_store-0.0.20.3/ob_dj_store/core/stores/migrations/0106_alter_paymentmethod_payment_provider.py +35 -0
  50. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_address.py +1 -3
  51. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_cart.py +1 -3
  52. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_feedback.py +1 -3
  53. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_inventory.py +1 -2
  54. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_order.py +5 -19
  55. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_payment.py +3 -12
  56. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_product.py +4 -16
  57. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_store.py +3 -11
  58. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_wallet.py +7 -23
  59. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/receivers.py +7 -20
  60. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/utils.py +1 -2
  61. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store.egg-info/PKG-INFO +1 -1
  62. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store.egg-info/SOURCES.txt +1 -0
  63. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/setup.py +2 -8
  64. ob_dj_store-0.0.20.1/ob_dj_store/core/stores/migrations/0052_auto_20221129_1732.py +0 -21
  65. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.github/dependabot.yml +0 -0
  66. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.github/workflows/docs.yml +0 -0
  67. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.github/workflows/pre-release.yml +0 -0
  68. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.github/workflows/release.yml +0 -0
  69. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.gitignore +0 -0
  70. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/.isort.cfg +0 -0
  71. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/Dockerfile +0 -0
  72. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/MANIFEST.in +0 -0
  73. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/Pipfile +0 -0
  74. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/Pipfile.lock +0 -0
  75. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/README.md +0 -0
  76. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/config/__init__.py +0 -0
  77. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/config/urls.py +0 -0
  78. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/config/wsgi.py +0 -0
  79. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docker-compose.env +0 -0
  80. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docker-compose.yml +0 -0
  81. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/Makefile +0 -0
  82. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/make.bat +0 -0
  83. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/admin.rst +0 -0
  84. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/conf.py +0 -0
  85. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/index.rst +0 -0
  86. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/installation.rst +0 -0
  87. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/models.rst +0 -0
  88. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/docs/source/rest_endpoints.rst +0 -0
  89. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/fixtures/initial_users.yaml +0 -0
  90. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/fixtures/stores.yaml +0 -0
  91. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/manage.py +0 -0
  92. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/__init__.py +0 -0
  93. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/__init__.py +0 -0
  94. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/stores/__init__.py +0 -0
  95. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/stores/urls.py +0 -0
  96. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/tap/__init__.py +0 -0
  97. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/tap/serializers.py +0 -0
  98. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/apis/tap/urls.py +0 -0
  99. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/__init__.py +0 -0
  100. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/__init__.py +0 -0
  101. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/apps.py +0 -0
  102. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/__init__.py +0 -0
  103. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/__init__.py +0 -0
  104. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/apps.py +0 -0
  105. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0002_auto_20220815_1610.py +0 -0
  106. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0003_auto_20220818_1938.py +0 -0
  107. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0004_tapcustomer.py +0 -0
  108. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0005_alter_tappayment_payment_url.py +0 -0
  109. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0006_alter_tappayment_source.py +0 -0
  110. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/0007_alter_tappayment_source.py +0 -0
  111. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/gateway/tap/migrations/__init__.py +0 -0
  112. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0002_auto_20220422_0205.py +0 -0
  113. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0003_openinghours.py +0 -0
  114. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0004_auto_20220422_2326.py +0 -0
  115. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0008_order_status.py +0 -0
  116. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0009_auto_20220508_2142.py +0 -0
  117. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0011_favorite.py +0 -0
  118. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0015_inventory_inventoryoperations.py +0 -0
  119. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0016_productvariant_preparation_time.py +0 -0
  120. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0019_product_is_featured.py +0 -0
  121. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0020_orderhistory.py +0 -0
  122. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0022_order_pickup_time.py +0 -0
  123. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0023_feedback_feedbackattribute_feedbackconfig.py +0 -0
  124. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0024_auto_20220609_1552.py +0 -0
  125. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0025_productvariant_is_primary.py +0 -0
  126. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0027_auto_20220713_1759.py +0 -0
  127. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0028_phonecontact.py +0 -0
  128. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0029_auto_20220726_1750.py +0 -0
  129. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0030_category_parent.py +0 -0
  130. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0032_auto_20220812_1951.py +0 -0
  131. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0034_auto_20220815_1528.py +0 -0
  132. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0035_auto_20220818_1938.py +0 -0
  133. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0036_productattribute_is_mandatory.py +0 -0
  134. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0037_auto_20220825_1736.py +0 -0
  135. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0038_cartitem_extra_infos.py +0 -0
  136. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0040_auto_20220902_1806.py +0 -0
  137. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0041_auto_20220912_1506.py +0 -0
  138. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0042_wallet_wallettransaction.py +0 -0
  139. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0043_auto_20220919_1854.py +0 -0
  140. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0045_shippingmethod_type.py +0 -0
  141. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0046_auto_20221014_1720.py +0 -0
  142. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0047_auto_20221018_1433.py +0 -0
  143. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0048_auto_20221026_1933.py +0 -0
  144. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0051_order_car_id.py +0 -0
  145. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0053_inventory_plu.py +0 -0
  146. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0054_auto_20221230_1501.py +0 -0
  147. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0055_store_image.py +0 -0
  148. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0056_auto_20230213_2224.py +0 -0
  149. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0057_auto_20230214_1724.py +0 -0
  150. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0058_attributechoice_is_default.py +0 -0
  151. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0060_alter_orderitem_product_variant.py +0 -0
  152. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0061_auto_20230223_1435.py +0 -0
  153. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0063_alter_store_payment_methods.py +0 -0
  154. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0065_auto_20230228_1932.py +0 -0
  155. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0067_auto_20230309_2014.py +0 -0
  156. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0068_auto_20230309_2251.py +0 -0
  157. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0069_alter_cartitem_options.py +0 -0
  158. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0072_alter_order_extra_infos.py +0 -0
  159. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0073_wallettransaction_is_cashback.py +0 -0
  160. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0074_productvariant_label.py +0 -0
  161. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0075_auto_20230419_0259.py +0 -0
  162. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0076_auto_20230421_1343.py +0 -0
  163. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0077_auto_20230502_2005.py +0 -0
  164. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0078_auto_20230503_1259.py +0 -0
  165. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0079_auto_20230504_1919.py +0 -0
  166. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0080_productvariant_description.py +0 -0
  167. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0081_storeattributechoice.py +0 -0
  168. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0083_productvariant_is_special.py +0 -0
  169. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0085_auto_20230726_1528.py +0 -0
  170. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0086_wallet_is_active.py +0 -0
  171. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0088_alter_paymentmethod_payment_provider.py +0 -0
  172. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0089_discount_partner_partnerauthinfo_partneremaildomain_partnerotpauth.py +0 -0
  173. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0090_auto_20231006_1356.py +0 -0
  174. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0091_auto_20231010_1740.py +0 -0
  175. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0092_auto_20231012_1339.py +0 -0
  176. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0093_auto_20231017_2033.py +0 -0
  177. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0094_countrypaymentmethod.py +0 -0
  178. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0095_auto_20231101_1531.py +0 -0
  179. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0096_discount_discount_pos_id.py +0 -0
  180. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0098_alter_discount_discount_rate.py +0 -0
  181. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0099_alter_product_name_arabic.py +0 -0
  182. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0101_store_is_digital.py +0 -0
  183. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0102_partner_name_arabic.py +0 -0
  184. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0103_alter_paymentmethod_payment_provider.py +0 -0
  185. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0104_wallettransaction_is_redeemed.py +0 -0
  186. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/0105_store_is_open_after_midnight.py +0 -0
  187. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/migrations/__init__.py +0 -0
  188. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/__init__.py +0 -0
  189. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_favorite.py +0 -0
  190. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/models/_partner.py +0 -0
  191. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/core/stores/settings_validation.py +0 -0
  192. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/utils/__init__.py +0 -0
  193. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/utils/helpers.py +0 -0
  194. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/utils/model.py +0 -0
  195. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store/utils/utils.py +0 -0
  196. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store.egg-info/dependency_links.txt +0 -0
  197. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store.egg-info/requires.txt +0 -0
  198. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/ob_dj_store.egg-info/top_level.txt +0 -0
  199. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/pytest.ini +0 -0
  200. {ob_dj_store-0.0.20.1 → ob_dj_store-0.0.20.3}/setup.cfg +0 -0
@@ -22,13 +22,13 @@ jobs:
22
22
  run: touch docker-compose.local.env
23
23
 
24
24
  - name: Build
25
- run: docker-compose up -d
25
+ run: docker compose up -d
26
26
 
27
27
  - name: Test Code Linter
28
- run: docker-compose run --rm app pre-commit run --all-files
28
+ run: docker compose run --rm app pre-commit run --all-files
29
29
 
30
30
  - name: Run test suite
31
- run: docker-compose run --rm app pytest
31
+ run: docker compose run --rm app pytest
32
32
 
33
33
  # - name: Upload coverage to Codecov
34
34
  # uses: codecov/codecov-action@v2
@@ -1,31 +1,30 @@
1
+ default_language_version:
2
+ python: python3.9
1
3
  repos:
2
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v2.2.3
5
+ rev: v4.1.0
4
6
  hooks:
5
7
  - id: check-merge-conflict
6
8
  - id: check-added-large-files
7
9
  - id: check-ast
8
10
  - id: check-symlinks
9
11
  - id: check-yaml
10
- args: ['--unsafe']
11
12
  - id: trailing-whitespace
12
13
  - id: check-json
13
14
  - id: debug-statements
14
- - id: detect-aws-credentials
15
- args:
16
- - --allow-missing-credentials
17
15
  - id: pretty-format-json
18
- args:
19
- - --autofix
16
+ args: ["--autofix", "--allow-missing-credentials"]
20
17
  exclude: Pipfile.lock
21
18
  - repo: https://github.com/asottile/seed-isort-config
22
19
  rev: v2.2.0
23
20
  hooks:
24
21
  - id: seed-isort-config
22
+ language_version: python3.9
25
23
  - repo: https://github.com/PyCQA/isort
26
24
  rev: 5.12.0
27
25
  hooks:
28
26
  - id: isort
27
+ language_version: python3.9
29
28
  args: ["--profile", "black"]
30
29
  - repo: https://github.com/PyCQA/flake8
31
30
  rev: 4.0.1
@@ -43,7 +42,8 @@ repos:
43
42
  exclude: '^\..*'
44
43
  args: ["--in-place", "--remove-all-unused-imports"]
45
44
  - repo: https://github.com/psf/black
46
- rev: 22.3.0
45
+ rev: 19.10b0
47
46
  hooks:
48
47
  - id: black
49
- args: ["--target-version", "py38"]
48
+ language_version: python3.9
49
+ additional_dependencies: ['click==8.0.4']
@@ -12,7 +12,7 @@ help:
12
12
  @echo "dist: package"
13
13
  @echo "install: install the package to the active Python's site-packages"
14
14
  @echo "docs_check: check sphinx docs for spelling warnings"
15
- @echo "build - Build (usually, requires to build when changes happen to the Dockerfile or docker-compose.yml)"
15
+ @echo "build - Build (usually, requires to build when changes happen to the Dockerfile or docker compose.yml)"
16
16
 
17
17
  clean: clean-build clean-pyc clean-test
18
18
 
@@ -38,7 +38,7 @@ lint_tests:
38
38
  flake8 leviathan_serving tests
39
39
 
40
40
  test:
41
- docker-compose run --rm app pytest
41
+ docker compose run --rm app pytest
42
42
 
43
43
  test-all:
44
44
  tox
@@ -79,16 +79,16 @@ lint:
79
79
  pre-commit run --all-files
80
80
 
81
81
  bash:
82
- docker-compose run --rm app bash
82
+ docker compose run --rm app bash
83
83
 
84
84
  migrations:
85
- docker-compose run --rm app python manage.py makemigrations
85
+ docker compose run --rm app python manage.py makemigrations
86
86
 
87
87
  migrate:
88
- docker-compose run --rm app python manage.py migrate
88
+ docker compose run --rm app python manage.py migrate
89
89
 
90
90
  up:
91
- docker-compose up migrate -d && docker-compose up -d
91
+ docker compose up migrate -d && docker compose up -d
92
92
 
93
93
  build:
94
- docker-compose build
94
+ docker compose build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ob-dj-store
3
- Version: 0.0.20.1
3
+ Version: 0.0.20.3
4
4
  Summary: OBytes django application for managing ecommerce stores.
5
5
  Home-page: https://www.obytes.com/
6
6
  Author: OBytes
@@ -284,9 +284,7 @@ REST_FRAMEWORK = {
284
284
  "rest_framework_simplejwt.authentication.JWTAuthentication",
285
285
  "rest_framework.authentication.SessionAuthentication",
286
286
  ),
287
- "DEFAULT_FILTER_BACKENDS": [
288
- "django_filters.rest_framework.DjangoFilterBackend",
289
- ],
287
+ "DEFAULT_FILTER_BACKENDS": ["django_filters.rest_framework.DjangoFilterBackend",],
290
288
  "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination",
291
289
  "PAGE_SIZE": 50,
292
290
  "TEST_REQUEST_RENDERER_CLASSES": [
@@ -317,7 +315,7 @@ PAYPAL = "paypal"
317
315
  STRIPE = "stripe"
318
316
  WALLET = "wallet"
319
317
  GIFT = "gift"
320
- APPLE_PAY = "apple_pay"
318
+ APPLE_PAY = "src_apple_pay"
321
319
  GOOGLE_PAY = "google_pay"
322
320
  MADA = "src_sa.mada"
323
321
  BENEFIT = "src_bh.benefit"
@@ -372,9 +370,7 @@ DIGITAL_PRODUCTS_REQUIRED_KEYS = (
372
370
  MULTIPLE_FAVORITE_EXTRA = 1
373
371
  SIGNLE_FAVORITE_EXTRA = 0
374
372
  FAVORITE_TYPES = {
375
- "Store": {
376
- "path": "ob_dj_store.core.stores.models._store.Store",
377
- },
373
+ "Store": {"path": "ob_dj_store.core.stores.models._store.Store",},
378
374
  "Product": {
379
375
  "path": "ob_dj_store.core.stores.models._product.Product",
380
376
  "extras": {
@@ -49,11 +49,7 @@ class StoreFilter(filters.FilterSet):
49
49
  return queryset.filter(address__country=value)
50
50
 
51
51
  def by_shipping_methods_names(self, queryset, name, value):
52
- return queryset.filter(
53
- shipping_methods__name__in=[
54
- value,
55
- ]
56
- )
52
+ return queryset.filter(shipping_methods__name__in=[value,])
57
53
 
58
54
  def by_open_stores(self, queryset, name, value):
59
55
  if value:
@@ -186,9 +182,7 @@ class CategoryFilter(filters.FilterSet):
186
182
 
187
183
  def by_type(self, queryset, name, value):
188
184
  return (
189
- queryset.filter(
190
- subcategories__products__type=value,
191
- )
185
+ queryset.filter(subcategories__products__type=value,)
192
186
  .prefetch_related(
193
187
  Prefetch(
194
188
  "subcategories",
@@ -198,9 +192,7 @@ class CategoryFilter(filters.FilterSet):
198
192
  ),
199
193
  Prefetch(
200
194
  "subcategories__products",
201
- queryset=Product.objects.filter(
202
- is_active=True,
203
- ).distinct(),
195
+ queryset=Product.objects.filter(is_active=True,).distinct(),
204
196
  ),
205
197
  )
206
198
  .distinct()
@@ -241,10 +233,7 @@ class FavoriteFilter(filters.FilterSet):
241
233
  product_variants__inventories__store__pk=value
242
234
  ).values_list("id", flat=True)
243
235
  content_type = ContentType.objects.get_for_model(Product)
244
- return queryset.filter(
245
- content_type=content_type,
246
- object_id__in=products_ids,
247
- )
236
+ return queryset.filter(content_type=content_type, object_id__in=products_ids,)
248
237
 
249
238
 
250
239
  class PaymentMethodFilter(filters.FilterSet):
@@ -267,10 +256,7 @@ class PaymentMethodFilter(filters.FilterSet):
267
256
 
268
257
  class WalletFilter(filters.FilterSet):
269
258
  currency = filters.CharFilter(
270
- method="by_currency",
271
- validators=[
272
- validate_currency,
273
- ],
259
+ method="by_currency", validators=[validate_currency,],
274
260
  )
275
261
  country = filters.CharFilter(method="by_country")
276
262
 
@@ -329,8 +329,7 @@ class OrderSerializer(serializers.ModelSerializer):
329
329
  return store
330
330
 
331
331
  def _validate_user_address(
332
- self,
333
- attrs,
332
+ self, attrs,
334
333
  ):
335
334
  if "shipping_address" not in attrs:
336
335
  raise ValidationError(
@@ -362,7 +361,7 @@ class OrderSerializer(serializers.ModelSerializer):
362
361
  raise serializers.ValidationError(errors)
363
362
  email = gift_details.get("email")
364
363
  phone_number = gift_details.get("phone_number")
365
-
364
+ user = self.context["request"].user
366
365
  if email and phone_number:
367
366
  raise serializers.ValidationError(
368
367
  _("Both Email and Phone number cannot be provided.")
@@ -376,7 +375,12 @@ class OrderSerializer(serializers.ModelSerializer):
376
375
  validate_email(email)
377
376
  except ValidationError:
378
377
  raise serializers.ValidationError(_("Invalid Email format."))
378
+ try:
379
+ if not gift_details["currency"]:
380
+ gift_details["currency"] = get_currency_by_country(user.country.code)
379
381
 
382
+ except Exception:
383
+ raise serializers.ValidationError("Currency is required")
380
384
  if not pycountry.currencies.get(alpha_3=gift_details["currency"]):
381
385
  raise serializers.ValidationError("Gift currency is not valid")
382
386
  try:
@@ -731,9 +735,7 @@ class CartItemSerializer(
731
735
  "is_multi_variant",
732
736
  )
733
737
  extra_kwargs = {
734
- "store": {
735
- "required": True,
736
- },
738
+ "store": {"required": True,},
737
739
  }
738
740
 
739
741
  def get_is_multi_variant(self, obj):
@@ -774,9 +776,9 @@ class CartItemSerializer(
774
776
  favorites = Favorite.objects.favorites_for_object(
775
777
  obj.product_variant.product, user
776
778
  )
777
- customization = [
778
- obj.product_variant,
779
- ] + [attribute_choice for attribute_choice in obj.attribute_choices.all()]
779
+ customization = [obj.product_variant,] + [
780
+ attribute_choice for attribute_choice in obj.attribute_choices.all()
781
+ ]
780
782
  for favorite in favorites:
781
783
  content_objects = [
782
784
  instance.content_object for instance in favorite.extras.all()
@@ -1812,9 +1814,7 @@ class PartnerAuthInfoSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
1812
1814
  status=OneTruePairing.Statuses.init,
1813
1815
  created_at__gte=timeout,
1814
1816
  ).get(
1815
- email=attrs["email"],
1816
- partner_otp_auth__partner=partner,
1817
- user=user,
1817
+ email=attrs["email"], partner_otp_auth__partner=partner, user=user,
1818
1818
  )
1819
1819
  self.context["otp"] = otp
1820
1820
  except ObjectDoesNotExist as e:
@@ -1851,11 +1851,7 @@ class PartnerAuthInfoSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
1851
1851
  otp.status = OneTruePairing.Statuses.used
1852
1852
  otp.save()
1853
1853
  partner_auth_info = PartnerAuthInfo.objects.update_or_create(
1854
- user=user,
1855
- defaults={
1856
- "partner": partner,
1857
- "email": validated_data["email"],
1858
- },
1854
+ user=user, defaults={"partner": partner, "email": validated_data["email"],},
1859
1855
  )
1860
1856
  return partner_auth_info
1861
1857