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

# 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),
]