add linters

This commit is contained in:
Pavel Sobolev
2025-11-13 01:32:17 +03:00
parent c4bb087aaf
commit d5ff05abdb
28 changed files with 2070 additions and 331 deletions

View File

@@ -1,9 +1,14 @@
"""Модели профиля резюме, опыта и групп навыков."""
from django.db import models
class Profile(models.Model):
"""Профиль пользователя с контактами и базовой информацией."""
GENDER_CHOICES = [
('male', 'Мужской'),
('female', 'Женский'),
("male", "Мужской"),
("female", "Женский"),
]
full_name = models.CharField(max_length=200, verbose_name="ФИО")
@@ -13,26 +18,32 @@ class Profile(models.Model):
location = models.CharField(max_length=120, verbose_name="Местоположение")
languages = models.JSONField(default=list, verbose_name="Языки")
email = models.EmailField(null=True, blank=True, verbose_name="Email")
phone = models.CharField(max_length=20, null=True, blank=True, verbose_name="Телефон")
phone = models.CharField(max_length=20, null=True, blank=True, verbose_name="Телефон")
telegram = models.CharField(max_length=40, null=True, blank=True, verbose_name="Telegram")
git = models.URLField(null=True, blank=True, verbose_name="Git")
photo = models.ImageField(upload_to='photos/', null=True, blank=True, verbose_name="Фото")
photo = models.ImageField(upload_to="photos/", null=True, blank=True, verbose_name="Фото")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="Дата создания")
updated_at = models.DateTimeField(auto_now=True, verbose_name="Дата обновления")
class Meta:
"""Метаданные модели профиля для Django админки и БД."""
db_table = "profile"
verbose_name = "Профиль"
verbose_name_plural = "Профили"
def __str__(self):
def __str__(self) -> str:
"""Строковое представление профиля."""
return self.full_name
class Experience(models.Model):
"""Запись опыта работы, связанная с профилем."""
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="experience", verbose_name="Профиль")
profile = models.ForeignKey(
Profile, on_delete=models.CASCADE, related_name="experience", verbose_name="Профиль"
)
company = models.CharField(max_length=200, verbose_name="Компания")
start_date = models.DateField(verbose_name="Дата начала")
@@ -42,26 +53,34 @@ class Experience(models.Model):
tech = models.JSONField(default=list, verbose_name="Технологии")
class Meta:
"""Метаданные модели опыта работы: сортировка и отображение."""
db_table = "experience"
ordering = ["-start_date"]
verbose_name = "Опыт работы"
verbose_name_plural = "Опыт работы"
def __str__(self):
def __str__(self) -> str:
"""Строковое представление записи опыта работы."""
return f"{self.profile.full_name} - {self.company}"
class SkillGroup(models.Model):
"""Группы навыков с массивом значений, как в JSON."""
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="skills_map", verbose_name="Профиль")
profile = models.ForeignKey(
Profile, on_delete=models.CASCADE, related_name="skills_map", verbose_name="Профиль"
)
group = models.CharField(max_length=100, verbose_name="Группа")
items = models.JSONField(default=list, verbose_name="Элементы")
class Meta:
"""Метаданные модели группы навыков."""
db_table = "skill_group"
verbose_name = "Группа навыков"
verbose_name_plural = "Группы навыков"
def __str__(self):
return self.group
def __str__(self) -> str:
"""Строковое представление группы навыков."""
return self.group