40 lines
1.3 KiB
Python
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'
|