admin.py 1.27 KB
Newer Older
1 2 3
"""
Django admin page for embargo models
"""
4
import textwrap
5 6

from config_models.admin import ConfigurationModelAdmin
7 8 9 10
from django.contrib import admin

from .forms import IPFilterForm, RestrictedCourseForm
from .models import CountryAccessRule, IPFilter, RestrictedCourse
11 12


13
class IPFilterAdmin(ConfigurationModelAdmin):
14
    """Admin for blacklisting/whitelisting specific IP addresses"""
15
    form = IPFilterForm
16 17
    fieldsets = (
        (None, {
18
            'fields': ('enabled', 'whitelist', 'blacklist'),
19 20 21 22
            '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.
            """)
23 24 25
        }),
    )

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

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


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