- Changes to the list views - now using tabulator with filtering and sorting, client-side pagination, ...
- Adaptation of all list views in the app
This commit is contained in:
@@ -12,9 +12,11 @@ from common.utils.celery_utils import current_celery
|
||||
from common.utils.eveai_exceptions import EveAIException
|
||||
from common.utils.log_utils import format_query_results
|
||||
from common.utils.model_logging_utils import update_logging_information, set_logging_information
|
||||
from common.utils.view_assistants import prepare_table_for_macro, form_validation_failed
|
||||
from common.utils.view_assistants import form_validation_failed
|
||||
from common.utils.nginx_utils import prefixed_url_for
|
||||
from .partner_forms import TriggerActionForm, EditPartnerForm, PartnerServiceForm, EditPartnerServiceForm
|
||||
from eveai_app.views.list_views.partner_list_views import get_partners_list_view, get_partner_services_list_view
|
||||
from eveai_app.views.list_views.list_view_utils import render_list_view
|
||||
|
||||
partner_bp = Blueprint('partner_bp', __name__, url_prefix='/partner')
|
||||
|
||||
@@ -75,26 +77,8 @@ def edit_partner(partner_id):
|
||||
@partner_bp.route('/partners', methods=['GET', 'POST'])
|
||||
@roles_accepted('Super User')
|
||||
def partners():
|
||||
page = request.args.get('page', 1, type=int)
|
||||
per_page = request.args.get('per_page', 10, type=int)
|
||||
|
||||
query = (db.session.query(
|
||||
Partner.id,
|
||||
Partner.code,
|
||||
Partner.active,
|
||||
Partner.logo_url,
|
||||
# Include all needed Partner columns here
|
||||
Tenant.name.label('name')
|
||||
).join(Tenant, Partner.tenant_id == Tenant.id).order_by(Partner.id))
|
||||
|
||||
pagination = query.paginate(page=page, per_page=per_page)
|
||||
the_partners = pagination.items
|
||||
|
||||
# prepare table data
|
||||
rows = prepare_table_for_macro(the_partners, [('id', ''), ('name', '')])
|
||||
|
||||
# Render the catalogs in a template
|
||||
return render_template('partner/partners.html', rows=rows, pagination=pagination)
|
||||
config = get_partners_list_view()
|
||||
return render_list_view('list_view.html', **config)
|
||||
|
||||
|
||||
@partner_bp.route('/handle_partner_selection', methods=['POST'])
|
||||
@@ -199,23 +183,14 @@ def edit_partner_service(partner_service_id):
|
||||
@partner_bp.route('/partner_services', methods=['GET', 'POST'])
|
||||
@roles_accepted('Super User')
|
||||
def partner_services():
|
||||
page = request.args.get('page', 1, type=int)
|
||||
per_page = request.args.get('per_page', 10, type=int)
|
||||
partner = session.get('partner', None)
|
||||
if not partner:
|
||||
flash('No partner has been selected. Set partner before adding services.', 'warning')
|
||||
return redirect(prefixed_url_for('partner_bp.partners'))
|
||||
partner_id = session['partner']['id']
|
||||
|
||||
query = PartnerService.query.filter(PartnerService.partner_id == partner_id)
|
||||
|
||||
pagination = query.paginate(page=page, per_page=per_page)
|
||||
the_partner_services = pagination.items
|
||||
|
||||
# prepare table data
|
||||
rows = prepare_table_for_macro(the_partner_services, [('id', ''), ('name', ''), ('type', '')])
|
||||
|
||||
return render_template('partner/partner_services.html', rows=rows, pagination=pagination)
|
||||
config = get_partner_services_list_view(partner_id)
|
||||
return render_list_view('list_view.html', **config)
|
||||
|
||||
|
||||
@partner_bp.route('/handle_partner_service_selection', methods=['POST'])
|
||||
|
||||
Reference in New Issue
Block a user