Files
hostpanel/ssh_manager/admin.py
ilkeral 342f1314c7 yeni
2025-07-21 13:49:36 +03:00

71 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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