1989 |
1989 |
def test_meetings_agenda_add_time_period(app, admin_user):
|
1990 |
1990 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
1991 |
1991 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
1992 |
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
1992 |
1993 |
MeetingType.objects.create(agenda=agenda, label='Blah')
|
1993 |
1994 |
app = login(app)
|
1994 |
1995 |
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
1995 |
|
resp = resp.click('Add a time period$')
|
|
1996 |
resp = resp.click('Add a time period', index=0)
|
1996 |
1997 |
resp.form['weekdays-2'].checked = True
|
1997 |
1998 |
resp.form['start_time'] = '10:00'
|
1998 |
1999 |
resp.form['end_time'] = '17:00'
|
... | ... | |
2002 |
2003 |
assert TimePeriod.objects.get(desk=desk).start_time.minute == 0
|
2003 |
2004 |
assert TimePeriod.objects.get(desk=desk).end_time.hour == 17
|
2004 |
2005 |
assert TimePeriod.objects.get(desk=desk).end_time.minute == 0
|
|
2006 |
assert desk2.timeperiod_set.exists() is False
|
2005 |
2007 |
resp = resp.follow()
|
2006 |
2008 |
|
2007 |
2009 |
# add a second time period
|
... | ... | |
2023 |
2025 |
resp2 = resp2.form.submit()
|
2024 |
2026 |
assert 'End time must come after start time.' in resp2.text
|
2025 |
2027 |
|
2026 |
|
# and edit
|
2027 |
|
resp = resp.click(u'Wednesday / 10 a.m. → 5 p.m.')
|
2028 |
|
assert 'Edit Time Period' in resp.text
|
2029 |
|
resp.form['start_time'] = '9:00'
|
2030 |
|
resp = resp.form.submit()
|
2031 |
|
resp = resp.follow()
|
2032 |
|
assert TimePeriod.objects.get(desk=desk, weekday=2).start_time.hour == 9
|
2033 |
|
|
2034 |
|
# and edit with inverted start/end
|
2035 |
|
resp2 = resp.click(u'Wednesday / 9 a.m. → 5 p.m.')
|
2036 |
|
resp2.form['start_time'] = '18:00'
|
2037 |
|
resp2 = resp2.form.submit()
|
2038 |
|
assert 'End time must come after start time.' in resp2.text
|
2039 |
|
|
2040 |
2028 |
# and add same time periods on multiple days
|
2041 |
2029 |
resp = resp.click('Add a time period', index=0)
|
2042 |
2030 |
resp.form['weekdays-4'].checked = True
|
... | ... | |
2047 |
2035 |
assert TimePeriod.objects.filter(desk=desk).count() == 4
|
2048 |
2036 |
|
2049 |
2037 |
|
2050 |
|
def test_meetings_agenda_delete_time_period(app, admin_user):
|
2051 |
|
agenda = Agenda(label=u'Foo bar', kind='meetings')
|
2052 |
|
agenda.save()
|
2053 |
|
|
2054 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
2055 |
|
|
|
2038 |
def test_meetings_agenda_add_time_period_desk_simple_management(app, admin_user):
|
|
2039 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
2056 |
2040 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
2057 |
|
time_period = TimePeriod(
|
2058 |
|
desk=desk, weekday=2, start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
|
2059 |
|
)
|
2060 |
|
time_period.save()
|
|
2041 |
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
|
2042 |
assert agenda.is_available_for_simple_management() is True
|
2061 |
2043 |
|
2062 |
2044 |
app = login(app)
|
2063 |
|
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
2064 |
|
resp = resp.click('Wednesday')
|
2065 |
|
resp = resp.click('Delete')
|
2066 |
|
resp = resp.form.submit()
|
2067 |
|
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
|
2068 |
|
assert TimePeriod.objects.count() == 0
|
|
2045 |
resp = app.get('/manage/agendas/%s/desk/%s/add-time-period' % (agenda.pk, desk.pk))
|
|
2046 |
resp.form['weekdays-0'].checked = True
|
|
2047 |
resp.form['start_time'] = '10:00'
|
|
2048 |
resp.form['end_time'] = '13:00'
|
|
2049 |
resp.form.submit()
|
|
2050 |
|
|
2051 |
assert TimePeriod.objects.filter(desk=desk).count() == 1
|
|
2052 |
assert TimePeriod.objects.filter(desk=desk2).count() == 1
|
|
2053 |
assert agenda.is_available_for_simple_management() is True
|
2069 |
2054 |
|
2070 |
2055 |
|
2071 |
2056 |
def test_meetings_agenda_add_time_period_on_missing_desk(app, admin_user):
|
2072 |
2057 |
app = login(app)
|
2073 |
|
agenda = Agenda(label=u'Foo bar', kind='meetings')
|
2074 |
|
agenda.save()
|
2075 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
2076 |
|
app.get('/manage/agendas/1/desk/777/add-time-period', status=404)
|
|
2058 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
|
2059 |
app.get('/manage/agendas/%s/desk/0/add-time-period' % agenda.pk, status=404)
|
2077 |
2060 |
|
2078 |
2061 |
|
2079 |
2062 |
def test_meetings_agenda_add_time_period_as_manager(app, manager_user):
|
... | ... | |
2107 |
2090 |
app.get('/manage/timeperiods/%d/edit' % time_period.id, status=200)
|
2108 |
2091 |
|
2109 |
2092 |
|
|
2093 |
def test_meetings_agenda_edit_time_period(app, admin_user):
|
|
2094 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
|
2095 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2096 |
time_period = TimePeriod.objects.create(
|
|
2097 |
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
|
2098 |
)
|
|
2099 |
desk2 = desk.duplicate()
|
|
2100 |
time_period2 = desk2.timeperiod_set.get()
|
|
2101 |
|
|
2102 |
app = login(app)
|
|
2103 |
# edit
|
|
2104 |
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
|
2105 |
resp = resp.click('Monday / 9 a.m. → noon', index=0)
|
|
2106 |
assert 'Edit Time Period' in resp.text
|
|
2107 |
resp.form['start_time'] = '10:00'
|
|
2108 |
resp = resp.form.submit()
|
|
2109 |
resp = resp.follow()
|
|
2110 |
time_period.refresh_from_db()
|
|
2111 |
assert time_period.start_time.hour == 10
|
|
2112 |
time_period2.refresh_from_db()
|
|
2113 |
assert time_period2.start_time.hour == 9
|
|
2114 |
|
|
2115 |
# edit with inverted start/end
|
|
2116 |
resp2 = resp.click('Monday / 10 a.m. → noon')
|
|
2117 |
resp2.form['start_time'] = '18:00'
|
|
2118 |
resp2 = resp2.form.submit()
|
|
2119 |
assert 'End time must come after start time.' in resp2.text
|
|
2120 |
|
|
2121 |
|
|
2122 |
def test_meetings_agenda_edit_time_period_desk_simple_management(app, admin_user):
|
|
2123 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
|
2124 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2125 |
time_period = TimePeriod.objects.create(
|
|
2126 |
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
|
2127 |
)
|
|
2128 |
desk2 = desk.duplicate()
|
|
2129 |
time_period2 = desk2.timeperiod_set.get()
|
|
2130 |
assert agenda.is_available_for_simple_management() is True
|
|
2131 |
|
|
2132 |
app = login(app)
|
|
2133 |
resp = app.get('/manage/timeperiods/%s/edit' % time_period.pk)
|
|
2134 |
resp.form['weekday'] = 3
|
|
2135 |
resp.form['start_time'] = '10:00'
|
|
2136 |
resp.form['end_time'] = '11:00'
|
|
2137 |
resp.form.submit()
|
|
2138 |
time_period.refresh_from_db()
|
|
2139 |
time_period2.refresh_from_db()
|
|
2140 |
assert time_period.weekday == 3
|
|
2141 |
assert time_period.start_time.hour == 10
|
|
2142 |
assert time_period.end_time.hour == 11
|
|
2143 |
assert time_period2.weekday == 3
|
|
2144 |
assert time_period2.start_time.hour == 10
|
|
2145 |
assert time_period2.end_time.hour == 11
|
|
2146 |
assert agenda.is_available_for_simple_management() is True
|
|
2147 |
|
|
2148 |
# should not happen: corresponding time period does not exist
|
|
2149 |
time_period2.delete()
|
|
2150 |
resp = app.get('/manage/timeperiods/%s/edit' % time_period.pk)
|
|
2151 |
resp.form['weekday'] = 3
|
|
2152 |
resp.form['start_time'] = '10:00'
|
|
2153 |
resp.form['end_time'] = '11:00'
|
|
2154 |
# no error
|
|
2155 |
resp.form.submit()
|
|
2156 |
time_period.refresh_from_db()
|
|
2157 |
assert time_period.weekday == 3
|
|
2158 |
assert time_period.start_time.hour == 10
|
|
2159 |
assert time_period.end_time.hour == 11
|
|
2160 |
|
|
2161 |
|
|
2162 |
def test_meetings_agenda_delete_time_period(app, admin_user):
|
|
2163 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
|
2164 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2165 |
TimePeriod.objects.create(
|
|
2166 |
desk=desk, weekday=2, start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
|
|
2167 |
)
|
|
2168 |
desk.duplicate()
|
|
2169 |
assert TimePeriod.objects.count() == 2
|
|
2170 |
|
|
2171 |
app = login(app)
|
|
2172 |
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
|
2173 |
resp = resp.click('Wednesday', index=0)
|
|
2174 |
resp = resp.click('Delete')
|
|
2175 |
resp = resp.form.submit()
|
|
2176 |
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
|
|
2177 |
assert TimePeriod.objects.count() == 1
|
|
2178 |
|
|
2179 |
|
|
2180 |
def test_meetings_agenda_delete_time_period_desk_simple_management(app, admin_user):
|
|
2181 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
|
2182 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2183 |
time_period = TimePeriod.objects.create(
|
|
2184 |
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
|
2185 |
)
|
|
2186 |
desk.duplicate()
|
|
2187 |
assert TimePeriod.objects.count() == 2
|
|
2188 |
assert agenda.is_available_for_simple_management() is True
|
|
2189 |
|
|
2190 |
app = login(app)
|
|
2191 |
resp = app.get('/manage/timeperiods/%s/delete' % time_period.pk)
|
|
2192 |
resp.form.submit()
|
|
2193 |
assert TimePeriod.objects.count() == 0
|
|
2194 |
assert agenda.is_available_for_simple_management() is True
|
|
2195 |
|
|
2196 |
# should not happen: corresponding time period does not exist
|
|
2197 |
time_period = TimePeriod.objects.create(
|
|
2198 |
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
|
2199 |
)
|
|
2200 |
resp = app.get('/manage/timeperiods/%s/delete' % time_period.pk)
|
|
2201 |
resp.form.submit()
|
|
2202 |
assert TimePeriod.objects.count() == 0
|
|
2203 |
|
|
2204 |
|
2110 |
2205 |
def test_meetings_agenda_add_desk(app, admin_user):
|
2111 |
2206 |
app = login(app)
|
2112 |
2207 |
resp = app.get('/manage/', status=200)
|
2113 |
|
-
|