hackspace/mhackspace/feeds/admin.py

40 lines
1.3 KiB
Python

from django.contrib import admin
from django.contrib.admin import ModelAdmin
from django.conf.urls import url
from django.http import HttpResponseRedirect
from django.urls import reverse
from mhackspace.feeds.models import Feed, Article
from mhackspace.feeds.helper import import_feeds
@admin.register(Feed)
class FeedAdmin(ModelAdmin):
list_display = ('title', 'home_url', 'author', 'tags', 'enabled')
list_filter = ('enabled',)
@admin.register(Article)
class ArticleAdmin(ModelAdmin):
date_hierarchy = 'date'
list_display = ('title', 'url', 'feed', 'date', 'displayed')
list_filter = ('displayed', 'feed', 'feed__author')
readonly_fields = ('original_image',)
ordering = ('-date',)
def get_urls(self):
urls = super(ArticleAdmin, self).get_urls()
my_urls = [
url(r'^import/$', self.admin_site.admin_view(self.import_articles))
]
return my_urls + urls
def import_articles(self, request):
imported = import_feeds()
self.message_user(request, 'Successfully imported %s articles' % len(imported))
return HttpResponseRedirect(reverse('admin:feeds_article_changelist'))
admin.site.site_title = 'Maidstone Hackspace Admin Area'
admin.site.site_header = 'Maidstone Hackspace Admin Area'
admin.site.index_title = 'Maidstone Admin Home'