yumoqing 6c28e4f6a9 fix: resolve Jinja2 template errors and undefined item variables
- Replace JavaScript ternary operator with Jinja2 if-else syntax in services.ui
- Change all 'item' references to 'data' in List component templates
- Add proper script bindings with data passing for List component actions
- Update main.dspy functions to use correct parameter names from form data
- Add missing update_model and remove_model functions for AI model management
- Ensure all List component interactions properly pass current item data
2026-04-22 14:25:08 +08:00

202 lines
5.7 KiB
Plaintext

def create_session():
session_name = request.form.get('session-name', '').strip()
model = request.form.get('model-select', '')
initial_prompt = request.form.get('initial-prompt', '')
if not session_name:
return {"error": "Session name is required"}
session_id = generate_session_id()
session_data = {
'id': session_id,
'name': session_name,
'model': model,
'initial_prompt': initial_prompt,
'created_at': get_current_timestamp(),
'last_active': get_current_timestamp()
}
save_session(session_data)
return {"redirect": f"session_{session_id}.ui"}
def filter_sessions():
search_term = request.form.get('session-search', '').lower()
all_sessions = get_all_sessions()
if search_term:
filtered_sessions = [
session for session in all_sessions
if search_term in session['name'].lower() or
search_term in session['model'].lower()
]
else:
filtered_sessions = all_sessions
return {"sessions": filtered_sessions}
def open_session():
session_id = request.form.get('session_id')
if session_id:
session_data = get_session_by_id(session_id)
if session_data:
return {"redirect": f"session_{session_id}.ui"}
return {"error": "Session not found"}
def filter_services():
search_term = request.form.get('service-search', '').lower()
all_services = get_all_services()
if search_term:
filtered_services = [
service for service in all_services
if search_term in service['name'].lower() or
search_term in service['endpoint'].lower()
]
else:
filtered_services = all_services
return {"services": filtered_services}
def add_service():
return {"redirect": "add_service.ui"}
def edit_service():
service_id = request.form.get('service_id')
if service_id:
service_data = get_service_by_id(service_id)
if service_data:
return {"redirect": f"edit_service_{service_id}.ui"}
return {"error": "Service not found"}
def remove_service():
service_id = request.form.get('service_id')
if service_id:
delete_service(service_id)
return {"success": True, "message": "Service removed successfully"}
return {"error": "Service not found"}
def test_service_connection():
service_id = request.form.get('service_id')
if service_id:
service_data = get_service_by_id(service_id)
if service_data:
is_connected = test_connection(service_data['endpoint'])
return {"status": "Connected" if is_connected else "Disconnected"}
return {"error": "Service not found"}
def save_general_settings():
default_model = request.form.get('default-model', '')
session_timeout = request.form.get('session-timeout', '30')
auto_save = request.form.get('auto-save', 'false') == 'true'
settings = {
'default_model': default_model,
'session_timeout': int(session_timeout),
'auto_save': auto_save
}
save_settings('general', settings)
return {"success": True, "message": "General settings saved successfully"}
def save_security_settings():
require_auth = request.form.get('require-auth', 'false') == 'true'
encrypt_storage = request.form.get('encrypt-storage', 'false') == 'true'
settings = {
'require_auth': require_auth,
'encrypt_storage': encrypt_storage
}
save_settings('security', settings)
return {"success": True, "message": "Security settings saved successfully"}
def save_appearance_settings():
theme = request.form.get('theme-select', 'dark')
settings = {
'theme': theme
}
save_settings('appearance', settings)
return {"success": True, "message": "Appearance settings saved successfully"}
def add_model():
return {"redirect": "add_model.ui"}
def update_model():
model_id = request.form.get('model_id')
model_name = request.form.get('model_name')
model_provider = request.form.get('model_provider')
if not model_id or not model_name:
return {"error": "Model ID and name are required"}
model_data = {
'id': model_id,
'name': model_name,
'provider': model_provider
}
update_model_in_storage(model_data)
return {"success": True, "message": "Model updated successfully"}
def remove_model():
model_id = request.form.get('model_id')
if model_id:
delete_model_from_storage(model_id)
return {"success": True, "message": "Model removed successfully"}
return {"error": "Model not found"}
def update_model_in_storage(model_data):
# Framework-provided function
pass
def delete_model_from_storage(model_id):
# Framework-provided function
pass
# Helper function stubs - these would be provided by the framework
def generate_session_id():
# Framework-provided function
pass
def get_current_timestamp():
# Framework-provided function
pass
def save_session(session_data):
# Framework-provided function
pass
def get_all_sessions():
# Framework-provided function
return []
def get_session_by_id(session_id):
# Framework-provided function
return None
def get_all_services():
# Framework-provided function
return []
def get_service_by_id(service_id):
# Framework-provided function
return None
def delete_service(service_id):
# Framework-provided function
pass
def test_connection(endpoint):
# Framework-provided function
return True
def save_settings(category, settings):
# Framework-provided function
pass