71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
from django.contrib import admin
|
||
from .models import SSHCredential, Project, SSHLog
|
||
|
||
@admin.register(SSHCredential)
|
||
class SSHCredentialAdmin(admin.ModelAdmin):
|
||
list_display = ('hostname', 'username', 'port', 'is_online', 'last_check')
|
||
list_filter = ('is_online', 'created_at')
|
||
search_fields = ('hostname', 'username')
|
||
readonly_fields = ('is_online', 'last_check', 'created_at')
|
||
fieldsets = (
|
||
('Bağlantı Bilgileri', {
|
||
'fields': ('hostname', 'username', 'password', 'port')
|
||
}),
|
||
('Durum Bilgisi', {
|
||
'fields': ('is_online', 'last_check', 'created_at'),
|
||
'classes': ('collapse',)
|
||
}),
|
||
)
|
||
|
||
@admin.register(Project)
|
||
class ProjectAdmin(admin.ModelAdmin):
|
||
list_display = ('name', 'folder_name', 'url', 'ssh_credential', 'created_at')
|
||
list_filter = ('ssh_credential', 'created_at')
|
||
search_fields = ('name', 'folder_name', 'url')
|
||
readonly_fields = ('created_at', 'updated_at')
|
||
fieldsets = (
|
||
('Temel Bilgiler', {
|
||
'fields': ('name', 'folder_name', 'ssh_credential')
|
||
}),
|
||
('Domain Bilgisi', {
|
||
'fields': ('url',),
|
||
'description': 'Nginx konfigürasyonu için domain adı (Örnek: example.com)'
|
||
}),
|
||
('Zaman Bilgileri', {
|
||
'fields': ('created_at', 'updated_at'),
|
||
'classes': ('collapse',)
|
||
}),
|
||
)
|
||
|
||
def get_full_path(self, obj):
|
||
return obj.get_full_path()
|
||
get_full_path.short_description = 'Tam Yol'
|
||
|
||
@admin.register(SSHLog)
|
||
class SSHLogAdmin(admin.ModelAdmin):
|
||
list_display = ('ssh_credential', 'log_type', 'command', 'status', 'created_at')
|
||
list_filter = ('log_type', 'status', 'created_at')
|
||
search_fields = ('command', 'output')
|
||
readonly_fields = ('created_at',)
|
||
fieldsets = (
|
||
('Log Detayları', {
|
||
'fields': ('ssh_credential', 'log_type', 'command', 'status')
|
||
}),
|
||
('Çıktı', {
|
||
'fields': ('output',),
|
||
'classes': ('wide',)
|
||
}),
|
||
('Zaman Bilgisi', {
|
||
'fields': ('created_at',),
|
||
'classes': ('collapse',)
|
||
}),
|
||
)
|
||
|
||
def get_queryset(self, request):
|
||
return super().get_queryset(request).select_related('ssh_credential')
|
||
|
||
def has_add_permission(self, request):
|
||
return False # Log kayıtları manuel olarak eklenemez
|
||
|
||
def has_change_permission(self, request, obj=None):
|
||
return False # Log kayıtları değiştirilemez |