|
|
|
|
@ -2,12 +2,14 @@ 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.urls import reverse_lazy |
|
|
|
|
from django.utils.html import format_html, escape |
|
|
|
|
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 referral.admin import ReferralAdminInline |
|
|
|
|
|
|
|
|
|
from .forms import UserChangeForm, UserCreationForm |
|
|
|
|
from .models import Profile, Company, Group |
|
|
|
|
@ -24,20 +26,24 @@ class CustomUserResource(resources.ModelResource): |
|
|
|
|
|
|
|
|
|
@admin.register(get_user_model()) |
|
|
|
|
class UserAdmin(SafeModelAdmin, BaseUserAdmin): |
|
|
|
|
inlines = [ |
|
|
|
|
RefarralAdminInline |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
inlines = ( |
|
|
|
|
ReferralAdminInline, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
fieldsets = ( |
|
|
|
|
(None, {'fields': ('email', 'username', 'password','referral_user')}), |
|
|
|
|
(None, {'fields': ('email', 'username', 'password','referral_code')}), |
|
|
|
|
(_('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'), |
|
|
|
|
'fields': ( |
|
|
|
|
'username', 'email', 'password1', 'password2', 'referral_code', 'status', 'is_superuser' |
|
|
|
|
), |
|
|
|
|
}), |
|
|
|
|
) |
|
|
|
|
list_display = ('email', 'username', 'status') |
|
|
|
|
@ -47,6 +53,7 @@ class UserAdmin(SafeModelAdmin, BaseUserAdmin): |
|
|
|
|
('create_at', DateRangeFilter), |
|
|
|
|
('updated_at', DateRangeFilter), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
search_fields = ('username', 'first_name', 'last_name', 'email') |
|
|
|
|
ordering = ('username',) |
|
|
|
|
list_editable = ('status',) |
|
|
|
|
@ -56,6 +63,26 @@ class UserAdmin(SafeModelAdmin, BaseUserAdmin): |
|
|
|
|
|
|
|
|
|
resource_class = CustomUserResource |
|
|
|
|
|
|
|
|
|
def get_inline_instances(self, request, obj=None): |
|
|
|
|
add_path = reverse_lazy( |
|
|
|
|
'admin:{}_{}_add'.format( |
|
|
|
|
self.model._meta.app_label, |
|
|
|
|
self.model._meta.object_name.lower() |
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
if request.path == add_path: |
|
|
|
|
self.inlines = () |
|
|
|
|
else: |
|
|
|
|
self.inlines = ( |
|
|
|
|
ReferralAdminInline, |
|
|
|
|
) |
|
|
|
|
return super().get_inline_instances(request, obj) |
|
|
|
|
|
|
|
|
|
def get_field_queryset(self, db, db_field, request): |
|
|
|
|
queryset = super().get_field_queryset(db, db_field, request) |
|
|
|
|
if db_field.name == "referral_code": |
|
|
|
|
queryset = queryset.exclude(referral_owner__id=request.resolver_match.kwargs.get('object_id', None)) |
|
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
@admin.register(Profile) |
|
|
|
|
class ProfileAdmin(admin.ModelAdmin): |
|
|
|
|
|