summaryrefslogtreecommitdiff
path: root/pgweb/news/admin.py
blob: 62646b7f175bf97079d345c514dd1ea2b0cd4e6e (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
from django.contrib import admin
from django import forms

from pgweb.util.admin import PgwebAdmin
from pgweb.core.models import OrganisationEmail
from .models import NewsArticle, NewsTag


class NewsArticleAdminForm(forms.ModelForm):
    model = NewsArticle

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        if self.instance:
            self.fields['email'].queryset = OrganisationEmail.objects.filter(org=self.instance.org, confirmed=True)


class NewsArticleAdmin(PgwebAdmin):
    list_display = ('title', 'org', 'date', 'modstate', 'permanenturl')
    list_filter = ('modstate', )
    filter_horizontal = ('tags', )
    search_fields = ('content', 'title', )
    exclude = ('modstate', 'firstmoderator', )
    form = NewsArticleAdminForm


class NewsTagAdmin(PgwebAdmin):
    list_display = ('urlname', 'name', 'description')
    filter_horizontal = ('allowed_orgs', )


admin.site.register(NewsArticle, NewsArticleAdmin)
admin.site.register(NewsTag, NewsTagAdmin)