#Проблема: данные в list.html обновляются только после двукратного
#нажатия кнопи submit в форме

## в base.html есть inclusion tag {%user_settings%}
#он показыает форму с checkbox

#list.html - шаблон для view.course_list, который extends base.html
#в этом вью фильтруется в зависимости от данных из {%user_settings%}

### templatetags.py
# тут мы устанавливаем BooleanFields
# например show_online_only
@register.inclusion_tag('csun_ninja/user_settings.html', takes_context=True)

def user_settings(context):
    request = context['request']
    if request.user.is_authenticated():
        form_instance = UserSettings.objects.get(student=request.user)
        if request.method == "POST":

            form = PreferenceForm(instance=form_instance,
                                      data=request.POST)
            if form.is_valid():
                form.save()


        else:
            form = PreferenceForm(instance=form_instance)
        return ({'form': form, 'request':request})
        
###### views.py
def course_list(request):
    sections_list = Section.objects.all().order_by('course')
    current_settings = UserSettings.objects.get(student=request.user)
    
   # тут пропущено непринципиальное

    if current_settings.show_online_only == True:
            sections_list=sections_list.filter(section_schedule__section_room='ON LINE')
    
    return render(request,
                  'csun_ninja/list.html',
                  {'sections':sections,
                   'section_schedules':section_schedules,
                   'page':page})