master - part 2
This commit is contained in:
@@ -96,17 +96,15 @@ class ClustersAdmin(ImportExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
|
||||
@admin.register(Keywords)
|
||||
class KeywordsAdmin(ImportExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
|
||||
resource_class = KeywordsResource
|
||||
list_display = ['keyword', 'seed_keyword', 'site', 'sector', 'cluster', 'volume', 'difficulty', 'country', 'status', 'created_at']
|
||||
# Use actual DB fields and custom methods with @admin.display for computed values
|
||||
list_display = ['get_keyword', 'seed_keyword', 'site', 'sector', 'cluster', 'get_volume', 'get_difficulty', 'get_country', 'status', 'created_at']
|
||||
list_editable = ['status'] # Enable inline editing for status
|
||||
list_select_related = ['site', 'sector', 'cluster', 'seed_keyword', 'seed_keyword__industry', 'seed_keyword__sector', 'account']
|
||||
list_filter = [
|
||||
('status', ChoicesDropdownFilter),
|
||||
('country', ChoicesDropdownFilter),
|
||||
('site', RelatedDropdownFilter),
|
||||
('sector', RelatedDropdownFilter),
|
||||
('cluster', RelatedDropdownFilter),
|
||||
('volume', RangeNumericFilter),
|
||||
('difficulty', RangeNumericFilter),
|
||||
('created_at', RangeDateFilter),
|
||||
]
|
||||
search_fields = ['seed_keyword__keyword']
|
||||
@@ -119,6 +117,30 @@ class KeywordsAdmin(ImportExportMixin, SiteSectorAdminMixin, Igny8ModelAdmin):
|
||||
'bulk_soft_delete',
|
||||
]
|
||||
|
||||
@admin.display(description='Keyword')
|
||||
def get_keyword(self, obj):
|
||||
"""Get keyword from seed_keyword"""
|
||||
return obj.seed_keyword.keyword if obj.seed_keyword else '-'
|
||||
|
||||
@admin.display(description='Volume')
|
||||
def get_volume(self, obj):
|
||||
"""Get volume from override or seed_keyword"""
|
||||
if obj.volume_override is not None:
|
||||
return obj.volume_override
|
||||
return obj.seed_keyword.volume if obj.seed_keyword else 0
|
||||
|
||||
@admin.display(description='Difficulty')
|
||||
def get_difficulty(self, obj):
|
||||
"""Get difficulty from override or seed_keyword"""
|
||||
if obj.difficulty_override is not None:
|
||||
return obj.difficulty_override
|
||||
return obj.seed_keyword.difficulty if obj.seed_keyword else 0
|
||||
|
||||
@admin.display(description='Country')
|
||||
def get_country(self, obj):
|
||||
"""Get country from seed_keyword"""
|
||||
return obj.seed_keyword.country if obj.seed_keyword else 'US'
|
||||
|
||||
def get_site_display(self, obj):
|
||||
"""Safely get site name"""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user