def group_settings(request, group, template='livesettings/group_settings.jinja'): # Determine what set of settings this editor is used for use_db, overrides = get_overrides() mgr = ConfigurationSettings() settings = mgr[group] title = settings.name log.debug('title: %s', title) if use_db: # Create an editor customized for the current user # editor = forms.customized_editor(settings) if request.method == 'POST': # Populate the form with user-submitted data data = request.POST.copy() form = forms.SettingsEditor(data, request.FILES, settings=settings) if form.is_valid(): for name, value in form.cleaned_data.items(): group, key, lang = name.split('__') cfg = mgr.get_config(group, key) if isinstance(cfg, ImageValue): if request.FILES and name in request.FILES: value = request.FILES[name] else: continue try: cfg.update(value, lang) # message='Updated %s on %s' % (cfg.key, cfg.group.key) # messages.success(request, message) # the else if for the settings that are not updated. except Exception as e: traceback.print_exc() request.user.message_set.create( message=six.text_type(e)) return redirect(request.path) else: # Leave the form populated with current setting values # form = editor() form = forms.SettingsEditor(settings=settings) else: form = None return render( request, template, { 'all_super_groups': mgr.get_super_groups(), 'title': title, 'settings_group': settings, 'form': form, 'use_db': use_db })
def group_settings(request, group, template='livesettings/group_settings.html'): # Determine what set of settings this editor is used for use_db, overrides = get_overrides() mgr = ConfigurationSettings() if group is None: settings = mgr title = 'Site settings' else: settings = mgr[group] title = settings.name log.debug('title: %s', title) if use_db: # Create an editor customized for the current user #editor = forms.customized_editor(settings) if request.method == 'POST': # Populate the form with user-submitted data data = request.POST.copy() form = forms.SettingsEditor(data, settings=settings) if form.is_valid(): form.full_clean() for name, value in form.cleaned_data.items(): group, key = name.split('__') cfg = mgr.get_config(group, key) if cfg.update(value): # Give user feedback as to which settings were changed messages.add_message( request, messages.INFO, 'Updated %s on %s' % (cfg.key, cfg.group.key)) return HttpResponseRedirect(request.path) else: # Leave the form populated with current setting values #form = editor() form = forms.SettingsEditor(settings=settings) else: form = None return render_to_response(template, { 'title': title, 'group': group, 'form': form, 'use_db': use_db, 'DJANGO_PRE_12': _pre_12() }, context_instance=RequestContext(request))
def site_settings(request): mgr = ConfigurationSettings() default_group = mgr.groups()[0].key return redirect('group_settings', default_group)