Аутентификация и кто и когда создал
This commit is contained in:
@@ -40,10 +40,17 @@ from .filters import GeoKupDistanceFilter, GeoValidDistanceFilter, UniqueToggleF
|
||||
admin.site.site_title = "Геолокация"
|
||||
admin.site.site_header = "Geolocation"
|
||||
admin.site.index_title = "Geo"
|
||||
# Unregister default User and Group since we're customizing them
|
||||
admin.site.unregister(User)
|
||||
admin.site.unregister(Group)
|
||||
|
||||
|
||||
class CustomUserInline(admin.StackedInline):
|
||||
model = CustomUser
|
||||
can_delete = False
|
||||
verbose_name_plural = 'Дополнительная информация пользователя'
|
||||
|
||||
|
||||
class LocationForm(forms.ModelForm):
|
||||
latitude_geo = forms.FloatField(required=False, label="Широта")
|
||||
longitude_geo = forms.FloatField(required=False, label="Долгота")
|
||||
@@ -117,23 +124,18 @@ class GeoInline(admin.StackedInline):
|
||||
)
|
||||
|
||||
|
||||
class CustomUserInline(admin.StackedInline):
|
||||
model = CustomUser
|
||||
can_delete = False
|
||||
verbose_name_plural = 'Дополнительная информация пользователя'
|
||||
|
||||
|
||||
@admin.register(CustomUser)
|
||||
class CustomUserAdmin(admin.ModelAdmin):
|
||||
list_display = ('user', 'role')
|
||||
list_filter = ('role',)
|
||||
|
||||
|
||||
class UserAdmin(BaseUserAdmin):
|
||||
inlines = [CustomUserInline]
|
||||
|
||||
admin.site.register(User, UserAdmin)
|
||||
|
||||
|
||||
# @admin.register(CustomUser)
|
||||
# class CustomUserAdmin(admin.ModelAdmin):
|
||||
# list_display = ('user', 'role')
|
||||
# list_filter = ('role',)
|
||||
# raw_id_fields = ('user',) # For better performance with large number of users
|
||||
|
||||
@admin.register(SigmaParMark)
|
||||
class SigmaParMarkAdmin(admin.ModelAdmin):
|
||||
list_display = ("mark", "timestamp")
|
||||
@@ -410,7 +412,6 @@ class ParameterObjItemInline(admin.StackedInline):
|
||||
max_num = 1
|
||||
verbose_name = "ВЧ загрузка"
|
||||
verbose_name_plural = "ВЧ загрузки"
|
||||
|
||||
|
||||
|
||||
@admin.register(ObjItem)
|
||||
@@ -430,6 +431,8 @@ class ObjectAdmin(admin.ModelAdmin):
|
||||
"distance_geo_kup",
|
||||
"distance_geo_valid",
|
||||
"distance_kup_valid",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
)
|
||||
list_display_links = ("name",)
|
||||
list_filter = (
|
||||
@@ -452,18 +455,28 @@ class ObjectAdmin(admin.ModelAdmin):
|
||||
ordering = ("name",)
|
||||
inlines = [ParameterObjItemInline, GeoInline]
|
||||
actions = [show_on_map]
|
||||
|
||||
|
||||
readonly_fields = ('created_at', 'created_by', 'updated_at', 'updated_by')
|
||||
|
||||
def get_queryset(self, request):
|
||||
qs = super().get_queryset(request)
|
||||
return qs.select_related('geo_obj').prefetch_related(
|
||||
return qs.select_related('geo_obj', 'created_by', 'updated_by').prefetch_related(
|
||||
'parameters_obj__id_satellite',
|
||||
'parameters_obj__polarization',
|
||||
'parameters_obj__modulation',
|
||||
'parameters_obj__standard'
|
||||
)
|
||||
|
||||
def get_readonly_fields(self, request, obj=None):
|
||||
# Always make these fields readonly to preserve tracking
|
||||
return self.readonly_fields
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
if not change:
|
||||
if not obj.created_by_id:
|
||||
obj.created_by = request.user.customuser if hasattr(request.user, 'customuser') else None
|
||||
obj.updated_by = request.user.customuser if hasattr(request.user, 'customuser') else None
|
||||
super().save_model(request, obj, form, change)
|
||||
|
||||
def sat_name(self, obj):
|
||||
param = next(iter(obj.parameters_obj.all()), None)
|
||||
if param and param.id_satellite:
|
||||
|
||||
Reference in New Issue
Block a user