docs: def get_nodes(self, request):
          """
          Generates the nodelist
  
          :param request:
          :return: list of nodes
          """
          nodes = []
  
          language = get_language_from_request(request, check_path=True)
          current_site = get_current_site(request)
  
          page_site = self.instance.node.site
          if self.instance and page_site != current_site:
              return []
  
          categories_menu = False
          posts_menu = False
          config = False
          if self.instance:
              if not self._config.get(self.instance.application_namespace, False):
                  self._config[self.instance.application_namespace] = BlogConfig.objects.get(
                      namespace=self.instance.application_namespace
                  )
              config = self._config[self.instance.application_namespace]
              if not getattr(request, 'toolbar', False) or not request.toolbar.edit_mode_active:
                  if self.instance == self.instance.get_draft_object():
                      return []
              else:
                  if self.instance == self.instance.get_public_object():
                      return []
          if config and config.menu_structure in (MENU_TYPE_COMPLETE, MENU_TYPE_CATEGORIES):
              categories_menu = True
          if config and config.menu_structure in (MENU_TYPE_COMPLETE, MENU_TYPE_POSTS):
              posts_menu = True
          if config and config.menu_structure in (MENU_TYPE_NONE, ):
              return nodes
  
          used_categories = []
          if posts_menu:
              posts = Post.objects
              if hasattr(self, 'instance') and self.instance:
                  posts = posts.namespace(self.instance.application_namespace).on_site()
              posts = posts.active_translations(language).distinct().\
                  select_related('app_config').prefetch_related('translations', 'categories')
              for post in posts:
                  post_id = None
                  parent = None
                  used_categories.extend(post.categories.values_list('pk', flat=True))
                  if categories_menu:
                      category = post.categories.first()
                      if category:
                          parent = '{0}-{1}'.format(category.__class__.__name__, category.pk)
                          post_id = '{0}-{1}'.format(post.__class__.__name__, post.pk),
                  else:
                      post_id = '{0}-{1}'.format(post.__class__.__name__, post.pk),
                  if post_id:
                      node = NavigationNode(
                          post.get_title(),
                          post.get_absolute_url(language),
                          post_id,
                          parent
                      )
                      nodes.append(node)
  
          if categories_menu:
              categories = BlogCategory.objects
              if config:
                  categories = categories.namespace(self.instance.application_namespace)
              if config and not config.menu_empty_categories:
                  categories = categories.active_translations(language).filter(
                      pk__in=used_categories
                  ).distinct()
              else:
                  categories = categories.active_translations(language).distinct()
              categories = categories.order_by('parent__id', 'translations__name').\
                  select_related('app_config').prefetch_related('translations')
              added_categories = []
              for category in categories:
                  if category.pk not in added_categories:
                      node = NavigationNode(
                          category.name,
                          category.get_absolute_url(),
                          '{0}-{1}'.format(category.__class__.__name__, category.pk),
                          (
                              '{0}-{1}'.format(
                                  category.__class__.__name__, category.parent.id
                              ) if category.parent else None
                          )
                      )
                      nodes.append(node)
                      added_categories.append(category.pk)
  
          return nodes