mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +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'
|
|
)
|