code: def catalog_sections(context, slug=None, level=3, **kwargs):
      
      count_products = Count(Case(When(product__active=True, then=Value(1)), output_field=IntegerField()))
      if slug is None:
          sections = Section.objects.annotate(product__count=count_products).all()
          max_level = level - 1
      else:
          section = Section.objects.get(slug=slug)
          sections = section.get_descendants().annotate(product__count=count_products).all()
          max_level = section.level + level
      mark_current_menus(sections, context['request'].path_info)
      return {'sections': sections, 'max_level': max_level, 'data': kwargs}
docs: Отображает иерерхический список категорий каталога.
      Для каждой категории отображается количество содержащегося в ней товара.
  
      Пример использования::
  
          {% catalog_sections 'section_slug' 2 class='catalog-class' %}
  
      :param context: контекст
      :param slug: символьный код родительской категории, если не задан, отображается вся иерархия
      :param level: отображаемый уровень вложенности
      :param kwargs: html атрибуты оборачивающего тега
      :return: