mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	standardize the use of service name handles, e.g. file-setup instead of file_setup
This commit is contained in:
		@@ -2,10 +2,7 @@ from flask import Blueprint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SERVICES = {
 | 
			
		||||
    'corpus_analysis': {
 | 
			
		||||
        'name': 'Corpus analysis'
 | 
			
		||||
    },
 | 
			
		||||
    'file_setup': {
 | 
			
		||||
    'file-setup': {
 | 
			
		||||
        'name': 'File setup',
 | 
			
		||||
        'versions': {
 | 
			
		||||
            'latest': '1.0.0b',
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,14 @@ class AddFileSetupJobForm(AddJobForm):
 | 
			
		||||
                                      '| .tif')
 | 
			
		||||
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        version = kwargs.pop('version', SERVICES['file_setup']['versions']['latest'])
 | 
			
		||||
        version = kwargs.pop('version', SERVICES['file-setup']['versions']['latest'])
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
        self.version.choices = [(x, x) for x in SERVICES['file_setup']['versions'] if x != 'latest']  # noqa
 | 
			
		||||
        self.version.choices = [(x, x) for x in SERVICES['file-setup']['versions'] if x != 'latest']  # noqa
 | 
			
		||||
        self.version.default = version
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AddJobForms = {
 | 
			
		||||
    'file-setup': AddFileSetupJobForm,
 | 
			
		||||
    'ocr': AddOCRJobForm,
 | 
			
		||||
    'nlp': AddNLPJobForm
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,41 +4,36 @@ from flask_login import current_user, login_required
 | 
			
		||||
from werkzeug.utils import secure_filename
 | 
			
		||||
from . import services
 | 
			
		||||
from . import SERVICES
 | 
			
		||||
from .forms import AddFileSetupJobForm, AddNLPJobForm, AddOCRJobForm
 | 
			
		||||
from .. import db, socketio
 | 
			
		||||
from .forms import AddJobForms
 | 
			
		||||
from ..models import Job, JobInput
 | 
			
		||||
import json
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@services.route('/corpus-analysis')
 | 
			
		||||
@login_required
 | 
			
		||||
def corpus_analysis():
 | 
			
		||||
    return render_template('services/corpus_analysis.html.j2')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@services.route('/<service>', methods=['GET', 'POST'])
 | 
			
		||||
@login_required
 | 
			
		||||
def service(service):
 | 
			
		||||
    if service not in SERVICES:
 | 
			
		||||
    # Check if the requested service exist
 | 
			
		||||
    if service not in SERVICES or service not in AddJobForms:
 | 
			
		||||
        abort(404)
 | 
			
		||||
    if service == 'corpus_analysis':
 | 
			
		||||
        return render_template('services/{}.html.j2'.format(service),
 | 
			
		||||
                               title=SERVICES[service]['name'])
 | 
			
		||||
    elif service == 'file_setup':
 | 
			
		||||
        form = AddFileSetupJobForm(prefix='add-file-setup-job-form')
 | 
			
		||||
    elif service == 'nlp':
 | 
			
		||||
        version = request.args.get('version')
 | 
			
		||||
        if version is None or version not in SERVICES[service]['versions']:
 | 
			
		||||
            form = AddNLPJobForm(prefix='add-nlp-job-form')
 | 
			
		||||
        else:
 | 
			
		||||
            form = AddNLPJobForm(prefix='add-nlp-job-form', version=version)
 | 
			
		||||
            form.version.data = version
 | 
			
		||||
    elif service == 'ocr':
 | 
			
		||||
        version = request.args.get('version')
 | 
			
		||||
        if version is None or version not in SERVICES[service]['versions']:
 | 
			
		||||
            form = AddOCRJobForm(prefix='add-ocr-job-form')
 | 
			
		||||
        else:
 | 
			
		||||
            form = AddOCRJobForm(prefix='add-ocr-job-form', version=version)
 | 
			
		||||
            form.version.data = version
 | 
			
		||||
    version = request.args.get('version',
 | 
			
		||||
                               SERVICES[service]['versions']['latest'])
 | 
			
		||||
    if version not in SERVICES[service]['versions']:
 | 
			
		||||
        abort(404)
 | 
			
		||||
    form = AddJobForms[service](prefix='add-job-form', version=version)
 | 
			
		||||
    form.version.data = version
 | 
			
		||||
    title = SERVICES[service]['name']
 | 
			
		||||
    versions = SERVICES[service]['versions']
 | 
			
		||||
    if form.is_submitted():
 | 
			
		||||
        if not form.validate():
 | 
			
		||||
            logging.error(form.errors)
 | 
			
		||||
            return make_response(form.errors, 400)
 | 
			
		||||
        service_args = []
 | 
			
		||||
        if service == 'nlp':
 | 
			
		||||
@@ -80,6 +75,5 @@ def service(service):
 | 
			
		||||
            socketio.emit(event, jsonpatch, room=room)
 | 
			
		||||
            return make_response(
 | 
			
		||||
                {'redirect_url': url_for('jobs.job', job_id=job.id)}, 201)
 | 
			
		||||
    return render_template('services/{}.html.j2'.format(service),
 | 
			
		||||
                           form=form, title=SERVICES[service]['name'],
 | 
			
		||||
                           versions=SERVICES[service]['versions'])
 | 
			
		||||
    return render_template('services/{}.html.j2'.format(service.replace('-', '_')),
 | 
			
		||||
                           form=form, title=title, versions=versions)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user