96 lines
6.6 KiB
Python
96 lines
6.6 KiB
Python
# Generated by Django 3.2.11 on 2022-01-30 10:14
|
|
|
|
from django.conf import settings
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import django.utils.timezone
|
|
import photologue.models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='PhotoSize',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(help_text='Photo size name should contain only letters, numbers and underscores. Examples: "thumbnail", "display", "small", "main_page_widget".', max_length=40, unique=True, validators=[django.core.validators.RegexValidator(message='Use only plain lowercase letters (ASCII), numbers and underscores.', regex='^[a-z0-9_]+$')], verbose_name='name')),
|
|
('width', models.PositiveIntegerField(default=0, help_text='If width is set to "0" the image will be scaled to the supplied height.', verbose_name='width')),
|
|
('height', models.PositiveIntegerField(default=0, help_text='If height is set to "0" the image will be scaled to the supplied width', verbose_name='height')),
|
|
('quality', models.PositiveIntegerField(choices=[(30, 'Very Low'), (40, 'Low'), (50, 'Medium-Low'), (60, 'Medium'), (70, 'Medium-High'), (80, 'High'), (90, 'Very High')], default=70, help_text='JPEG image quality.', verbose_name='quality')),
|
|
('upscale', models.BooleanField(default=False, help_text='If selected the image will be scaled up if necessary to fit the supplied dimensions. Cropped sizes will be upscaled regardless of this setting.', verbose_name='upscale images?')),
|
|
('crop', models.BooleanField(default=False, help_text='If selected the image will be scaled and cropped to fit the supplied dimensions.', verbose_name='crop to fit?')),
|
|
('pre_cache', models.BooleanField(default=False, help_text='If selected this photo size will be pre-cached as photos are added.', verbose_name='pre-cache?')),
|
|
('increment_count', models.BooleanField(default=False, help_text='If selected the image\'s "view_count" will be incremented when this photo size is displayed.', verbose_name='increment view count?')),
|
|
],
|
|
options={
|
|
'verbose_name': 'photo size',
|
|
'verbose_name_plural': 'photo sizes',
|
|
'ordering': ['width', 'height'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Tag',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('name', models.CharField(max_length=250, unique=True, verbose_name='name')),
|
|
('slug', models.SlugField(help_text='A "slug" is a unique URL-friendly title for an object.', max_length=250, unique=True, verbose_name='slug')),
|
|
],
|
|
options={
|
|
'verbose_name': 'tag',
|
|
'verbose_name_plural': 'tags',
|
|
'ordering': ['name'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Photo',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('image', models.ImageField(upload_to=photologue.models.get_storage_path, verbose_name='image')),
|
|
('date_taken', models.DateTimeField(blank=True, help_text='Date image was taken; is obtained from the image EXIF data.', null=True, verbose_name='date taken')),
|
|
('view_count', models.PositiveIntegerField(default=0, editable=False, verbose_name='view count')),
|
|
('crop_from', models.CharField(blank=True, choices=[('top', 'Top'), ('right', 'Right'), ('bottom', 'Bottom'), ('left', 'Left'), ('center', 'Center (Default)')], default='center', max_length=10, verbose_name='crop from')),
|
|
('title', models.CharField(max_length=250, unique=True, verbose_name='title')),
|
|
('slug', models.SlugField(help_text='A "slug" is a unique URL-friendly title for an object.', max_length=250, unique=True, verbose_name='slug')),
|
|
('caption', models.TextField(blank=True, verbose_name='caption')),
|
|
('date_added', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date added')),
|
|
('license', models.CharField(blank=True, max_length=255, verbose_name='license')),
|
|
('is_public', models.BooleanField(default=True, help_text='Public photographs will be displayed in the default views.', verbose_name='is public')),
|
|
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='owner')),
|
|
],
|
|
options={
|
|
'verbose_name': 'photo',
|
|
'verbose_name_plural': 'photos',
|
|
'ordering': ['-date_added'],
|
|
'get_latest_by': 'date_added',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='Gallery',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('date_added', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date published')),
|
|
('title', models.CharField(max_length=250, unique=True, verbose_name='title')),
|
|
('slug', models.SlugField(help_text='A "slug" is a unique URL-friendly title for an object.', max_length=250, unique=True, verbose_name='title slug')),
|
|
('date_start', models.DateField(default=django.utils.timezone.now, verbose_name='start date')),
|
|
('date_end', models.DateField(blank=True, null=True, verbose_name='end date')),
|
|
('description', models.TextField(blank=True, verbose_name='description')),
|
|
('is_public', models.BooleanField(default=True, help_text='Public galleries will be displayed in the default views.', verbose_name='is public')),
|
|
('photos', models.ManyToManyField(blank=True, related_name='galleries', to='photologue.Photo', verbose_name='photos')),
|
|
('tags', models.ManyToManyField(blank=True, related_name='galleries', to='photologue.Tag', verbose_name='tags')),
|
|
],
|
|
options={
|
|
'verbose_name': 'gallery',
|
|
'verbose_name_plural': 'galleries',
|
|
'ordering': ['-date_added'],
|
|
'get_latest_by': 'date_added',
|
|
},
|
|
),
|
|
]
|