This commit is contained in:
IGNY8 VPS (Salman)
2025-12-14 22:21:17 +00:00
parent 9150b60c2d
commit f637f700eb
11 changed files with 1565 additions and 58 deletions

View File

@@ -7,6 +7,8 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from unfold.admin import ModelAdmin, TabularInline
from igny8_core.admin.base import AccountAdminMixin
from .models import User, Account, Plan, Subscription, Site, Sector, SiteUserAccess, Industry, IndustrySector, SeedKeyword, PasswordResetToken
from import_export.admin import ExportMixin
from import_export import resources
class AccountAdminForm(forms.ModelForm):
@@ -143,8 +145,18 @@ class PlanAdmin(ModelAdmin):
)
class AccountResource(resources.ModelResource):
"""Resource class for exporting Accounts"""
class Meta:
model = Account
fields = ('id', 'name', 'slug', 'owner__email', 'plan__name', 'status',
'credits', 'billing_country', 'created_at', 'updated_at')
export_order = fields
@admin.register(Account)
class AccountAdmin(AccountAdminMixin, ModelAdmin):
class AccountAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
resource_class = AccountResource
form = AccountAdminForm
list_display = ['name', 'slug', 'owner', 'plan', 'status', 'health_indicator', 'credits', 'created_at']
list_filter = ['status', 'plan']
@@ -352,8 +364,18 @@ class SectorInline(TabularInline):
get_clusters_count.short_description = 'Clusters'
class SiteResource(resources.ModelResource):
"""Resource class for exporting Sites"""
class Meta:
model = Site
fields = ('id', 'name', 'slug', 'account__name', 'industry__name', 'domain',
'status', 'is_active', 'site_type', 'hosting_type', 'created_at')
export_order = fields
@admin.register(Site)
class SiteAdmin(AccountAdminMixin, ModelAdmin):
class SiteAdmin(ExportMixin, AccountAdminMixin, ModelAdmin):
resource_class = SiteResource
list_display = ['name', 'slug', 'account', 'industry', 'domain', 'status', 'is_active', 'get_api_key_status', 'get_sectors_count']
list_filter = ['status', 'is_active', 'account', 'industry', 'hosting_type']
search_fields = ['name', 'slug', 'domain', 'industry__name']
@@ -542,12 +564,22 @@ class SeedKeywordAdmin(ModelAdmin):
return request.user.is_superuser or (hasattr(request.user, 'is_developer') and request.user.is_developer())
class UserResource(resources.ModelResource):
"""Resource class for exporting Users"""
class Meta:
model = User
fields = ('id', 'email', 'username', 'account__name', 'role',
'is_active', 'is_staff', 'created_at', 'last_login')
export_order = fields
@admin.register(User)
class UserAdmin(BaseUserAdmin, ModelAdmin):
class UserAdmin(ExportMixin, BaseUserAdmin, ModelAdmin):
"""
User admin using both Django's BaseUserAdmin (for user-specific functionality)
and Unfold's ModelAdmin (for modern UI and styling including popups)
"""
resource_class = UserResource
list_display = ['email', 'username', 'account', 'role', 'is_active', 'is_staff', 'created_at']
list_filter = ['role', 'account', 'is_active', 'is_staff']
search_fields = ['email', 'username']