Skip to content

Commit

Permalink
📚 doc: update-admin-models-doc-string
Browse files Browse the repository at this point in the history
  • Loading branch information
ARYAN-NIKNEZHAD committed Aug 4, 2024
1 parent 99d7242 commit 598523d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
14 changes: 14 additions & 0 deletions iranian_cities/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@


class IranianCitiesAdmin(admin.ModelAdmin):
"""Custom admin model for Iranian cities with a custom form field for foreign key."""

def formfield_for_foreignkey(self, db_field: ForeignKey, request: HttpRequest, **kwargs: Any) -> Any:
"""Override the default form field for foreign keys to use ForeignKeyRawIdWidget."""
db: Optional[str] = kwargs.get('using')
kwargs['widget'] = widgets.ForeignKeyRawIdWidget(
db_field.remote_field, self.admin_site, using=db)
Expand All @@ -26,34 +29,39 @@ def formfield_for_foreignkey(self, db_field: ForeignKey, request: HttpRequest, *


class CountyInline(BaseTabularInline):
"""Inline admin model for County."""
model = County
extra = 1
raw_id_fields = ['province']
max_num = 5


class DistrictInline(BaseTabularInline):
"""Inline admin model for District."""
model = District
extra = 1
raw_id_fields = ['county', 'province']
max_num = 5


class CityInline(BaseTabularInline):
"""Inline admin model for City."""
model = City
extra = 1
raw_id_fields = ['district', 'county', 'province']
max_num = 5


class RuralDistrictInline(BaseTabularInline):
"""Inline admin model for RuralDistrict."""
model = RuralDistrict
extra = 1
raw_id_fields = ['district', 'county', 'province']
max_num = 5


class VillageInline(BaseTabularInline):
"""Inline admin model for Village."""
model = Village
extra = 1
raw_id_fields = ['rural_district', 'district', 'county', 'province']
Expand All @@ -62,12 +70,14 @@ class VillageInline(BaseTabularInline):

@admin.register(Province)
class ProvinceAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for Province."""
list_display = ['name', 'code']
search_fields = ['name', 'code']


@admin.register(County)
class CountyAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for County."""
list_display = ['name', 'code', 'province']
list_filter = ['province']
search_fields = ['name', 'code', 'province__name']
Expand All @@ -76,6 +86,7 @@ class CountyAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.M

@admin.register(City)
class CityAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for City."""
list_display = [
'name', 'code', 'city_type',
'district', 'county', 'province'
Expand All @@ -90,6 +101,7 @@ class CityAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.Mod

@admin.register(District)
class DistrictAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for District."""
list_display = ['name', 'code', 'county', 'province']
list_filter = ['province']
search_fields = ['name', 'code', 'county__name', 'province__name']
Expand All @@ -98,6 +110,7 @@ class DistrictAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin

@admin.register(RuralDistrict)
class RuralDistrictAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for RuralDistrict."""
list_display = ['name', 'code', 'district', 'county', 'province']
list_filter = ['province']
search_fields = ['name', 'code', 'district__name', 'county__name', 'province__name']
Expand All @@ -106,6 +119,7 @@ class RuralDistrictAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin,

@admin.register(Village)
class VillageAdmin(IranianCitiesAdminReadOnlyEnabled, DynamicInlineAdmin, admin.ModelAdmin):
"""Admin model for Village."""
list_display = [
'name', 'code', 'village_type',
'rural_district', 'district', 'county', 'province'
Expand Down
1 change: 1 addition & 0 deletions iranian_cities/mixins/base_inline.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@


class BaseTabularInline(admin.TabularInline):
"""Base class for inline models using a tabular layout."""
extra = 1
max_num = 5

0 comments on commit 598523d

Please sign in to comment.