Changeset 2536

Show
Ignore:
Timestamp:
02/18/10 17:29:57 (5 months ago)
Author:
JensDiemer
Message:

add a link to the feed page, in update journal table

Location:
branches/0.9/pylucid_project/pylucid_plugins/update_journal
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/0.9/pylucid_project/pylucid_plugins/update_journal/templates/update_journal/update_journal_table.html

    r2468 r2536  
    3737  {% endfor %} 
    3838</table> 
     39{% if select_feed_url %} 
     40<a href="{{ select_feed_url }}" class="select_feeds" title="{% trans "select update journal feed format" %}"> 
     41        {% trans "get update journal as RSS/Atom feed." %} 
     42</a> 
     43{% endif %} 
    3944{% else %} 
    4045    <p>No updates recorded in update journal.</p> 
  • branches/0.9/pylucid_project/pylucid_plugins/update_journal/views.py

    r2530 r2536  
    2525from django.utils.translation import ugettext_lazy as _ 
    2626from django.utils.feedgenerator import Rss201rev2Feed, Atom1Feed 
     27from django.core.urlresolvers import NoReverseMatch 
    2728 
    2829from pylucid_project.apps.pylucid.models import Language 
     
    3031 
    3132from pylucid_project.pylucid_plugins.update_journal.models import UpdateJournal 
    32  
     33from pylucid_project.apps.pylucid.models import PluginPage 
    3334 
    3435def _get_queryset(request, count): 
     
    4142    if not request.user.is_staff: 
    4243        queryset = queryset.filter(staff_only=False) 
    43   
     44 
    4445    return queryset[:count] 
    4546 
     
    5051        count = int(count) 
    5152    except Exception, e: 
    52         if request.user.is_stuff(): 
     53        if request.user.is_staff: 
    5354            request.page_msg.error("page_update_list error: count must be a integer (%s)" % e) 
    5455        count = 10 
     
    5657    queryset = _get_queryset(request, count) 
    5758 
    58     return {"update_list": queryset} 
     59    try: 
     60        select_feed_url = PluginPage.objects.reverse("update_journal", "UpdateJournal-select_feed") 
     61    except NoReverseMatch, err: 
     62        select_feed_url = None 
     63        if settings.DEBUG is not None and request.user.is_staff: 
     64            # PluginPage.objects.reverse creates a page_msg only in DEBUG mode. 
     65            request.page_msg.error(err) 
     66 
     67    context = { 
     68        "update_list": queryset, 
     69        "select_feed_url": select_feed_url 
     70    } 
     71    return context 
    5972 
    6073 
     
    6275    feed_type = Rss201rev2Feed 
    6376    filename = "feed.rss" 
    64      
     77 
    6578    title = "Update Journal" 
    6679    link = "/" 
    6780    description = "Updates and changes" 
    6881    description_template = "update_journal/feed_description.html" 
    69      
     82 
    7083    def __init__(self, request): 
    7184        self.count = 10 # FIXME: use GET parameter? 
     
    7790    def item_title(self, item): 
    7891        return item.title 
    79      
     92 
    8093    def item_link(self, item): 
    8194        return item.object_url 
     
    102115    context = {"feeds": FEEDS} 
    103116    return context 
    104      
     117 
    105118 
    106119def feed(request, filename): 
     
    112125        if filename == feed_class.filename: 
    113126            break 
    114      
     127 
    115128    #print "feed class:", feed_class 
    116129    feed = feed_class(request) 
    117130    response = feed(request) 
    118131    return response 
    119