mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	Check if corpus is exportable before exporting it
This commit is contained in:
		@@ -28,7 +28,15 @@ corpus_analysis_clients = {}
 | 
			
		||||
@socketio_login_required
 | 
			
		||||
def export_corpus(corpus_id):
 | 
			
		||||
    # TODO: This should not be get_or_404 here - Socket.IO != HTTP request
 | 
			
		||||
    corpus = Corpus.query.get_or_404(corpus_id)
 | 
			
		||||
    corpus = Corpus.query.get(corpus_id)
 | 
			
		||||
    if corpus is None:
 | 
			
		||||
        response = {'code': 404, 'msg': 'Not found'}
 | 
			
		||||
        socketio.emit('export_corpus', response, room=request.sid)
 | 
			
		||||
        return
 | 
			
		||||
    if corpus.status not in ['prepared', 'start analysis', 'stop analysis']:
 | 
			
		||||
        response = {'code': 412, 'msg': 'Precondition Failed'}
 | 
			
		||||
        socketio.emit('export_corpus', response, room=request.sid)
 | 
			
		||||
        return
 | 
			
		||||
    # delete old corpus archive if it exists/has been build before
 | 
			
		||||
    if corpus.archive_file is not None and os.path.isfile(corpus.archive_file):
 | 
			
		||||
        os.remove(corpus.archive_file)
 | 
			
		||||
 
 | 
			
		||||
@@ -79,6 +79,9 @@ class CorpusDisplay extends RessourceDisplay {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    for (let element of this.displayElement.querySelectorAll('.corpus-status')) {this.setElement(element, status);}
 | 
			
		||||
    for (let exportCorpusTriggerElement of this.displayElement.querySelectorAll('.export-corpus-trigger')) {
 | 
			
		||||
      exportCorpusTriggerElement.classList.toggle('disabled', !['prepared', 'start analysis', 'stop analysis'].includes(status));
 | 
			
		||||
    }
 | 
			
		||||
    for (let element of this.displayElement.querySelectorAll('.status')) {element.dataset.status = status;}
 | 
			
		||||
    for (let element of this.displayElement.querySelectorAll('.status-spinner')) {
 | 
			
		||||
      if (['submitted', 'queued', 'running', 'canceling', 'start analysis', 'stop analysis'].includes(status)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +72,7 @@
 | 
			
		||||
        <div class="card-action right-align">
 | 
			
		||||
          <a class="analyse-corpus-trigger btn disabled waves-effect waves-light" href="{{ url_for('corpora.analyse_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">search</i>Analyze</a>
 | 
			
		||||
          <a class="btn build-corpus-trigger disabled waves-effect waves-light" href="{{ url_for('corpora.prepare_corpus', corpus_id=corpus.id) }}"><i class="material-icons left">build</i>Build</a>
 | 
			
		||||
          <a class="btn export-corpus-trigger waves-effect waves-light"><i class="material-icons left">import_export</i>Export</a>
 | 
			
		||||
          <a class="btn disabled export-corpus-trigger waves-effect waves-light"><i class="material-icons left">import_export</i>Export</a>
 | 
			
		||||
          <a class="btn modal-trigger red waves-effect waves-light" data-target="delete-corpus-modal"><i class="material-icons left">delete</i>Delete</a>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user