Select Git revision
      
  0280_alter_districtnewprogrampage_program.py
  0082_auto_20240703_1459.py  9.73 KiB 
# Generated by Django 5.0.6 on 2024-07-03 12:59
from django.db import migrations
from shared.blocks import SocialLinkBlock
def add_name_titles(apps, schema_editor):
    UniwebPersonPage = apps.get_model("uniweb", "UniwebPersonPage")
    for person_page in UniwebPersonPage.objects.all():
        title = person_page.title.lower()
        if "bc. et bc." in title:
            person_page.title = (
                person_page.title.replace("Bc. et Bc. ", "")
                .replace("BC. et BC. ", "")
                .replace("Bc. et Bc.", "")
                .replace("BC. et BC.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "Bc. et Bc."
        if "bc." in title:
            person_page.title = (
                person_page.title.replace("Bc. ", "")
                .replace("BC. ", "")
                .replace("Bc.", "")
                .replace("BC.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "Bc."
        if "ing." in title:
            person_page.title = (
                person_page.title.replace("Ing. ", "")
                .replace("ING. ", "")
                .replace("Ing.", "")
                .replace("ING.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "Ing."
        if "mgr. et mgr." in title:
            person_page.title = (
                person_page.title.replace("Mgr. et Mgr. ", "")
                .replace("MGR. et MGR. ", "")
                .replace("Mgr. et Mgr.", "")
                .replace("MGR. et MGR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "Mgr. et Mgr."
        if "mgr." in title:
            person_page.title = (
                person_page.title.replace("Mgr. ", "")
                .replace("MGR. ", "")
                .replace("Mgr.", "")
                .replace("MGR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "Mgr."
        if "mudr. et mudr." in title:
            person_page.title = (
                person_page.title.replace("MUDr. et MUDr. ", "")
                .replace("MUDR. et MUDR. ", "")
                .replace("MUDr. et MUDr.", "")
                .replace("MUDR. et MUDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "MUDr. et MUDr."
        if "mudr." in title:
            person_page.title = (
                person_page.title.replace("MUDr. ", "")
                .replace("MUDR. ", "")
                .replace("MUDr.", "")
                .replace("MUDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "MUDr."
        if "rndr. et rndr." in title:
            person_page.title = (
                person_page.title.replace("RNDr. et RNDr. ", "")
                .replace("RNDR. et RNDR. ", "")
                .replace("RNDr. et RNDr.", "")
                .replace("RNDR. et RNDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "RNDr. et RNDr"
        if "rndr." in title:
            person_page.title = (
                person_page.title.replace("RNDr. ", "")
                .replace("RNDR. ", "")
                .replace("RNDr.", "")
                .replace("RNDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "RNDr."
        if "phdr. et phdr." in title:
            person_page.title = (
                person_page.title.replace("PhDr. et PhDr. ", "")
                .replace("PHDR. et PHDR. ", "")
                .replace("PhDr. et PhDr.", "")
                .replace("PHDR. et PHDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "PhDr. et PhDr."
        if "phdr." in title:
            person_page.title = (
                person_page.title.replace("PhDr. ", "")
                .replace("PHDR. ", "")
                .replace("PhDr.", "")
                .replace("PHDR.", "")
            )
            title = person_page.title.lower()
            person_page.before_name = "PhDr."
        if "ph.d." in title:
            person_page.title = (
                person_page.title.replace("Ph.D. ", "")
                .replace("PH.D. ", "")
                .replace("Ph.D.", "")
                .replace("PH.D.", "")
            )
            title = person_page.title.lower()
            person_page.after_name = "Ph.D."
        if "ph.d. et ph.d." in title:
            person_page.title = (
                person_page.title.replace("Ph.D. et Ph.D. ", "")
                .replace("PH.D. et PH.D. ", "")
                .replace("Ph.D. et Ph.D.", "")
                .replace("PH.D. et PH.D.", "")
            )
            title = person_page.title.lower()
            person_page.after_name = "Ph.D. et Ph.D."
        person_page.save()
def add_social_media_blocks(apps, schema_editor):
    UniwebPersonPage = apps.get_model("uniweb", "UniwebPersonPage")
    for person_page in UniwebPersonPage.objects.all():
        if person_page.facebook_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--facebook",
                            "text": "Facebook",
                            "link": person_page.facebook_url,
                        }
                    ),
                )
            )
        if person_page.instagram_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--instagram",
                            "text": "Instagram",
                            "link": person_page.instagram_url,
                        }
                    ),
                )
            )
        if person_page.twitter_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--twitter",
                            "text": "Twitter",
                            "link": person_page.twitter_url,
                        }
                    ),
                )
            )
        if person_page.youtube_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--youtube",
                            "text": "YouTube",
                            "link": person_page.youtube_url,
                        }
                    ),
                )
            )
        if person_page.flickr_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--flickr",
                            "text": "Flickr",
                            "link": person_page.flickr_url,
                        }
                    ),
                )
            )
        if person_page.custom_web_url:
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": "ico--globe",
                            "text": "Stránky",
                            "link": person_page.custom_web_url,
                        }
                    ),
                )
            )
        for other_link_block in person_page.other_urls.get_prep_value():
            person_page.social_links.append(
                (
                    "social_links",
                    SocialLinkBlock().to_python(
                        {
                            "icon": other_link_block["value"]["custom_icon"],
                            "text": other_link_block["value"]["title"],
                            "link": other_link_block["value"]["url"],
                        }
                    ),
                )
            )
        person_page.save()
def update_person_page_primary_group(apps, schema_editor):
    UniwebPeoplePage = apps.get_model("uniweb", "UniwebPeoplePage")
    UniwebPersonPage = apps.get_model("uniweb", "UniwebPersonPage")
    processed_page_ids = []
    for people_page in UniwebPeoplePage.objects.all():
        for group_block in people_page.content.get_prep_value():
            if group_block["type"] != "people_group":
                continue
            primary_group = group_block["value"]["title"]
            person_page_ids = group_block["value"]["person_list"]
            person_pages = []
            for id in person_page_ids:
                person_pages.append(
                    UniwebPersonPage.objects.filter(id=id["value"]).first()
                )
            if len(primary_group) > 64:
                continue  # Too long!
            for page in person_pages:
                if page.id in processed_page_ids:
                    continue
                page.primary_group = primary_group
                page.save()
                processed_page_ids.append(page.id)
class Migration(migrations.Migration):
    dependencies = [
        ("uniweb", "0081_uniwebpersonpage_after_name_and_more"),
    ]
    operations = [
        migrations.RunPython(add_name_titles),
        migrations.RunPython(add_social_media_blocks),
        migrations.RunPython(update_person_page_primary_group),
    ]