You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB

from flask import render_template, Blueprint, request, flash, redirect, url_for, jsonify
from minibase.blueprints.company.models import Companies
database = Blueprint('database', __name__, template_folder='templates')
@database.route('/search/<field_name>/<table_name>/<key_name>/<ret_name>', methods=['GET'])
def search_auto(field_name, table_name, key_name, ret_name):
keyLike = request.args.get('modalReqArg', '')
MODEL_MAP = {
'Companies': Companies,
}
table = MODEL_MAP.get(table_name)
if table is None:
return f"Error: Table '{table_name}' not found.", 400
column = getattr(table, key_name.strip(), None)
if column is None:
return f"Error: Column '{key_name}' not found in table '{table_name}'.", 400
# Proceed with filtering if the column is found
results = table.query.filter(column.ilike(f'%{keyLike}%')).all()
return render_template('database/search_results.html', field_name=field_name, results=results, returnAttr=ret_name)
@database.route('/select/<field_name>/<int:result_id>/<result_content>', methods=['GET'])
def select_field(field_name, result_id, result_content):
return f'<option value="{result_id}" selected>{result_content}</option>'