Skip to content

Instantly share code, notes, and snippets.

@ruchej
Created February 2, 2022 18:19
Show Gist options
  • Save ruchej/eed9ffce02a385628351429adec8a5a9 to your computer and use it in GitHub Desktop.
Save ruchej/eed9ffce02a385628351429adec8a5a9 to your computer and use it in GitHub Desktop.
from django.conf import settings
from django.db import migrations, transaction
def forwards_func(apps, schema_editor):
Menu = apps.get_model("core", "Menu")
db_alias = schema_editor.connection.alias
with transaction.atomic():
Menu.objects.using(db_alias).bulk_create(
[
Menu(title="mainmenu", sort=1, active=True, css_class="nav-menu", seen_gasts=True, seen_seeker=True,
seen_employ=True, parent=None),
]
)
main_menu = Menu.objects.using(db_alias).filter(title='mainmenu', parent=None).first()
Menu.objects.using(db_alias).bulk_create(
[
Menu(title="Новости", sort=1, active=True, url="blog:news", css_class="", seen_gasts=True,
seen_seeker=True, seen_employ=True, parent=main_menu),
Menu(title="Резюме", sort=2, active=True, url="resumes:resume_list", css_class="", seen_gasts=False,
seen_seeker=False, seen_employ=True, parent=main_menu),
Menu(title="Отклики", sort=3, active=True, url="recruiting:response_list", css_class="",
seen_gasts=False, seen_seeker=False, seen_employ=True, parent=main_menu),
Menu(title="Вакансии", sort=4, active=True, url="vacancies:vacancy_list", css_class="",
seen_gasts=False, seen_seeker=True, seen_employ=True, parent=main_menu),
Menu(title="Правила", sort=5, active=True, url="rules", css_class="", seen_gasts=True,
seen_seeker=True, seen_employ=True, parent=main_menu),
Menu(title="Выйти", sort=6, active=True, url="account:Logout", css_class="", seen_gasts=False,
seen_seeker=True, seen_employ=True, parent=main_menu),
Menu(title="Войти", sort=7, active=True, url="account:Login", css_class="", seen_gasts=True,
seen_seeker=False,
seen_employ=False, parent=main_menu),
]
)
def reverse_func(apps, schema_editor):
Menu = apps.get_model("core", "Menu")
db_alias = schema_editor.connection.alias
with transaction.atomic():
main_menu = Menu.objects.using(db_alias).filter(title='mainmenu', parent=None).first()
Menu.objects.using(db_alias).filter(parent=main_menu).delete()
Menu.objects.using(db_alias).filter(title='mainmenu', parent=None).delete()
class Migration(migrations.Migration):
dependencies = [("core", "0001_initial")]
operations = [migrations.RunPython(forwards_func, reverse_func)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment