Coverage for src/backend/InvenTree/common/migrations/0025_attachment.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-08 12:37
3from django.conf import settings
4from django.db import migrations, models
5import django.db.models.deletion
6import taggit.managers
8import common.models
9import common.validators
10import InvenTree.fields
11import InvenTree.models
14class Migration(migrations.Migration):
16 dependencies = [
17 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
18 ('contenttypes', '0002_remove_content_type_name'),
19 ('common', '0024_notesimage_model_id_notesimage_model_type'),
20 ]
22 operations = [
23 migrations.CreateModel(
24 name='Attachment',
25 fields=[
26 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
27 ('model_id', models.PositiveIntegerField()),
28 ('attachment', models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=common.models.rename_attachment, verbose_name='Attachment')),
29 ('link', InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link')),
30 ('comment', models.CharField(blank=True, help_text='Attachment comment', max_length=250, verbose_name='Comment')),
31 ('upload_date', models.DateField(auto_now_add=True, help_text='Date the file was uploaded', null=True, verbose_name='Upload date')),
32 ('file_size', models.PositiveIntegerField(default=0, help_text='File size in bytes', verbose_name='File size')),
33 ('model_type', models.CharField(help_text='Target model type for this image', max_length=100, validators=[common.validators.validate_attachment_model_type])),
34 ('upload_user', models.ForeignKey(blank=True, help_text='User', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='User')),
35 ('metadata', models.JSONField(blank=True, help_text='JSON metadata field, for use by external plugins', null=True, verbose_name='Plugin Metadata')),
36 ('tags', taggit.managers.TaggableManager(blank=True, help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags'))
37 ],
38 bases=(InvenTree.models.PluginValidationMixin, models.Model),
39 options={
40 'verbose_name': 'Attachment',
41 }
42 ),
43 ]