0001-manager-validate-imported-events-35011.patch
chrono/manager/forms.py | ||
---|---|---|
221 | 221 |
raise ValidationError(_('Invalid file format. (number of places in waiting list, line %d)') % (i+1)) |
222 | 222 |
if len(csvline) >= 5: |
223 | 223 |
event.label = ' '.join([force_text(x) for x in csvline[4:]]) |
224 |
try: |
|
225 |
event.full_clean(exclude=['agenda', 'desk', 'meeting_type']) |
|
226 |
except ValidationError as e: |
|
227 |
if getattr(e, 'message_dict', None): |
|
228 |
errors = [ |
|
229 |
_('Invalid file format. (%s: %s, line %d)') % (label, u', '.join(errors), i + 1) |
|
230 |
for label, errors in e.message_dict.items()] |
|
231 |
else: |
|
232 |
errors = [_('Invalid file format. (%s, line %d)') % (error, i + 1) for error in e] |
|
233 |
raise ValidationError(errors) |
|
224 | 234 |
events.append(event) |
225 | 235 |
self.events = events |
226 | 236 |
tests/test_manager.py | ||
---|---|---|
553 | 553 |
resp = resp.form.submit(status=200) |
554 | 554 |
assert 'Invalid file format. (number of places in waiting list,' in resp.text |
555 | 555 | |
556 |
resp.form['events_csv_file'] = Upload('t.csv', b'2016-09-16,18:00,10,5,' + b'x' * 151, 'text/csv') |
|
557 |
resp = resp.form.submit(status=200) |
|
558 |
assert 'Invalid file format. (label: Ensure this value has at most 150' in resp.text |
|
559 | ||
556 | 560 |
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200) |
557 | 561 |
resp.form['events_csv_file'] = Upload('t.csv', b'2016-09-16,18:00,10', 'text/csv') |
558 | 562 |
resp = resp.form.submit(status=302) |
559 |
- |