manager: misc improvements to ui/ux of multi-desk management (#18414)

This commit is contained in:
Frédéric Péters 2017-09-03 14:29:41 +02:00
parent f851de07df
commit f28b936028
3 changed files with 40 additions and 28 deletions

View File

@ -40,11 +40,28 @@ h2 span.identifier {
}
.timeperiods {
display: flex;
flex-wrap: wrap;
margin-right: -10px;
}
.timeperiods .timeperiod {
flex: 1 0 auto;
width: 18%;
margin-right: 10px;
position: relative;
}
.timeperiod {
float: left;
display: block;
margin: 10px;
.timeperiods .timeperiod h4 {
margin-top: 0;
}
.timeperiods .timeperiod ul.objects-list {
margin-top: 0;
}
.timeperiods .timeperiod a.add::before {
content: "\f055"; /* plus-circle */
font-family: FontAwesome;
padding-right: 1ex;
}

View File

@ -109,27 +109,24 @@
<div class="timeperiods">
{% for desk in object.desk_set.all %}
<div class="timeperiod">
{% if object.desk_set.count > 1 %}
<h4>
<a href="{% if user_can_manage %}{% url 'chrono-manager-desk-edit' pk=desk.pk %}{% else %}#{% endif %}">
{{ desk.label }}</a>
</h4>
{% endif %}
{% url 'chrono-manager-agenda-add-time-period' agenda_pk=object.pk pk=desk.pk as add_time_period_url %}
{% if desk.timeperiod_set.count %}
<ul class="objects-list single-links">
{% for time_period in desk.timeperiod_set.all %}
<li><a href="{% if user_can_manage %}{% url 'chrono-manager-time-period-edit' pk=time_period.id %}{% else %}#{% endif %}">
{{time_period.weekday_str}} / {{time_period.start_time}} → {{time_period.end_time}} </a>
</li>
{% endfor %}
<a rel="popup" href="{{add_time_period_url}}">{% trans 'Add' %}</a>
</ul>
{% else %}
<div>
{% trans "This desk doesn't have any time period yet." %} <a rel="popup" href="{{add_time_period_url}}">{% trans "New Time Period" %}</a>
</div>
{% endif %}
<ul class="objects-list single-links">
{% if forloop.counter != 1 or forloop.revcounter != 1 %}
<li><a rel="popup" href="{% if user_can_manage %}{% url 'chrono-manager-desk-edit' pk=desk.id %}{% else %}#{% endif %}">
<strong>{{ desk.label }}</strong>
</a>
{% if user_can_manage %}<a rel="popup" class="delete" href="{% url 'chrono-manager-desk-delete' pk=desk.id %}">{% trans "remove" %}</a>{% endif %}
</li>
{% endif %}
{% for time_period in desk.timeperiod_set.all %}
<li><a rel="popup" href="{% if user_can_manage %}{% url 'chrono-manager-time-period-edit' pk=time_period.id %}{% else %}#{% endif %}">
{{time_period.weekday_str}} / {{time_period.start_time}} → {{time_period.end_time}} </a>
{% if user_can_manage %}<a rel="popup" class="delete" href="{% url 'chrono-manager-time-period-delete' pk=time_period.id %}">{% trans "remove" %}</a>{% endif %}
</li>
{% endfor %}
<li><a class="add" rel="popup" href="{{add_time_period_url}}">{% trans 'Add a time period' %}</a></li>
</ul>
</div>
{% endfor %}
</div>

View File

@ -573,8 +573,7 @@ def test_meetings_agenda_add_time_period(app, admin_user):
desk = Desk.objects.create(agenda=agenda, label='Desk A')
app = login(app)
resp = app.get('/manage/agendas/%s/' % agenda.id, status=200)
assert "This desk doesn't have any time period yet." in resp.body
resp = resp.click('New Time Period')
resp = resp.click('Add a time period')
resp.form['weekday'].select(text='Wednesday')
resp.form['start_time'] = '10:00'
resp.form['end_time'] = '17:00'
@ -639,8 +638,7 @@ def test_meetings_agenda_add_time_period_as_manager(app, manager_user):
app = login(app, username='manager', password='manager')
resp = app.get('/manage/agendas/%d/' % agenda.id)
assert 'New Meeting Type' in resp.content
assert 'New Time Period' in resp.content
assert 'This desk doesn\'t have any time period yet.' in resp.content
assert 'Add a time period' in resp.content
app.get('/manage/agendas/%d/desk/%d/add-time-period' % (agenda.id, desk.id), status=403)
time_period = TimePeriod(desk=desk, weekday=0, start_time=datetime.time(9, 0),
end_time=datetime.time(12, 0))