Fix get_operator on non bar counters and better display of counter with no products

This commit is contained in:
Antoine Bartuccio 2024-12-22 13:36:50 +01:00
parent b8430adc50
commit 5079938a5b
2 changed files with 38 additions and 29 deletions

View File

@ -148,33 +148,39 @@
</div>
<div id="products">
<ul>
{% for category in categories.keys() -%}
<li><a href="#cat_{{ category|slugify }}">{{ category }}</a></li>
{%- endfor %}
</ul>
{% for category in categories.keys() -%}
<div id="cat_{{ category|slugify }}">
<h5 class="margin-bottom">{{ category }}</h5>
<div class="row gap-2x">
{% for product in categories[category] -%}
<button class="card shadow" @click="addToBasket('{{ product.id }}', 1)">
<strong class="card-title">{{ product.name }}</strong>
<img
class="card-image"
alt="image de {{ product.name }}"
{% if product.icon %}
src="{{ product.icon.url }}"
{% else %}
src="{{ static('core/img/na.gif') }}"
{% endif %}
/>
<span class="card-content">{{ product.price }} €<br>{{ product.code }}</span>
</button>
{%- endfor %}
</div>
{% if not products %}
<div class="alert alert-red">
{% trans %}No products available on this counter for this user{% endtrans %}
</div>
{%- endfor %}
{% else %}
<ul>
{% for category in categories.keys() -%}
<li><a href="#cat_{{ category|slugify }}">{{ category }}</a></li>
{%- endfor %}
</ul>
{% for category in categories.keys() -%}
<div id="cat_{{ category|slugify }}">
<h5 class="margin-bottom">{{ category }}</h5>
<div class="row gap-2x">
{% for product in categories[category] -%}
<button class="card shadow" @click="addToBasket('{{ product.id }}', 1)">
<strong class="card-title">{{ product.name }}</strong>
<img
class="card-image"
alt="image de {{ product.name }}"
{% if product.icon %}
src="{{ product.icon.url }}"
{% else %}
src="{{ static('core/img/na.gif') }}"
{% endif %}
/>
<span class="card-content">{{ product.price }} €<br>{{ product.code }}</span>
</button>
{%- endfor %}
</div>
</div>
{%- endfor %}
{% endif %}
</div>
</div>
{% endblock content %}

View File

@ -29,6 +29,7 @@ from django.urls import reverse_lazy
from django.utils.translation import gettext_lazy as _
from django.views.generic import FormView
from django.views.generic.detail import SingleObjectMixin
from ninja.main import HttpRequest
from core.models import User
from core.utils import FormFragmentTemplateData
@ -40,7 +41,9 @@ from counter.views.mixins import CounterTabsMixin
from counter.views.student_card import StudentCardFormView
def get_operator(counter: Counter, customer: Customer) -> User:
def get_operator(request: HttpRequest, counter: Counter, customer: Customer) -> User:
if counter.type != "BAR":
return request.user
if counter.customer_is_barman(customer):
return customer.user
return counter.get_random_barman()
@ -181,7 +184,7 @@ class CounterClick(CounterTabsMixin, CanViewMixin, SingleObjectMixin, FormView):
if len(formset) == 0:
return ret
operator = get_operator(self.object, self.customer)
operator = get_operator(self.request, self.object, self.customer)
with transaction.atomic():
self.request.session["last_basket"] = []
@ -291,7 +294,7 @@ class RefillingCreateView(FormView):
if not self.counter.can_refill():
raise PermissionDenied
self.operator = get_operator(self.counter, self.customer)
self.operator = get_operator(request, self.counter, self.customer)
return super().dispatch(request, *args, **kwargs)