ob-dj-store 0.0.19.9__tar.gz → 0.0.20.1__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.19.9 → ob_dj_store-0.0.20.1}/PKG-INFO +1 -1
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/stores/rest/serializers/serializers.py +32 -6
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/admin.py +3 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/admin_inlines.py +1 -6
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_cart.py +10 -3
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store.egg-info/PKG-INFO +1 -1
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.github/dependabot.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.github/workflows/docs.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.github/workflows/pre-release.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.github/workflows/release.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.github/workflows/test-build.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.gitignore +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.isort.cfg +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/.pre-commit-config.yaml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/Dockerfile +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/MANIFEST.in +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/Makefile +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/Pipfile +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/Pipfile.lock +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/README.md +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/config/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/config/settings.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/config/urls.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/config/wsgi.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docker-compose.env +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docker-compose.yml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/Makefile +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/make.bat +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/admin.rst +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/conf.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/index.rst +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/installation.rst +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/models.rst +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/docs/source/rest_endpoints.rst +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/fixtures/initial_users.yaml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/fixtures/stores.yaml +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/manage.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/stores/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/stores/filters.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/stores/urls.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/stores/views.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/tap/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/tap/serializers.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/tap/urls.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/apis/tap/views.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/apps.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/admin.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/apps.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/managers.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0001_initial.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0002_auto_20220815_1610.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0003_auto_20220818_1938.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0004_tapcustomer.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0005_alter_tappayment_payment_url.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0006_alter_tappayment_source.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/0007_alter_tappayment_source.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/migrations/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/models.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/utils.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/managers.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0001_initial.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0002_auto_20220422_0205.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0003_openinghours.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0004_auto_20220422_2326.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0005_auto_20220425_2119.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0005_auto_20220427_1729.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0006_auto_20220428_0100.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0007_cart_cartitem_order_orderitem.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0008_order_status.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0009_auto_20220508_2142.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0010_auto_20220509_1633.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0011_favorite.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0012_auto_20220514_0633.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0013_auto_20220518_1539.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0014_auto_20220519_0018.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0015_inventory_inventoryoperations.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0016_productvariant_preparation_time.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0017_auto_20220524_0912.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0018_auto_20220524_1613.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0019_product_is_featured.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0020_orderhistory.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0021_auto_20220531_1849.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0022_order_pickup_time.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0023_feedback_feedbackattribute_feedbackconfig.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0024_auto_20220609_1552.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0025_productvariant_is_primary.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0026_auto_20220630_1913.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0027_auto_20220713_1759.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0028_phonecontact.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0029_auto_20220726_1750.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0030_category_parent.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0031_auto_20220811_1733.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0032_auto_20220812_1951.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0033_auto_20220815_0133.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0034_auto_20220815_1528.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0035_auto_20220818_1938.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0036_productattribute_is_mandatory.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0037_auto_20220825_1736.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0038_cartitem_extra_infos.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0039_auto_20220831_1521.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0040_auto_20220902_1806.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0041_auto_20220912_1506.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0042_wallet_wallettransaction.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0043_auto_20220919_1854.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0044_remove_productvariant_has_inventory.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0045_shippingmethod_type.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0046_auto_20221014_1720.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0047_auto_20221018_1433.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0048_auto_20221026_1933.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0049_auto_20221029_1524.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0050_favoriteextra.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0051_order_car_id.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0052_auto_20221129_1732.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0053_inventory_plu.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0054_auto_20221230_1501.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0055_store_image.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0056_auto_20230213_2224.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0057_auto_20230214_1724.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0058_attributechoice_is_default.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0059_auto_20230217_2006.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0060_alter_orderitem_product_variant.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0061_auto_20230223_1435.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0062_auto_20230226_2005.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0063_alter_store_payment_methods.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0064_auto_20230228_1814.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0065_auto_20230228_1932.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0066_auto_20230304_1532.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0067_auto_20230309_2014.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0068_auto_20230309_2251.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0069_alter_cartitem_options.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0070_auto_20230323_1628.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0071_auto_20230328_1825.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0072_alter_order_extra_infos.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0073_wallettransaction_is_cashback.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0074_productvariant_label.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0075_auto_20230419_0259.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0076_auto_20230421_1343.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0077_auto_20230502_2005.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0078_auto_20230503_1259.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0079_auto_20230504_1919.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0080_productvariant_description.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0081_storeattributechoice.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0082_auto_20230613_1424.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0083_productvariant_is_special.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0084_payment_result.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0085_auto_20230726_1528.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0086_wallet_is_active.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0087_auto_20230828_2138.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0088_alter_paymentmethod_payment_provider.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0089_discount_partner_partnerauthinfo_partneremaildomain_partnerotpauth.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0090_auto_20231006_1356.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0091_auto_20231010_1740.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0092_auto_20231012_1339.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0093_auto_20231017_2033.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0094_countrypaymentmethod.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0095_auto_20231101_1531.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0096_discount_discount_pos_id.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0097_auto_20231108_1939.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0098_alter_discount_discount_rate.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0099_alter_product_name_arabic.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0100_remove_shippingmethod_type_arabic.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0101_store_is_digital.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0102_partner_name_arabic.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0103_alter_paymentmethod_payment_provider.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0104_wallettransaction_is_redeemed.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0105_store_is_open_after_midnight.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_address.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_favorite.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_feedback.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_inventory.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_order.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_partner.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_payment.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_product.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_store.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/models/_wallet.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/receivers.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/settings_validation.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/utils.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/utils/__init__.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/utils/helpers.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/utils/model.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/utils/utils.py +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store.egg-info/SOURCES.txt +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store.egg-info/dependency_links.txt +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store.egg-info/requires.txt +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store.egg-info/top_level.txt +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/pytest.ini +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/setup.cfg +0 -0
- {ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/setup.py +0 -0
@@ -396,7 +396,7 @@ class OrderSerializer(serializers.ModelSerializer):
|
|
396
396
|
|
397
397
|
def _validate_pickup_time(self, store, pickup_time):
|
398
398
|
# validate that the pickup_time is always in the future
|
399
|
-
|
399
|
+
|
400
400
|
if pickup_time < localtime(now()):
|
401
401
|
raise serializers.ValidationError(_("Pickup time must be in the future"))
|
402
402
|
pickup_time_time = pickup_time.time()
|
@@ -440,6 +440,7 @@ class OrderSerializer(serializers.ModelSerializer):
|
|
440
440
|
attrs["extra_infos"] = {}
|
441
441
|
stores = Store.objects.filter(store_items__cart=user.cart).distinct()
|
442
442
|
gift_details = attrs["extra_infos"].get("gift_details", None)
|
443
|
+
unavailable_items = []
|
443
444
|
if gift_details:
|
444
445
|
self._validate_digital_product(gift_details, attrs)
|
445
446
|
currency = gift_details["currency"]
|
@@ -451,7 +452,17 @@ class OrderSerializer(serializers.ModelSerializer):
|
|
451
452
|
if len(stores) > 1:
|
452
453
|
raise ValidationError(_("You cannot order from different stores"))
|
453
454
|
for item in user.cart.items.all():
|
454
|
-
if
|
455
|
+
if item.inventory:
|
456
|
+
if item.inventory.is_snoozed:
|
457
|
+
unavailable_items.append(item)
|
458
|
+
elif not item.inventory.is_uncountable:
|
459
|
+
if (
|
460
|
+
not item.inventory.quantity
|
461
|
+
or item.inventory.quantity == 0
|
462
|
+
):
|
463
|
+
unavailable_items.append(item)
|
464
|
+
|
465
|
+
elif not item.inventory:
|
455
466
|
if language and item.product_variant.product.name_arabic:
|
456
467
|
product_name = item.product_variant.product.name_arabic
|
457
468
|
else:
|
@@ -461,8 +472,14 @@ class OrderSerializer(serializers.ModelSerializer):
|
|
461
472
|
message = (
|
462
473
|
f"{product_name} {variant_name} doesn't exist on this store"
|
463
474
|
)
|
475
|
+
unavailable_items.append(item)
|
464
476
|
raise ValidationError(_(message))
|
465
|
-
|
477
|
+
if unavailable_items:
|
478
|
+
raise ValidationError(
|
479
|
+
_(
|
480
|
+
"The cart has items that are not available in the selected store"
|
481
|
+
)
|
482
|
+
)
|
466
483
|
if "shipping_method" in attrs:
|
467
484
|
if (
|
468
485
|
attrs["shipping_method"].type
|
@@ -834,10 +851,19 @@ class CartSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
|
|
834
851
|
# update or create instance items
|
835
852
|
for item in validated_data["items"]:
|
836
853
|
attribute_choices = item.pop("attribute_choices", None)
|
837
|
-
|
854
|
+
logger.info("cart item :", item)
|
855
|
+
cart_item, created = CartItem.objects.get_or_create(
|
838
856
|
cart=instance,
|
839
|
-
|
857
|
+
pk=item.pop("id", None),
|
858
|
+
defaults={
|
859
|
+
"cart": instance,
|
860
|
+
"product_variant": item.pop("product_variant", None),
|
861
|
+
"store": item.pop("store", None),
|
862
|
+
"notes": item.pop("notes", None),
|
863
|
+
"quantity": item.pop("quantity", None),
|
864
|
+
},
|
840
865
|
)
|
866
|
+
|
841
867
|
if attribute_choices:
|
842
868
|
cart_item.attribute_choices.set(attribute_choices)
|
843
869
|
cart_item.save()
|
@@ -1411,7 +1437,7 @@ class FavoriteSerializer(ArabicFieldsMixin, serializers.ModelSerializer):
|
|
1411
1437
|
else:
|
1412
1438
|
if inventory.is_uncountable:
|
1413
1439
|
return True
|
1414
|
-
return
|
1440
|
+
return False
|
1415
1441
|
except ObjectDoesNotExist:
|
1416
1442
|
return False
|
1417
1443
|
return None
|
@@ -288,6 +288,7 @@ class CartAdmin(admin.ModelAdmin):
|
|
288
288
|
search_fields = [
|
289
289
|
"customer__email",
|
290
290
|
]
|
291
|
+
autocomplete_fields = ["customer"]
|
291
292
|
|
292
293
|
def get_queryset(self, request):
|
293
294
|
queryset = super().get_queryset(request)
|
@@ -380,6 +381,7 @@ class OrderAdmin(ImportExportModelAdmin, admin.ModelAdmin):
|
|
380
381
|
"status",
|
381
382
|
WeekNumberFilter, # Include the filter instance instead of the class name
|
382
383
|
]
|
384
|
+
autocomplete_fields = ["customer"]
|
383
385
|
|
384
386
|
def get_queryset(self, request):
|
385
387
|
queryset = (
|
@@ -419,6 +421,7 @@ class PaymentAdmin(ImportExportModelAdmin, admin.ModelAdmin):
|
|
419
421
|
search_fields = ["orders__store__name", "user__email"]
|
420
422
|
readonly_fields = ("orders",)
|
421
423
|
date_hierarchy = "created_at"
|
424
|
+
autocomplete_fields = ["user"]
|
422
425
|
|
423
426
|
|
424
427
|
class InventoryAdmin(admin.ModelAdmin):
|
@@ -107,12 +107,7 @@ class CartItemInlineAdmin(admin.TabularInline):
|
|
107
107
|
class OrderItemInline(admin.TabularInline):
|
108
108
|
model = models.OrderItem
|
109
109
|
extra = 0
|
110
|
-
fields = (
|
111
|
-
"product_variant",
|
112
|
-
"quantity",
|
113
|
-
"unit_value",
|
114
|
-
"total_amount",
|
115
|
-
)
|
110
|
+
fields = ("product_variant", "quantity", "unit_value", "total_amount", "notes")
|
116
111
|
readonly_fields = (
|
117
112
|
"unit_value",
|
118
113
|
"total_amount",
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import logging
|
1
2
|
from decimal import Decimal
|
2
3
|
|
3
4
|
from django.contrib.auth import get_user_model
|
@@ -10,6 +11,8 @@ from ob_dj_store.core.stores.managers import CartItemManager, CartManager
|
|
10
11
|
from ob_dj_store.core.stores.models._partner import PartnerAuthInfo
|
11
12
|
from ob_dj_store.core.stores.utils import round_up_tie
|
12
13
|
|
14
|
+
logger = logging.getLogger(__name__)
|
15
|
+
|
13
16
|
|
14
17
|
class Cart(models.Model):
|
15
18
|
customer = models.OneToOneField(
|
@@ -48,8 +51,11 @@ class Cart(models.Model):
|
|
48
51
|
def total_price(self) -> Decimal:
|
49
52
|
total_price = Decimal(0)
|
50
53
|
for item in self.items.all():
|
51
|
-
|
52
|
-
|
54
|
+
try:
|
55
|
+
if item.inventory.quantity and item.inventory.quantity > 0:
|
56
|
+
total_price += item.total_price
|
57
|
+
except AttributeError:
|
58
|
+
logger.error(f"Item {item} has no inventory")
|
53
59
|
return total_price
|
54
60
|
|
55
61
|
@property
|
@@ -91,7 +97,8 @@ class Cart(models.Model):
|
|
91
97
|
def fill(self, order):
|
92
98
|
from ob_dj_store.core.stores.models._cart import CartItem
|
93
99
|
|
94
|
-
|
100
|
+
order_items = order.items.all()
|
101
|
+
for item in order_items:
|
95
102
|
cart_item = CartItem.objects.create(
|
96
103
|
cart=self,
|
97
104
|
product_variant=item.product_variant,
|
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
|
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
|
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
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/gateway/tap/managers.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
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0001_initial.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
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0011_favorite.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
|
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
|
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
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/0055_store_image.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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/migrations/__init__.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
|
{ob_dj_store-0.0.19.9 → ob_dj_store-0.0.20.1}/ob_dj_store/core/stores/settings_validation.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
|