Coverage for src/backend/InvenTree/importer/migrations/0001_initial.py: 100%
11 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1# Generated by Django 4.2.12 on 2024-06-30 04:42
3from django.conf import settings
4import django.core.validators
5from django.db import migrations, models
6import django.db.models.deletion
7import importer.validators
8import InvenTree.helpers
9from importer.status_codes import DataImportStatusCode
12class Migration(migrations.Migration):
14 initial = True
16 dependencies = [
17 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
18 ]
20 operations = [
21 migrations.CreateModel(
22 name='DataImportSession',
23 fields=[
24 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25 ('timestamp', models.DateTimeField(auto_now_add=True, verbose_name='Timestamp')),
26 ('data_file', models.FileField(help_text='Data file to import', upload_to='import', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=InvenTree.helpers.GetExportFormats()), importer.validators.validate_data_file], verbose_name='Data File')),
27 ('columns', models.JSONField(blank=True, null=True, verbose_name='Columns')),
28 ('model_type', models.CharField(max_length=100, validators=[importer.validators.validate_importer_model_type])),
29 ('status', models.PositiveIntegerField(choices=DataImportStatusCode.items(), default=DataImportStatusCode.INITIAL.value, help_text='Import status')),
30 ('field_defaults', models.JSONField(blank=True, null=True, validators=[importer.validators.validate_field_defaults], verbose_name='Field Defaults')),
31 ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='User')),
32 ],
33 ),
34 migrations.CreateModel(
35 name='DataImportRow',
36 fields=[
37 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
38 ('row_index', models.PositiveIntegerField(default=0, verbose_name='Row Index')),
39 ('row_data', models.JSONField(blank=True, null=True, verbose_name='Original row data')),
40 ('data', models.JSONField(blank=True, null=True, verbose_name='Data')),
41 ('errors', models.JSONField(blank=True, null=True, verbose_name='Errors')),
42 ('valid', models.BooleanField(default=False, verbose_name='Valid')),
43 ('complete', models.BooleanField(default=False, verbose_name='Complete')),
44 ('session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rows', to='importer.dataimportsession', verbose_name='Import Session')),
45 ],
46 ),
47 migrations.CreateModel(
48 name='DataImportColumnMap',
49 fields=[
50 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
51 ('field', models.CharField(max_length=100, verbose_name='Field')),
52 ('column', models.CharField(blank=True, max_length=100, verbose_name='Column')),
53 ('session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='column_mappings', to='importer.dataimportsession', verbose_name='Import Session')),
54 ],
55 ),
56 ]