from flask import Blueprint, request, redirect, flash, session from auth import require_level from config_utils import (flush_pending_to_queue, get_dashboard_pending, _is_locked, _format_timing, _seconds_until_next_run) bp = Blueprint('action_actions', __name__) _VIEW = '/view/view_actions' @bp.route('/action/actions_cardoptions_save', methods=['POST']) @require_level('administrator') def actions_cardoptions_save(): session['apply_changes_immediately'] = 'apply_changes_immediately' in request.form flash('Preference saved.', 'success') return redirect(_VIEW) @bp.route('/action/actions_cardpendingchanges_applyselected', methods=['POST']) @require_level('administrator') def actions_cardpendingchanges_applyselected(): items = get_dashboard_pending() if not items: flash('No pending changes to apply.', 'info') return redirect(_VIEW) flush_pending_to_queue() if _is_locked(): msg = 'Changes queued. They are being applied now.' else: timing = _format_timing(_seconds_until_next_run()) if timing: msg = f'Changes queued. They will be applied {timing}.' else: msg = 'Changes queued. The processing service is not running.' flash(msg, 'success') return redirect(_VIEW) @bp.route('/action/actions_cardpendingchanges_revertselected', methods=['POST']) @require_level('administrator') def actions_cardpendingchanges_revertselected(): flash('Not yet implemented.', 'info') return redirect(_VIEW)