diff --git a/accounts_ext/admin.py b/accounts_ext/admin.py index df2bbaa..9fbafaf 100644 --- a/accounts_ext/admin.py +++ b/accounts_ext/admin.py @@ -3,16 +3,31 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group as GroupBase from django.contrib.auth.admin import UserAdmin as BaseUserAdmin, GroupAdmin from django.utils.translation import ugettext_lazy as _ +from import_export import resources from jet.filters import RelatedFieldAjaxListFilter, DateRangeFilter +from accounts_ext.forms import UserChangeForm, UserCreationForm from core.admin import SafeModelAdmin -from .models import Profile, Company, UserPoints +from .models import Profile, Company, UserPoints, Group + + +class CustomUserResource(resources.ModelResource): + class Meta: + model = get_user_model() + fields = ('id', 'username', 'email', 'status',) + export_order = ( + 'id', 'username', 'email', 'status' + ) @admin.register(get_user_model()) -class UserAdmin(SafeModelAdmin,BaseUserAdmin): +class UserAdmin(SafeModelAdmin, BaseUserAdmin): + inlines = [ + # @TODO: ADD INLINE ADMIN FOR REFERRALS + ] + fieldsets = ( - (None, {'fields': ('email','username', 'password')}), + (None, {'fields': ('email', 'username', 'password')}), (_('Permissions'), {'fields': ('status', 'is_superuser', 'groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'confirmed_at')}), @@ -23,23 +38,31 @@ class UserAdmin(SafeModelAdmin,BaseUserAdmin): 'fields': ('username', 'password1', 'password2'), }), ) - list_display = ('username', 'email', 'status') + list_display = ('email', 'username', 'status') list_filter = ( 'status', 'is_superuser', 'groups', - ('confirmed_at', DateRangeFilter) + ('confirmed_at', DateRangeFilter), + ('create_at', DateRangeFilter), + ('updated_at', DateRangeFilter), ) search_fields = ('username', 'first_name', 'last_name', 'email') ordering = ('username',) - filter_horizontal = ('groups', 'user_permissions',) + list_editable = ('status',) + filter_horizontal = () + form = UserChangeForm + add_form = UserCreationForm + + resource_class = CustomUserResource @admin.register(Profile) -class ProfileAdmin(SafeModelAdmin, admin.ModelAdmin): - search_fields = ('first_name','last_name','phone') - list_display = ('first_name','last_name','phone') +class ProfileAdmin(admin.ModelAdmin): + search_fields = ('first_name', 'last_name', 'phone') + list_display = ('user', 'first_name', 'last_name', 'phone') list_filter = ( ('birthday', DateRangeFilter), ) + readonly_fields = ('first_name', 'last_name', 'phone',) exclude = ('status',) def has_delete_permission(self, request, obj=None): @@ -50,10 +73,11 @@ class ProfileAdmin(SafeModelAdmin, admin.ModelAdmin): @admin.register(Company) -class CompanyAdmin(SafeModelAdmin, admin.ModelAdmin): - list_display = ('id','company_name','status') - search_fields = ('company_name','inn','ogrn'), - list_filter = ('status',) +class CompanyAdmin(admin.ModelAdmin): + search_fields = ('company_name', 'inn', 'ogrn'), + list_display = ('user', 'company_name', 'type') + list_filter = ('type',) + readonly_fields = ('company_name', 'inn', 'ogrn', 'type') def has_delete_permission(self, request, obj=None): return False @@ -63,3 +87,8 @@ class CompanyAdmin(SafeModelAdmin, admin.ModelAdmin): admin.site.unregister(GroupBase) + + +@admin.register(Group) +class GroupAdmin(GroupAdmin): + pass