1266 |
1266 |
agenda.save()
|
1267 |
1267 |
resp = app.get('/manage/agendas/%s/%d/%d/%d/' % (
|
1268 |
1268 |
agenda.id, date.year, date.month, date.day), status=200)
|
|
1269 |
|
|
1270 |
|
|
1271 |
@mock.patch('chrono.manager.forms.now', lambda: datetime.datetime(2017, 5, 20, 10, 23))
|
|
1272 |
def test_prevent_time_period_changes_when_bookings_exist(app, admin_user):
|
|
1273 |
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
|
1274 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
1275 |
meeting_type = MeetingType(agenda=agenda, label='Blah', duration=30)
|
|
1276 |
meeting_type.save()
|
|
1277 |
timeperiod = TimePeriod.objects.create(
|
|
1278 |
weekday=1, desk=desk, start_time=datetime.time(8, 00), end_time=datetime.time(11, 0))
|
|
1279 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1280 |
start_datetime=make_aware(datetime.datetime(2017, 5, 22, 8, 30)))
|
|
1281 |
Booking.objects.create(event=event)
|
|
1282 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1283 |
start_datetime=make_aware(datetime.datetime(2017, 5, 23, 8, 30)))
|
|
1284 |
Booking.objects.create(event=event)
|
|
1285 |
login(app)
|
|
1286 |
agenda_url = '/manage/agendas/%d/settings' % agenda.pk
|
|
1287 |
timeperiod_edit_link = "/manage/timeperiods/%d/edit" % timeperiod.pk
|
|
1288 |
# change time period weekday
|
|
1289 |
resp = app.get(agenda_url)
|
|
1290 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1291 |
resp.form['weekday'] = '2'
|
|
1292 |
resp = resp.form.submit()
|
|
1293 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1294 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1295 |
# extend time period start
|
|
1296 |
resp = app.get(agenda_url)
|
|
1297 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1298 |
resp.form['start_time'] = '7:30'
|
|
1299 |
resp = resp.form.submit().follow()
|
|
1300 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 7:30 a.m. \u2192 11 a.m.'
|
|
1301 |
# shorten time period start at booking's bound
|
|
1302 |
resp = app.get(agenda_url)
|
|
1303 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1304 |
resp.form['start_time'] = '8:30'
|
|
1305 |
resp = resp.form.submit().follow()
|
|
1306 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 11 a.m.'
|
|
1307 |
# shorten time period start
|
|
1308 |
resp = app.get(agenda_url)
|
|
1309 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1310 |
resp.form['start_time'] = '9:30'
|
|
1311 |
resp = resp.form.submit()
|
|
1312 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1313 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1314 |
# extend time period end
|
|
1315 |
resp = app.get(agenda_url)
|
|
1316 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1317 |
resp.form['end_time'] = '12:30'
|
|
1318 |
resp = resp.form.submit().follow()
|
|
1319 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 12:30 p.m.'
|
|
1320 |
event = Event.objects.create(agenda=agenda, places=1, desk=desk, meeting_type=meeting_type,
|
|
1321 |
start_datetime=make_aware(datetime.datetime(2017, 5, 23, 11, 30)))
|
|
1322 |
Booking.objects.create(event=event)
|
|
1323 |
# shorten time period end at booking's bound
|
|
1324 |
resp = app.get(agenda_url)
|
|
1325 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1326 |
resp.form['end_time'] = '12:00'
|
|
1327 |
resp = resp.form.submit().follow()
|
|
1328 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 8:30 a.m. \u2192 noon'
|
|
1329 |
# shorten time period end
|
|
1330 |
resp = app.get(agenda_url)
|
|
1331 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1332 |
resp.form['end_time'] = '11:00'
|
|
1333 |
resp = resp.form.submit()
|
|
1334 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1335 |
assert error_message == 'One or several bookings exist within this time period.'
|
|
1336 |
# extend both time period start and end
|
|
1337 |
resp = app.get(agenda_url)
|
|
1338 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1339 |
resp.form['start_time'] = '7:00'
|
|
1340 |
resp.form['end_time'] = '12:30'
|
|
1341 |
resp = resp.form.submit().follow()
|
|
1342 |
assert resp.html.find('a', {'href': timeperiod_edit_link}).text.strip() == u'Tuesday / 7 a.m. \u2192 12:30 p.m.'
|
|
1343 |
# shorten both time period start and end
|
|
1344 |
Booking.objects.create(event=event)
|
|
1345 |
resp = app.get(agenda_url)
|
|
1346 |
resp = resp.click(href=timeperiod_edit_link)
|
|
1347 |
resp.form['start_time'] = '8:00'
|
|
1348 |
resp.form['end_time'] = '11:00'
|
|
1349 |
resp = resp.form.submit()
|
|
1350 |
error_message = resp.html.find('ul', {'class': 'errorlist'}).text.strip()
|
|
1351 |
assert error_message == 'One or several bookings exist within this time period.'
|
1269 |
|
-
|