def test_get_category_for_path(self):
        cat0 = Category.objects.get(slug='country', level=0)
        cat1 = cat0.children.get(slug='country-pop')
        cat2 = Category.objects.get(slug='urban-cowboy')

        result = views.get_category_for_path('/country/country-pop/urban-cowboy/')
        self.assertEquals(result, cat2)
        result = views.get_category_for_path('/country/country-pop/')
        self.assertEquals(result, cat1)
        result = views.get_category_for_path('/country/')
        self.assertEquals(result, cat0)
Esempio n. 2
0
    def test_get_category_for_path(self):
        cat0 = Category.objects.get(slug="country", level=0)
        cat1 = cat0.children.get(slug="country-pop")
        cat2 = Category.objects.get(slug="urban-cowboy")

        result = views.get_category_for_path(
            "/country/country-pop/urban-cowboy/")
        self.assertEquals(result, cat2)
        result = views.get_category_for_path("/country/country-pop/")
        self.assertEquals(result, cat1)
        result = views.get_category_for_path("/country/")
        self.assertEquals(result, cat0)
    def test_get_category_for_path(self):
        cat0 = Category.objects.get(slug='country', level=0)
        cat1 = cat0.children.get(slug='country-pop')
        cat2 = Category.objects.get(slug='urban-cowboy')

        result = views.get_category_for_path(
            '/country/country-pop/urban-cowboy/')
        self.assertEquals(result, cat2)
        result = views.get_category_for_path('/country/country-pop/')
        self.assertEquals(result, cat1)
        result = views.get_category_for_path('/country/')
        self.assertEquals(result, cat0)
Esempio n. 4
0
 def dispatch(self, request, *args, **kwargs):
     if not hasattr(self, 'category'):
         try:
             self.category = get_category_for_path(self.kwargs["path"])
         except:
             raise Http404
     return super(CategoryContentViewMixin, self).dispatch(request, *args, **kwargs)
Esempio n. 5
0
 def get_queryset(self):
     queryset = super(CategoryAllRelatedList, self).get_queryset()
     category = get_category_for_path(self.kwargs[self.path_field])
     kwargs = {
         '%s__tree_id' % self.category_field: category.tree_id,
         '%s__lft__gte' % self.category_field: category.lft,
         '%s__rght__lte' % self.category_field: category.rght
     }
     return queryset.filter(**kwargs).order_by('%s__lft' % self.category_field)
Esempio n. 6
0
 def get_queryset(self):
     queryset = super(CategoryAllRelatedList, self).get_queryset()
     category = get_category_for_path(self.kwargs[self.path_field])
     kwargs = {
         '%s__tree_id' % self.category_field: category.tree_id,
         '%s__lft__gte' % self.category_field: category.lft,
         '%s__rght__lte' % self.category_field: category.rght
     }
     return queryset.filter(**kwargs).order_by('%s__lft' %
                                               self.category_field)
Esempio n. 7
0
 def render(self, context):
     posts = None
     t = template.loader.get_template(self.template)
     if isinstance(self.category, basestring):
         try:
             self.category = get_category_for_path(self.category, queryset=Category.objects.all())
             posts = get_post_model().published.filter(categories=self.category)
         except:
             pass
     else:
         posts = get_post_model().published.filter(categories=self.category)
     if posts:
         context['posts'] = posts
     return t.render(context)
Esempio n. 8
0
def get_posts_by_category(parser, token):
    try:
        tag_name, category, limit, random, _as, var_name = token.split_contents()
    except:
        raise template.TemplateSyntaxError("get_content_by_category tag takes exactly four arguments")
    if (category[0] == category[-1] and category[0] in ('"', "'")):
        try:
            category = get_category_for_path(category[1:-1], queryset=Category.objects.all())
        except:
            category = None
    else:
        category = template.Variable(category)
    limit = int(limit)
    return PostsByCategoryNode(category, limit, var_name, random)
Esempio n. 9
0
 def render(self, context):
     posts = None
     t = template.loader.get_template(self.template)
     if isinstance(self.category, basestring):
         try:
             self.category = get_category_for_path(
                 self.category, queryset=Category.objects.all())
             posts = get_post_model().published.filter(
                 categories=self.category)
         except:
             pass
     else:
         posts = get_post_model().published.filter(categories=self.category)
     if posts:
         context['posts'] = posts
     return t.render(context)
def get_popular_posts(parser, token):
    try:
        tag_name, limit, category, _as, var_name = token.split_contents()
    except:
        raise TemplateSyntaxError("get_popular_posts tag takes exactly three arguments")

    if category != '':
        if (category[0] == category[-1] and category[0] in ('"', "'")):
            try:
                category = get_category_for_path(category[1:-1])
            except:
                category = None
        else:
            category = template.Variable(category)

    return PopularPosts(limit, category, var_name)
def get_content_by_categories(parser, token):
    try:
        tag_name, categories, limit, random, _as, var_name = token.split_contents()
    except:
        raise TemplateSyntaxError, "get_content_by_category tag takes exactly four arguments"
    categories_array = []
    if categories != '':
        if (categories[0] == categories[-1] and categories[0] in ('"', "'")):
            try:
                cats = [x.strip() for x in categories[1:-1].split(',')]
                for cat in cats:
                    categories_array.append(get_category_for_path(cat))
            except:
                pass
        else:
            categories_array.append(template.Variable(categories))
    return ContentByCategoriesNode(categories_array, limit, var_name, random)
Esempio n. 12
0
def get_posts_by_category(parser, token):
    try:
        tag_name, category, limit, random, _as, var_name = token.split_contents(
        )
    except:
        raise template.TemplateSyntaxError(
            "get_content_by_category tag takes exactly four arguments")
    if (category[0] == category[-1] and category[0] in ('"', "'")):
        try:
            category = get_category_for_path(category[1:-1],
                                             queryset=Category.objects.all())
        except:
            category = None
    else:
        category = template.Variable(category)
    limit = int(limit)
    return PostsByCategoryNode(category, limit, var_name, random)
Esempio n. 13
0
def get_popular_posts(parser, token):
    try:
        tag_name, limit, category, _as, var_name = token.split_contents()
    except:
        raise template.TemplateSyntaxError(
            "get_popular_posts tag takes exactly three arguments")

    if category != '':
        if (category[0] == category[-1] and category[0] in ('"', "'")):
            try:
                category = get_category_for_path(
                    category[1:-1], queryset=Category.objects.all())
            except:
                category = None
        else:
            category = template.Variable(category)

    return PopularPosts(limit, category, var_name)
def get_latest_posts(parser, token):
    try:
        tag_name, limit, category, _as, var_name = token.split_contents()
    except:
        raise TemplateSyntaxError("get_latest_posts tag takes exactly three arguments")

    category_list = []
    if category != '':
        if (category[0] == category[-1] and category[0] in ('"', "'")):
            try:
                cats = [x.strip() for x in category[1:-1].split(',')]
                for cat in cats:
                    category_list.append(get_category_for_path(cat))
            except:
                pass
        else:
            category_list.append(template.Variable(category))

    return LatestPosts(limit, category_list, var_name)
Esempio n. 15
0
def get_latest_posts(parser, token):
    try:
        tag_name, limit, category, _as, var_name = token.split_contents()
    except:
        raise template.TemplateSyntaxError(
            "get_latest_posts tag takes exactly three arguments")

    category_list = []
    if category != '':
        if (category[0] == category[-1] and category[0] in ('"', "'")):
            try:
                cats = [x.strip() for x in category[1:-1].split(',')]
                for cat in cats:
                    category_list.append(
                        get_category_for_path(cat,
                                              queryset=Category.objects.all()))
            except:
                pass
        else:
            category_list.append(template.Variable(category))

    return LatestPosts(limit, category_list, var_name)
Esempio n. 16
0
 def get_context_data(self, **kwargs):
     context = super(CategoryAllRelatedList, self).get_context_data(**kwargs)
     context['category'] = get_category_for_path(self.kwargs['category_path'])
     return context
Esempio n. 17
0
 def get_context_data(self, **kwargs):
     context = super(CategoryAllRelatedList,
                     self).get_context_data(**kwargs)
     context['category'] = get_category_for_path(
         self.kwargs['category_path'])
     return context