Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
dj-address / admin.py
Size: Mime:
import rules
from dj_kaos_utils.admin.utils import render_element
from dj_kaos_utils.forms import unrequire_form
from django.contrib import admin
from iam.contrib.admin import FieldsetPermissionsMixin

from .models import *


@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
    form = unrequire_form(Country, ('name',))

    search_fields = ('alpha_2_code', 'alpha_3_code', 'numeric_code', 'name', 'official_name', 'flag')
    list_display = ('name', 'alpha_2_code', 'alpha_3_code', 'numeric_code', 'official_name', 'flag')

    fieldsets = (
        (None, {'fields': (
            'name',
            'alpha_2_code',
            'alpha_3_code',
        )}),
        ("Misc.", {'fields': (
            'numeric_code', 'official_name', 'flag'
        )}),
    )


@admin.register(CountryRegion)
class CountryRegionAdmin(admin.ModelAdmin):
    search_fields = ('name', 'code', 'country__name')
    list_display = ('name', 'code', 'country')
    list_filter = ('country',)

    fieldsets = (
        (None, {'fields': (
            'name',
            'country',
            'code',
        )}),
    )


@admin.register(Municipality)
class MunicipalityAdmin(admin.ModelAdmin):
    search_fields = ('name', 'region__name')
    list_display = ('name', 'region')
    list_filter = ('region',)

    fieldsets = (
        (None, {'fields': (
            'name',
            'region',
            'short_name',
        )}),
    )


@admin.register(Address)
class AddressAdmin(
    FieldsetPermissionsMixin,
    admin.ModelAdmin
):
    search_fields = ('address_1', 'address_2', 'postal_code')
    list_display = ('address_1', 'address_2', '_municipality_name', 'postal_code', 'addressee')
    list_filter = ('municipality',)

    readonly_fields = (
        'postal_label_display',
    )
    fieldsets = (
        (None, {'fields': (
            'addressee',
            'address_1',
            'address_2',
            'municipality',
            'postal_code',
        )}),
        ("Free form", {'fields': (
            '_municipality_name',
            '_region_name',
            '_country_name',
        ), 'perms': rules.is_superuser}),
        ("Additional information", {'fields': (
            'additional_delivery_information',
        )}),
        ("Display", {'fields': ('postal_label_display',)}),
    )

    @admin.display(description="postal label")
    def postal_label_display(self, obj):
        return render_element('pre', obj.postal_label)