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,6 +148,11 @@
</div>
<div id="products">
{% if not products %}
<div class="alert alert-red">
{% trans %}No products available on this counter for this user{% endtrans %}
</div>
{% else %}
<ul>
{% for category in categories.keys() -%}
<li><a href="#cat_{{ category|slugify }}">{{ category }}</a></li>
@ -175,6 +180,7 @@
</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)