scvインポート周りのエラー修正

This commit is contained in:
hina ntki 2024-08-16 23:39:47 +09:00
parent f8d71a9cce
commit 6d1da96c17
2 changed files with 50 additions and 47 deletions

View File

@ -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:

View File

@ -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';