ux: fix bug where saving empty issue tracker form was causing

exception, fixes: #4278
This commit is contained in:
Daniel Dourvaris 2016-10-14 17:14:44 +03:00
parent 1d5cbade82
commit ea04026aa4
2 changed files with 19 additions and 10 deletions

View file

@ -397,19 +397,20 @@ class SettingsController(BaseController):
settings_model = IssueTrackerSettingsModel()
form = IssueTrackerPatternsForm()().to_python(request.POST)
for uid in form['delete_patterns']:
settings_model.delete_entries(uid)
if form:
for uid in form.get('delete_patterns', []):
settings_model.delete_entries(uid)
for pattern in form['patterns']:
for setting, value, type_ in pattern:
sett = settings_model.create_or_update_setting(
setting, value, type_)
Session().add(sett)
for pattern in form.get('patterns', []):
for setting, value, type_ in pattern:
sett = settings_model.create_or_update_setting(
setting, value, type_)
Session().add(sett)
Session().commit()
Session().commit()
SettingsModel().invalidate_settings_cache()
h.flash(_('Updated issue tracker entries'), category='success')
SettingsModel().invalidate_settings_cache()
h.flash(_('Updated issue tracker entries'), category='success')
return redirect(url('admin_settings_issuetracker'))
@HasPermissionAllDecorator('hg.admin')

View file

@ -494,6 +494,14 @@ class TestAdminSettingsIssueTracker:
response = self.app.get(url('admin_settings_issuetracker'))
assert response.status_code == 200
def test_add_empty_issuetracker_pattern(
self, request, autologin_user, csrf_token):
post_url = url('admin_settings_issuetracker_save')
post_data = {
'csrf_token': csrf_token
}
self.app.post(post_url, post_data, status=302)
def test_add_issuetracker_pattern(
self, request, autologin_user, csrf_token):
pattern = 'issuetracker_pat'