summaryrefslogtreecommitdiff
path: root/aggregator/admin.py
blob: 29c2dbb7a93b161c1e61c10eaea273d98f48079b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from django.contrib import admin

from .models import (
    APPROVED_FEED,
    DENIED_FEED,
    Feed,
    FeedItem,
    FeedType,
    LocalDjangoCommunity,
)


@admin.action(description="Mark selected feeds as approved.")
def mark_approved(modeladmin, request, queryset):
    for item in queryset.iterator():
        item.approval_status = APPROVED_FEED
        item.save()


@admin.action(description="Mark selected feeds as denied.")
def mark_denied(modeladmin, request, queryset):
    for item in queryset.iterator():
        item.approval_status = DENIED_FEED
        item.save()


admin.site.register(
    Feed,
    list_display=["title", "feed_type", "public_url", "approval_status"],
    list_filter=["feed_type", "approval_status"],
    ordering=["title"],
    search_fields=["title", "public_url"],
    raw_id_fields=["owner"],
    list_editable=["approval_status"],
    list_per_page=500,
    actions=[mark_approved, mark_denied],
)

admin.site.register(
    FeedItem,
    list_display=["title", "feed", "date_modified"],
    list_filter=["feed"],
    search_fields=["feed__title", "feed__public_url", "title"],
    date_heirarchy=["date_modified"],
)

admin.site.register(
    FeedType,
    prepopulated_fields={"slug": ("name",)},
)

admin.site.register(
    LocalDjangoCommunity,
    prepopulated_fields={"slug": ("name",)},
    list_filter=["name", "city", "country", "is_active"],
    search_fields=["name", "city", "country"],
)