manager: fix column width of booking check table (#52677)
This commit is contained in:
parent
46cf0f6923
commit
8c2f5ceb4e
|
@ -368,6 +368,20 @@ p.email-subject {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
table.check-bookings {
|
||||
td.booking-username {
|
||||
width: 30%;
|
||||
}
|
||||
td.booking-status {
|
||||
width: 20%;
|
||||
}
|
||||
td.booking-actions {
|
||||
form {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// booking colors
|
||||
$booking-colors: (
|
||||
0: hsl(30, 100%, 46%),
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{% blocktrans with places=object.places booked_places=booked|length %}Bookings ({{ booked_places }}/{{ places }}){% endblocktrans %}
|
||||
</h3>
|
||||
<div>
|
||||
<table class="main">
|
||||
<table class="main check-bookings">
|
||||
<tbody>
|
||||
{% for booking in booked %}
|
||||
<tr class="booking">
|
||||
|
|
|
@ -1,27 +1,32 @@
|
|||
{% load i18n %}
|
||||
|
||||
<td>{{ booking.user_name|default:booking.label|default:_('Unknown') }}</td>
|
||||
<td>
|
||||
{% trans "Status:" %} {{ booking.user_was_present|yesno:_('Present,Absent,Unknown') }}
|
||||
{% if booking.user_was_present is False %}
|
||||
<br />
|
||||
{{ booking.user_absence_reason }}
|
||||
<td class="booking-username">{{ booking.user_name|default:booking.label|default:_('Unknown') }}</td>
|
||||
<td class="booking-status">
|
||||
{{ booking.user_was_present|yesno:_('Present,Absent,-') }}
|
||||
{% if booking.user_was_present is False and booking.user_absence_reason %}
|
||||
({{ booking.user_absence_reason }})
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if booking.user_was_present is not True %}
|
||||
<td class="booking-actions" data-booking-id="{{ booking.id }}">
|
||||
<form method="post" action="{% url 'chrono-manager-booking-presence' pk=agenda.pk booking_pk=booking.pk %}">
|
||||
{% csrf_token %}
|
||||
<button class="submit-button">{% trans "Presence" %}</button>
|
||||
<button class="submit-button"
|
||||
{% if booking.user_was_present is True %}disabled{% endif %}
|
||||
>{% trans "Presence" %}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if booking.user_was_present is not False or booking.form.reason.field.choices.1 %}
|
||||
<form method="post" action="{% url 'chrono-manager-booking-absence' pk=agenda.pk booking_pk=booking.pk %}">
|
||||
{% csrf_token %}
|
||||
<button class="submit-button"
|
||||
{% if booking.user_was_present is False %}disabled{% endif %}
|
||||
>{% trans "Absence" %}</button>
|
||||
{% if booking.form.reason.field.choices.1 %}{{ booking.form.reason }}{% endif %}
|
||||
<button class="submit-button">{% if booking.user_was_present is False %}{% trans "Set absence reason" %}{% else %}{% trans "Absence" %}{% endif %}</button>
|
||||
<script>
|
||||
$(function() {
|
||||
$('td[data-booking-id="{{ booking.id }}"] select').on('change',
|
||||
function() {
|
||||
$(this).parents('form').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</form>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
|
|
@ -1172,11 +1172,10 @@ def test_event_check_booking(app, admin_user):
|
|||
|
||||
login(app)
|
||||
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
||||
assert 'Status: Unknown' in resp
|
||||
assert resp.pyquery.find('td.booking-status')[0].text.strip() == '-'
|
||||
assert len(resp.pyquery.find('td.booking-actions button[disabled]')) == 0
|
||||
assert '/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Presence' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Absence' in resp
|
||||
|
||||
# set as present
|
||||
token = resp.context['csrf_token']
|
||||
|
@ -1184,10 +1183,9 @@ def test_event_check_booking(app, admin_user):
|
|||
'/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk),
|
||||
params={'csrfmiddlewaretoken': token},
|
||||
).follow()
|
||||
assert 'Status: Present' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk) not in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Absence' in resp
|
||||
assert resp.pyquery.find('td.booking-status')[0].text.strip() == 'Present'
|
||||
assert len(resp.pyquery.find('td.booking-actions button[disabled]')) == 1
|
||||
assert resp.pyquery.find('td.booking-actions button[disabled]')[0].text == 'Presence'
|
||||
booking.refresh_from_db()
|
||||
assert booking.user_was_present is True
|
||||
assert booking.user_absence_reason == ''
|
||||
|
@ -1197,10 +1195,9 @@ def test_event_check_booking(app, admin_user):
|
|||
'/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk),
|
||||
params={'csrfmiddlewaretoken': token},
|
||||
).follow()
|
||||
assert 'Status: Absent' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Presence' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) not in resp
|
||||
assert resp.pyquery.find('td.booking-status')[0].text.strip() == 'Absent'
|
||||
assert len(resp.pyquery.find('td.booking-actions button[disabled]')) == 1
|
||||
assert resp.pyquery.find('td.booking-actions button[disabled]')[0].text == 'Absence'
|
||||
booking.refresh_from_db()
|
||||
assert booking.user_was_present is False
|
||||
assert booking.user_absence_reason == ''
|
||||
|
@ -1208,12 +1205,11 @@ def test_event_check_booking(app, admin_user):
|
|||
agenda.absence_reasons_group = group
|
||||
agenda.save()
|
||||
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) not in resp
|
||||
assert len(resp.pyquery.find('td.booking-actions select')) == 0
|
||||
|
||||
AbsenceReason.objects.create(label='Foo reason', group=group)
|
||||
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Set absence reason' in resp
|
||||
assert len(resp.pyquery.find('td.booking-actions select')) == 1
|
||||
|
||||
# set as absent with reason
|
||||
resp = app.post(
|
||||
|
@ -1259,10 +1255,9 @@ def test_event_check_booking_ajax(app, admin_user):
|
|||
extra_environ={'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'},
|
||||
)
|
||||
assert '<tr>' not in resp # because this is a fragment
|
||||
assert 'Status: Present' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk) not in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Absence' in resp
|
||||
assert resp.pyquery.find('td.booking-status')[0].text.strip() == 'Present'
|
||||
assert len(resp.pyquery.find('td.booking-actions button[disabled]')) == 1
|
||||
assert resp.pyquery.find('td.booking-actions button[disabled]')[0].text == 'Presence'
|
||||
|
||||
# set as absent
|
||||
resp = app.post(
|
||||
|
@ -1271,9 +1266,6 @@ def test_event_check_booking_ajax(app, admin_user):
|
|||
extra_environ={'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'},
|
||||
)
|
||||
assert '<tr>' not in resp # because this is a fragment
|
||||
assert 'Status: Absent' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/presence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Presence' in resp
|
||||
assert '/manage/agendas/%s/bookings/%s/absence' % (agenda.pk, booking.pk) in resp
|
||||
assert 'Set absence reason' in resp
|
||||
assert len(resp.pyquery.find('td.booking-actions button[disabled]')) == 1
|
||||
assert resp.pyquery.find('td.booking-actions button[disabled]')[0].text.startswith('Absence')
|
||||
assert '<option value="Foo reason" selected>Foo reason</option>' in resp
|
||||
|
|
Loading…
Reference in New Issue