mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-22 18:38:23 +02:00
Add waiting lists interfaces
Signed-off-by: Emmy D'ANELLO <ynerant@crans.org>
This commit is contained in:
88
apps/note/templates/sheets/waiting_list.html
Normal file
88
apps/note/templates/sheets/waiting_list.html
Normal file
@ -0,0 +1,88 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<div class="card-header text-center">
|
||||
<h1>{{ food.name }}</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="card col-xl-6">
|
||||
<div class="card-header text-center">
|
||||
<h2>{% trans "queued"|capfirst %}{% if queue %} ({{ queue|length }}){% endif %}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
{% for ordered_food in queue %}
|
||||
<li>
|
||||
{{ ordered_food.order.note }}
|
||||
{% if ordered_food.priority %}
|
||||
<span class="badge badge-secondary">{{ ordered_food.priority }}</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% empty %}
|
||||
<div class="alert alert-warning">
|
||||
{% trans "There is no queued order." %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card col-xl-6">
|
||||
<div class="card-header text-center">
|
||||
<h2>{% trans "ready"|capfirst %}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ul>
|
||||
{% for ordered_food in ready %}
|
||||
<li>{{ ordered_food.order.note }}</li>
|
||||
{% empty %}
|
||||
<div class="alert alert-warning">
|
||||
{% trans "There is no ready order." %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>{% trans "Other waiting lists:" %}</h3>
|
||||
<ul>
|
||||
{% for other_food in food.sheet.food_set.all %}
|
||||
{% if other_food != food %}
|
||||
<li>
|
||||
<a href="{% url 'sheets:waiting_list' pk=other_food.pk %}">{{ other_food }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-footer text-center">
|
||||
<a href="{% url 'sheets:queued_list' pk=food.pk %}" class="btn btn-primary">
|
||||
{% trans "Queued orders" %}
|
||||
</a>
|
||||
<a href="{% url 'sheets:ready_list' pk=food.pk %}" class="btn btn-primary">
|
||||
{% trans "Ready orders" %}
|
||||
</a>
|
||||
<a href="{% url 'sheets:sheet_detail' pk=food.sheet_id %}" class="btn btn-secondary">
|
||||
{% trans "Back to note sheet detail" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block extrajavascript %}
|
||||
<script>
|
||||
function reload() {
|
||||
reloadWithTurbolinks()
|
||||
timeout = setTimeout(reload, 15000)
|
||||
}
|
||||
|
||||
if (timeout === undefined)
|
||||
var timeout = setTimeout(reload, 15000)
|
||||
</script>
|
||||
{% endblock %}
|
152
apps/note/templates/sheets/waiting_list_detail.html
Normal file
152
apps/note/templates/sheets/waiting_list_detail.html
Normal file
@ -0,0 +1,152 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card">
|
||||
<div class="card-header text-center">
|
||||
<h1>{{ title }}</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% for of in orders %}
|
||||
<div class="card mb-4">
|
||||
<div class="card-header text-center">
|
||||
<h3>{{ of.order.note }}</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<dl class="row">
|
||||
<dt class="col-xl-3">{% trans 'date'|capfirst %}</dt>
|
||||
<dd class="col-xl-9">{{ of.order.date }}</dd>
|
||||
|
||||
{% if of.number > 1 %}
|
||||
<dt class="col-xl-3">{% trans 'order number'|capfirst %}</dt>
|
||||
<dd class="col-xl-9">{{ of.number }}</dd>
|
||||
{% endif %}
|
||||
|
||||
{% if of.priority %}
|
||||
<dt class="col-xl-3">{% trans 'priority request'|capfirst %}</dt>
|
||||
<dd class="col-xl-9">{{ of.priority }}</dd>
|
||||
{% endif %}
|
||||
|
||||
{% if of.remark %}
|
||||
<dt class="col-xl-3">{% trans 'remark'|capfirst %}</dt>
|
||||
<dd class="col-xl-9">{{ of.remark }}</dd>
|
||||
{% endif %}
|
||||
|
||||
{% if of.options.count %}
|
||||
<dt class="col-xl-3">{% trans 'options'|capfirst %}</dt>
|
||||
<dd class="col-xl-9">{{ of.options.all|join:', ' }}</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
</div>
|
||||
<div class="card-footer text-center">
|
||||
{% if list_type != 'READY' %}
|
||||
<a href="#" class="btn btn-success" onclick="setOrderStatus({{ of.pk }}, 'READY')">
|
||||
{% trans "Mark as ready" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'SERVED' %}
|
||||
<a href="#" class="btn btn-primary" onclick="setOrderStatus({{ of.pk }}, 'SERVED')">
|
||||
{% trans "Mark as served" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'QUEUED' %}
|
||||
<a href="#" class="btn btn-warning" onclick="setOrderStatus({{ of.pk }}, 'QUEUED')">
|
||||
{% trans "Re-queue" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'CANCELED' %}
|
||||
<a href="#" class="btn btn-danger" onclick="setOrderStatus({{ of.pk }}, 'CANCELED')">
|
||||
{% trans "Cancel" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<div class="alert alert-warning">
|
||||
{% trans "There is no queued order." %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mt-5">
|
||||
<div class="card-body">
|
||||
<h3>{% trans "Other waiting lists:" %}</h3>
|
||||
<ul>
|
||||
{% for other_food in food.sheet.food_set.all %}
|
||||
{% if other_food != food %}
|
||||
<li>
|
||||
{% if list_type == 'QUEUED' %}
|
||||
<a href="{% url 'sheets:queued_list' pk=other_food.pk %}">{{ other_food }}</a>
|
||||
{% else %}
|
||||
<a href="{% url 'sheets:ready_list' pk=other_food.pk %}">{{ other_food }}</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card-footer text-center">
|
||||
{% if list_type != 'QUEUED' %}
|
||||
<a href="{% url 'sheets:queued_list' pk=food.pk %}" class="btn btn-primary">
|
||||
{% trans "Queued orders" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'READY' %}
|
||||
<a href="{% url 'sheets:ready_list' pk=food.pk %}" class="btn btn-success">
|
||||
{% trans "Ready orders" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'SERVED' %}
|
||||
<a href="{% url 'sheets:served_list' pk=food.pk %}" class="btn btn-secondary">
|
||||
{% trans "Served orders" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if list_type != 'CANCELED' %}
|
||||
<a href="{% url 'sheets:canceled_list' pk=food.pk %}" class="btn btn-danger">
|
||||
{% trans "Canceled orders" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="{% url 'sheets:waiting_list' pk=food.pk %}" class="btn btn-primary">
|
||||
{% trans "Waiting list" %}
|
||||
</a>
|
||||
<a href="{% url 'sheets:sheet_detail' pk=food.sheet_id %}" class="btn btn-secondary">
|
||||
{% trans "Back to note sheet detail" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block extrajavascript %}
|
||||
<script>
|
||||
function reload() {
|
||||
reloadWithTurbolinks()
|
||||
timeout = setTimeout(reload, 15000)
|
||||
}
|
||||
|
||||
if (timeout === undefined)
|
||||
var timeout = setTimeout(reload, 15000)
|
||||
|
||||
function setOrderStatus(ordered_food_id, status) {
|
||||
fetch('/api/sheets/orderedfood/' + ordered_food_id + '/', {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify({
|
||||
status: status,
|
||||
served_date: status === 'QUEUED' ? null : new Date().toISOString(),
|
||||
}),
|
||||
headers: {
|
||||
'Content-Type': "application/json; charset=UTF-8",
|
||||
'X-CSRFTOKEN': "{{ csrf_token }}"
|
||||
}
|
||||
}).then(response => response.json()).then(response => {
|
||||
if ('detail' in response)
|
||||
addMsg("{% trans "An error occurred" %}" + " : " + response['detail'], "danger")
|
||||
else {
|
||||
clearTimeout(timeout)
|
||||
reload()
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user