926 |
926 |
source = default_desk.timeperiodexceptionsource_set.first()
|
927 |
927 |
assert source.enabled
|
928 |
928 |
|
929 |
|
resp = resp.click('New Desk')
|
|
929 |
agenda.desk_simple_management = False
|
|
930 |
agenda.save()
|
|
931 |
resp = app.get('/manage/agendas/%s/add-desk' % agenda.pk)
|
930 |
932 |
resp.form['label'] = 'Desk A'
|
931 |
933 |
resp = resp.form.submit().follow()
|
932 |
934 |
|
... | ... | |
2115 |
2117 |
assert Desk.objects.count() == 1
|
2116 |
2118 |
assert str(Desk.objects.first()) == 'Desk 1'
|
2117 |
2119 |
agenda = Agenda.objects.get(slug='foo-bar')
|
2118 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
|
2120 |
agenda.desk_simple_management = False
|
|
2121 |
agenda.save()
|
2119 |
2122 |
|
2120 |
2123 |
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
2121 |
2124 |
resp = resp.click('New Desk')
|
... | ... | |
2135 |
2138 |
new_desk = Desk.objects.latest('pk')
|
2136 |
2139 |
assert new_desk.timeperiod_set.count() == 0
|
2137 |
2140 |
|
2138 |
|
resp = resp.click('Desk A', index=1)
|
|
2141 |
# unknown pk
|
|
2142 |
app.get('/manage/agendas/0/add-desk', status=404)
|
|
2143 |
|
|
2144 |
# wrong kind
|
|
2145 |
agenda.kind = 'virtual'
|
|
2146 |
agenda.save()
|
|
2147 |
app.get('/manage/agendas/%s/add-desk' % agenda.pk, status=404)
|
|
2148 |
agenda.kind = 'events'
|
|
2149 |
agenda.save()
|
|
2150 |
app.get('/manage/agendas/%s/add-desk' % agenda.pk, status=404)
|
|
2151 |
|
|
2152 |
|
|
2153 |
@override_settings(
|
|
2154 |
EXCEPTIONS_SOURCES={
|
|
2155 |
'holidays': {'class': 'workalendar.europe.France', 'label': 'Holidays'},
|
|
2156 |
}
|
|
2157 |
)
|
|
2158 |
def test_meetings_agenda_add_desk_from_another(app, admin_user):
|
|
2159 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
|
2160 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2161 |
TimePeriod.objects.create(
|
|
2162 |
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
|
2163 |
)
|
|
2164 |
assert Desk.objects.count() == 1
|
|
2165 |
assert desk.timeperiodexceptionsource_set.count() == 0
|
|
2166 |
|
|
2167 |
app = login(app)
|
|
2168 |
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
|
2169 |
resp = resp.click('New Desk')
|
2139 |
2170 |
resp.form['label'] = 'Desk B'
|
|
2171 |
resp.form['copy_from'] = desk.pk
|
2140 |
2172 |
resp = resp.form.submit().follow()
|
2141 |
|
assert 'Desk A' in resp.text
|
2142 |
|
assert 'Desk B' in resp.text
|
|
2173 |
assert Desk.objects.count() == 2
|
|
2174 |
new_desk = Desk.objects.latest('pk')
|
|
2175 |
assert new_desk.label == 'Desk B'
|
|
2176 |
assert new_desk.timeperiod_set.count() == 1
|
|
2177 |
assert (
|
|
2178 |
new_desk.timeperiodexceptionsource_set.count() == 0
|
|
2179 |
) # holidays not automatically added via duplication
|
|
2180 |
|
|
2181 |
|
|
2182 |
@override_settings(
|
|
2183 |
EXCEPTIONS_SOURCES={
|
|
2184 |
'holidays': {'class': 'workalendar.europe.France', 'label': 'Holidays'},
|
|
2185 |
}
|
|
2186 |
)
|
|
2187 |
def test_meetings_agenda_add_desk_simple_management(app, admin_user):
|
|
2188 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
|
2189 |
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2190 |
TimePeriod.objects.create(
|
|
2191 |
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
|
2192 |
)
|
|
2193 |
assert Desk.objects.count() == 1
|
|
2194 |
assert desk.timeperiodexceptionsource_set.count() == 0
|
|
2195 |
|
|
2196 |
app = login(app)
|
|
2197 |
resp = app.get('/manage/agendas/%s/add-desk' % agenda.pk)
|
|
2198 |
resp.form['label'] = 'Desk B'
|
|
2199 |
assert 'copy_from' not in resp.context['form'].fields
|
|
2200 |
resp = resp.form.submit().follow()
|
|
2201 |
assert Desk.objects.count() == 2
|
|
2202 |
new_desk = Desk.objects.latest('pk')
|
|
2203 |
assert new_desk.label == 'Desk B'
|
|
2204 |
assert new_desk.timeperiod_set.count() == 1
|
|
2205 |
assert (
|
|
2206 |
new_desk.timeperiodexceptionsource_set.count() == 0
|
|
2207 |
) # holidays not automatically added via duplication
|
|
2208 |
|
|
2209 |
# ok if no desks (should not happen)
|
|
2210 |
Desk.objects.all().delete()
|
|
2211 |
resp = app.get('/manage/agendas/%s/add-desk' % agenda.pk)
|
|
2212 |
resp.form['label'] = 'Desk'
|
|
2213 |
assert 'copy_from' not in resp.context['form'].fields
|
|
2214 |
resp = resp.form.submit().follow()
|
|
2215 |
assert Desk.objects.count() == 1
|
|
2216 |
new_desk = Desk.objects.latest('pk')
|
|
2217 |
assert new_desk.timeperiodexceptionsource_set.count() == 1
|
2143 |
2218 |
|
2144 |
2219 |
|
2145 |
2220 |
def test_meetings_agenda_edit_desk(app, admin_user):
|
... | ... | |
2168 |
2243 |
resp = resp.form.submit()
|
2169 |
2244 |
assert resp.context['form'].errors['slug'] == ['Another desk exists with the same identifier.']
|
2170 |
2245 |
|
|
2246 |
# unknown pk
|
|
2247 |
app.get('/manage/desks/0/edit', status=404)
|
2171 |
2248 |
|
2172 |
|
def test_meetings_agenda_add_desk_from_another(app, admin_user):
|
2173 |
|
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
2174 |
|
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
2175 |
|
TimePeriod.objects.create(
|
2176 |
|
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
2177 |
|
)
|
2178 |
|
assert Desk.objects.count() == 1
|
2179 |
|
|
2180 |
|
app = login(app)
|
2181 |
|
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
2182 |
|
resp = resp.click('New Desk')
|
2183 |
|
resp.form['label'] = 'Desk B'
|
2184 |
|
resp.form['copy_from'] = desk.pk
|
2185 |
|
resp = resp.form.submit().follow()
|
2186 |
|
assert Desk.objects.count() == 2
|
2187 |
|
new_desk = Desk.objects.latest('pk')
|
2188 |
|
assert new_desk.label == 'Desk B'
|
2189 |
|
assert new_desk.timeperiod_set.count() == 1
|
|
2249 |
# wrong kind
|
|
2250 |
agenda.kind = 'virtual'
|
|
2251 |
agenda.save()
|
|
2252 |
app.get('/manage/desks/%s/edit' % desk.pk, status=404)
|
|
2253 |
agenda.kind = 'events'
|
|
2254 |
agenda.save()
|
|
2255 |
app.get('/manage/desks/%s/edit' % desk.pk, status=404)
|
2190 |
2256 |
|
2191 |
2257 |
|
2192 |
2258 |
def test_meetings_agenda_delete_desk(app, admin_user):
|
|
2259 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
|
2260 |
Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2261 |
desk_b = Desk.objects.create(agenda=agenda, label='Desk B')
|
|
2262 |
|
2193 |
2263 |
app = login(app)
|
2194 |
|
resp = app.get('/manage/', status=200)
|
2195 |
|
resp = resp.click('New')
|
2196 |
|
resp.form['label'] = 'Foo bar'
|
2197 |
|
resp.form['kind'] = 'meetings'
|
2198 |
|
resp = resp.form.submit()
|
2199 |
|
assert Desk.objects.count() == 1
|
2200 |
|
agenda = Agenda.objects.get(slug='foo-bar')
|
2201 |
|
MeetingType(agenda=agenda, label='Blah').save()
|
2202 |
2264 |
|
2203 |
2265 |
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
2204 |
|
resp = resp.click('New Desk')
|
2205 |
|
resp.form['label'] = 'Desk A'
|
2206 |
|
resp = resp.form.submit().follow()
|
2207 |
|
assert Desk.objects.count() == 2
|
2208 |
|
resp = resp.click('Desk A', index=0)
|
|
2266 |
resp = resp.click('Desk A')
|
2209 |
2267 |
resp = resp.click('Delete')
|
2210 |
2268 |
resp = resp.form.submit()
|
2211 |
|
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
|
|
2269 |
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.pk)
|
2212 |
2270 |
assert Desk.objects.count() == 1
|
2213 |
2271 |
|
|
2272 |
# only one desk
|
|
2273 |
app.get('/manage/desks/%s/delete' % desk_b.pk, status=404)
|
|
2274 |
|
|
2275 |
desk_a = Desk.objects.create(agenda=agenda, label='Desk A')
|
|
2276 |
|
|
2277 |
# unknown pk
|
|
2278 |
app.get('/manage/desks/0/delete', status=404)
|
|
2279 |
|
|
2280 |
# wrong kind
|
|
2281 |
agenda.kind = 'virtual'
|
|
2282 |
agenda.save()
|
|
2283 |
app.get('/manage/desks/%s/delete' % desk_a.pk, status=404)
|
|
2284 |
agenda.kind = 'events'
|
|
2285 |
agenda.save()
|
|
2286 |
app.get('/manage/desks/%s/delete' % desk_a.pk, status=404)
|
|
2287 |
|
2214 |
2288 |
|
2215 |
2289 |
def test_meetings_agenda_add_time_period_exception(app, admin_user):
|
2216 |
2290 |
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
2217 |
|
-
|