Exemplo n.º 1
0
def list_entries(
    request, feed_pk=None, unread=True, saved=False,
    template="yarr/list_entries.html",
):
    """
    Display a list of entries
    Takes optional arguments to determine which entries to list:
        feed_pk     Primary key for a Feed
        unread      If true, show only unread unsaved entries
        saved       If true, show only saved entries; priority over unread
    Note: an entry can only either be unread or saved, not both
    """
    # Get entries queryset
    qs, feed = get_entries(request, feed_pk, unread, saved)
   
    # Paginate
    entries, pagination = utils.paginate(request, qs)
    
    # Base title
    if saved:
        title = 'Saved items'
    elif unread:
        title = 'Unread items'
    else:
        title = 'All items'
        
    # Tag feed to title
    if feed:
        title = '%s: %s' % (feed.title, title)
    
    return render_to_response(template, RequestContext(request, {
        'title':    title,
        'entries':  entries,
        'pagination': pagination,
        'feed':     feed,
        'saved':    saved,
        'unread':   unread,
        'yarr_settings': {
            'control_fixed':    settings.CONTROL_FIXED,
            'add_jquery':       settings.ADD_JQUERY,
        },
    }))
Exemplo n.º 2
0
def list_entries(request, feed_pk=None, unread=True, saved=False, template="yarr/list_entries.html"):
    """
    Display a list of entries
    Takes optional arguments to determine which entries to list:
        feed_pk     Primary key for a Feed
        unread      If true, show only unread unsaved entries
        saved       If true, show only saved entries; priority over unread
    Note: an entry can only either be unread or saved, not both
    """
    # Saved has priority over unread
    if saved:
        unread = False

    # Get entries queryset
    qs, feed = get_entries(request, feed_pk, unread, saved)

    # Make list of available pks for this page
    available_pks = qs.values_list("pk", flat=True)

    # Paginate
    entries, pagination = utils.paginate(request, qs)

    # Base title
    if saved:
        title = "Saved items"
    elif unread:
        title = "Unread items"
    else:
        title = "All items"

    # Add tag feed to title
    if feed:
        title = "%s - %s" % (feed.title, title)

    # Get list of feeds for feed list
    feeds = models.Feed.objects.filter(user=request.user)

    # Determine current view for reverse
    current_view = "yarr-list_unread"
    if saved:
        current_view = "yarr-list_saved"
    elif not unread:
        current_view = "yarr-list_all"

    return render_to_response(
        template,
        RequestContext(
            request,
            {
                "title": title,
                "entries": entries,
                "available_pks": available_pks,
                "pagination": pagination,
                "feed": feed,
                "feeds": feeds,
                "saved": saved,
                "unread": unread,
                "current_view": current_view,
                "yarr_settings": {
                    "control_fixed": settings.LAYOUT_FIXED,
                    "add_jquery": settings.ADD_JQUERY,
                    "api_page_length": settings.API_PAGE_LENGTH,
                },
            },
        ),
    )
Exemplo n.º 3
0
def list_entries(
    request, feed_pk=None, unread=True, saved=False,
    template="yarr/list_entries.html",
):
    """
    Display a list of entries
    Takes optional arguments to determine which entries to list:
        feed_pk     Primary key for a Feed
        unread      If true, show only unread unsaved entries
        saved       If true, show only saved entries; priority over unread
    Note: an entry can only either be unread or saved, not both

    Takes a single querystring argument:
        order       If "asc", order chronologically (otherwise
                    reverse-chronologically).
    """
    # Saved has priority over unread
    if saved:
        unread = False
    
    # Get entries queryset
    qs, feed = get_entries(request, feed_pk, unread, saved)

    ascending_by_date = request.GET.get('order', 'dsc') == 'asc'
    if ascending_by_date:
        qs = qs.order_by('date')
    else:
        qs = qs.order_by('-date')  # Default ordering.

    # Make list of available pks for this page
    available_pks = qs.values_list('pk', flat=True)
    
    # Paginate
    entries, pagination = utils.paginate(request, qs)
    
    # Base title
    if saved:
        title = 'Saved items'
    elif unread:
        title = 'Unread items'
    else:
        title = 'All items'
        
    # Add tag feed to title
    if feed:
        title = '%s - %s' % (feed.title, title)
    
    # Get list of feeds for feed list
    feeds = models.Feed.objects.filter(user=request.user)
    
    # Determine current view for reverse
    current_view = 'yarr-list_unread'
    if saved:
        current_view = 'yarr-list_saved'
    elif not unread:
        current_view = 'yarr-list_all'
    
    return render(request, template, {
        'title':    title,
        'entries':  entries,
        'available_pks': available_pks,
        'pagination': pagination,
        'feed':     feed,
        'feeds':    feeds,
        'saved':    saved,
        'unread':   unread,
        'ascending_by_date': ascending_by_date,
        'current_view': current_view,
        'yarr_settings': {
            'layout_fixed':    settings.LAYOUT_FIXED,
            'add_jquery':       settings.ADD_JQUERY,
            'api_page_length':  settings.API_PAGE_LENGTH,
        },
    })
Exemplo n.º 4
0
def list_entries(
    request,
    feed_pk=None,
    state=None,
    template="yarr/list_entries.html",
):
    """
    Display a list of entries
    Takes optional arguments to determine which entries to list:
        feed_pk     Primary key for a Feed
        state       The state of entries to list; one of:
                    None            All entries
                    ENTRY_UNREAD    Unread entries
                    ENTRY_SAVED     Saved entries

    Takes a single querystring argument:
        order       If "asc", order chronologically (otherwise
                    reverse-chronologically).

    Note: no built-in url calls this with state == ENTRY_READ, but support
    exists for a custom url.
    """
    # Get entries queryset
    qs, feed = get_entries(request, feed_pk, state)

    order = request.GET.get('order', ORDER_DESC)
    if order == ORDER_ASC:
        qs = qs.order_by('date')
    else:
        qs = qs.order_by('-date')

    # Make list of available pks for this page
    available_pks = list(qs.values_list('pk', flat=True))

    # Paginate
    entries, pagination = utils.paginate(request, qs)

    # Base title
    if state is None:
        title = 'All items'
    elif state == ENTRY_UNREAD:
        title = 'Unread items'
    elif state == ENTRY_SAVED:
        title = 'Saved items'
    else:
        raise ValueError('Cannot list entries in unknown state')

    # Add tag feed to title
    if feed:
        title = '%s - %s' % (feed.title, title)

    # Get list of feeds for feed list
    feeds = models.Feed.objects.filter(user=request.user)

    # Determine current view for reverse
    if state is None:
        current_view = 'yarr-list_all'
    elif state == ENTRY_UNREAD:
        current_view = 'yarr-list_unread'
    elif state == ENTRY_SAVED:
        current_view = 'yarr-list_saved'

    return render(
        request,
        template,
        {
            'title': title,
            'entries': entries,
            'pagination': pagination,
            'feed': feed,
            'feeds': feeds,
            'state': state,
            'order_asc': order == ORDER_ASC,
            'constants': constants,
            'current_view': current_view,
            'yarr_settings': {
                'add_jquery':
                settings.ADD_JQUERY,
                # JavaScript YARR_CONFIG variables
                'config':
                utils.jsonEncode({
                    'api': reverse('yarr-api_base'),
                    'con': '#yarr_con',
                    'initial_state': state,
                    'initial_order': order,
                    'initial_feed': feed_pk,
                    'layout_fixed': settings.LAYOUT_FIXED,
                    'api_page_length': settings.API_PAGE_LENGTH,
                    'title_template': settings.TITLE_TEMPLATE,
                    'title_selector': settings.TITLE_SELECTOR,
                    'available_pks': available_pks,
                    'url_all': {
                        None: reverse('yarr-list_all'),
                        ENTRY_UNREAD: reverse('yarr-list_unread'),
                        ENTRY_SAVED: reverse('yarr-list_saved'),
                    },
                    'url_feed': {
                        None:
                        reverse('yarr-list_all', kwargs={'feed_pk': '00'}),
                        ENTRY_UNREAD:
                        reverse('yarr-list_unread', kwargs={'feed_pk': '00'}),
                        ENTRY_SAVED:
                        reverse('yarr-list_saved', kwargs={'feed_pk': '00'}),
                    }
                }),
            },
        })
Exemplo n.º 5
0
def list_entries(
    request, feed_pk=None, state=None, template="yarr/list_entries.html",
):
    """
    Display a list of entries
    Takes optional arguments to determine which entries to list:
        feed_pk     Primary key for a Feed
        state       The state of entries to list; one of:
                    None            All entries
                    ENTRY_UNREAD    Unread entries
                    ENTRY_SAVED     Saved entries

    Takes a single querystring argument:
        order       If "asc", order chronologically (otherwise
                    reverse-chronologically).

    Note: no built-in url calls this with state == ENTRY_READ, but support
    exists for a custom url.
    """
    # Get entries queryset
    qs, feed = get_entries(request, feed_pk, state)
    
    order = request.GET.get('order', ORDER_DESC)
    if order == ORDER_ASC:
        qs = qs.order_by('date')
    else:
        qs = qs.order_by('-date')

    # Make list of available pks for this page
    available_pks = list(qs.values_list('pk', flat=True))
    
    # Paginate
    entries, pagination = utils.paginate(request, qs)
    
    # Base title
    if state is None:
        title = 'All items'
    elif state == ENTRY_UNREAD:
        title = 'Unread items'
    elif state == ENTRY_SAVED:
        title = 'Saved items'
    else:
        raise ValueError('Cannot list entries in unknown state')
        
    # Add tag feed to title
    if feed:
        title = '%s - %s' % (feed.title, title)
    
    # Get list of feeds for feed list
    feeds = models.Feed.objects.filter(user=request.user)
    
    # Determine current view for reverse
    if state is None:
        current_view = 'yarr-list_all'
    elif state == ENTRY_UNREAD:
        current_view = 'yarr-list_unread'
    elif state == ENTRY_SAVED:
        current_view = 'yarr-list_saved'
    
    return render(request, template, {
        'title':    title,
        'entries':  entries,
        'pagination': pagination,
        'feed':     feed,
        'feeds':    feeds,
        'state':    state,
        'order_asc':    order == ORDER_ASC,
        'constants':    constants,
        'current_view': current_view,
        'yarr_settings': {
            'add_jquery':       settings.ADD_JQUERY,
            # JavaScript YARR_CONFIG variables
            'config':   utils.jsonEncode({
                'api':  reverse('yarr-api_base'),
                'con':  '#yarr_con',
                'initial_state':    state,
                'initial_order':    order,
                'initial_feed':     feed_pk,
                'layout_fixed':     settings.LAYOUT_FIXED,
                'api_page_length':  settings.API_PAGE_LENGTH,
                'title_template':   settings.TITLE_TEMPLATE,
                'title_selector':   settings.TITLE_SELECTOR,
                'available_pks':    available_pks,
                'url_all': {
                    None:           reverse('yarr-list_all'),
                    ENTRY_UNREAD:   reverse('yarr-list_unread'),
                    ENTRY_SAVED:    reverse('yarr-list_saved'),
                },
                'url_feed': {
                    None:           reverse('yarr-list_all', kwargs={'feed_pk':'00'}),
                    ENTRY_UNREAD:   reverse('yarr-list_unread', kwargs={'feed_pk':'00'}),
                    ENTRY_SAVED:    reverse('yarr-list_saved', kwargs={'feed_pk':'00'}),
                }
            }),
        },
    })