Files
sisvietnamvn_01/sisvietnamvn_main/add_specialties_to_menu.py
T

64 lines
1.9 KiB
Python

import oracledb
dsn = "localhost:1521/sisvietnam"
conn = oracledb.connect(user="sisvietnam", password="sisvietnam", dsn=dsn)
cursor = conn.cursor()
# Get primaryMenu ID
cursor.execute("SELECT id FROM SIS_MENU WHERE name = 'primaryMenu'")
menu = cursor.fetchone()
if not menu:
print("primaryMenu not found")
exit(1)
menu_id = menu[0]
# Get CHUYÊN KHOA ID
cursor.execute("SELECT id FROM SIS_MENU_ITEM WHERE menu_id = :1 AND UPPER(title) = 'CHUYÊN KHOA'", [menu_id])
parent_item = cursor.fetchone()
if not parent_item:
print("CHUYÊN KHOA menu item not found")
exit(1)
parent_id = parent_item[0]
# Get existing children to calculate item_order
cursor.execute("SELECT MAX(item_order) FROM SIS_MENU_ITEM WHERE parent_id = :1", [parent_id])
max_order = cursor.fetchone()[0]
if max_order is None:
max_order = 0
# Get all specialties
cursor.execute("SELECT title, slug FROM SIS_PAGE WHERE layout = 'SPECIALTY_DETAIL' ORDER BY title")
specialties = cursor.fetchall()
print(f"Found {len(specialties)} specialties to add.")
# Add to menu
count = 0
for spec in specialties:
title = spec[0]
slug = spec[1]
url = f"/chuyen-khoa/{slug}"
# Check if already exists
cursor.execute("SELECT id FROM SIS_MENU_ITEM WHERE parent_id = :1 AND url = :2", [parent_id, url])
if cursor.fetchone():
print(f"Skipping {title}, already exists in menu.")
continue
max_order += 1
# Get sequence for ID
cursor.execute("SELECT sequence_generator.nextval FROM dual")
seq_val = cursor.fetchone()[0]
cursor.execute("""
INSERT INTO SIS_MENU_ITEM (id, menu_id, parent_id, title, url, item_order, css_class, icon_class)
VALUES (:1, :2, :3, :4, :5, :6, :7, :8)
""", [seq_val, menu_id, parent_id, title, url, max_order, '', ''])
count += 1
print(f"Added {title} ({url})")
conn.commit()
print(f"Successfully added {count} items to menu.")