from ..tools.logs import write from flask import jsonify from wtforms.validators import ValidationError def value(min:int=0, max:int=None): if not max: message = f'Value must be greater than {min}.' else: message = f'Value must be between {min} and {max}.' def length(form, field): value = field.data or 0 if value < min or max != None and value > max: raise ValidationError(message) return length def get_time_options(): time_options = [ ('none', 'None'), ('60', '1 hour'), ('90', '1 hour 30 minutes'), ('120', '2 hours') ] return time_options def get_dataset_choices(): from ..models import Dataset try: datasets = Dataset.query.all() except Exception as exception: write('system.log', f'Database error when fetching dataset lists: {exception}') return [] dataset_choices = [] for dataset in datasets: label = dataset.get_name() label = f'{label} (Default)' if dataset.default else label choice = (dataset.id, label) dataset_choices.append(choice) return dataset_choices def send_errors_to_client(form): errors = [*form.errors.values()] return jsonify({ 'error': errors}), 400