Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
    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))
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
 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()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
    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)