mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 10:42:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from apifairy import authenticate
 | |
| from flask import render_template, flash, abort
 | |
| from flask_login import login_required, current_user
 | |
| from app.decorators import permission_required
 | |
| from app.models import Permission, TesseractOCRModel, JobStatus
 | |
| from . import bp
 | |
| from .forms import ContributionForm
 | |
| from .. import db
 | |
| 
 | |
| 
 | |
| @bp.before_request
 | |
| @login_required
 | |
| @permission_required(Permission.CONTRIBUTE)
 | |
| def before_request():
 | |
|     pass
 | |
| 
 | |
| 
 | |
| @bp.route('', methods=['GET', 'POST'])
 | |
| @login_required
 | |
| def contributions():
 | |
|     form = ContributionForm(prefix='contribution-form')
 | |
| 
 | |
|     # Is the form submitted?
 | |
|     if form.is_submitted():
 | |
|         # Are their any false inputs?
 | |
|         if not form.validate():
 | |
|             response = {'errors': form.errors}
 | |
|             return response, 400
 | |
| 
 | |
| 
 | |
|         # At this point we can be sure that the form data is okay
 | |
|         # example
 | |
|         # compatible_service_versions = ['0.1.0', '0.1.1']
 | |
| 
 | |
| 
 | |
|         compatible_service_versions=form.compatible_service_versions.data
 | |
|         description=form.description
 | |
|         publisher=form.publisher
 | |
|         publisher_url=form.publisher_url
 | |
|         publishing_url=form.publishing_url
 | |
|         publishing_year=form.publishing_year
 | |
|         shared=False
 | |
|         title=form.title
 | |
|         version=form.version
 | |
| 
 | |
| 
 | |
|         try:
 | |
|             TesseractOCRModel.create(form.file.data,
 | |
|                                      compatible_service_versions,
 | |
|                                      description,
 | |
|                                      publisher,
 | |
|                                      publisher_url,
 | |
|                                      publishing_url,
 | |
|                                      publishing_year,
 | |
|                                      shared,
 | |
|                                      title,
 | |
|                                      version)
 | |
| 
 | |
|         except OSError:
 | |
|             abort(500)
 | |
|         # job.status = JobStatus.SUBMITTED
 | |
|         db.session.commit()
 | |
|         # message = Markup(f'Job "<a href="{job.url}">{job.title}</a>" created')
 | |
|         flash("Model has been added.")
 | |
|         return {}, 201, {'message': 'Model has been created'}
 | |
| 
 | |
| 
 | |
|     return render_template(
 | |
|         'contributions/contribute.html.j2',
 | |
|         form=form,
 | |
|         title='Contribution'
 | |
|     )
 |