50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth import get_user_model
|
|
from emails.models import EmailFolder
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Create default email folders for all users'
|
|
|
|
def handle(self, *args, **options):
|
|
users = User.objects.all()
|
|
created_count = 0
|
|
|
|
for user in users:
|
|
# Check if user already has folders
|
|
if EmailFolder.objects.filter(user=user).exists():
|
|
self.stdout.write(
|
|
self.style.WARNING(f'User {user.email} already has folders, skipping...')
|
|
)
|
|
continue
|
|
|
|
# Create default folders
|
|
default_folders = [
|
|
{'name': 'Inbox', 'folder_type': 'inbox', 'color': '#007bff'},
|
|
{'name': 'Sent', 'folder_type': 'sent', 'color': '#28a745'},
|
|
{'name': 'Drafts', 'folder_type': 'drafts', 'color': '#ffc107'},
|
|
{'name': 'Trash', 'folder_type': 'trash', 'color': '#dc3545'},
|
|
{'name': 'Spam', 'folder_type': 'spam', 'color': '#6c757d'},
|
|
{'name': 'Archive', 'folder_type': 'archive', 'color': '#17a2b8'},
|
|
]
|
|
|
|
for folder_data in default_folders:
|
|
EmailFolder.objects.create(
|
|
user=user,
|
|
name=folder_data['name'],
|
|
folder_type=folder_data['folder_type'],
|
|
color=folder_data['color'],
|
|
is_system=True
|
|
)
|
|
created_count += 1
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'Created default folders for user {user.email}')
|
|
)
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'Successfully created {created_count} default folders')
|
|
)
|