Files
shoppy/web/urls.py
T

119 lines
3.4 KiB
Python

from django.conf.urls.i18n import i18n_patterns
from django.contrib.auth.decorators import login_required
from django.urls import path
from django.utils.text import gettext_lazy as _
from web.views.components import (
cart,
cart_dropdown,
list_customer_addresses_component,
list_products,
list_wishlisted_products,
update_customer_address,
user_info_component,
wishlist_button,
)
from web.views.users import (
login,
logout,
my_account,
register,
reset_password,
reset_password_confirm,
reset_password_email_sent,
)
from web.views.web import (
add_cart_item,
add_to_wishlist,
cart_detail,
category_view,
delete_cart_item,
delete_from_wishlist,
index,
manifest,
order_detail,
orders,
product_detail,
wishlist,
)
app_name = "web"
i18n_resolvers = i18n_patterns(
path("", index, name="index"),
path(
_("wishlist"), login_required(wishlist, login_url=_("/login/")), name="wishlist"
),
path(_("categories/<str:slug>/"), category_view, name="category_view"),
path(_("products/<int:pk>/<str:slug>/"), product_detail, name="product_detail"),
path(_("cart/"), cart_detail, name="cart_detail"),
path(_("orders/"), login_required(orders, login_url=_("/login/")), name="orders"),
path(_("order/<str:uuid>/"), order_detail, name="order"),
# users
path(_("login/"), login, name="login"),
path(_("logout/"), logout, name="logout"),
path(_("register/"), register, name="register"),
path(_("reset-password/"), reset_password, name="reset_password"),
path(
_("reset-password/<uidb64>/<token>/"),
reset_password_confirm,
name="reset_password_confirm",
),
path(
_("reset-password/email-sent/"),
reset_password_email_sent,
name="reset_password_email_sent",
),
path(
_("my-account/"),
login_required(my_account, login_url=_("/login/")),
name="my_account",
),
)
urlpatterns = [
# components
path("web/components/products/", list_products, name="list_products"),
path(
"web/components/wishlist/",
list_wishlisted_products,
name="list_wishlisted_products",
),
path("web/components/cart-dropdown/", cart_dropdown, name="cart_dropdown"),
path("web/components/cart/", cart, name="cart"),
path(
"web/components/wishlist-button/<int:pk>/",
wishlist_button,
name="wishlist_button",
),
path(
"web/components/user-info/",
login_required(user_info_component, login_url=_("/login/")),
name="user_info_component",
),
# api
path("web/add-cart-item/", add_cart_item, name="add_cart_item"),
path("web/delete-cart-item/<int:pk>/", delete_cart_item, name="delete_cart_item"),
path("web/add-to-wishlist/", add_to_wishlist, name="add_to_wishlist"),
path(
"web/delete-from-wishlist/<int:pk>/",
delete_from_wishlist,
name="delete_from_wishlist",
),
path(
"web/customer-address/<int:pk>/",
update_customer_address,
name="update_customer_address",
),
path(
"web/customer-addresses/",
list_customer_addresses_component,
name="list_customer_addresses_component",
),
# manifest
path("manifest.json", manifest, name="manifest_json"),
]
for resolver in i18n_resolvers:
urlpatterns += resolver.url_patterns