from django.contrib import admin 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 core.admin import SafeModelAdmin from referral.admin import RefarralAdminInline from .forms import UserChangeForm, UserCreationForm from .models import Profile, Company, 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): inlines = [ RefarralAdminInline ] fieldsets = ( (None, {'fields': ('email', 'username', 'password','referral_user')}), (_('Permissions'), {'fields': ('status', 'is_superuser', 'groups', 'user_permissions')}), (_('Important dates'), {'fields': ('last_login', 'confirmed_at')}), ) add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('username', 'email', 'password1', 'password2', 'referral_user', 'status', 'is_superuser'), }), ) list_display = ('email', 'username', 'status') list_filter = ( 'status', 'is_superuser', 'groups', ('confirmed_at', DateRangeFilter), ('create_at', DateRangeFilter), ('updated_at', DateRangeFilter), ) search_fields = ('username', 'first_name', 'last_name', 'email') ordering = ('username',) list_editable = ('status',) filter_horizontal = () form = UserChangeForm add_form = UserCreationForm resource_class = CustomUserResource @admin.register(Profile) 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): return False def has_add_permission(self, request): return False @admin.register(Company) 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 def has_add_permission(self, request): return False admin.site.unregister(GroupBase) @admin.register(Group) class GroupAdmin(GroupAdmin): pass