def test_disabled_group(self): group = create_group() self.assertFalse(isinstance(Category.get(group.name), DisabledCategory)) group.visibility = Visibility.DISABLED group.save() self.assertTrue(isinstance(Category.get(group.name), DisabledCategory)) group.visibility = Visibility.CURATED group.save() self.assertFalse(isinstance(Category.get(group.name), DisabledCategory))
def api_browse_monsters(request, payload=None): """ accepts posted json in the following format {'offset': 0, 'count': 9} returns client sanitized comment details """ if not payload: payload = {'offset':0, 'count':9} offset = payload['offset'] count = 9 category = Category.get(name=MONSTER_GROUP) sort = 'new' nav = browse.Navigation.load_json_or_404( payload, sort=sort, category=category, mobile=request.is_mobile, replies_only=True, public_only=True, offset=payload['offset'], count=payload['count'], ) data = { 'monsters': mobile_details_from_queryset(browse.get_front_comments(request.user, nav)), } return data
def __init__(self, params): if isinstance(params, basestring): self.group = params self.skip = 0 else: self.group = params['group'] self.skip = params['skip'] group = Category.get(self.group) if group is None: raise Http404 self.posts = self.public_posts()
def landing(request, **kwargs): category = Category.get(name=MONSTER_GROUP) sort = 'new' kwargs['offset'] = request.GET.get('offset', 0) show_pins = False nav = browse.Navigation.load_json_or_404( kwargs, sort=sort, category=category, mobile=request.is_mobile, replies_only=True, public_only=True, ) front_data = { 'tiles': browse.get_browse_tiles(request.user, nav), 'render_options': tile_render_options(sort, show_pins), } # Overrides the default nav category that gets set in a context processor. request.nav_category = category sort_types = [] if sort in ['active', 'new']: sort_types.extend([ ('active threads', '/x/%s/active' % category.name), ('new posts', '/x/%s/new' % category.name) ]) active_sort_url = '/x/%s/%s' % (category.name, sort) nav_data = nav.dump_json() front_data.update(locals()) front_data['nav_category'] = category.details() front_data['DOMAIN'] = settings.DOMAIN return r2r_jinja('monster/landing.html', front_data)
def load_json(cls, data, **kwargs): int_or_none = lambda key: int(str(data[key]), 10) if data.get(key) else None str_or_none = lambda key: str(data[key]) if data.get(key) else None args = { 'year': int_or_none('year'), 'month': int_or_none('month'), 'day': int_or_none('day'), 'sort': str_or_none('sort'), 'hot_sort_type': str_or_none('hot_sort_type'), 'userpage_type': str_or_none('userpage_type'), 'category': Category.get(data.get('category')), 'tag': str_or_none('tag'), 'offset': int_or_none('offset') or 0, 'user': User.objects.get_or_none(username=data['user']) if data.get('user') else None, 'replies_only': bool(data.get('replies_only')), 'public_only': bool(data.get('public_only')), 'mobile': bool(data.get('mobile')), 'public_api': bool(data.get('public_api')), 'count': int_or_none('count'), } args.update(kwargs) return cls(**args)