docs: def get_user_stats(self, users, lang=None, concepts=None, since=None, recalculate=True):
          """
          Finds all UserStats of given concepts and users.
          Recompute UserStats if necessary
  
          Args:
              users (Optional[list of users] or [user]): list of primary keys of user or users
                  Defaults to None meaning all users.
              lang (string): use only concepts witch the lang. Defaults to None meaning all languages.
              concepts (Optional[list of concepts]): list of primary keys of concepts or concepts
                  Defaults to None meaning all concepts.
  
          Returns:
              dict: user_id  -> dict (concept_identifier - > (stat_name  -> value)) -- for more users
              dict: concept_identifier - > (stat_name  -> value) -- for one user
          """
          only_one_user = False
          if not isinstance(users, list):
              users = [users]
              only_one_user = True
  
          if recalculate:
              if lang is None:
                  raise ValueError('Recalculation without lang is not supported.')
              time_start = time_lib()
              concepts_to_recalculate = Concept.objects.get_concepts_to_recalculate(users, lang, concepts)
              LOGGER.debug("user_stats - getting identifying concepts to recalculate: %ss", (time_lib() - time_start))
              time_start = time_lib()
              self.recalculate_concepts(concepts_to_recalculate, lang)
              LOGGER.debug("user_stats - recalculating concepts: %ss", (time_lib() - time_start))
  
          qs = self.prepare_related().filter(user__in=users, concept__active=True)
          if concepts is not None:
              qs = qs.filter(concept__in=concepts)
          if lang is not None:
              qs = qs.filter(concept__lang=lang)
          if since is not None:
              qs = qs.filter(time__gte=since)
  
          data = defaultdict(lambda: defaultdict(lambda: {}))
          for user_stat in qs:
              data[user_stat.user_id][user_stat.concept.identifier][user_stat.stat] = user_stat.value
          if only_one_user:
              return data[users[0].pk if type(users[0]) == User else users[0]]
          return data