Admin blocks

Admin blocks hold values for django admin fields for various models. As we follow a compositions model for defining our data models, we have created a parallel system to build django admin panels for the composition models. Optimized for mixing, matching and combining django admin config for various models.

Bases

class building_blocks.admin.blocks.base.BaseAdminBlock

BaseAdminBlock is the base class for creating custom admin blocks. It provides a set of fields and methods that can be overridden and extended to create custom behavior and appearance for the admin interface.

Corresponds to django.contrib.admin.BaseModelAdmin.

Parameters
  • base_fields – A list of fields to be displayed in the admin interface.

  • extra_fields – A list of extra/optional fields to be displayed in the admin interface.

  • admin_fields – fields that should be always included in the admin fieldset

  • extra_admin_fields – extra/optional fields that should be always included in the admin fieldset

  • readonly_fields – fields that should be always readonly in the admin form

  • extra_readonly_fields – fields that should be readonly in the admin form, but optionally

  • edit_readonly_fields – fields that should be always readonly in the admin form when editing an existing object

  • extra_edit_readonly_fields – fields that should be readonly in the admin form when editing an existing object, but optionally

  • autocomplete_fields – fields that should use autocomplete widgets in the admin form

  • extra_autocomplete_fields – fields that should use autocomplete widgets in the admin form, but optionally

class building_blocks.admin.blocks.base.AdminBlock

Bases: BaseAdminBlock

AdminBlock is used to configure views for the admin interface. It inherits from BaseAdminBlock and contains fields for django admin list view config.

Corresponds to django.contrib.admin.ModelAdmin. Usually contains config for list views over BaseAdminBlock

Parameters
  • actions – A list of predefined actions that can be performed on selected objects in the admin list view.

  • extra_actions – A list of extra/optional actions that can be performed on selected objects in the admin list view.

  • search_fields – A list of fields to be searched when the user enters a search query in the admin list view.

  • extra_search_fields – A list of extra/optional fields to be searched when the user enters a search query in the admin list view.

  • list_display – A list of fields to be displayed in the admin list view.

  • extra_list_display – A list of extra/optional fields to be displayed in the admin list view.

  • list_filter – A list of fields to be used as filters in the admin list view.

  • extra_list_filter – A list of extra/optional fields to be used as filters in the admin list view.

Implementations

class building_blocks.admin.blocks.base.HasUUIDAdminBlock

Bases: AdminBlock

AdminBlock for models extending building_blocks.models.blocks.HasUUID

Parameters
  • readonly_fields – (UUID,)

  • admin_fields – (UUID,)

class building_blocks.admin.blocks.base.HasSlugAdminBlock

Bases: AdminBlock

AdminBlock for models with a slug field

Parameters
  • admin_fields – (SLUG,)

  • edit_readonly_fields – (SLUG,)

class building_blocks.admin.blocks.base.TimeStampedAdminBlock

Bases: AdminBlock

AdminBlock for models extending TimeStampedModel

Parameters
  • readonly_fields – (CREATED, MODIFIED)

  • admin_fields – (CREATED,)

  • extra_admin_fields – (MODIFIED,)

class building_blocks.admin.blocks.UnnamedBaseKaosModelAdminBlock

AdminBlock for models extending UnnamedBaseKaosModel

Parameters
  • admin_fields – (UUID, CREATED)

  • extra_admin_fields – (MODIFIED,)

  • readonly_fields – (UUID, CREATED, MODIFIED,)

class building_blocks.admin.blocks.extra.KaosModelAdminBlock

Bases: XXXAdminBlock

AdminBlock for models extending KaosModel

Parameters
  • admin_fields – (UUID, CREATED)

  • base_fields – (NAME,)

  • extra_admin_fields – (MODIFIED,)

  • readonly_fields – (UUID, CREATED, MODIFIED,)

  • the_fieldset – (None, {‘fields’: (NAME,)})

class building_blocks.admin.blocks.SluggedKaosModelAdminBlock

AdminBlock for models extending both SluggedModel and UnnamedBaseKaosModel

Parameters
  • admin_fields – (SLUG, UUID, CREATED)

  • base_fields – (NAME,)

  • edit_readonly_fields – (SLUG,)

  • extra_admin_fields – (MODIFIED,)

  • readonly_fields – (UUID, CREATED, MODIFIED,)

  • the_fieldset – (None, {‘fields’: (NAME,)})

Utils

class building_blocks.admin.blocks.base.AdminFieldsetTitle

Class to hold constant values for django fieldset titles

Parameters
  • admin – “Admin”

  • extra – “Extra”