64 lines
1.9 KiB
Python
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.")
|