select delivery

This commit is contained in:
Martin Quarda 2024-10-14 14:33:01 +02:00
parent 7109013592
commit 6919d21758
4 changed files with 22 additions and 6 deletions

View File

@ -24,7 +24,7 @@ from alkatorapi.views import (
invoice, upload_files, invoice, upload_files,
login_status, change_racer, login_status, change_racer,
products, cart_add, cart, cart_delete, products, cart_add, cart, cart_delete,
cart_decrease, cart_buy cart_decrease, cart_buy, select_delivery,
) )
urlpatterns = [ urlpatterns = [
@ -46,5 +46,6 @@ urlpatterns = [
path('api/cart', cart), path('api/cart', cart),
path('api/cart/delete', cart_delete), path('api/cart/delete', cart_delete),
path('api/cart/decrease', cart_decrease), path('api/cart/decrease', cart_decrease),
path('api/cart/buy', cart_buy) path('api/cart/buy', cart_buy),
path('api/cart/select_delivery', select_delivery),
] ]

View File

@ -79,6 +79,7 @@ class Product(models.Model):
class Cart(models.Model): class Cart(models.Model):
user = models.OneToOneField(DjangoUser, on_delete=models.RESTRICT, related_name='cart') user = models.OneToOneField(DjangoUser, on_delete=models.RESTRICT, related_name='cart')
items = models.ManyToManyField(Product, through='CartProduct') items = models.ManyToManyField(Product, through='CartProduct')
address = models.CharField(max_length=120, null=True, blank=True)
class CartProduct(models.Model): class CartProduct(models.Model):

View File

@ -375,7 +375,10 @@ def cart_add(request):
def select_delivery(request): def select_delivery(request):
pass user.cart.address = request.GET['delivery']
user.cart.save()
return HttpResponse('{"status":"success", "reason":"Úspěšně vybraná zásilkovna."}', status=200)
@csrf_exempt @csrf_exempt
@ -392,7 +395,7 @@ def cart_buy(request):
invoice = Invoice( invoice = Invoice(
user=user, user=user,
address=user.profile.address, address=cart.address if cart.adress else user.profile.address,
invoice_id=Invoice.next_invoice_id(), invoice_id=Invoice.next_invoice_id(),
total_price=0, total_price=0,
) )

View File

@ -195,7 +195,19 @@ class Main extends Component {
})); }));
}; };
selectDeliveryCallback(point){ selectDeliveryCallback(point){
console.log(point) fetch(addr_prefix + '/api/cart/select_delivery?delivery='+point.name).then(resp => resp.json()).then(json => {
if(json.status == "failed"){
this.setState({
status_text: json.reason,
status: "failed",
})
}else{
this.setState({
status_text: json.reason,
status: "success",
})
}
});
} }
selectDelivery = () => { selectDelivery = () => {
Packeta.Widget.pick("8599115769fd895b", this.selectDeliveryCallback.bind(this)) Packeta.Widget.pick("8599115769fd895b", this.selectDeliveryCallback.bind(this))
@ -318,7 +330,6 @@ class Main extends Component {
</div>} </div>}
{this.state.page == "#cart" && {this.state.page == "#cart" &&
<div class="container"> <div class="container">
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>