66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
|
|
"""
|
||
|
|
Schema + data migration:
|
||
|
|
1. Add `cautions` JSONField (list, default=[]) to TarotCard.
|
||
|
|
2. Seed The Schizo (Earthman MAJOR #1) with 4 rival-interaction cautions.
|
||
|
|
All other cards default to [] — the UI shows a placeholder when empty.
|
||
|
|
"""
|
||
|
|
from django.db import migrations, models
|
||
|
|
|
||
|
|
SCHIZO_CAUTIONS = [
|
||
|
|
'This card will reverse into <span class="card-ref">The Pervert</span> when it'
|
||
|
|
' comes under dominion of <span class="card-ref">The Occultist</span>, which in turn'
|
||
|
|
' reverses into <span class="card-ref">Pestilence</span>.',
|
||
|
|
|
||
|
|
'This card will reverse into <span class="card-ref">The Paranoiac</span> when it'
|
||
|
|
' comes under dominion of <span class="card-ref">The Despot</span>, which in turn'
|
||
|
|
' reverses into <span class="card-ref">War</span>.',
|
||
|
|
|
||
|
|
'This card will reverse into <span class="card-ref">The Neurotic</span> when it'
|
||
|
|
' comes under dominion of <span class="card-ref">The Capitalist</span>, which in turn'
|
||
|
|
' reverses into <span class="card-ref">Famine</span>.',
|
||
|
|
|
||
|
|
'This card will reverse into <span class="card-ref">The Suicidal</span> when it'
|
||
|
|
' comes under dominion of <span class="card-ref">The Fascist</span>, which in turn'
|
||
|
|
' reverses into <span class="card-ref">Death</span>.',
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
def seed_schizo_cautions(apps, schema_editor):
|
||
|
|
TarotCard = apps.get_model("epic", "TarotCard")
|
||
|
|
DeckVariant = apps.get_model("epic", "DeckVariant")
|
||
|
|
try:
|
||
|
|
earthman = DeckVariant.objects.get(slug="earthman")
|
||
|
|
except DeckVariant.DoesNotExist:
|
||
|
|
return
|
||
|
|
TarotCard.objects.filter(
|
||
|
|
deck_variant=earthman, arcana="MAJOR", number=1
|
||
|
|
).update(cautions=SCHIZO_CAUTIONS)
|
||
|
|
|
||
|
|
|
||
|
|
def clear_schizo_cautions(apps, schema_editor):
|
||
|
|
TarotCard = apps.get_model("epic", "TarotCard")
|
||
|
|
DeckVariant = apps.get_model("epic", "DeckVariant")
|
||
|
|
try:
|
||
|
|
earthman = DeckVariant.objects.get(slug="earthman")
|
||
|
|
except DeckVariant.DoesNotExist:
|
||
|
|
return
|
||
|
|
TarotCard.objects.filter(
|
||
|
|
deck_variant=earthman, arcana="MAJOR", number=1
|
||
|
|
).update(cautions=[])
|
||
|
|
|
||
|
|
|
||
|
|
class Migration(migrations.Migration):
|
||
|
|
|
||
|
|
dependencies = [
|
||
|
|
("epic", "0026_earthman_suit_renames_and_keywords"),
|
||
|
|
]
|
||
|
|
|
||
|
|
operations = [
|
||
|
|
migrations.AddField(
|
||
|
|
model_name="tarotcard",
|
||
|
|
name="cautions",
|
||
|
|
field=models.JSONField(default=list),
|
||
|
|
),
|
||
|
|
migrations.RunPython(seed_schizo_cautions, reverse_code=clear_schizo_cautions),
|
||
|
|
]
|