def save_links(request): """ Saves navigation preference links on a user """ account = get_account(request) context = _create_preference_context(request) if request.method == 'POST': formset = NavbarLinkFormSet(request.POST) if formset.is_valid(): for form in formset.deleted_forms: instance = form.save(commit=False) instance.account = account instance.save() instances = formset.save(commit=False) for instance in instances: instance.account = account instance.save() new_message(request, 'Your links were saved.', type=Messages.SUCCESS) else: context['navbar_formset'] = formset return render(request, 'webfront/preferences.html', context) return HttpResponseRedirect(reverse('webfront-preferences'))
def save_links(request): """ Saves navigation preference links on a user """ account = get_account(request) formset_from_post = None context = _create_preference_context(request) if request.method == 'POST': formset = NavbarLinkFormSet(request.POST) if formset.is_valid(): for form in formset.deleted_forms: instance = form.save(commit=False) instance.account = account instance.save() instances = formset.save(commit=False) for instance in instances: instance.account = account instance.save() new_message(request, 'Your links were saved.', type=Messages.SUCCESS) else: context['navbar_formset'] = formset return direct_to_template( request, 'webfront/preferences.html', context ) return HttpResponseRedirect(reverse('webfront-preferences'))
def _create_preference_context(request): """ Creates a context used by different views for the multiform preference page """ account = get_account(request) if account.ext_sync: password_form = None else: password_form = ChangePasswordForm() context = { 'navpath': [('Home', '/'), ('Preferences', None)], 'title': 'Personal NAV preferences', 'password_form': password_form, 'columns_form': ColumnsForm(initial={'num_columns': get_widget_columns(account)}), 'account': account, 'tool': { 'name': 'My account', 'description': 'Edit my personal NAV account settings' }, 'navbar_formset': NavbarLinkFormSet(queryset=NavbarLink.objects.filter(account=account)), } return context