feat: add people to projects and articles
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# Generated by Django 5.2.16 on 2026-10-28 14:09
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('products', '0024_articlecitation_read_more_text_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ArticlePerson',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('role', models.CharField(default='Collaborator', help_text='Type Organizer, Collaborator, or any other role name.', max_length=100, verbose_name='Role / group')),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('read_more_description', models.BooleanField(default=False, help_text="Collapse this person's description with Read more when it is long.")),
|
||||
('image', models.ImageField(blank=True, null=True, upload_to='products/people/')),
|
||||
('image_alt', models.CharField(blank=True, max_length=240)),
|
||||
('url', models.URLField(blank=True)),
|
||||
('order', models.PositiveIntegerField(default=0, help_text='Smaller numbers appear first. Organizers appear before collaborators, then custom roles.', verbose_name='Display order')),
|
||||
('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='people', to='products.article')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Project article person',
|
||||
'verbose_name_plural': 'Project article people',
|
||||
'ordering': [models.Case(models.When(role__iexact='organizer', then=models.Value(0)), models.When(role__iexact='collaborator', then=models.Value(1)), default=models.Value(2), output_field=models.IntegerField()), 'order', 'pk'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MainProductPerson',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('role', models.CharField(default='Collaborator', help_text='Type Organizer, Collaborator, or any other role name.', max_length=100, verbose_name='Role / group')),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('read_more_description', models.BooleanField(default=False, help_text="Collapse this person's description with Read more when it is long.")),
|
||||
('image', models.ImageField(blank=True, null=True, upload_to='products/people/')),
|
||||
('image_alt', models.CharField(blank=True, max_length=240)),
|
||||
('url', models.URLField(blank=True)),
|
||||
('order', models.PositiveIntegerField(default=0, help_text='Smaller numbers appear first. Organizers appear before collaborators, then custom roles.', verbose_name='Display order')),
|
||||
('main_product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='people', to='products.mainproduct')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Main project person',
|
||||
'verbose_name_plural': 'Main project people',
|
||||
'ordering': [models.Case(models.When(role__iexact='organizer', then=models.Value(0)), models.When(role__iexact='collaborator', then=models.Value(1)), default=models.Value(2), output_field=models.IntegerField()), 'order', 'pk'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SubProductPerson',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('role', models.CharField(default='Collaborator', help_text='Type Organizer, Collaborator, or any other role name.', max_length=100, verbose_name='Role / group')),
|
||||
('name', models.CharField(max_length=200)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('read_more_description', models.BooleanField(default=False, help_text="Collapse this person's description with Read more when it is long.")),
|
||||
('image', models.ImageField(blank=True, null=True, upload_to='products/people/')),
|
||||
('image_alt', models.CharField(blank=True, max_length=240)),
|
||||
('url', models.URLField(blank=True)),
|
||||
('order', models.PositiveIntegerField(default=0, help_text='Smaller numbers appear first. Organizers appear before collaborators, then custom roles.', verbose_name='Display order')),
|
||||
('sub_product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='people', to='products.subproduct')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Sub-project person',
|
||||
'verbose_name_plural': 'Sub-project people',
|
||||
'ordering': [models.Case(models.When(role__iexact='organizer', then=models.Value(0)), models.When(role__iexact='collaborator', then=models.Value(1)), default=models.Value(2), output_field=models.IntegerField()), 'order', 'pk'],
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user