Merge branch 'release/3.2.0'

This commit is contained in:
Nathan Chapman 2023-04-09 11:09:20 -06:00
commit f9e7a50e58
7 changed files with 70 additions and 34 deletions

34
poetry.lock generated
View File

@ -235,7 +235,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]] [[package]]
name = "django" name = "django"
version = "4.1.5" version = "4.1.6"
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
category = "main" category = "main"
optional = false optional = false
@ -878,11 +878,11 @@ python-versions = "*"
[[package]] [[package]]
name = "selenium" name = "selenium"
version = "4.7.2" version = "4.8.0"
description = "" description = ""
category = "main" category = "main"
optional = false optional = false
python-versions = "~=3.7" python-versions = ">=3.7"
[package.dependencies] [package.dependencies]
certifi = ">=2021.10.8" certifi = ">=2021.10.8"
@ -892,7 +892,7 @@ urllib3 = {version = ">=1.26,<2.0", extras = ["socks"]}
[[package]] [[package]]
name = "sentry-sdk" name = "sentry-sdk"
version = "1.13.0" version = "1.14.0"
description = "Python client for Sentry (https://sentry.io)" description = "Python client for Sentry (https://sentry.io)"
category = "main" category = "main"
optional = false optional = false
@ -913,7 +913,7 @@ falcon = ["falcon (>=1.4)"]
fastapi = ["fastapi (>=0.79.0)"] fastapi = ["fastapi (>=0.79.0)"]
flask = ["blinker (>=1.1)", "flask (>=0.11)"] flask = ["blinker (>=1.1)", "flask (>=0.11)"]
httpx = ["httpx (>=0.16.0)"] httpx = ["httpx (>=0.16.0)"]
opentelemetry = ["opentelemetry-distro (>=0.350b0)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"]
pure-eval = ["asttokens", "executing", "pure-eval"] pure-eval = ["asttokens", "executing", "pure-eval"]
pymongo = ["pymongo (>=3.1)"] pymongo = ["pymongo (>=3.1)"]
pyspark = ["pyspark (>=2.4.4)"] pyspark = ["pyspark (>=2.4.4)"]
@ -927,7 +927,7 @@ tornado = ["tornado (>=5)"]
[[package]] [[package]]
name = "setuptools" name = "setuptools"
version = "66.1.1" version = "67.1.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages" description = "Easily download, build, install, upgrade, and uninstall Python packages"
category = "main" category = "main"
optional = false optional = false
@ -972,7 +972,7 @@ python-versions = ">=3.5"
[[package]] [[package]]
name = "stripe" name = "stripe"
version = "5.0.0" version = "5.1.0"
description = "Python bindings for the Stripe API" description = "Python bindings for the Stripe API"
category = "main" category = "main"
optional = false optional = false
@ -1350,8 +1350,8 @@ defusedxml = [
{file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"},
] ]
django = [ django = [
{file = "Django-4.1.5-py3-none-any.whl", hash = "sha256:4b214a05fe4c99476e99e2445c8b978c8369c18d4dea8e22ec412862715ad763"}, {file = "Django-4.1.6-py3-none-any.whl", hash = "sha256:c6fe7ebe7c017fe59f1029821dae0acb5a2ddcd6c9a0138fd20a8bfefac914bc"},
{file = "Django-4.1.5.tar.gz", hash = "sha256:ff56ebd7ead0fd5dbe06fe157b0024a7aaea2e0593bb3785fb594cf94dad58ef"}, {file = "Django-4.1.6.tar.gz", hash = "sha256:bceb0fe1a386781af0788cae4108622756cd05e7775448deec04a71ddf87685d"},
] ]
django-allauth = [ django-allauth = [
{file = "django-allauth-0.52.0.tar.gz", hash = "sha256:e380661ceafe55734c40102819ae720403027036f28e9f9827f0faeddc24ed5f"}, {file = "django-allauth-0.52.0.tar.gz", hash = "sha256:e380661ceafe55734c40102819ae720403027036f28e9f9827f0faeddc24ed5f"},
@ -1796,16 +1796,16 @@ rjsmin = [
{file = "rjsmin-1.2.1.tar.gz", hash = "sha256:1f982be8e011438777a94307279b40134a3935fc0f079312ee299725b8af5411"}, {file = "rjsmin-1.2.1.tar.gz", hash = "sha256:1f982be8e011438777a94307279b40134a3935fc0f079312ee299725b8af5411"},
] ]
selenium = [ selenium = [
{file = "selenium-4.7.2-py3-none-any.whl", hash = "sha256:06a1c7d9f313130b21c3218ddd8852070d0e7419afdd31f96160cd576555a5ce"}, {file = "selenium-4.8.0-py3-none-any.whl", hash = "sha256:20f28ee4ea9b273b4112a7df5276ebb3052f79ff6eff42a564db6143e5926683"},
{file = "selenium-4.7.2.tar.gz", hash = "sha256:3aefa14a28a42e520550c1cd0f29cf1d566328186ea63aa9a3e01fb265b5894d"}, {file = "selenium-4.8.0.tar.gz", hash = "sha256:fee36724d6cf0b18c73781bb8ec7be4a35ab1e2564e64e64e64da75e50e052af"},
] ]
sentry-sdk = [ sentry-sdk = [
{file = "sentry-sdk-1.13.0.tar.gz", hash = "sha256:72da0766c3069a3941eadbdfa0996f83f5a33e55902a19ba399557cfee1dddcc"}, {file = "sentry-sdk-1.14.0.tar.gz", hash = "sha256:273fe05adf052b40fd19f6d4b9a5556316807246bd817e5e3482930730726bb0"},
{file = "sentry_sdk-1.13.0-py2.py3-none-any.whl", hash = "sha256:b7ff6318183e551145b5c4766eb65b59ad5b63ff234dffddc5fb50340cad6729"}, {file = "sentry_sdk-1.14.0-py2.py3-none-any.whl", hash = "sha256:72c00322217d813cf493fe76590b23a757e063ff62fec59299f4af7201dd4448"},
] ]
setuptools = [ setuptools = [
{file = "setuptools-66.1.1-py3-none-any.whl", hash = "sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b"}, {file = "setuptools-67.1.0-py3-none-any.whl", hash = "sha256:a7687c12b444eaac951ea87a9627c4f904ac757e7abdc5aac32833234af90378"},
{file = "setuptools-66.1.1.tar.gz", hash = "sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8"}, {file = "setuptools-67.1.0.tar.gz", hash = "sha256:e261cdf010c11a41cb5cb5f1bf3338a7433832029f559a6a7614bd42a967c300"},
] ]
six = [ six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
@ -1824,8 +1824,8 @@ sqlparse = [
{file = "sqlparse-0.4.3.tar.gz", hash = "sha256:69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268"}, {file = "sqlparse-0.4.3.tar.gz", hash = "sha256:69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268"},
] ]
stripe = [ stripe = [
{file = "stripe-5.0.0-py2.py3-none-any.whl", hash = "sha256:50f69a5fc9cd6f7629861b80ea70a3c6da0c76401ddc159474f2d45fab9215d6"}, {file = "stripe-5.1.0-py2.py3-none-any.whl", hash = "sha256:e25e5fe34afa9adda1b64be1852c3081d6b3f198fccd718fc9936dbcd2c175a7"},
{file = "stripe-5.0.0.tar.gz", hash = "sha256:bdc8c5ee8e6b53c4767bbe720752cedb8af91db46ad96e511edd0fb74964ac5d"}, {file = "stripe-5.1.0.tar.gz", hash = "sha256:f2d91d8e3daa4f385403c6cdbb6b38f5482b2de82b6e834a300b36352380e68e"},
] ]
sympy = [ sympy = [
{file = "sympy-1.11.1-py3-none-any.whl", hash = "sha256:938f984ee2b1e8eae8a07b884c8b7a1146010040fccddc6539c54f401c8f6fcf"}, {file = "sympy-1.11.1-py3-none-any.whl", hash = "sha256:938f984ee2b1e8eae8a07b884c8b7a1146010040fccddc6539c54f401c8f6fcf"},

View File

@ -103,8 +103,8 @@ MIDDLEWARE = [
] ]
if DEBUG: if DEBUG:
INSTALLED_APPS + ['debug_toolbar'] INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE + ['debug_toolbar.middleware.DebugToolbarMiddleware'] MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
ROOT_URLCONF = 'ptcoffee.urls' ROOT_URLCONF = 'ptcoffee.urls'

View File

@ -722,6 +722,15 @@ article + article {
gap: 1rem; gap: 1rem;
} }
.product__figure img {
max-height: 400px;
}
.product__item button {
grid-column: span 2;
align-self: flex-end;
}
.product__item h3, .product__item h3,
.product__info h1 { .product__info h1 {
/*text-decoration: underline;*/ /*text-decoration: underline;*/
@ -753,6 +762,10 @@ article + article {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
.product__item button {
grid-column: span 1;
}
.product__figure { .product__figure {
grid-row: 1; grid-row: 1;
justify-self: center; justify-self: center;
@ -770,12 +783,10 @@ article + article {
.subscription-coffee { .subscription-coffee {
display: flex; display: grid;
gap: 2rem; gap: 2rem;
overflow-x: scroll; grid-template-columns: repeat(4, 1fr);
padding: 1rem; padding: 1rem;
border-right: var(--default-border);
border-left: var(--default-border);
} }
.subscription-coffee div { .subscription-coffee div {
@ -783,13 +794,16 @@ article + article {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
gap: 1rem;
} }
.subscription-coffee img { .subscription-coffee img {
max-height: 300px; max-height: 300px;
} }
.subscription-coffee .product__desc {
flex-grow: 2;
}
.subscription-coffee input[type=number] { .subscription-coffee input[type=number] {
width: 100%; width: 100%;
} }
@ -817,10 +831,19 @@ article + article {
visibility: visible; visibility: visible;
} }
@media screen and (max-width: 900px) {
.subscription-coffee {
grid-template-columns: repeat(2, 1fr);
}
}
@media screen and (max-width: 600px) { @media screen and (max-width: 600px) {
.subscription-products { .subscription-products {
flex-direction: column; flex-direction: column;
} }
.subscription-coffee {
grid-template-columns: 1fr;
}
} }

View File

@ -24,8 +24,9 @@
<div> <div>
<h3>{{ product.name }}</h3> <h3>{{ product.name }}</h3>
<h5>{{ product.subtitle }}</h5> <h5>{{ product.subtitle }}</h5>
<p>{{product.description|truncatewords:20}}</p> <p>{{product.description}}</p>
</div> </div>
<button>Shop now</button>
</a> </a>
{% endfor %} {% endfor %}
</section> </section>

View File

@ -25,8 +25,9 @@
<div> <div>
<h3>{{ product.name }}</h3> <h3>{{ product.name }}</h3>
<h5>{{ product.subtitle }}</h5> <h5>{{ product.subtitle }}</h5>
<p>{{product.description|truncatewords:20}}</p> <p>{{product.description}}</p>
</div> </div>
<button>Shop now</button>
</a> </a>
{% endfor %} {% endfor %}
</section> </section>

View File

@ -30,16 +30,17 @@
</section> </section>
<section class="cart__list"> <section class="cart__list">
<h3>Items</h3> <h3>Items</h3>
<h4>Size: {{ sub_cart.size }}</h4> <a href="{% url 'storefront:subscription-form' %}" class="btn">Edit items</a>
<h4>Grind: {{ sub_cart.grind }}</h4>
{% for item in sub_cart.items %} {% for item in sub_cart.items %}
<div class="cart__item"> <div class="cart__item">
{% with product=item.product %} {% with product=item.product %}
<figure> <figure class="item__figure">
<img src="{{product.get_first_img.image.url}}" alt="{{product.get_first_img.image}}"> <img class="item__image" src="{{product.get_first_img.image.url}}" alt="{{product.get_first_img.image}}">
</figure> </figure>
<div> <div class="item__info">
<h2>{{ item.quantity }} &times; {{product.name}}</h2> <h4>{{ item.quantity }} &times; {{product.name}}</h4>
<h5>Size: {{ sub_cart.size }}</h5>
<h5>Grind: {{ sub_cart.grind }}</h5>
</div> </div>
{% endwith %} {% endwith %}
</div> </div>

View File

@ -21,8 +21,18 @@
<figure class="product__figure"> <figure class="product__figure">
<img class="product__image" src="{{ product.get_first_img.image.url }}"> <img class="product__image" src="{{ product.get_first_img.image.url }}">
</figure> </figure>
<strong>{{ product }}</strong> <div class="product__desc">
<input type="number" min="0" max="20" pattern="[0-9]*" data-id="{{ product.pk }}" name="product_{{ product.name }}" placeholder="Quantity"> <h3>{{ product.name }}</h3>
<p>{{product.description}}</p>
</div>
<input
type="number"
min="0" max="20"
pattern="[0-9]*"
data-id="{{ product.pk }}"
name="product_{{ product.name }}"
placeholder="Quantity"
>
</div> </div>
{% endfor %} {% endfor %}
</section> </section>