# Admin Panel - Yedek Yönetimi Özellikleri ✅

## 🎉 Yeni Özellikler

Admin panele **"Yeni Yedek Al"** ve **"Yedek Yükle"** butonları eklendi!

### 📍 Nerede?
`/admin/backup/databasebackup/` sayfasında, üst kısımda sağ tarafta.

### 🔄 Yeni Yedek Al - Nasıl Çalışır?

1. **Admin panele gidin:** http://localhost:8000/admin/backup/databasebackup/
2. **"Yeni Yedek Al"** butonuna tıklayın (yeşil, 🔄 emoji ile)
3. Otomatik olarak:
   - Yeni bir yedek kaydı oluşturulur
   - Veritabanı yedeği alınır
   - SQL dosyası `backups/` klasörüne kaydedilir
4. Başarı/hata mesajı gösterilir
5. Liste sayfasına yönlendirilirsiniz

### 📤 Yedek Yükle - Nasıl Çalışır? (YENİ!)

1. **Admin panele gidin:** http://localhost:8000/admin/backup/databasebackup/
2. **"Yedek Yükle"** butonuna tıklayın (mavi, 📤 emoji ile)
3. Yükleme formunda:
   - **Yedek Adı** girin (opsiyonel - boş bırakılırsa dosya adı kullanılır)
   - **SQL dosyasını** seçin (sadece .sql uzantılı)
   - **Yükle** butonuna tıklayın
4. Dosya otomatik olarak:
   - `backups/` klasörüne kaydedilir
   - Timestamp ile adlandırılır: `uploaded_dosyaadi_20251224_183045.sql`
   - Veritabanı kaydı oluşturulur
   - Durum otomatik olarak "Tamamlandı" olarak ayarlanır

**⚠️ Önemli Notlar:**
- Maksimum dosya boyutu: **500 MB**
- Sadece **.sql** uzantılı dosyalar kabul edilir
- Dosya boyutu otomatik hesaplanır
- Yüklenen dosyalar geri yüklenebilir ve indirilebilir

### 💡 Alternatif Yöntem (Eski)
Hiçbir yedek seçmeden "Actions" dropdown → "Yeni Yedek Oluştur" → "Go"

## 📋 Tüm Özellikler Özeti

### ✨ Yeni Eklenenler
- ✅ **"Yeni Yedek Al" Butonu** - Liste sayfasında üstte görünür yeşil buton
- ✅ **"Yedek Yükle" Butonu** - Liste sayfasında üstte görünür mavi buton (YENİ!)
- ✅ **Özel URL'ler:** 
  - `/admin/backup/databasebackup/create-backup/` (yedek oluşturma)
  - `/admin/backup/databasebackup/upload-backup/` (yedek yükleme)
- ✅ **Custom Template:** Butonlar otomatik olarak gösterilir
- ✅ **Upload Form:** Kullanıcı dostu yükleme formu

### 📥 İndirme (Önceden Eklendi)
- ✅ Liste görünümünde her yedeğin yanında "📥 İndir" butonu
- ✅ Admin action: "Seçili Yedeği İndir"
- ✅ Direkt URL: `/admin/backup/databasebackup/{id}/download/`

### 🗑️ Silme (Önceden İyileştirildi)
- ✅ Admin kaydı silindiğinde fiziksel dosya da otomatik silinir (post_delete signal)
- ✅ Action: "Yedek Dosyalarını Sil" (sadece dosyayı siler, kaydı korur)

### 🔄 Geri Yükleme (Mevcut)
- ✅ Admin action: "Seçili Yedeği Geri Yükle"

## 🛠️ Yapılan Değişiklikler

### 1. `/backup/admin.py`
- ✅ `create_backup_view()` metodu eklendi
- ✅ `upload_backup_view()` metodu eklendi (YENİ!)
- ✅ `get_urls()` metoduna özel URL'ler eklendi
- ✅ `changelist_view()` metodu eklendi (template context için)

### 2. `/backup/templates/admin/backup/databasebackup/change_list.html`
- ✅ Admin template oluşturuldu
- ✅ Üst kısma "Yeni Yedek Al" butonu eklendi
- ✅ Üst kısma "Yedek Yükle" butonu eklendi (YENİ!)

### 3. `/backup/templates/admin/backup/upload_backup.html` (YENİ!)
- ✅ YENİ: Yedek yükleme formu template'i oluşturuldu
- ✅ Dosya seçici ve form validasyonu
- ✅ Kullanıcı dostu arayüz ve bilgilendirmeler

### 4. `/backup/apps.py`
- ✅ Sinyaller için `ready()` metodu (önceden eklenmişti)

## 🚀 Kullanım

```bash
# Sunucuyu başlatın
python manage.py runserver

# Admin panele gidin
http://localhost:8000/admin/backup/databasebackup/

# "Yeni Yedek Al" butonuna tıklayın!
```

## 📸 Görünüm

Liste sayfasında şu sırayla butonlar görünür:
```
[➕ Add Database backup]  [🔄 Yeni Yedek Al]  [📤 Yedek Yükle]
```

### Yükleme Formu
Mavi "Yedek Yükle" butonuna tıkladığınızda şunları göreceksiniz:
- 📝 **Yedek Adı** alanı (opsiyonel)
- 📁 **Dosya Seçici** (.sql dosyaları için)
- ℹ️ **Bilgilendirme kutusu** (max boyut, format vb.)
- 📤 **Yükle** ve ❌ **İptal** butonları

## ⚡ Hızlı Test

### Test 1: Yeni Yedek Oluşturma
1. Admin panele giriş yapın
2. Database backups sayfasına gidin
3. Yeşil "🔄 Yeni Yedek Al" butonunu görün
4. Butona tıklayın
5. Başarı mesajını bekleyin
6. Yeni yedeği listede görün
7. Yedeğin yanındaki "📥 İndir" butonuyla indirin

### Test 2: Yedek Yükleme (YENİ!)
1. Admin panele giriş yapın
2. Database backups sayfasına gidin
3. Mavi "📤 Yedek Yükle" butonunu görün
4. Butona tıklayın
5. Yükleme formunda:
   - Yedek adı girin (örn: "Production Backup 2024")
   - Bilgisayarınızdan bir .sql dosyası seçin
   - "Yükle" butonuna tıklayın
6. Başarı mesajını bekleyin
7. Yüklenen yedeği listede görün
8. Yedeği indirip veya geri yükleyebilirsiniz

## 📝 Notlar

- Buton sadece staff/admin kullanıcılarına görünür
- Her tıklamada yeni bir yedek oluşturulur
- Yedekler otomatik olarak adlandırılır: `Manuel Yedek - 2025-12-24 18:30:00`
- SQL dosyası: `backup_server_dj_20251224_183000.sql`

Daha detaylı bilgi için: `BACKUP_SYSTEM_GUIDE.md`

