Returns a list of top recent topics, excluding less valuable forums.
    Default is 10 topics.
    Can be sorted for most active topics by votes and post count.
    Usage:
    {% get_topic_list 5 as topics %}
    {% get_topic_list 7 top_items=True as topics %}

def get_topic_list(num=10, top_items=False):
    """
    Returns a list of top recent topics, excluding less valuable forums.
    Default is 10 topics.
    Can be sorted for most active topics by votes and post count.
    Usage:
    {% get_topic_list 5 as topics %}
    {% get_topic_list 7 top_items=True as topics %}
    """
    excluded_forum_ids = [3, 7, 10, 12, 15, 16, 17, 18, 19, 23]
    topics = Topic.objects.exclude(forum_id__in=excluded_forum_ids).order_by('-id')[0:num]
    if top_items:
        topics = sorted(list(topics), key=lambda t: (t.forum_id, -t.votes, -t.post_count))
    return topics