foerderbarometer/input/migrations/0100_projectcategory_wikime...

78 lines
3.1 KiB
Python

# Generated by Django 5.2.5 on 2025-10-15 13:02
from functools import partial
from django.db import migrations, models
from input.utils.migrations import get_queryset
DEFAULT_PROJECT_CATEGORIES = [
'Erstellung und Weiterentwicklung von Inhalten für die Wikimedia-Projekte',
'Aufklärung über die Wikimedia-Projekte',
'Formate zur Ansprache, Gewinnung und Bindung von Ehrenamtlichen für die Wikimedia-Projekte',
'Beteiligung von Menschen, die einen erschwerten Zugang zum Engagement in den Wikimedia-Projekten haben',
'Vernetzung und Austausch innerhalb der Communitys oder zwischen den Communitys und externen Partner*innen',
'Vermittlung von Kompetenzen, die die ehrenamtliche Arbeit stärken',
'Stärkung einer respektvollen, konstruktiven Kommunikationskultur und der Wertschätzung in den Wikimedia-Projekten',
'Verbesserung der Selbstorganisation in Bezug auf interne Regeln, Strukturen und Prozesse der Wikimedia-Projektcommunitys',
'Ehrenamtliche Aktivitäten, die der Erstellung, Pflege und Weiterentwicklung von Tools oder sonstigen technischen Verbesserungen dienen',
]
DEFAULT_WIKIMEDIA_PROJECTS = [
'Wikipedia',
'Wikimedia Commons',
'Wikidata',
]
def create_default_objs(model, defaults, apps, schema_editor):
queryset = get_queryset(apps, schema_editor, 'input', model)
queryset.bulk_create([
queryset.model(name=name, order=order * 10)
for order, name in enumerate(defaults, 1)
])
class Migration(migrations.Migration):
dependencies = [
('input', '0099_add_terms_accepted'),
]
operations = [
migrations.CreateModel(
name='ProjectCategory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200, verbose_name='Name')),
('order', models.PositiveIntegerField(verbose_name='Reihenfolge')),
],
options={
'verbose_name': 'Projektkategorie',
'verbose_name_plural': 'Projektkategorien',
'ordering': ['order'],
},
),
migrations.RunPython(
code=partial(create_default_objs, 'ProjectCategory', DEFAULT_PROJECT_CATEGORIES),
reverse_code=migrations.RunPython.noop,
),
migrations.CreateModel(
name='WikimediaProject',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200, verbose_name='Name')),
('order', models.PositiveIntegerField(verbose_name='Reihenfolge')),
],
options={
'verbose_name': 'Wikimedia Projekt',
'verbose_name_plural': 'Wikimedia Projekte',
'ordering': ['order'],
},
),
migrations.RunPython(
code=partial(create_default_objs, 'WikimediaProject', DEFAULT_WIKIMEDIA_PROJECTS),
reverse_code=migrations.RunPython.noop,
),
]