scvインポート周りのエラー修正
This commit is contained in:
parent
f8d71a9cce
commit
6d1da96c17
24
web/app.py
24
web/app.py
@ -256,26 +256,21 @@ def upload_quiz_master_route():
|
||||
try:
|
||||
if 'file' not in request.files:
|
||||
logger.debug('No file part in the request')
|
||||
flash('No file part')
|
||||
return redirect(request.url)
|
||||
return jsonify({'error': 'No file part in the request'}), 400
|
||||
file = request.files['file']
|
||||
if file.filename == '':
|
||||
logger.debug('No selected file')
|
||||
flash('No selected file')
|
||||
return redirect(request.url)
|
||||
return jsonify({'error': 'No selected file'}), 400
|
||||
if file and file.filename.endswith('.csv'):
|
||||
uploaded_file_path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
|
||||
file.save(uploaded_file_path)
|
||||
logger.debug(f'File {file.filename} uploaded successfully to {uploaded_file_path}')
|
||||
flash('File uploaded successfully')
|
||||
return redirect(url_for('quiz_master_page_route'))
|
||||
return jsonify({'message': 'File uploaded successfully'})
|
||||
logger.debug('Invalid file format')
|
||||
flash('Invalid file format')
|
||||
return redirect(request.url)
|
||||
return jsonify({'error': 'Invalid file format'}), 400
|
||||
except Exception as e:
|
||||
logger.error(f'Error during file upload: {str(e)}')
|
||||
flash('Error during file upload')
|
||||
return redirect(request.url)
|
||||
return jsonify({'error': 'Error during file upload'}), 500
|
||||
|
||||
@app.route('/import_quiz_master', methods=['POST'])
|
||||
@login_required
|
||||
@ -286,16 +281,13 @@ def import_quiz_master_route():
|
||||
logger.debug(f'Starting import of file {uploaded_file_path}')
|
||||
process_csv(uploaded_file_path)
|
||||
logger.debug('File imported successfully')
|
||||
flash('File imported successfully')
|
||||
uploaded_file_path = None # Reset after processing
|
||||
return redirect(url_for('quiz_master_page_route'))
|
||||
return jsonify({'message': 'File imported successfully'})
|
||||
logger.debug('No file uploaded to import')
|
||||
flash('No file uploaded to import')
|
||||
return redirect(url_for('quiz_master_page_route'))
|
||||
return jsonify({'error': 'No file uploaded to import'}), 400
|
||||
except Exception as e:
|
||||
logger.error(f'Error during file import: {str(e)}')
|
||||
flash('Error during file import')
|
||||
return redirect(url_for('quiz_master_page_route'))
|
||||
return jsonify({'error': 'Error during file import'}), 500
|
||||
|
||||
def process_csv(file_path):
|
||||
try:
|
||||
|
@ -246,41 +246,52 @@
|
||||
}
|
||||
|
||||
async function uploadCsvFile(event) {
|
||||
event.preventDefault();
|
||||
const form = event.target;
|
||||
const formData = new FormData(form);
|
||||
event.preventDefault();
|
||||
const form = event.target;
|
||||
const formData = new FormData(form);
|
||||
|
||||
try {
|
||||
const response = await fetch('/upload_quiz_master', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
const result = await response.json();
|
||||
document.getElementById('message').innerText = result.message || result.error;
|
||||
if (!result.error) {
|
||||
form.reset();
|
||||
}
|
||||
} catch (error) {
|
||||
document.getElementById('message').innerText = 'エラーが発生しました: ' + error.message;
|
||||
console.error('Form submission error:', error);
|
||||
}
|
||||
}
|
||||
try {
|
||||
const response = await fetch('/upload_quiz_master', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
|
||||
async function importCsvData() {
|
||||
try {
|
||||
const response = await fetch('/import_quiz_master', {
|
||||
method: 'POST'
|
||||
});
|
||||
const result = await response.json();
|
||||
document.getElementById('message').innerText = result.message || result.error;
|
||||
if (!result.error) {
|
||||
fetchQuizMasters();
|
||||
}
|
||||
} catch (error) {
|
||||
document.getElementById('message').innerText = 'エラーが発生しました: ' + error.message;
|
||||
console.error('Form submission error:', error);
|
||||
const result = await response.json();
|
||||
|
||||
if (response.ok) {
|
||||
document.getElementById('message').innerText = result.message || 'File uploaded successfully';
|
||||
} else {
|
||||
document.getElementById('message').innerText = result.error || 'File upload failed';
|
||||
}
|
||||
|
||||
if (!result.error) {
|
||||
form.reset();
|
||||
}
|
||||
} catch (error) {
|
||||
document.getElementById('message').innerText = 'エラーが発生しました: ' + error.message;
|
||||
console.error('Form submission error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
async function importCsvData() {
|
||||
try {
|
||||
const response = await fetch('/import_quiz_master', {
|
||||
method: 'POST'
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
if (response.ok) {
|
||||
document.getElementById('message').innerText = result.message || 'File imported successfully';
|
||||
fetchQuizMasters(); // インポート後にクイズマスターを再取得
|
||||
} else {
|
||||
document.getElementById('message').innerText = result.error || 'File import failed';
|
||||
}
|
||||
} catch (error) {
|
||||
document.getElementById('message').innerText = 'エラーが発生しました: ' + error.message;
|
||||
console.error('Form submission error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
function closeUpdateModal() {
|
||||
document.getElementById('updateModal').style.display = 'none';
|
||||
|
Loading…
Reference in New Issue
Block a user