Files
links/.history/backend/customization/models_20250506102230.py
2025-05-06 20:44:33 +09:00

156 lines
6.9 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.

# customization/models.py
from django.db import models
from django.conf import settings
class DesignSettings(models.Model):
"""
Настройки дизайна для публичной страницы пользователя.
"""
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='design',
help_text='Пользователь, которому принадлежат настройки'
)
theme_color = models.CharField(
max_length=7,
default='#ffffff',
help_text='Основной цвет темы (hex)'
)
background_image = models.ImageField(
upload_to='backgrounds/',
null=True,
blank=True,
help_text='Фоновое изображение'
)
font_family = models.CharField(
max_length=100,
default='sans-serif',
help_text='Название шрифта'
)
custom_css = models.TextField(
blank=True,
help_text='Дополнительный CSS'
)
updated_at = models.DateTimeField(
auto_now=True,
help_text='Дата и время последнего изменения'
)
def __str__(self):
return f"Design for {self.user.username}"
class Meta:
verbose_name = 'Настройки дизайна'
verbose_name_plural = 'Настройки дизайна'
ordering = ['user']
unique_together = ('user',)
def get_background_image_url(self):
"""
Возвращает URL фонового изображения.
"""
return self.background_image.url if self.background_image else None
def get_custom_css(self):
"""
Возвращает пользовательский CSS.
"""
return self.custom_css if self.custom_css else ""
def get_design_settings(self):
"""
Возвращает словарь с настройками дизайна.
"""
return {
'theme_color': self.theme_color,
'background_image': self.get_background_image_url(),
'font_family': self.font_family,
'custom_css': self.get_custom_css()
}
def save(self, *args, **kwargs):
"""
Переопределяем метод save, чтобы автоматически обновлять дату изменения.
"""
self.updated_at = timezone.now()
super().save(*args, **kwargs)
def delete(self, *args, **kwargs):
"""
Переопределяем метод delete, чтобы удалять связанные изображения.
"""
if self.background_image:
self.background_image.delete(save=False)
super().delete(*args, **kwargs)
def get_user(self):
"""
Возвращает пользователя, которому принадлежат настройки дизайна.
"""
return self.user
def get_user_id(self):
"""
Возвращает ID пользователя, которому принадлежат настройки дизайна.
"""
return self.user.id
def get_user_username(self):
"""
Возвращает имя пользователя, которому принадлежат настройки дизайна.
"""
return self.user.username
def get_user_email(self):
"""
Возвращает email пользователя, которому принадлежат настройки дизайна.
"""
return self.user.email if self.user.email else "Нет email"
def get_user_full_name(self):
"""
Возвращает полное имя пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_full_name() if self.user.get_full_name() else "Нет полного имени"
def get_user_bio(self):
"""
Возвращает биографию пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_bio() if self.user.get_bio() else "Нет биографии"
def get_user_avatar(self):
"""
Возвращает URL аватара пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_avatar() if self.user.get_avatar() else None
def get_user_links(self):
"""
Возвращает список ссылок пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_links() if self.user.get_user_links() else []
def get_user_groups(self):
"""
Возвращает группы пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_groups() if self.user.get_user_groups() else []
def get_user_design(self):
"""
Возвращает настройки дизайна пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_design() if self.user.get_user_design() else None
def get_user_info(self):
"""
Возвращает информацию о пользователе, которому принадлежат настройки дизайна.
"""
return self.user.get_user_info() if self.user.get_user_info() else {}
def get_user_settings(self):
"""
Возвращает настройки пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_settings() if self.user.get_user_settings() else {}
def get_user_preferences(self):
"""
Возвращает предпочтения пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_preferences() if self.user.get_user_preferences() else {}
def get_user_notifications(self):
"""
Возвращает уведомления пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_notifications() if self.user.get_user_notifications() else []
def get_user_friends(self):
"""
Возвращает друзей пользователя, которому принадлежат настройки дизайна.
"""
return self.user.get_user_friends() if self.user.get_user_friends() else []