First commite

This commit is contained in:
Pavel Sobolev
2025-11-12 23:49:00 +03:00
commit c4bb087aaf
28 changed files with 2090 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
# Generated by Django 5.2.8 on 2025-11-11 18:36
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Profile',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('full_name', models.CharField(max_length=200)),
('role', models.CharField(max_length=120)),
('gender', models.CharField(choices=[('male', 'Мужчина'), ('female', 'Женщина')], max_length=10)),
('summary', models.TextField()),
('location', models.CharField(max_length=120)),
('languages', models.JSONField(default=list)),
('email', models.EmailField(max_length=254)),
('phone', models.CharField(max_length=20)),
('telegram', models.CharField(max_length=40)),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
],
options={
'db_table': 'profile',
},
),
migrations.CreateModel(
name='Experience',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('company', models.CharField(max_length=200)),
('start_date', models.DateField()),
('end_date', models.DateField(blank=True, null=True)),
('summary', models.TextField()),
('achievements', models.JSONField(default=list)),
('tech', models.JSONField(default=list)),
('profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='experience', to='cv.profile')),
],
options={
'db_table': 'experience',
'ordering': ['-start_date'],
},
),
migrations.CreateModel(
name='SkillGroup',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('group', models.CharField(max_length=100)),
('items', models.JSONField(default=list)),
('profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='skills_map', to='cv.profile')),
],
options={
'db_table': 'skill_group',
},
),
]

View File

@@ -0,0 +1,141 @@
# Generated by Django 5.2.8 on 2025-11-12 18:24
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cv', '0001_initial'),
]
operations = [
migrations.AlterModelOptions(
name='experience',
options={'ordering': ['-start_date'], 'verbose_name': 'Опыт работы', 'verbose_name_plural': 'Опыт работы'},
),
migrations.AlterModelOptions(
name='profile',
options={'verbose_name': 'Профиль', 'verbose_name_plural': 'Профили'},
),
migrations.AlterModelOptions(
name='skillgroup',
options={'verbose_name': 'Группа навыков', 'verbose_name_plural': 'Группы навыков'},
),
migrations.AddField(
model_name='profile',
name='git',
field=models.URLField(blank=True, null=True, verbose_name='Git'),
),
migrations.AddField(
model_name='profile',
name='photo',
field=models.ImageField(blank=True, null=True, upload_to='', verbose_name='Фото'),
),
migrations.AlterField(
model_name='experience',
name='achievements',
field=models.JSONField(default=list, verbose_name='Достижения'),
),
migrations.AlterField(
model_name='experience',
name='company',
field=models.CharField(max_length=200, verbose_name='Компания'),
),
migrations.AlterField(
model_name='experience',
name='end_date',
field=models.DateField(blank=True, null=True, verbose_name='Дата окончания'),
),
migrations.AlterField(
model_name='experience',
name='profile',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='experience', to='cv.profile', verbose_name='Профиль'),
),
migrations.AlterField(
model_name='experience',
name='start_date',
field=models.DateField(verbose_name='Дата начала'),
),
migrations.AlterField(
model_name='experience',
name='summary',
field=models.TextField(verbose_name='Краткое описание'),
),
migrations.AlterField(
model_name='experience',
name='tech',
field=models.JSONField(default=list, verbose_name='Технологии'),
),
migrations.AlterField(
model_name='profile',
name='created_at',
field=models.DateTimeField(auto_now_add=True, verbose_name='Дата создания'),
),
migrations.AlterField(
model_name='profile',
name='email',
field=models.EmailField(blank=True, max_length=254, null=True, verbose_name='Email'),
),
migrations.AlterField(
model_name='profile',
name='full_name',
field=models.CharField(max_length=200, verbose_name='ФИО'),
),
migrations.AlterField(
model_name='profile',
name='gender',
field=models.CharField(choices=[('male', 'Мужской'), ('female', 'Женский')], max_length=10, verbose_name='Пол'),
),
migrations.AlterField(
model_name='profile',
name='languages',
field=models.JSONField(default=list, verbose_name='Языки'),
),
migrations.AlterField(
model_name='profile',
name='location',
field=models.CharField(max_length=120, verbose_name='Местоположение'),
),
migrations.AlterField(
model_name='profile',
name='phone',
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Телефон'),
),
migrations.AlterField(
model_name='profile',
name='role',
field=models.CharField(max_length=120, verbose_name='Роль'),
),
migrations.AlterField(
model_name='profile',
name='summary',
field=models.TextField(verbose_name='Краткое описание'),
),
migrations.AlterField(
model_name='profile',
name='telegram',
field=models.CharField(blank=True, max_length=40, null=True, verbose_name='Telegram'),
),
migrations.AlterField(
model_name='profile',
name='updated_at',
field=models.DateTimeField(auto_now=True, verbose_name='Дата обновления'),
),
migrations.AlterField(
model_name='skillgroup',
name='group',
field=models.CharField(max_length=100, verbose_name='Группа'),
),
migrations.AlterField(
model_name='skillgroup',
name='items',
field=models.JSONField(default=list, verbose_name='Элементы'),
),
migrations.AlterField(
model_name='skillgroup',
name='profile',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='skills_map', to='cv.profile', verbose_name='Профиль'),
),
]

View File