- eveai_app adapted to handle removal of complex rewrite rules in nginx.conf, which cannot be achieved in Ingress
This commit is contained in:
@@ -77,12 +77,12 @@ def handle_chat_session_selection():
|
||||
|
||||
match action:
|
||||
case 'view_chat_session':
|
||||
return redirect(prefixed_url_for('interaction_bp.view_chat_session', chat_session_id=cs_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.view_chat_session', chat_session_id=cs_id, for_redirect=True))
|
||||
case 'chat_session_interactions':
|
||||
return redirect(prefixed_url_for('interaction_bp.session_interactions', chat_session_id=cs_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.session_interactions', chat_session_id=cs_id, for_redirect=True))
|
||||
|
||||
# Add more conditions for other actions
|
||||
return redirect(prefixed_url_for('interaction_bp.chat_sessions'))
|
||||
return redirect(prefixed_url_for('interaction_bp.chat_sessions', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/view_chat_session/<int:chat_session_id>', methods=['GET'])
|
||||
@@ -184,7 +184,7 @@ def specialist():
|
||||
# Initialize the newly create specialist
|
||||
SpecialistServices.initialize_specialist(new_specialist.id, new_specialist.type, new_specialist.type_version)
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', specialist_id=new_specialist.id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', specialist_id=new_specialist.id, for_redirect=True))
|
||||
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
@@ -257,7 +257,7 @@ def edit_specialist(specialist_id):
|
||||
db.session.commit()
|
||||
flash('Specialist updated successfully!', 'success')
|
||||
current_app.logger.info(f'Specialist {specialist.id} updated successfully')
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists', for_redirect=True))
|
||||
except SQLAlchemyError as e:
|
||||
db.session.rollback()
|
||||
flash(f'Failed to update specialist. Error: {str(e)}', 'danger')
|
||||
@@ -297,17 +297,17 @@ def specialists():
|
||||
def handle_specialist_selection():
|
||||
action = request.form.get('action')
|
||||
if action == 'create_specialist':
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist', for_redirect=True))
|
||||
|
||||
specialist_identification = request.form.get('selected_row')
|
||||
specialist_id = ast.literal_eval(specialist_identification).get('value')
|
||||
|
||||
if action == "edit_specialist":
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', specialist_id=specialist_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', specialist_id=specialist_id, for_redirect=True))
|
||||
elif action == "execute_specialist":
|
||||
return redirect(prefixed_url_for('interaction_bp.execute_specialist', specialist_id=specialist_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.execute_specialist', specialist_id=specialist_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists', for_redirect=True))
|
||||
|
||||
|
||||
# Routes for Agent management ---------------------------------------------------------------------
|
||||
@@ -442,9 +442,9 @@ def handle_agent_selection():
|
||||
action = request.form.get('action')
|
||||
|
||||
if action == "edit_agent":
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_agent', agent_id=agent_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_agent', agent_id=agent_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist'))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/handle_task_selection', methods=['POST'])
|
||||
@@ -455,9 +455,9 @@ def handle_task_selection():
|
||||
action = request.form.get('action')
|
||||
|
||||
if action == "edit_task":
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_task', task_id=task_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_task', task_id=task_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist'))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/handle_tool_selection', methods=['POST'])
|
||||
@@ -468,9 +468,9 @@ def handle_tool_selection():
|
||||
action = request.form.get('action')
|
||||
|
||||
if action == "edit_tool":
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_tool', tool_id=tool_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_tool', tool_id=tool_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist'))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist', for_redirect=True))
|
||||
|
||||
|
||||
# Specialist Execution ----------------------------------------------------------------------------
|
||||
@@ -481,7 +481,7 @@ def execute_specialist(specialist_id):
|
||||
|
||||
if specialist_config.get('chat', True):
|
||||
flash("Only specialists that don't require interactions can be executed this way!", 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists', for_redirect=True))
|
||||
|
||||
form = ExecuteSpecialistForm(request.form, obj=specialist)
|
||||
if 'arguments' in specialist_config:
|
||||
@@ -498,7 +498,7 @@ def execute_specialist(specialist_id):
|
||||
session_id=session_id,
|
||||
user_timezone=session.get('tenant').get('timezone')
|
||||
)
|
||||
return redirect(prefixed_url_for('interaction_bp.session_interactions_by_session_id', session_id=session_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.session_interactions_by_session_id', session_id=session_id, for_redirect=True))
|
||||
|
||||
return render_template('interaction/execute_specialist.html', form=form)
|
||||
|
||||
@@ -564,7 +564,7 @@ def session_interactions_by_session_id(session_id):
|
||||
waiting='true'))
|
||||
|
||||
# If we've already shown a waiting message and still don't have a session, go back to the specialists page
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/session_interactions/<chat_session_id>', methods=['GET'])
|
||||
@@ -619,7 +619,7 @@ def specialist_magic_link():
|
||||
f'tenant {tenant_id}!')
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist_magic_link',
|
||||
specialist_magic_link_id=new_specialist_magic_link.id))
|
||||
specialist_magic_link_id=new_specialist_magic_link.id, for_redirect=True))
|
||||
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
@@ -666,7 +666,7 @@ def edit_specialist_magic_link(specialist_magic_link_id):
|
||||
db.session.commit()
|
||||
flash('Specialist Magic Link updated successfully!', 'success')
|
||||
current_app.logger.info(f'Specialist Magic Link {specialist_ml.id} updated successfully')
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist_magic_links'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist_magic_links', for_redirect=True))
|
||||
except SQLAlchemyError as e:
|
||||
db.session.rollback()
|
||||
flash(f'Failed to update specialist Magic Link. Error: {str(e)}', 'danger')
|
||||
@@ -745,19 +745,19 @@ def specialist_magic_links():
|
||||
def handle_specialist_magic_link_selection():
|
||||
action = request.form.get('action')
|
||||
if action == 'create_specialist_magic_link':
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist_magic_link'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialist_magic_link', for_redirect=True))
|
||||
|
||||
specialist_ml_identification = request.form.get('selected_row')
|
||||
specialist_ml_id = ast.literal_eval(specialist_ml_identification).get('value')
|
||||
|
||||
if action == "edit_specialist_magic_link":
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_specialist_magic_link',
|
||||
specialist_magic_link_id=specialist_ml_id))
|
||||
specialist_magic_link_id=specialist_ml_id, for_redirect=True))
|
||||
if action == "view_specialist_magic_link_urls":
|
||||
return redirect(prefixed_url_for('interaction_bp.view_specialist_magic_link_urls',
|
||||
specialist_magic_link_id=specialist_ml_id))
|
||||
specialist_magic_link_id=specialist_ml_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists'))
|
||||
return redirect(prefixed_url_for('interaction_bp.specialists', for_redirect=True))
|
||||
|
||||
|
||||
# Routes for Asset Management ---------------------------------------------------------------------
|
||||
@@ -788,13 +788,13 @@ def handle_data_capsule_selection():
|
||||
match action:
|
||||
case 'view_data_capsule':
|
||||
# For now, we'll just redirect to view_data_capsule
|
||||
return redirect(prefixed_url_for('interaction_bp.view_data_capsule', data_capsule_id=capsule_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.view_data_capsule', data_capsule_id=capsule_id, for_redirect=True))
|
||||
case 'view_chat_session':
|
||||
# Redirect to the chat session
|
||||
return redirect(prefixed_url_for('interaction_bp.view_chat_session', chat_session_id=data_capsule.chat_session_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.view_chat_session', chat_session_id=data_capsule.chat_session_id, for_redirect=True))
|
||||
|
||||
# Default redirect back to the data capsules list
|
||||
return redirect(prefixed_url_for('interaction_bp.eveai_data_capsules'))
|
||||
return redirect(prefixed_url_for('interaction_bp.eveai_data_capsules', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/handle_asset_selection', methods=['POST'])
|
||||
@@ -804,9 +804,9 @@ def handle_asset_selection():
|
||||
asset_id = ast.literal_eval(asset_identification).get('value')
|
||||
|
||||
if action == 'edit_asset':
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id, for_redirect=True))
|
||||
|
||||
return redirect(prefixed_url_for('interaction_bp.assets'))
|
||||
return redirect(prefixed_url_for('interaction_bp.assets', for_redirect=True))
|
||||
|
||||
|
||||
@interaction_bp.route('/view_data_capsule/<int:data_capsule_id>', methods=['GET'])
|
||||
@@ -830,14 +830,14 @@ def edit_asset(asset_id):
|
||||
|
||||
if not tenant_id:
|
||||
flash('Geen tenant geselecteerd', 'error')
|
||||
return redirect(url_for('interaction_bp.assets'))
|
||||
return redirect(url_for('interaction_bp.assets', for_redirect=True))
|
||||
|
||||
# Controleer of het bestandstype wordt ondersteund
|
||||
if asset.file_type != 'json':
|
||||
flash(
|
||||
f'Bestandstype "{asset.file_type}" wordt momenteel niet ondersteund voor bewerking. Alleen JSON-bestanden kunnen worden bewerkt.',
|
||||
'warning')
|
||||
return redirect(url_for('interaction_bp.assets'))
|
||||
return redirect(url_for('interaction_bp.assets', for_redirect=True))
|
||||
|
||||
if request.method == 'GET':
|
||||
try:
|
||||
@@ -861,11 +861,11 @@ def edit_asset(asset_id):
|
||||
|
||||
except json.JSONDecodeError:
|
||||
flash('Fout bij het laden van het JSON-bestand: ongeldig JSON-formaat', 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.assets'))
|
||||
return redirect(prefixed_url_for('interaction_bp.assets', for_redirect=True))
|
||||
except Exception as e:
|
||||
current_app.logger.error(f"Error loading asset {asset_id}: {str(e)}")
|
||||
flash(f'Fout bij het laden van het asset: {str(e)}', 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.assets'))
|
||||
return redirect(prefixed_url_for('interaction_bp.assets', for_redirect=True))
|
||||
|
||||
elif request.method == 'POST':
|
||||
try:
|
||||
@@ -877,14 +877,14 @@ def edit_asset(asset_id):
|
||||
if not json_data:
|
||||
current_app.logger.error(f"No JSON data received for asset {asset_id}")
|
||||
flash('Geen JSON data ontvangen', 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id, for_redirect=True))
|
||||
|
||||
# Valideer JSON formaat
|
||||
try:
|
||||
parsed_json = json.loads(json_data)
|
||||
except json.JSONDecodeError as e:
|
||||
flash(f'Ongeldig JSON-formaat: {str(e)}', 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id, for_redirect=True))
|
||||
|
||||
# Upload de bijgewerkte JSON naar MinIO
|
||||
bucket_name, object_name, file_size = minio_client.upload_asset_file(
|
||||
@@ -904,10 +904,10 @@ def edit_asset(asset_id):
|
||||
db.session.commit()
|
||||
|
||||
flash('Asset succesvol bijgewerkt', 'success')
|
||||
return redirect(prefixed_url_for('interaction_bp.assets'))
|
||||
return redirect(prefixed_url_for('interaction_bp.assets', for_redirect=True))
|
||||
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
current_app.logger.error(f"Error saving asset {asset_id}: {str(e)}")
|
||||
flash(f'Fout bij het opslaan van het asset: {str(e)}', 'error')
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id))
|
||||
return redirect(prefixed_url_for('interaction_bp.edit_asset', asset_id=asset_id, for_redirect=True))
|
||||
|
||||
Reference in New Issue
Block a user