admin.py 1.28 KB
Newer Older
1 2 3 4
"""
Django admin page for embargo models
"""
from django.contrib import admin
5
import textwrap
6 7

from config_models.admin import ConfigurationModelAdmin
8 9
from embargo.models import IPFilter, CountryAccessRule, RestrictedCourse
from embargo.forms import IPFilterForm, RestrictedCourseForm
10 11


12
class IPFilterAdmin(ConfigurationModelAdmin):
13
    """Admin for blacklisting/whitelisting specific IP addresses"""
14
    form = IPFilterForm
15 16
    fieldsets = (
        (None, {
17
            'fields': ('enabled', 'whitelist', 'blacklist'),
18 19 20 21
            'description': textwrap.dedent("""Enter specific IP addresses to explicitly
            whitelist (not block) or blacklist (block) in the appropriate box below.
            Separate IP addresses with a comma. Do not surround with quotes.
            """)
22 23 24
        }),
    )

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

class CountryAccessRuleInline(admin.StackedInline):
    """Inline editor for country access rules. """
    model = CountryAccessRule
    extra = 1

    def has_delete_permission(self, request, obj=None):
        return True


class RestrictedCourseAdmin(admin.ModelAdmin):
    """Admin for configuring course restrictions. """
    inlines = [CountryAccessRuleInline]
    form = RestrictedCourseForm


41
admin.site.register(IPFilter, IPFilterAdmin)
42
admin.site.register(RestrictedCourse, RestrictedCourseAdmin)