ob-dj-store 0.0.20.2__tar.gz → 0.0.20.4__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.
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.github/workflows/test-build.yml +3 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.pre-commit-config.yaml +9 -9
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/Makefile +7 -7
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/PKG-INFO +3 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/config/settings.py +3 -7
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/stores/filters.py +5 -19
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/stores/rest/serializers/serializers.py +20 -34
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/stores/views.py +74 -226
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/tap/views.py +2 -6
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/admin.py +3 -21
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/admin_inlines.py +2 -7
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/admin.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/managers.py +1 -6
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0001_initial.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/models.py +3 -12
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/utils.py +2 -7
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/managers.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0001_initial.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0005_auto_20220425_2119.py +2 -5
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0005_auto_20220427_1729.py +1 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0006_auto_20220428_0100.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0007_cart_cartitem_order_orderitem.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0010_auto_20220509_1633.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0012_auto_20220514_0633.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0013_auto_20220518_1539.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0014_auto_20220519_0018.py +3 -12
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0017_auto_20220524_0912.py +3 -10
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0018_auto_20220524_1613.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0021_auto_20220531_1849.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0026_auto_20220630_1913.py +8 -32
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0031_auto_20220811_1733.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0033_auto_20220815_0133.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0039_auto_20220831_1521.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0044_remove_productvariant_has_inventory.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0049_auto_20221029_1524.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0050_favoriteextra.py +1 -3
- ob_dj_store-0.0.20.4/ob_dj_store/core/stores/migrations/0052_auto_20221129_1732.py +15 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0059_auto_20230217_2006.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0062_auto_20230226_2005.py +2 -6
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0064_auto_20230228_1814.py +1 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0066_auto_20230304_1532.py +2 -8
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0070_auto_20230323_1628.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0071_auto_20230328_1825.py +2 -5
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0082_auto_20230613_1424.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0084_payment_result.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0087_auto_20230828_2138.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0097_auto_20231108_1939.py +1 -4
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0100_remove_shippingmethod_type_arabic.py +1 -4
- ob_dj_store-0.0.20.4/ob_dj_store/core/stores/migrations/0106_alter_paymentmethod_payment_provider.py +35 -0
- ob_dj_store-0.0.20.4/ob_dj_store/core/stores/migrations/0107_auto_20250425_2059.py +29 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_address.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_cart.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_feedback.py +1 -3
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_inventory.py +1 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_order.py +7 -20
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_payment.py +3 -12
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_product.py +5 -17
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_store.py +5 -13
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_wallet.py +7 -23
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/receivers.py +7 -20
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/utils.py +1 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store.egg-info/PKG-INFO +3 -2
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store.egg-info/SOURCES.txt +2 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/setup.py +2 -8
- ob_dj_store-0.0.20.2/ob_dj_store/core/stores/migrations/0052_auto_20221129_1732.py +0 -21
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.github/dependabot.yml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.github/workflows/docs.yml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.github/workflows/pre-release.yml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.github/workflows/release.yml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.gitignore +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/.isort.cfg +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/Dockerfile +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/MANIFEST.in +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/Pipfile +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/Pipfile.lock +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/README.md +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/config/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/config/urls.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/config/wsgi.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docker-compose.env +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docker-compose.yml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/Makefile +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/make.bat +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/admin.rst +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/conf.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/index.rst +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/installation.rst +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/models.rst +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/docs/source/rest_endpoints.rst +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/fixtures/initial_users.yaml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/fixtures/stores.yaml +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/manage.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/stores/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/stores/urls.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/tap/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/tap/serializers.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/apis/tap/urls.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/apps.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/apps.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0002_auto_20220815_1610.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0003_auto_20220818_1938.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0004_tapcustomer.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0005_alter_tappayment_payment_url.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0006_alter_tappayment_source.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/0007_alter_tappayment_source.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/gateway/tap/migrations/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0002_auto_20220422_0205.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0003_openinghours.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0004_auto_20220422_2326.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0008_order_status.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0009_auto_20220508_2142.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0011_favorite.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0015_inventory_inventoryoperations.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0016_productvariant_preparation_time.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0019_product_is_featured.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0020_orderhistory.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0022_order_pickup_time.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0023_feedback_feedbackattribute_feedbackconfig.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0024_auto_20220609_1552.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0025_productvariant_is_primary.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0027_auto_20220713_1759.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0028_phonecontact.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0029_auto_20220726_1750.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0030_category_parent.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0032_auto_20220812_1951.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0034_auto_20220815_1528.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0035_auto_20220818_1938.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0036_productattribute_is_mandatory.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0037_auto_20220825_1736.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0038_cartitem_extra_infos.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0040_auto_20220902_1806.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0041_auto_20220912_1506.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0042_wallet_wallettransaction.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0043_auto_20220919_1854.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0045_shippingmethod_type.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0046_auto_20221014_1720.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0047_auto_20221018_1433.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0048_auto_20221026_1933.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0051_order_car_id.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0053_inventory_plu.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0054_auto_20221230_1501.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0055_store_image.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0056_auto_20230213_2224.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0057_auto_20230214_1724.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0058_attributechoice_is_default.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0060_alter_orderitem_product_variant.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0061_auto_20230223_1435.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0063_alter_store_payment_methods.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0065_auto_20230228_1932.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0067_auto_20230309_2014.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0068_auto_20230309_2251.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0069_alter_cartitem_options.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0072_alter_order_extra_infos.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0073_wallettransaction_is_cashback.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0074_productvariant_label.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0075_auto_20230419_0259.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0076_auto_20230421_1343.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0077_auto_20230502_2005.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0078_auto_20230503_1259.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0079_auto_20230504_1919.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0080_productvariant_description.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0081_storeattributechoice.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0083_productvariant_is_special.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0085_auto_20230726_1528.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0086_wallet_is_active.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0088_alter_paymentmethod_payment_provider.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0089_discount_partner_partnerauthinfo_partneremaildomain_partnerotpauth.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0090_auto_20231006_1356.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0091_auto_20231010_1740.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0092_auto_20231012_1339.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0093_auto_20231017_2033.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0094_countrypaymentmethod.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0095_auto_20231101_1531.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0096_discount_discount_pos_id.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0098_alter_discount_discount_rate.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0099_alter_product_name_arabic.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0101_store_is_digital.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0102_partner_name_arabic.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0103_alter_paymentmethod_payment_provider.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0104_wallettransaction_is_redeemed.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/0105_store_is_open_after_midnight.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/migrations/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_favorite.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/models/_partner.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/core/stores/settings_validation.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/utils/__init__.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/utils/helpers.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/utils/model.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store/utils/utils.py +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store.egg-info/dependency_links.txt +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store.egg-info/requires.txt +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/ob_dj_store.egg-info/top_level.txt +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/pytest.ini +0 -0
- {ob_dj_store-0.0.20.2 → ob_dj_store-0.0.20.4}/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
|
25
|
+
run: docker compose up -d
|
26
26
|
|
27
27
|
- name: Test Code Linter
|
28
|
-
run: docker
|
28
|
+
run: docker compose run --rm app pre-commit run --all-files
|
29
29
|
|
30
30
|
- name: Run test suite
|
31
|
-
run: docker
|
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:
|
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:
|
45
|
+
rev: 19.10b0
|
47
46
|
hooks:
|
48
47
|
- id: black
|
49
|
-
|
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
|
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
|
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
|
82
|
+
docker compose run --rm app bash
|
83
83
|
|
84
84
|
migrations:
|
85
|
-
docker
|
85
|
+
docker compose run --rm app python manage.py makemigrations
|
86
86
|
|
87
87
|
migrate:
|
88
|
-
docker
|
88
|
+
docker compose run --rm app python manage.py migrate
|
89
89
|
|
90
90
|
up:
|
91
|
-
docker
|
91
|
+
docker compose up migrate -d && docker compose up -d
|
92
92
|
|
93
93
|
build:
|
94
|
-
docker
|
94
|
+
docker compose build
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: ob-dj-store
|
3
|
-
Version: 0.0.20.
|
3
|
+
Version: 0.0.20.4
|
4
4
|
Summary: OBytes django application for managing ecommerce stores.
|
5
5
|
Home-page: https://www.obytes.com/
|
6
6
|
Author: OBytes
|
@@ -25,6 +25,7 @@ Requires-Dist: djangorestframework-gis
|
|
25
25
|
Requires-Dist: django-filter
|
26
26
|
Requires-Dist: django-leaflet
|
27
27
|
Requires-Dist: django-countries
|
28
|
+
Dynamic: requires-dist
|
28
29
|
|
29
30
|
## OBytes Django Store App
|
30
31
|
|
@@ -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 = "
|
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(
|
@@ -417,13 +416,9 @@ class OrderSerializer(serializers.ModelSerializer):
|
|
417
416
|
logger.info(
|
418
417
|
f"The fix for UAE stores timezone failed due to this error {e}"
|
419
418
|
)
|
420
|
-
if
|
421
|
-
|
422
|
-
|
423
|
-
_("Pickup time must be between store's opening hours")
|
424
|
-
)
|
425
|
-
elif (
|
426
|
-
not op_hour.always_open
|
419
|
+
if (
|
420
|
+
op_hour.is_open_after_midnight
|
421
|
+
and not op_hour.always_open
|
427
422
|
and pickup_time_time > to_hour
|
428
423
|
or pickup_time_time < from_hour
|
429
424
|
):
|
@@ -736,9 +731,7 @@ class CartItemSerializer(
|
|
736
731
|
"is_multi_variant",
|
737
732
|
)
|
738
733
|
extra_kwargs = {
|
739
|
-
"store": {
|
740
|
-
"required": True,
|
741
|
-
},
|
734
|
+
"store": {"required": True,},
|
742
735
|
}
|
743
736
|
|
744
737
|
def get_is_multi_variant(self, obj):
|
@@ -779,9 +772,9 @@ class CartItemSerializer(
|
|
779
772
|
favorites = Favorite.objects.favorites_for_object(
|
780
773
|
obj.product_variant.product, user
|
781
774
|
)
|
782
|
-
customization = [
|
783
|
-
obj.
|
784
|
-
]
|
775
|
+
customization = [obj.product_variant,] + [
|
776
|
+
attribute_choice for attribute_choice in obj.attribute_choices.all()
|
777
|
+
]
|
785
778
|
for favorite in favorites:
|
786
779
|
content_objects = [
|
787
780
|
instance.content_object for instance in favorite.extras.all()
|
@@ -1172,7 +1165,6 @@ class StoreSerializer(ArabicFieldsMixin, FavoriteMixin, serializers.ModelSeriali
|
|
1172
1165
|
"image",
|
1173
1166
|
"busy_mode",
|
1174
1167
|
"name_arabic",
|
1175
|
-
"is_open_after_midnight",
|
1176
1168
|
)
|
1177
1169
|
extra_kwargs = {
|
1178
1170
|
"image": {"read_only": True, "required": False},
|
@@ -1186,16 +1178,16 @@ class StoreSerializer(ArabicFieldsMixin, FavoriteMixin, serializers.ModelSeriali
|
|
1186
1178
|
if current_op_hour:
|
1187
1179
|
from_hour = current_op_hour.from_hour
|
1188
1180
|
to_hour = current_op_hour.to_hour
|
1189
|
-
if current_time.tzinfo.zone != "Asia/Dubai":
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
if
|
1181
|
+
# if current_time.tzinfo.zone != "Asia/Dubai":
|
1182
|
+
# if obj.currency == "AED":
|
1183
|
+
# try:
|
1184
|
+
# current_time += timedelta(hours=1)
|
1185
|
+
# except Exception as e:
|
1186
|
+
# logger.info(
|
1187
|
+
# f"The fix for UAE stores timezone failed due to this error {e}"
|
1188
|
+
# )
|
1189
|
+
|
1190
|
+
if current_op_hour.is_open_after_midnight:
|
1199
1191
|
return True if to_hour < current_time.time() < from_hour else False
|
1200
1192
|
|
1201
1193
|
if current_op_hour.always_open:
|
@@ -1817,9 +1809,7 @@ class PartnerAuthInfoSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
|
|
1817
1809
|
status=OneTruePairing.Statuses.init,
|
1818
1810
|
created_at__gte=timeout,
|
1819
1811
|
).get(
|
1820
|
-
email=attrs["email"],
|
1821
|
-
partner_otp_auth__partner=partner,
|
1822
|
-
user=user,
|
1812
|
+
email=attrs["email"], partner_otp_auth__partner=partner, user=user,
|
1823
1813
|
)
|
1824
1814
|
self.context["otp"] = otp
|
1825
1815
|
except ObjectDoesNotExist as e:
|
@@ -1856,11 +1846,7 @@ class PartnerAuthInfoSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
|
|
1856
1846
|
otp.status = OneTruePairing.Statuses.used
|
1857
1847
|
otp.save()
|
1858
1848
|
partner_auth_info = PartnerAuthInfo.objects.update_or_create(
|
1859
|
-
user=user,
|
1860
|
-
defaults={
|
1861
|
-
"partner": partner,
|
1862
|
-
"email": validated_data["email"],
|
1863
|
-
},
|
1849
|
+
user=user, defaults={"partner": partner, "email": validated_data["email"],},
|
1864
1850
|
)
|
1865
1851
|
return partner_auth_info
|
1866
1852
|
|