Procházet zdrojové kódy

index.html: Ajout du choix des schemas

olivier.massot před 7 roky
rodič
revize
138e97fdbd

+ 11 - 9
index.py

@@ -2,6 +2,7 @@
 
 @author: olivier.massot, sept 218
 '''
+import importlib
 from tempfile import TemporaryDirectory
 
 from flask import request
@@ -11,8 +12,6 @@ from path import Path
 from werkzeug.utils import secure_filename
 
 from core.constants import MAIN
-from schemas.netgeo_2_2_doe.validator import Netgeo22DoeValidator
-
 
 app = Flask(__name__)
 
@@ -32,13 +31,16 @@ def report():
     if Path(filename).ext != ".zip":
         return render_template("index.html", validation_error="Le fichier doit être un fichier .ZIP ({})".format(Path(filename).ext))
     
-    try:
-        with TemporaryDirectory(dir=MAIN / "upload") as d:
-            filename = Path(d) / filename
-            f.save(filename)
-            report = Netgeo22DoeValidator.submit(filename)
-    except Exception as e:
-        return render_template("index.html", validation_error=str(e))
+    schema_lib_name = request.form['schema']
+    schema_lib = importlib.import_module("schemas." + schema_lib_name)
+    
+#     try:
+    with TemporaryDirectory(dir=MAIN / "upload") as d:
+        filename = Path(d) / filename
+        f.save(filename)
+        report = schema_lib.validator.submit(filename)
+#     except Exception as e:
+#         return render_template("index.html", validation_error=str(e))
     
     return render_template("report.html", report=report)
 

+ 2 - 1
schemas/netgeo_1_12_doe/__init__.py

@@ -1,2 +1,3 @@
 
-from . import *
+from schemas.netgeo_1_12_doe.validator import Netgeo112DoeValidator
+validator = Netgeo112DoeValidator

+ 3 - 1
schemas/netgeo_2_2_doe/__init__.py

@@ -1,2 +1,4 @@
+from schemas.netgeo_2_2_doe.validator import Netgeo22DoeValidator
 
-from . import *
+
+validator = Netgeo22DoeValidator

+ 12 - 0
static/datachecker.css

@@ -98,6 +98,18 @@ h2 {
 	align-items: center;
 }
 
+.form-row {
+	display: flex;
+	flex-direction: row;
+	margin-bottom: 1em;
+	justify-content: space-between;
+	align-items: center;
+}
+
+.form-row label {
+	margin-right: 1em;
+}
+
 footer {
 	color: #004280;
 	width: 100%;

+ 2 - 0
static/datachecker.js

@@ -26,4 +26,6 @@ $(document).ready( function () {
     	 $(this).unbind("submit");
     	 $(this).submit();
 	});
+    
+    $('select').niceSelect();    
 } );

+ 11 - 0
templates/index.html

@@ -5,11 +5,13 @@
 	    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='font-awesome-4.7.0/css/font-awesome.min.css') }}">
 		<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery-ui/jquery-ui.min.css') }}"/>
 		<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='DataTables/datatables.min.css') }}"/>
+		<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='nice-select.css') }}"/>
 		<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='datachecker.css') }}"/>
 		 
 		<script type="text/javascript" src="{{ url_for('static', filename='jquery-3.3.1.min.js') }}"></script>
 		<script type="text/javascript" src="{{ url_for('static', filename='jquery-ui/jquery-ui.min.js') }}"></script>
 		<script type="text/javascript" src="{{ url_for('static', filename='DataTables/datatables.min.js') }}"></script>
+		<script type="text/javascript" src="{{ url_for('static', filename='jquery.nice-select.min.js') }}"> </script>
 		<script type="text/javascript" src="{{ url_for('static', filename='datachecker.js') }}"> </script>
 	</head>
 	
@@ -24,6 +26,15 @@
 		<section id="main">
 			<section id="submit-file">
 				<form id="submit-form" method="post" action="{{ url_for('report') }}" enctype="multipart/form-data">
+					
+					<div class="form-row">
+						<label for="schema">Schéma: </label>
+						<select id="schema" name="schema">
+						  <option value="netgeo_1_12_doe">Netgeo 1.12 DOE</option>
+						  <option value="netgeo_2_2_doe">Netgeo 2.2 DOE</option>
+						</select>
+					</div>
+					
 			        <label for="dossier">Sélectionnez le fichier à contrôler (Au format <b>.zip</b>)</label>
 			        <input type="file" id="dossier" name="dossier" accept="application/zip" />