import re
file_path = 'includes/layout/footer.php'
with open(file_path, 'r') as f:
content = f.read()
# 1. Update Add Patient Modal
# Look for the name input in addPatientModal
pattern_add = r'(
)'
replacement_add = r'\1\n' + \
r'''
'''
# We need to be careful not to match too much.
# Let's find the specific div for name inside addPatientModal
# It's better to find the index.
add_modal_start = content.find('id="addPatientModal"')
if add_modal_start != -1:
# Find the name input div AFTER this start
name_div_end = content.find('
', content.find('name="name"', add_modal_start)) + 6
# Check if we already added it (idempotency)
if 'name="civil_id"' not in content[name_div_end:name_div_end+500]:
content = content[:name_div_end] + replacement_add + content[name_div_end:]
# 2. Update Edit Patient Modal
edit_modal_start = content.find('id="editPatientModal"')
if edit_modal_start != -1:
# Find the name input div AFTER this start
name_div_end = content.find('', content.find('name="name"', edit_modal_start)) + 6
replacement_edit = r'''
'''
if 'name="civil_id"' not in content[name_div_end:name_div_end+500]:
content = content[:name_div_end] + replacement_edit + content[name_div_end:]
# 3. Update JS showEditPatientModal
js_func = 'function showEditPatientModal(patient) {'
js_start = content.find(js_func)
if js_start != -1:
# Find the fields object
fields_start = content.find("var fields = {", js_start)
if fields_start != -1:
# Insert new fields
insert_pos = content.find("'edit_patient_name': patient.name,", fields_start) + len("'edit_patient_name': patient.name,")
new_js_fields = r'''
'edit_patient_civil_id': patient.civil_id || '',
'edit_patient_nationality': patient.nationality || '',
'edit_patient_city': patient.city || '',
'''''
if "'edit_patient_civil_id'" not in content[fields_start:fields_start+500]:
content = content[:insert_pos] + new_js_fields + content[insert_pos:]
# Find the loop to add trigger
loop_start = content.find("for (var id in fields) {", js_start)
if loop_start != -1:
# We want to add the trigger inside the loop
# Find 'if (field) field.value = fields[id];'
val_set = content.find("if (field) field.value = fields[id];", loop_start)
if val_set != -1:
replace_js = '''if (field) {
field.value = fields[id];
if (id === 'edit_patient_nationality') {
$(field).val(fields[id]).trigger('change');
}
}'''
content = content.replace("if (field) field.value = fields[id];", replace_js, 1)
with open(file_path, 'w') as f:
f.write(content)
print("Updated footer.php")