def status(request): if request.method == 'GET': return render(request, 'central/admin/enrollment/status.html') elif request.method == 'POST': settings = Settings.objects.get() settings.enrollment_is_active = request.POST.get('enrollment_is_active') == 'on' if 'enrollment_title' in request.POST: settings.enrollment_title = request.POST['enrollment_title'] settings.enrollment_accept_card = request.POST.get('enrollment_accept_card') == 'on' settings.enrollment_accept_invoice = request.POST.get('enrollment_accept_invoice') == 'on' settings.enrollment_message_show = request.POST.get('enrollment_message_show') == 'on' settings.renew_membership_foreign = request.POST.get('renew_membership_foreign') == 'on' settings.renew_membership_norwegian = request.POST.get('renew_membership_norwegian') == 'on' if 'enrollment_message' in request.POST: settings.enrollment_message = request.POST['enrollment_message'] settings.focus_writes = request.POST.get('focus_writes') == 'on' if 'focus_writes_message' in request.POST: settings.focus_writes_message = request.POST['focus_writes_message'] try: settings.arskrav_initiation_date_last_year = datetime.strptime( request.POST.get('arskrav_initiation_date_last_year'), "%Y-%m-%d", ).date() settings.arskrav_initiation_date = datetime.strptime( request.POST.get('arskrav_initiation_date'), "%Y-%m-%d", ).date() settings.arskrav_actual_date = datetime.strptime( request.POST.get('arskrav_actual_date'), "%Y-%m-%d", ).date() settings.arskrav_public_date = datetime.strptime( request.POST.get('arskrav_public_date'), "%Y-%m-%d", ).date() except ValueError: messages.error(request, 'invalid_date_format') settings.save() Settings.clear_cache() messages.success(request, 'enrollment_status_saved') return redirect('admin:enrollment.status') else: raise PermissionDenied