You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.0 KiB
112 lines
4.0 KiB
# Generated by Django 4.2.30 on 2026-10-20 15:23
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
MADHHAB_DATA = [
|
|
{
|
|
"slug": "shia",
|
|
"title": [
|
|
{"language_code": "ar", "text": "شيعي", "title": "شيعي"},
|
|
{"language_code": "fa", "text": "شیعه", "title": "شیعه"},
|
|
{"language_code": "en", "text": "Shia", "title": "Shia"},
|
|
{"language_code": "ru", "text": "Шиит", "title": "Шиит"},
|
|
],
|
|
},
|
|
{
|
|
"slug": "sunni",
|
|
"title": [
|
|
{"language_code": "ar", "text": "سني", "title": "سني"},
|
|
{"language_code": "fa", "text": "سنی", "title": "سنی"},
|
|
{"language_code": "en", "text": "Sunni", "title": "Sunni"},
|
|
{"language_code": "ru", "text": "Суннит", "title": "Суннит"},
|
|
],
|
|
},
|
|
{
|
|
"slug": "zaydi",
|
|
"title": [
|
|
{"language_code": "ar", "text": "زيدي", "title": "زيدي"},
|
|
{"language_code": "fa", "text": "زیدی", "title": "زیدی"},
|
|
{"language_code": "en", "text": "Zaydi", "title": "Zaydi"},
|
|
{"language_code": "ru", "text": "Зейдит", "title": "Зейдит"},
|
|
],
|
|
},
|
|
{
|
|
"slug": "waqifi",
|
|
"title": [
|
|
{"language_code": "ar", "text": "واقفي", "title": "واقفي"},
|
|
{"language_code": "fa", "text": "واقفی", "title": "واقفی"},
|
|
{"language_code": "en", "text": "Waqifi", "title": "Waqifi"},
|
|
{"language_code": "ru", "text": "Вакифит", "title": "Вакифит"},
|
|
],
|
|
},
|
|
{
|
|
"slug": "fathi",
|
|
"title": [
|
|
{"language_code": "ar", "text": "فطحي", "title": "فطحي"},
|
|
{"language_code": "fa", "text": "فطحی", "title": "فطحی"},
|
|
{"language_code": "en", "text": "Fathi", "title": "Fathi"},
|
|
{"language_code": "ru", "text": "Фатхит", "title": "Фатхиت"},
|
|
],
|
|
},
|
|
]
|
|
|
|
|
|
def seed_and_migrate_madhhabs(apps, schema_editor):
|
|
Madhhab = apps.get_model('hadis', 'Madhhab')
|
|
Transmitters = apps.get_model('hadis', 'Transmitters')
|
|
|
|
madhhab_map = {}
|
|
for item in MADHHAB_DATA:
|
|
obj, _ = Madhhab.objects.get_or_create(
|
|
slug=item["slug"],
|
|
defaults={"title": item["title"]},
|
|
)
|
|
madhhab_map[item["slug"]] = obj
|
|
|
|
shia_obj = madhhab_map.get("shia")
|
|
sunni_obj = madhhab_map.get("sunni")
|
|
|
|
if shia_obj:
|
|
for t in Transmitters.objects.filter(madhhab='shia'):
|
|
t.madhhabs.add(shia_obj)
|
|
|
|
if sunni_obj:
|
|
for t in Transmitters.objects.filter(madhhab='sunni'):
|
|
t.madhhabs.add(sunni_obj)
|
|
|
|
|
|
def reverse_seed(apps, schema_editor):
|
|
pass
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('hadis', '0061_sahabi_status_and_relation'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Madhhab',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('title', models.JSONField(default=list, verbose_name='Title')),
|
|
('slug', models.SlugField(allow_unicode=True, blank=True, max_length=255, unique=True, verbose_name='slug')),
|
|
('description', models.JSONField(blank=True, default=list, verbose_name='Description')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Madhhab',
|
|
'verbose_name_plural': 'Madhhabs',
|
|
'ordering': ['slug', 'id'],
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='transmitters',
|
|
name='madhhabs',
|
|
field=models.ManyToManyField(blank=True, related_name='transmitters', to='hadis.madhhab', verbose_name='Madhhabs (M2M)'),
|
|
),
|
|
migrations.RunPython(seed_and_migrate_madhhabs, reverse_seed),
|
|
]
|