def prefsPost(handler, p_default_sprint_tab, p_default_tasks_tab, p_backlog_style, p_messages = []): def die(msg): print msg done() handler.wrappers = False if not handler.session['user']: die("You must be logged in to modify preferences") if p_default_sprint_tab not in sprintTabs(): die("Unrecognized default sprint tab <b>%s</b>" % stripTags(p_default_sprint_tab)) if p_default_tasks_tab not in taskTabs: die("Unrecognized default task tab <b>%s</b>" % stripTags(p_default_tasks_tab)) if set(p_backlog_style.keys()) != set(name for block in statusMenu for name in block): die("Backlog style key mismatch") if not set(p_messages.keys()) <= set(name for name, desc in messageTypes): die("Message type mismatch") prefs = handler.session['user'].getPrefs() prefs.defaultSprintTab = p_default_sprint_tab prefs.defaultTasksTab = p_default_tasks_tab prefs.backlogStyles = p_backlog_style prefs.messages = dict((name, name in p_messages.keys()) for name, desc in messageTypes) prefs.save() handler.responseCode = 299 print "Saved changes" Event.prefs(handler)