Files
guilan-ace-backend/apps/users/migrations/0005_populate_major_university.py
Amirhossein Khalili 88b793ed9f
Some checks failed
Backend CI/CD / test (push) Has been cancelled
Backend CI/CD / deploy (push) Has been cancelled
initial commit
2026-05-19 20:53:08 +03:30

317 lines
17 KiB
Python

from django.db import migrations
MAJOR_CHOICES = [('CE', 'مهندسی کامپیوتر'),
('CS', 'علوم کامپیوتر'),
('SE', 'مهندسی نرم\u200cافزار'),
('IT', 'فناوری اطلاعات'),
('AI', 'هوش مصنوعی و رباتیک'),
('DATA', 'علم داده'),
('EE', 'مهندسی برق'),
('ME', 'مهندسی مکانیک'),
('CIV', 'مهندسی عمران'),
('CHE', 'مهندسی شیمی'),
('IE', 'مهندسی صنایع'),
('MSE', 'مهندسی مواد و متالورژی'),
('BME', 'مهندسی پزشکی'),
('ARCH', 'معماری'),
('AERO', 'مهندسی هوافضا'),
('PET', 'مهندسی نفت'),
('MIN', 'مهندسی معدن'),
('ENV', 'مهندسی محیط\u200cزیست'),
('URP', 'برنامه\u200cریزی شهری و منطقه\u200cای'),
('MATH', 'ریاضیات'),
('STAT', 'آمار'),
('PHYS', 'فیزیک'),
('CHEM', 'شیمی'),
('BIO', 'زیست\u200cشناسی'),
('GEO', 'زمین\u200cشناسی'),
('MED', 'پزشکی'),
('DEN', 'دندان\u200cپزشکی'),
('PHARM', 'داروسازی'),
('NURS', 'پرستاری'),
('MID', 'مامایی'),
('LAB', 'علوم آزمایشگاهی'),
('RAD', 'رادیولوژی'),
('ANES', 'بیهوشی'),
('PUBH', 'بهداشت'),
('AGRI', 'کشاورزی (عمومی)'),
('HORT', 'باغبانی'),
('PLP', 'گیاه\u200cپزشکی'),
('SOIL', 'علوم خاک'),
('VET', 'دامپزشکی'),
('MGT', 'مدیریت'),
('ACC', 'حسابداری'),
('FIN', 'مالی'),
('ECO', 'اقتصاد'),
('BA', 'مدیریت بازرگانی'),
('LAW', 'حقوق'),
('POL', 'علوم سیاسی'),
('SOC', 'جامعه\u200cشناسی'),
('PSY', 'روان\u200cشناسی'),
('PHIL', 'فلسفه'),
('HIST', 'تاریخ'),
('GEOG', 'جغرافیا'),
('EDU', 'علوم تربیتی'),
('LIT_FA', 'زبان و ادبیات فارسی'),
('LIT_EN', 'زبان و ادبیات انگلیسی'),
('LIT_AR', 'زبان و ادبیات عربی'),
('TRAN_EN', 'مترجمی زبان انگلیسی'),
('ART', 'هنرهای تجسمی'),
('GRAPH', 'گرافیک'),
('MUSIC', 'موسیقی'),
('THEAT', 'نمایش و تئاتر')]
UNIVERSITY_CHOICES = [('GILAN', 'دانشگاه گیلان'),
('UT', 'دانشگاه تهران'),
('AUT', 'دانشگاه صنعتی امیرکبیر'),
('SHARIF', 'دانشگاه صنعتی شریف'),
('SBU', 'دانشگاه شهید بهشتی'),
('IUST', 'دانشگاه علم و صنعت ایران'),
('KNTU', 'دانشگاه صنعتی خواجه\u200cنصیر'),
('MODARES', 'دانشگاه تربیت مدرس'),
('ALLAMEH', 'دانشگاه علامه طباطبایی'),
('KHARAZMI', 'دانشگاه خوارزمی'),
('ISFAHAN_UNI', 'دانشگاه اصفهان'),
('IUT', 'دانشگاه صنعتی اصفهان'),
('SHIRAZ_UNI', 'دانشگاه شیراز'),
('SHIRAZ_TECH', 'دانشگاه صنعتی شیراز'),
('TABRIZ_UNI', 'دانشگاه تبریز'),
('FERDOWSI', 'دانشگاه فردوسی مشهد'),
('IMAMREZA', 'دانشگاه بین المللی امام رضا مشهد'),
('RAZI', 'دانشگاه رازی'),
('SHAHRKORD', 'دانشگاه شهرکرد'),
('BUALI', 'دانشگاه بوعلی\u200cسینا'),
('KURDISTAN', 'دانشگاه کردستان'),
('YAZD_UNI', 'دانشگاه یزد'),
('KERMAN_UNI', 'دانشگاه شهید باهنر کرمان'),
('MAZANDARAN', 'دانشگاه مازندران'),
('GOLESTAN', 'دانشگاه گلستان'),
('URMIA', 'دانشگاه ارومیه'),
('ZANJAN', 'دانشگاه زنجان'),
('ARDABIL', 'دانشگاه محقق اردبیلی'),
('SEMNAN', 'دانشگاه سمنان'),
('SHAHROOD', 'دانشگاه صنعتی شاهرود'),
('QOM_UNI', 'دانشگاه قم'),
('QOM_TECH', 'دانشگاه صنعتی قم'),
('IKIU', 'دانشگاه بین\u200cالمللی امام خمینی قزوین'),
('MAL_ASHTAR', 'دانشگاه صنعتی مالک\u200cاشتر'),
('SAHAND', 'دانشگاه صنعتی سهند'),
('BABOL_NOSH', 'دانشگاه صنعتی نوشیروانی بابل'),
('BIRGAND', 'دانشگاه بیرجند'),
('ALZAHRA', 'دانشگاه الزهرا'),
('TAFRESH', 'دانشگاه تفرش'),
('JAHROM', 'دانشگاه جهرم'),
('HAKIM_SABZ', 'دانشگاه حکیم سبزواری'),
('PERSIAN_GULF', 'دانشگاه خلیج فارس'),
('DAMGHAN', 'دانشگاه دامغان'),
('ILAM', 'دانشگاه ایلام'),
('BOJNORD', 'دانشگاه بجنورد'),
('KASHAN', 'دانشگاه کاشان'),
('LORESTAN', 'دانشگاه لرستان'),
('MARAGHEH', 'دانشگاه مراغه'),
('MALAYER', 'دانشگاه ملایر'),
('NEYSHABUR', 'دانشگاه نیشابور'),
('HORMOZGAN', 'دانشگاه هرمزگان'),
('HONAR', 'دانشگاه هنر'),
('TUMS', 'دانشگاه علوم پزشکی تهران'),
('SBMU_MED', 'دانشگاه علوم پزشکی شهید بهشتی'),
('IUMS_MED', 'دانشگاه علوم پزشکی ایران'),
('MUMS_MED', 'دانشگاه علوم پزشکی مشهد'),
('SUMS_MED', 'دانشگاه علوم پزشکی شیراز'),
('TBZ_MED', 'دانشگاه علوم پزشکی تبریز'),
('ISF_MED', 'دانشگاه علوم پزشکی اصفهان'),
('AJUMS_MED', 'دانشگاه علوم پزشکی اهواز'),
('AJA_MED', 'دانشگاه علوم پزشکی ارتش'),
('KUMS_MED', 'دانشگاه علوم پزشکی کرمانشاه'),
('KER_MED', 'دانشگاه علوم پزشکی کرمان'),
('MED_QOM', 'دانشگاه علوم پزشکی قم'),
('MED_QAZVIN', 'دانشگاه علوم پزشکی قزوین'),
('MED_ALBORZ', 'دانشگاه علوم پزشکی البرز'),
('MED_ARAK', 'دانشگاه علوم پزشکی اراک'),
('MED_ZANJAN', 'دانشگاه علوم پزشکی زنجان'),
('MED_MAZANDARAN', 'دانشگاه علوم پزشکی مازندران'),
('MED_BABOL', 'دانشگاه علوم پزشکی بابل'),
('MED_GOLESTAN', 'دانشگاه علوم پزشکی گلستان'),
('MED_GILAN', 'دانشگاه علوم پزشکی گیلان'),
('MED_HORMOZGAN', 'دانشگاه علوم پزشکی هرمزگان'),
('MED_BUSHEHR', 'دانشگاه علوم پزشکی بوشهر'),
('MED_BIRJAND', 'دانشگاه علوم پزشکی بیرجند'),
('MED_BOJNORD', 'دانشگاه علوم پزشکی خراسان شمالی (بجنورد)'),
('MED_SABZEVAR', 'دانشگاه علوم پزشکی سبزوار'),
('MED_NEYSHABUR', 'دانشگاه علوم پزشکی نیشابور'),
('MED_GONABAD', 'دانشگاه علوم پزشکی گناباد'),
('MED_SHAHROUD', 'دانشگاه علوم پزشکی شاهرود'),
('MED_SEMNAN', 'دانشگاه علوم پزشکی سمنان'),
('MED_YAZD', 'دانشگاه علوم پزشکی یزد'),
('MED_URMIA', 'دانشگاه علوم پزشکی ارومیه'),
('MED_ARDABIL', 'دانشگاه علوم پزشکی اردبیل'),
('MED_HAMEDAN', 'دانشگاه علوم پزشکی همدان'),
('MED_LARESTAN', 'دانشکده علوم پزشکی لارستان'),
('MED_FASA', 'دانشگاه علوم پزشکی فسا'),
('MED_JAHROM', 'دانشگاه علوم پزشکی جهرم'),
('MED_KASHAN', 'دانشگاه علوم پزشکی کاشان'),
('MED_ILAM', 'دانشگاه علوم پزشکی ایلام'),
('MED_LORESTAN', 'دانشگاه علوم پزشکی لرستان'),
('MED_KHUZESTAN', 'دانشگاه علوم پزشکی دزفول/شوشتر (استان خوزستان)'),
('IAU_TEH_CENTRAL', 'دانشگاه آزاد اسلامی واحد تهران مرکزی'),
('IAU_TEH_NORTH', 'دانشگاه آزاد اسلامی واحد تهران شمال'),
('IAU_TEH_SOUTH', 'دانشگاه آزاد اسلامی واحد تهران جنوب'),
('IAU_TEH_WEST', 'دانشگاه آزاد اسلامی واحد تهران غرب'),
('IAU_TEH_EAST', 'دانشگاه آزاد اسلامی واحد تهران شرق'),
('IAU_SRT_TEHRAN', 'دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران'),
('IAU_QAZVIN', 'دانشگاه آزاد اسلامی قزوین'),
('IAU_NAJAFABAD', 'دانشگاه آزاد اسلامی نجف\u200cآباد'),
('IAU_MASHHAD', 'دانشگاه آزاد اسلامی مشهد'),
('IAU_TABRIZ', 'دانشگاه آزاد اسلامی تبریز'),
('IAU_SHIRAZ', 'دانشگاه آزاد اسلامی شیراز'),
('IAU_ISFAHAN', 'دانشگاه آزاد اسلامی اصفهان (خوراسگان)'),
('IAU_KARAJ', 'دانشگاه آزاد اسلامی کرج'),
('IAU_QOM', 'دانشگاه آزاد اسلامی قم'),
('IAU_RASHT', 'دانشگاه آزاد اسلامی رشت'),
('IAU_LAHIJAN', 'دانشگاه آزاد اسلامی لاهیجان'),
('IAU_SARI', 'دانشگاه آزاد اسلامی ساری'),
('IAU_YAZD', 'دانشگاه آزاد اسلامی یزد'),
('IAU_KERMAN', 'دانشگاه آزاد اسلامی کرمان'),
('IAU_BANDARABBAS', 'دانشگاه آزاد اسلامی بندرعباس'),
('IAU_BUSHEHR', 'دانشگاه آزاد اسلامی بوشهر'),
('IAU_AHVAZ', 'دانشگاه آزاد اسلامی اهواز'),
('IAU_KHORRAMABAD', 'دانشگاه آزاد اسلامی خرم\u200cآباد'),
('IAU_SANANDAJ', 'دانشگاه آزاد اسلامی سنندج'),
('IAU_HAMEDAN', 'دانشگاه آزاد اسلامی همدان'),
('IAU_ARAK', 'دانشگاه آزاد اسلامی اراک'),
('IAU_URMIA', 'دانشگاه آزاد اسلامی ارومیه'),
('IAU_ZANJAN', 'دانشگاه آزاد اسلامی زنجان'),
('IAU_BIRJAND', 'دانشگاه آزاد اسلامی بیرجند'),
('IAU_BOJNORD', 'دانشگاه آزاد اسلامی بجنورد'),
('IAU_SEMNAN', 'دانشگاه آزاد اسلامی سمنان'),
('IAU_GORGAN', 'دانشگاه آزاد اسلامی گرگان'),
('IAU_MARVDASHT', 'دانشگاه آزاد اسلامی مرودشت'),
('IAU_KISH_INTL', 'دانشگاه آزاد اسلامی بین\u200cالملل کیش'),
('IAU_QESHM_INTL', 'دانشگاه آزاد اسلامی قشم (بین\u200cالملل)'),
('PNU_EAST_AZERBAIJAN', 'دانشگاه پیام نور آذربایجان شرقی'),
('PNU_WEST_AZERBAIJAN', 'دانشگاه پیام نور آذربایجان غربی'),
('PNU_ARDABIL', 'دانشگاه پیام نور اردبیل'),
('PNU_ISFAHAN', 'دانشگاه پیام نور اصفهان'),
('PNU_ALBORZ', 'دانشگاه پیام نور البرز'),
('PNU_ILAM', 'دانشگاه پیام نور ایلام'),
('PNU_BUSHEHR', 'دانشگاه پیام نور بوشهر'),
('PNU_TEHRAN', 'دانشگاه پیام نور تهران'),
('PNU_CH_BAKHTIARI', 'دانشگاه پیام نور چهارمحال و بختیاری'),
('PNU_SOUTH_KHORASAN', 'دانشگاه پیام نور خراسان جنوبی'),
('PNU_RAZAVI_KHORASAN', 'دانشگاه پیام نور خراسان رضوی'),
('PNU_NORTH_KHORASAN', 'دانشگاه پیام نور خراسان شمالی'),
('PNU_KHUZESTAN', 'دانشگاه پیام نور خوزستان'),
('PNU_ZANJAN', 'دانشگاه پیام نور زنجان'),
('PNU_SEMNAN', 'دانشگاه پیام نور سمنان'),
('PNU_SISTAN_BALUCH', 'دانشگاه پیام نور سیستان و بلوچستان'),
('PNU_FARS', 'دانشگاه پیام نور فارس'),
('PNU_QAZVIN', 'دانشگاه پیام نور قزوین'),
('PNU_QOM', 'دانشگاه پیام نور قم'),
('PNU_KURDISTAN', 'دانشگاه پیام نور کردستان'),
('PNU_KERMAN', 'دانشگاه پیام نور کرمان'),
('PNU_KERMANSHAH', 'دانشگاه پیام نور کرمانشاه'),
('PNU_KOHGILUYEH', 'دانشگاه پیام نور کهگیلویه و بویراحمد'),
('PNU_GOLESTAN', 'دانشگاه پیام نور گلستان'),
('PNU_GILAN', 'دانشگاه پیام نور گیلان'),
('PNU_LORESTAN', 'دانشگاه پیام نور لرستان'),
('PNU_MAZANDARAN', 'دانشگاه پیام نور مازندران'),
('PNU_MARKAZI', 'دانشگاه پیام نور مرکزی'),
('PNU_HORMOZGAN', 'دانشگاه پیام نور هرمزگان'),
('PNU_HAMEDAN', 'دانشگاه پیام نور همدان'),
('PNU_YAZD', 'دانشگاه پیام نور یزد'),
('UAST_EAST_AZERBAIJAN', 'دانشگاه جامع علمی کاربردی آذربایجان شرقی'),
('UAST_WEST_AZERBAIJAN', 'دانشگاه جامع علمی کاربردی آذربایجان غربی'),
('UAST_ARDABIL', 'دانشگاه جامع علمی کاربردی اردبیل'),
('UAST_ISFAHAN', 'دانشگاه جامع علمی کاربردی اصفهان'),
('UAST_ALBORZ', 'دانشگاه جامع علمی کاربردی البرز'),
('UAST_ILAM', 'دانشگاه جامع علمی کاربردی ایلام'),
('UAST_BUSHEHR', 'دانشگاه جامع علمی کاربردی بوشهر'),
('UAST_TEHRAN', 'دانشگاه جامع علمی کاربردی تهران'),
('UAST_CH_BAKHTIARI', 'دانشگاه جامع علمی کاربردی چهارمحال و بختیاری'),
('UAST_SOUTH_KHORASAN', 'دانشگاه جامع علمی کاربردی خراسان جنوبی'),
('UAST_RAZAVI_KHORASAN', 'دانشگاه جامع علمی کاربردی خراسان رضوی'),
('UAST_NORTH_KHORASAN', 'دانشگاه جامع علمی کاربردی خراسان شمالی'),
('UAST_KHUZESTAN', 'دانشگاه جامع علمی کاربردی خوزستان'),
('UAST_ZANJAN', 'دانشگاه جامع علمی کاربردی زنجان'),
('UAST_SEMNAN', 'دانشگاه جامع علمی کاربردی سمنان'),
('UAST_SISTAN_BALUCH', 'دانشگاه جامع علمی کاربردی سیستان و بلوچستان'),
('UAST_FARS', 'دانشگاه جامع علمی کاربردی فارس'),
('UAST_QAZVIN', 'دانشگاه جامع علمی کاربردی قزوین'),
('UAST_QOM', 'دانشگاه جامع علمی کاربردی قم'),
('UAST_KURDISTAN', 'دانشگاه جامع علمی کاربردی کردستان'),
('UAST_KERMAN', 'دانشگاه جامع علمی کاربردی کرمان'),
('UAST_KERMANSHAH', 'دانشگاه جامع علمی کاربردی کرمانشاه'),
('UAST_KOHGILUYEH', 'دانشگاه جامع علمی کاربردی کهگیلویه و بویراحمد'),
('UAST_GOLESTAN', 'دانشگاه جامع علمی کاربردی گلستان'),
('UAST_GILAN', 'دانشگاه جامع علمی کاربردی گیلان'),
('UAST_LORESTAN', 'دانشگاه جامع علمی کاربردی لرستان'),
('UAST_MAZANDARAN', 'دانشگاه جامع علمی کاربردی مازندران'),
('UAST_MARKAZI', 'دانشگاه جامع علمی کاربردی مرکزی'),
('UAST_HORMOZGAN', 'دانشگاه جامع علمی کاربردی هرمزگان'),
('UAST_HAMEDAN', 'دانشگاه جامع علمی کاربردی همدان'),
('UAST_YAZD', 'دانشگاه جامع علمی کاربردی یزد'),
('SCIENCE_CULTURE', 'دانشگاه علم و فرهنگ'),
('KHATAM', 'دانشگاه خاتم'),
('SOOREH', 'دانشگاه سوره'),
('MOFID', 'دانشگاه مفید'),
('SHOMAL', 'دانشگاه شمال'),
('QURANIC_UNI', 'دانشگاه علوم و معارف قرآن کریم')]
def seed_reference_models(apps, schema_editor):
Major = apps.get_model("users", "Major")
University = apps.get_model("users", "University")
User = apps.get_model("users", "User")
major_map = {}
for code, label in MAJOR_CHOICES:
obj, _ = Major.objects.update_or_create(
code=code,
defaults={"name": label},
)
major_map[code] = obj
university_map = {}
for code, label in UNIVERSITY_CHOICES:
obj, _ = University.objects.update_or_create(
code=code,
defaults={"name": label},
)
university_map[code] = obj
users = User.objects.all()
for user in users.iterator():
updates = []
major_code = getattr(user, "legacy_major", None)
if major_code:
major = major_map.get(major_code)
if major and user.major_id != major.id:
user.major_id = major.id
updates.append("major")
university_code = getattr(user, "legacy_university", None)
if university_code:
uni = university_map.get(university_code)
if uni and user.university_id != uni.id:
user.university_id = uni.id
updates.append("university")
if updates:
user.save(update_fields=updates)
def noop(apps, schema_editor):
pass
class Migration(migrations.Migration):
dependencies = [
("users", "0004_major_university_models"),
]
operations = [
migrations.RunPython(seed_reference_models, noop),
]