mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	Remove the TranskribusHTRPipelineModel and fetch data on request.
This commit is contained in:
		@@ -10,11 +10,7 @@ from wtforms import (
 | 
			
		||||
    ValidationError
 | 
			
		||||
)
 | 
			
		||||
from wtforms.validators import InputRequired, Length
 | 
			
		||||
from app.models import (
 | 
			
		||||
    TRANSKRIBUS_HTR_MODELS,
 | 
			
		||||
    TesseractOCRPipelineModel,
 | 
			
		||||
    TranskribusHTRPipelineModel
 | 
			
		||||
)
 | 
			
		||||
from app.models import TesseractOCRPipelineModel
 | 
			
		||||
from . import SERVICES
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -107,6 +103,7 @@ class CreateTranskribusHTRPipelineJobForm(CreateJobBaseForm):
 | 
			
		||||
            raise ValidationError('PDF files only!')
 | 
			
		||||
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        transkribus_htr_pipeline_models = kwargs.pop('transkribus_htr_pipeline_models', [])
 | 
			
		||||
        service_manifest = SERVICES['transkribus-htr-pipeline']
 | 
			
		||||
        version = kwargs.pop('version', service_manifest['latest_version'])
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
@@ -118,12 +115,8 @@ class CreateTranskribusHTRPipelineJobForm(CreateJobBaseForm):
 | 
			
		||||
            if 'binarization' in service_info['methods']:
 | 
			
		||||
                if 'disabled' in self.binarization.render_kw:
 | 
			
		||||
                    del self.binarization.render_kw['disabled']
 | 
			
		||||
        models = [
 | 
			
		||||
            x for x in TranskribusHTRPipelineModel.query.filter().all()
 | 
			
		||||
            if x.shared == True or x.user == current_user
 | 
			
		||||
        ]
 | 
			
		||||
        self.model.choices = [('', 'Choose your option')]
 | 
			
		||||
        self.model.choices += [(x.hashid, [y['name'] for y in TRANSKRIBUS_HTR_MODELS if y['modelId'] == x.transkribus_model_id ][0]) for x in models]
 | 
			
		||||
        self.model.choices += [(x['modelId'], x['name']) for x in transkribus_htr_pipeline_models]
 | 
			
		||||
        self.model.default = ''
 | 
			
		||||
        self.version.choices = [(x, x) for x in service_manifest['versions']]
 | 
			
		||||
        self.version.data = version
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,12 @@
 | 
			
		||||
from flask import abort, current_app, flash, Markup, render_template, request
 | 
			
		||||
from flask import abort, current_app, flash, make_response, Markup, render_template, request
 | 
			
		||||
from flask_login import current_user, login_required
 | 
			
		||||
import requests
 | 
			
		||||
from app import db, hashids
 | 
			
		||||
from app.models import (
 | 
			
		||||
    Job,
 | 
			
		||||
    JobInput,
 | 
			
		||||
    JobStatus,
 | 
			
		||||
    TesseractOCRPipelineModel,
 | 
			
		||||
    TRANSKRIBUS_HTR_MODELS,
 | 
			
		||||
    TranskribusHTRPipelineModel
 | 
			
		||||
    TesseractOCRPipelineModel
 | 
			
		||||
)
 | 
			
		||||
from . import bp, SERVICES
 | 
			
		||||
from .forms import (
 | 
			
		||||
@@ -117,7 +116,18 @@ def transkribus_htr_pipeline():
 | 
			
		||||
    version = request.args.get('version', service_manifest['latest_version'])
 | 
			
		||||
    if version not in service_manifest['versions']:
 | 
			
		||||
        abort(404)
 | 
			
		||||
    form = CreateTranskribusHTRPipelineJobForm(prefix='create-job-form', version=version)
 | 
			
		||||
    r = requests.get(
 | 
			
		||||
        'https://transkribus.eu/TrpServer/rest/models/text',
 | 
			
		||||
        headers={'Accept': 'application/json'}
 | 
			
		||||
    )
 | 
			
		||||
    if r.status_code != 200:
 | 
			
		||||
        abort(500)
 | 
			
		||||
    transkribus_htr_pipeline_models = r.json()['trpModelMetadata']
 | 
			
		||||
    form = CreateTranskribusHTRPipelineJobForm(
 | 
			
		||||
        transkribus_htr_pipeline_models=transkribus_htr_pipeline_models,
 | 
			
		||||
        prefix='create-job-form',
 | 
			
		||||
        version=version
 | 
			
		||||
    )
 | 
			
		||||
    if form.is_submitted():
 | 
			
		||||
        if not form.validate():
 | 
			
		||||
            response = {'errors': form.errors}
 | 
			
		||||
@@ -129,7 +139,7 @@ def transkribus_htr_pipeline():
 | 
			
		||||
                service=service,
 | 
			
		||||
                service_args={
 | 
			
		||||
                    'binarization': form.binarization.data,
 | 
			
		||||
                    'model': hashids.decode(form.model.data)
 | 
			
		||||
                    'model': form.model.data
 | 
			
		||||
                },
 | 
			
		||||
                service_version=form.version.data,
 | 
			
		||||
                user=current_user
 | 
			
		||||
@@ -145,15 +155,10 @@ def transkribus_htr_pipeline():
 | 
			
		||||
        message = Markup(f'Job "<a href="{job.url}">{job.title}</a>" created')
 | 
			
		||||
        flash(message, 'job')
 | 
			
		||||
        return {}, 201, {'Location': job.url}
 | 
			
		||||
    transkribus_htr_pipeline_models = [
 | 
			
		||||
        x for x in TranskribusHTRPipelineModel.query.all()
 | 
			
		||||
        if x.shared == True or x.user == current_user
 | 
			
		||||
    ]
 | 
			
		||||
    return render_template(
 | 
			
		||||
        'services/transkribus_htr_pipeline.html.j2',
 | 
			
		||||
        form=form,
 | 
			
		||||
        title=service_manifest['name'],
 | 
			
		||||
        TRANSKRIBUS_HTR_MODELS=TRANSKRIBUS_HTR_MODELS,
 | 
			
		||||
        transkribus_htr_pipeline_models=transkribus_htr_pipeline_models
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user