Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add study class model to schooling, add custom migration with study classes #46

Merged
merged 3 commits into from
May 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core/config/settings_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@

DEFAULT = 'some_default_key'

SECRET_KEY = env.str('SECRET_KEY', default=DEFAULT)
SECRET_KEY = env('SECRET_KEY', default=DEFAULT)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему убрал str?


TELEGRAM_TOKEN = env.str('TELEGRAM_TOKEN')
TELEGRAM_TOKEN = env('TELEGRAM_TOKEN')

ALLOWED_HOSTS = ['*']

Expand Down
4 changes: 2 additions & 2 deletions src/core/config/settings_for_dev.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
'NAME': env.str('POSTGRES_NAME', default='postgres'),
'USER': env.str('POSTGRES_USER', default='postgres'),
'PASSWORD': env.str('POSTGRES_PASSWORD', default='postgres'),
'HOST': env.str('POSTGRES_HOST', default='localhost'),
'PORT': env.str('POSTGRES_PORT', default='5432'),
'HOST': env('POSTGRES_HOST', default='localhost'),
'PORT': env('POSTGRES_PORT', default='5432'),
},
}
10 changes: 8 additions & 2 deletions src/schooling/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from django.contrib import admin

from schooling.models import Student, Teacher, Subject
from schooling.models import Student, Teacher, Subject, StudyClass


@admin.register(Teacher)
Expand All @@ -27,3 +26,10 @@ class SubjectAdmin(admin.ModelAdmin):

list_display = ('name',)
exclude = ('subject_key',)


@admin.register(StudyClass)
class StudyClassAdmin(admin.ModelAdmin):
"""Управление учебными классами."""

list_display = ('study_class_name', 'study_class_number')
16 changes: 15 additions & 1 deletion src/schooling/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Generated by Django 5.0.4 on 2024-05-08 10:46


from django.db import migrations, models


Expand All @@ -11,6 +12,18 @@ class Migration(migrations.Migration):
]

operations = [
migrations.CreateModel(
name='StudyClass',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('study_class_name', models.CharField(max_length=64, unique=True, verbose_name='Название учебного класса')),
('study_class_number', models.PositiveIntegerField(verbose_name='Номер учебного класса')),
],
options={
'verbose_name': 'Название учебного класса',
'verbose_name_plural': 'Названия учебных классов',
},
),
migrations.CreateModel(
name='Subject',
fields=[
Expand All @@ -21,6 +34,7 @@ class Migration(migrations.Migration):
options={
'verbose_name': 'Название предмета',
'verbose_name_plural': 'Названия предметов',

},
),
)
]
242 changes: 242 additions & 0 deletions src/schooling/migrations/0002_add_study_classes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
# Generated by Django 5.0.4 on 2024-05-13 10:17

from django.db import migrations


def create_study_class_first(apps, schema_editor):
"""Create study class 'Первый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Первый класс',
study_class_number=1
)


def remove_study_class_first(apps, schema_editor):
"""Remove study class 'Первый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Первый класс',
)
remove_subject.delete()


def create_study_class_second(apps, schema_editor):
"""Create study class 'Второй класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Второй класс',
study_class_number=2
)


def remove_study_class_second(apps, schema_editor):
"""Remove study class 'Второй класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Второй класс',
)
remove_subject.delete()


def create_study_class_third(apps, schema_editor):
"""Create study class 'Третий класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Третий класс',
study_class_number=3
)


def remove_study_class_third(apps, schema_editor):
"""Remove study class 'Третий класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Третий класс',
)
remove_subject.delete()

def create_study_class_fourth(apps, schema_editor):
"""Create study class 'Четвертый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Четвертый класс',
study_class_number=4
)


def remove_study_class_fourth(apps, schema_editor):
"""Remove study class 'Четвертый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Четвертый класс',
)
remove_subject.delete()


def create_study_class_fifth(apps, schema_editor):
"""Create study class 'Пятый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Пятый класс',
study_class_number=5
)


def remove_study_class_fifth(apps, schema_editor):
"""Remove study class 'Пятый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Пятый класс',
)
remove_subject.delete()


def create_study_class_sixth(apps, schema_editor):
"""Create study class 'Шестой класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Шестой класс',
study_class_number=6
)


def remove_study_class_sixth(apps, schema_editor):
"""Remove study class 'Шестой класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Шестой класс',
)
remove_subject.delete()


def create_study_class_seventh(apps, schema_editor):
"""Create study class 'Седьмой класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Седьмой класс',
study_class_number=7
)


def remove_study_class_seventh(apps, schema_editor):
"""Remove study class 'Седьмой класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Седьмой класс',
)
remove_subject.delete()


def create_study_class_eighth(apps, schema_editor):
"""Create study class 'Восьмой класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Восьмой класс',
study_class_number=8
)


def remove_study_class_eighth(apps, schema_editor):
"""Remove study class 'Восьмой класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Восьмой класс',
)
remove_subject.delete()


def create_study_class_nineth(apps, schema_editor):
"""Create study class 'Девятый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Девятый класс',
study_class_number=9
)


def remove_study_class_nineth(apps, schema_editor):
"""Remove study class 'Девятый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Девятый класс',
)
remove_subject.delete()


def create_study_class_tenth(apps, schema_editor):
"""Create study class 'Десятый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Десятый класс',
study_class_number=10
)


def remove_study_class_tenth(apps, schema_editor):
"""Remove study class 'Десятый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Десятый класс',
)
remove_subject.delete()


def create_study_class_eleventh(apps, schema_editor):
"""Create study class 'Одиннадцатый класс'."""
Subject = apps.get_model('schooling', 'StudyClass')
Subject.objects.create(
study_class_name='Одиннадцатый класс',
study_class_number=11
)


def remove_study_class_eleventh(apps, schema_editor):
"""Remove study class 'Одиннадцатый класс' instance."""
Subject = apps.get_model('schooling', 'StudyClass')
remove_subject = Subject.objects.get(
study_class_name='Одиннадцатый класс',
)
remove_subject.delete()


class Migration(migrations.Migration):
dependencies = [
('schooling', '0001_initial'),
]

operations = [
migrations.RunPython(
create_study_class_first, reverse_code=remove_study_class_first
),
migrations.RunPython(
create_study_class_second, reverse_code=remove_study_class_second
),
migrations.RunPython(
create_study_class_third, reverse_code=remove_study_class_third
),
migrations.RunPython(
create_study_class_fourth, reverse_code=remove_study_class_fourth
),
migrations.RunPython(
create_study_class_fifth, reverse_code=remove_study_class_fifth
),
migrations.RunPython(
create_study_class_sixth, reverse_code=remove_study_class_sixth
),
migrations.RunPython(
create_study_class_seventh, reverse_code=remove_study_class_seventh
),
migrations.RunPython(
create_study_class_eighth, reverse_code=remove_study_class_eighth
),
migrations.RunPython(
create_study_class_nineth, reverse_code=remove_study_class_nineth
),
migrations.RunPython(
create_study_class_tenth, reverse_code=remove_study_class_tenth
),
migrations.RunPython(
create_study_class_eleventh, reverse_code=remove_study_class_eleventh
),
]
1 change: 1 addition & 0 deletions src/schooling/migrations/0002_add_subject.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def create_subject_mathematics(apps, schema_editor):
name="Математика",
)


def remove_subject_mathematics(apps, schema_editor):
"""Remove subject 'Mathematics' instance."""
Subject = apps.get_model("schooling", "Subject")
Expand Down
6 changes: 0 additions & 6 deletions src/schooling/migrations/0003_studyclass_student_teacher.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ class Migration(migrations.Migration):
]

operations = [
migrations.CreateModel(
name='StudyClass',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
),
migrations.CreateModel(
name='Student',
fields=[
Expand Down
13 changes: 11 additions & 2 deletions src/schooling/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.db import models
from phonenumber_field.modelfields import PhoneNumberField


MAX_LEN_NAME_SURNAME = 150
MAX_LEN_CITY = 50

Expand Down Expand Up @@ -101,10 +102,18 @@ def __str__(self):
return self.name


# TODO Доработка в следующей итерации
class StudyClass(models.Model):
"""Модель для хранения школьных классов."""

study_class_name = models.CharField(
max_length=64,
unique=True,
verbose_name='Название учебного класса',
)
study_class_number = models.PositiveIntegerField(
verbose_name='Номер учебного класса',
)

def __str__(self):
"""Return a studyclass string representation."""
return 'StudyClass'
return self.study_class_name
Loading