diff --git a/app.py b/app.py index 89aaa5f..32fe7db 100644 --- a/app.py +++ b/app.py @@ -2,7 +2,7 @@ import sqlite3 import csv import io import re -from flask import Flask, render_template, request, redirect, url_for, flash +from flask import Flask, render_template, request, redirect, url_for, flash, send_from_directory # --- App Setup --- app = Flask(__name__) @@ -50,8 +50,8 @@ def validate_phone(phone): def validate_student_data(form_data, is_csv=False): errors = [] required_fields = ['student_name', 'age', 'parent_name', - 'parent_phone_1', 'grade', 'school_name', - 'address', 'memorizing'] + 'parent_phone_1', 'grade', 'school_name', + 'address', 'memorizing'] # Check required fields for field in required_fields: @@ -197,7 +197,7 @@ def import_csv(): student_data['address'], student_data['memorizing'] )) - + # Process validation results if row_errors: flash(f'تم العثور على أخطاء في {len(row_errors)} سطراً', 'warning') @@ -228,5 +228,12 @@ def import_csv(): return redirect(url_for('index')) +# New route to download the CSV template +@app.route('/download_csv_template') +def download_csv_template(): + # The directory where the template.csv is located (your templates folder) + # The second argument is the filename to be sent + return send_from_directory(app.template_folder, 'template.csv', as_attachment=True) + if __name__ == '__main__': - app.run(debug=True) \ No newline at end of file + app.run(debug=True) diff --git a/templates/index.html b/templates/index.html index f125098..2eae81d 100644 --- a/templates/index.html +++ b/templates/index.html @@ -62,33 +62,40 @@
هام: تنسيق ملف CSV
-يجب أن يكون الملف بصيغة CSV ومرمّزاً بترميز UTF-8.
-يجب **ألا يحتوي** الملف على صف للعناوين، ويجب أن تكون الأعمدة بالترتيب الدقيق التالي:
-
- اسم الطالب, العمر, اسم ولي الأمر, هاتف ولي الأمر 1, هاتف ولي الأمر 2, هاتف الطالب, الصف, اسم المدرسة, العنوان, المحفوظات
-
إذا كانت الحقول الاختيارية (هاتف ولي الأمر 2، هاتف الطالب) فارغة، اتركها كذلك.
-