Поменял модели операций с JSON на полиморфные
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
# Generated by Django 6.0.2 on 2026-02-14 10:18
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('bom_manager', '0005_workcenter_routingstep'),
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BaseOperation',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('order', models.PositiveIntegerField(default=10, help_text='Например: 10, 20, 30...', verbose_name='Номер операции')),
|
||||
('item', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='bom_manager.item', verbose_name='Компонент')),
|
||||
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype')),
|
||||
('work_center', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='bom_manager.workcenter', verbose_name='Станок/Участок')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Операция',
|
||||
'verbose_name_plural': 'Операции',
|
||||
'ordering': ['order'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Coating',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100, verbose_name='Название покрытия')),
|
||||
('consumption', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Расход покрытия, м2/л')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Покрытие',
|
||||
'verbose_name_plural': 'Покрытия',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LaserCutSheet',
|
||||
fields=[
|
||||
('baseoperation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='bom_manager.baseoperation')),
|
||||
('thickness', models.IntegerField(default=3, verbose_name='Толщина листа, мм')),
|
||||
('cut_length', models.IntegerField(default=0, verbose_name='Длина реза, мм')),
|
||||
('pierces', models.IntegerField(default=1, verbose_name='Количество проколов')),
|
||||
('dxf_file', models.FileField(blank=True, null=True, upload_to='dxf_files/%Y/%m', verbose_name='DXF файл')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Лазерная резка листа',
|
||||
'verbose_name_plural': 'ЛРЛ',
|
||||
},
|
||||
bases=('bom_manager.baseoperation',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LaserCutTube',
|
||||
fields=[
|
||||
('baseoperation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='bom_manager.baseoperation')),
|
||||
('thinckness', models.IntegerField(default=3, verbose_name='Толщина трубы, мм')),
|
||||
('cut_length', models.IntegerField(default=0, verbose_name='Длина реза, мм')),
|
||||
('pierces', models.IntegerField(default=1, verbose_name='Количество проколов')),
|
||||
('iges_file', models.FileField(blank=True, null=True, upload_to='iges_files/%Y/%m', verbose_name='IGES файл')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Лазерная резка трубы',
|
||||
'verbose_name_plural': 'ЛРТ',
|
||||
},
|
||||
bases=('bom_manager.baseoperation',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Paint',
|
||||
fields=[
|
||||
('baseoperation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='bom_manager.baseoperation')),
|
||||
('area', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='Площадь покраски, м2')),
|
||||
('color', models.CharField(blank=True, max_length=100, null=True, verbose_name='Код RAL')),
|
||||
('number_of_layers', models.IntegerField(default=1, verbose_name='Число слоев')),
|
||||
('coating', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='paints', to='bom_manager.coating', verbose_name='Покрытие')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Покраска',
|
||||
'verbose_name_plural': 'Покраски',
|
||||
},
|
||||
bases=('bom_manager.baseoperation',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Turning',
|
||||
fields=[
|
||||
('baseoperation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='bom_manager.baseoperation')),
|
||||
('work_time', models.IntegerField(default=0, verbose_name='Время работы, мин')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Токарная обработка',
|
||||
'verbose_name_plural': 'ТО',
|
||||
},
|
||||
bases=('bom_manager.baseoperation',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Weld',
|
||||
fields=[
|
||||
('baseoperation_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='bom_manager.baseoperation')),
|
||||
('total_weld_length', models.IntegerField(default=0, verbose_name='Общая длина сварки, мм')),
|
||||
('avg_leg', models.IntegerField(default=0, verbose_name='Средний катет, мм')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Сварка',
|
||||
'verbose_name_plural': 'Сварки',
|
||||
},
|
||||
bases=('bom_manager.baseoperation',),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='RoutingStep',
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user