diff --git a/app/query_results_models.py b/app/query_results_models.py deleted file mode 100644 index 132a4cc32158a121b94d3d9df0908471a7fa6896..0000000000000000000000000000000000000000 --- a/app/query_results_models.py +++ /dev/null @@ -1,58 +0,0 @@ -class QueryResult(FileMixin, HashidMixin, db.Model): - __tablename__ = 'query_results' - # Primary key - id = db.Column(db.Integer, primary_key=True) - # Foreign keys - user_id = db.Column(db.Integer, db.ForeignKey('users.id')) - # Fields - description = db.Column(db.String(255)) - query_metadata = db.Column(db.JSON()) - title = db.Column(db.String(32)) - # Backrefs: user: User - - def __repr__(self): - ''' - String representation of the QueryResult. For human readability. - ''' - return f'<QueryResult {self.title}>' - - @property - def download_url(self): - return url_for( - 'corpora.download_query_result', query_result_id=self.id) - - @property - def jsonpatch_path(self): - return f'{self.user.jsonpatch_path}/query_results/{self.hashid}' - - @property - def path(self): - return os.path.join( - self.user.path, 'query_results', str(self.id), self.filename) - - @property - def url(self): - return url_for('corpora.query_result', query_result_id=self.id) - - @property - def user_hashid(self): - return self.user.hashid - - def delete(self): - shutil.rmtree(self.path, ignore_errors=True) - db.session.delete(self) - - def to_json(self, backrefs=False, relationships=False): - _json = { - 'id': self.hashid, - 'corpus_title': self.query_metadata['corpus_name'], - 'description': self.description, - 'filename': self.filename, - 'query': self.query_metadata['query'], - 'query_metadata': self.query_metadata, - 'title': self.title, - **self.file_mixin_to_json( - backrefs=backrefs, relationships=relationships) - } - if backrefs: - _json['user'] = self.user.to_json(backrefs=True, relationships=False) diff --git a/app/services/forms.py b/app/services/forms.py index 96caecc4b6d77c84ef4bbee59da5740522f35d04..562696eb6320f35089cd6458101b144bc1fa48e0 100644 --- a/app/services/forms.py +++ b/app/services/forms.py @@ -72,11 +72,9 @@ class CreateTesseractOCRPipelineJobForm(CreateJobBaseForm): self.ocropus_nlbin_threshold.render_kw['disabled'] = True if 'methods' in service_info: if 'binarization' in service_info['methods']: - if 'disabled' in self.binarization.render_kw: - del self.binarization.render_kw['disabled'] + del self.binarization.render_kw['disabled'] if 'ocropus_nlbin_threshold' in service_info['methods']: - if 'disabled' in self.ocropus_nlbin_threshold.render_kw: - del self.ocropus_nlbin_threshold.render_kw['disabled'] + del self.ocropus_nlbin_threshold.render_kw['disabled'] models = [ x for x in TesseractOCRPipelineModel.query.order_by(TesseractOCRPipelineModel.title).all() if version in x.compatible_service_versions and (x.shared == True or x.user == current_user) @@ -118,8 +116,7 @@ class CreateTranskribusHTRPipelineJobForm(CreateJobBaseForm): self.binarization.render_kw['disabled'] = True if 'methods' in service_info: if 'binarization' in service_info['methods']: - if 'disabled' in self.binarization.render_kw: - del self.binarization.render_kw['disabled'] + del self.binarization.render_kw['disabled'] self.model.choices = [('', 'Choose your option')] self.model.choices += [(x['modelId'], x['name']) for x in transkribus_htr_pipeline_models] self.model.default = '' @@ -157,8 +154,7 @@ class CreateSpacyNLPPipelineJobForm(CreateJobBaseForm): self.encoding_detection.render_kw['disabled'] = True if 'methods' in service_info: if 'encoding_detection' in service_info['methods']: - if 'disabled' in self.encoding_detection.render_kw: - del self.encoding_detection.render_kw['disabled'] + del self.encoding_detection.render_kw['disabled'] models = [ x for x in SpaCyNLPPipelineModel.query.order_by(SpaCyNLPPipelineModel.title).all() if version in x.compatible_service_versions and (x.shared == True or x.user == current_user) diff --git a/app/templates/services/spacy_nlp_pipeline.html.j2 b/app/templates/services/spacy_nlp_pipeline.html.j2 index 219ac025b076eedf0b7d09c4ee651f966b3839f5..6443c506ca9915f1fc24aaa9d66287ad37cbc1e9 100644 --- a/app/templates/services/spacy_nlp_pipeline.html.j2 +++ b/app/templates/services/spacy_nlp_pipeline.html.j2 @@ -87,6 +87,7 @@ <div class="col s12"> <span class="card-title">Preprocessing</span> </div> + {% if 'disabled' not in form.encoding_detection.render_kw or not form.encoding_detection.render_kw['disabled'] %} <div class="col s9"> <p>{{ form.encoding_detection.label.text }}</p> <p class="light">If the input files are not created with the nopaque OCR service or you do not know if your text files are UTF-8 encoded, check this switch. We will try to automatically determine the right encoding for your texts to process them.</p> @@ -99,6 +100,7 @@ </label> </div> </div> + {% endif %} <!-- Seperate each setting with the following <div class="col s12"><p> </p></div> diff --git a/app/templates/services/tesseract_ocr_pipeline.html.j2 b/app/templates/services/tesseract_ocr_pipeline.html.j2 index 9114b729e2635574ed0e65cc09257179210395e2..3bb14254cef558585aed5dba9ec1af462acaf221 100644 --- a/app/templates/services/tesseract_ocr_pipeline.html.j2 +++ b/app/templates/services/tesseract_ocr_pipeline.html.j2 @@ -72,6 +72,7 @@ <div class="col s12"> <span class="card-title">Preprocessing</span> </div> + {% if 'disabled' not in form.binarization.render_kw or not form.binarization.render_kw['disabled'] %} <div class="col s9"> <p>{{ form.binarization.label.text }}</p> <p class="light">Based on a brightness threshold pixels are converted into either black or white. It is useful to reduce noise in images. (<b>longer duration</b>)</p> @@ -84,56 +85,14 @@ </label> </div> </div> - <div class="col s12"><p> </p></div> - <div class="col s9"> + {% if 'disabled' not in form.ocropus_nlbin_threshold.render_kw or not form.ocropus_nlbin_threshold.render_kw['disabled'] %} + <div class="col s9 hide" id="create-job-form-ocropus_nlbin_threshold-container"> + <br> <p>Intensity (between 0 and 1)</p> <p class="range-field">{{ form.ocropus_nlbin_threshold() }}</p> </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page range</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page rotation</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page split</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> + {% endif %} + {% endif %} <!-- Seperate each setting with the following <div class="col s12"><p> </p></div> @@ -185,3 +144,12 @@ </div> </div> {% endblock modals %} + +{% block scripts %} +{{ super() }} +<script> +document.querySelector('#create-job-form-binarization').addEventListener('change', (event) => { + document.querySelector('#create-job-form-ocropus_nlbin_threshold-container').classList.toggle('hide'); +}); +</script> +{% endblock scripts %} diff --git a/app/templates/services/transkribus_htr_pipeline.html.j2 b/app/templates/services/transkribus_htr_pipeline.html.j2 index d54d990664e95904eef520f13399c581340acb7d..da14d53c6125e4247e2b51c1fdefa2232e090ace 100644 --- a/app/templates/services/transkribus_htr_pipeline.html.j2 +++ b/app/templates/services/transkribus_htr_pipeline.html.j2 @@ -76,6 +76,7 @@ <div class="col s12"> <span class="card-title">Preprocessing</span> </div> + {% if 'disabled' not in form.binarization.render_kw or not form.binarization.render_kw['disabled'] %} <div class="col s9"> <p>{{ form.binarization.label.text }}</p> <p class="light">Based on a brightness threshold pixels are converted into either black or white. It is useful to reduce noise in images. (<b>longer duration</b>)</p> @@ -88,51 +89,7 @@ </label> </div> </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page range</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page rotation</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> - <div class="col s12"><p> </p></div> - <div class="col s12 divider"></div> - <div class="col s12"><p> </p></div> - <div class="col s9"> - <p>Page split</p> - <p class="light"></p> - </div> - <div class="col s3 right-align"> - <div class="switch"> - <label> - <input disabled type="checkbox"> - <span class="lever"></span> - </label> - </div> - </div> + {% endif %} <!-- Seperate each setting with the following <div class="col s12"><p> </p></div>