views.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from django.contrib import messages
  2. from django.shortcuts import redirect
  3. from django.utils.translation import ugettext as _
  4. from misago.admin.views import render as mi_render
  5. from misago.conf.forms import ChangeSettingsForm
  6. from misago.conf.models import SettingsGroup, Setting
  7. def render(request, template, context=None):
  8. context = context or {}
  9. context['settings_groups'] = SettingsGroup.objects.ordered_alphabetically()
  10. if not 'active_group' in context:
  11. context['active_group'] = {'key': None}
  12. return mi_render(request, template, context)
  13. def index(request):
  14. return render(request, 'misago/admin/conf/index.html')
  15. def group(request, group_key):
  16. try:
  17. active_group = SettingsGroup.objects.get(key=group_key)
  18. except SettingsGroup.DoesNotExist:
  19. messages.error(request, _("Settings group could not be found."))
  20. return redirect('misago:admin:settings:index')
  21. fieldsets = ChangeSettingsForm(group=active_group)
  22. if request.method == 'POST':
  23. fieldsets = ChangeSettingsForm(request.POST, group=active_group)
  24. valid_fieldsets = len(True for form in fieldsets if form.is_valid())
  25. if len(fieldsets) == valid_fieldsets:
  26. pass
  27. use_single_form_template = (len(fieldsets) == 1 and
  28. not fieldsets[0]['legend'])
  29. return render(
  30. request,
  31. 'misago/admin/conf/group.html',
  32. {
  33. 'active_group': active_group,
  34. 'fieldsets': fieldsets,
  35. 'use_single_form_template': use_single_form_template,
  36. })