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)
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 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)
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)
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)
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_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)
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)
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)
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)
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)
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
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