Browse Source

Corrections diverses

olivier.massot 7 years ago
parent
commit
444dfddf8a
5 changed files with 53 additions and 21 deletions
  1. 39 5
      datachecker.py
  2. 5 5
      index.py
  3. 2 2
      static/datachecker.css
  4. 4 5
      templates/index.html
  5. 3 4
      templates/report.html

+ 39 - 5
datachecker.py

@@ -48,6 +48,14 @@ class ReportField():
     def valid(self):
     def valid(self):
         return self._valid
         return self._valid
 
 
+    def to_dict(self):
+        return {
+            "name": self.name,
+            "value": self.value,
+            "error": self._error,
+            "valid": self._valid
+            }
+
 class ReportRecord():
 class ReportRecord():
     def __init__(self, index):
     def __init__(self, index):
         self.index = index
         self.index = index
@@ -77,6 +85,14 @@ class ReportRecord():
             self._valid=False
             self._valid=False
         self._fields.append(field)
         self._fields.append(field)
 
 
+    def to_dict(self):
+        return {
+            "index": self.index,
+            "valid": self._valid,
+            "errors": self._errors,
+            "fields": [f.to_dict() for f in self._fields]
+            }
+
 class ReportFile():
 class ReportFile():
     def __init__(self, file):
     def __init__(self, file):
         self.file = file
         self.file = file
@@ -106,7 +122,15 @@ class ReportFile():
         self._valid=False
         self._valid=False
         logger.error("Fichier %s - %s", self.file, error)
         logger.error("Fichier %s - %s", self.file, error)
         self._errors.append(error)
         self._errors.append(error)
-
+        
+    def to_dict(self):
+        return {
+            "file": self.file,
+            "headers": self.headers,
+            "valid": self.valid,
+            "errors": self._errors,
+            "records": [r.to_dict() for r in self._records]
+            }
 
 
 class Report():
 class Report():
     def __init__(self, title, report_files=[]):
     def __init__(self, title, report_files=[]):
@@ -117,8 +141,15 @@ class Report():
     def valid(self):
     def valid(self):
         return all([r.valid for r in self.report_files])
         return all([r.valid for r in self.report_files])
 
 
+    def to_dict(self):
+        return {
+            "title": self.title,
+            "report_files": [rf.to_dict() for rf in self.report_files],
+            "valid": self.valid
+            }
+    
     def to_json(self):
     def to_json(self):
-        return json.dumps(self)
+        return json.dumps(self.to_dict())
 
 
 def check(subject, checker):    
 def check(subject, checker):    
     """ prends un dossier ou une archive en entier et vérifie son contenu selon les règles données par le fichier de config """
     """ prends un dossier ou une archive en entier et vérifie son contenu selon les règles données par le fichier de config """
@@ -300,9 +331,12 @@ def check_folder(folder, checker):
 if __name__ == "__main__":
 if __name__ == "__main__":
     
     
     logger.disabled = False
     logger.disabled = False
-    subject = MAIN / "work" / "SCOPELEC_CAP_097AP0_REC_180829_OK.zip"
+    subject = MAIN / "work" / "STURNO_192AP0_REC_COMPLEMENT_180822_OK.zip"
     checker = MAIN / "checkers" / "netgeo_v2-2_doe.yaml"
     checker = MAIN / "checkers" / "netgeo_v2-2_doe.yaml"
      
      
     report = check(subject, checker)
     report = check(subject, checker)
-     
-    logger.info("-- Fin --")
+    
+    with open(MAIN / "report.json", "w+") as fp:
+        json.dump(report.to_dict(), fp)
+
+    logger.info("-- Fin --")

+ 5 - 5
index.py

@@ -20,8 +20,8 @@ app = Flask(__name__)
 def index():
 def index():
     return render_template("index.html", validation_error="")
     return render_template("index.html", validation_error="")
 
 
-@app.route('/', methods=['POST'])
-def submit():
+@app.route('/report', methods=['POST'])
+def report():
     try:
     try:
         f = request.files['dossier']
         f = request.files['dossier']
     except KeyError:
     except KeyError:
@@ -39,6 +39,6 @@ def submit():
             report = datachecker.check(filename, MAIN / "checkers" / "netgeo_v2-2_doe.yaml")
             report = datachecker.check(filename, MAIN / "checkers" / "netgeo_v2-2_doe.yaml")
     except Exception as e:
     except Exception as e:
         return render_template("index.html", validation_error=str(e))
         return render_template("index.html", validation_error=str(e))
-      
-    return render_template("report.html", report=report)
-        
+    
+    return render_template("report.html", report=report.to_dict())
+

+ 2 - 2
static/datachecker.css

@@ -21,8 +21,8 @@ header {
 }
 }
 
 
 #logo {
 #logo {
-	float: right;
-	position: fixed;
+	float: left;
+	position: absolute;
 	top: 3px;
 	top: 3px;
 	left: 20px;
 	left: 20px;
 }
 }

+ 4 - 5
templates/index.html

@@ -15,16 +15,15 @@
 	
 	
 	<body>
 	<body>
 		<header>
 		<header>
+			<a id="logo" href="\" title="Retour à l'accueil">
+				<img src="{{ url_for('static', filename='mn_logo_mini.png') }}" />
+			</a>
 			<h1>Manche Numérique - Contrôlez vos données</h1>
 			<h1>Manche Numérique - Contrôlez vos données</h1>
 		</header>
 		</header>
 		
 		
-		<a id="logo" href="\" title="Retour à l'accueil">
-			<img src="{{ url_for('static', filename='mn_logo_mini.png') }}" />
-		</a>
-		
 		<section id="main">
 		<section id="main">
 			<section id="submit-file">
 			<section id="submit-file">
-				<form id="submit-form" method="post" enctype="multipart/form-data">
+				<form id="submit-form" method="post" action="{{ url_for('report') }}" enctype="multipart/form-data">
 			        <label for="dossier">Sélectionnez le fichier à contrôler (Au format <b>.zip</b>)</label>
 			        <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" />
 			        <input type="file" id="dossier" name="dossier" accept="application/zip" />
 
 

+ 3 - 4
templates/report.html

@@ -14,13 +14,12 @@
 </head>
 </head>
 <body>
 <body>
 	<header>
 	<header>
+		<a id="logo" href="\" title="Retour à l'accueil">
+			<img src="{{ url_for('static', filename='mn_logo_mini.png') }}" />
+		</a>
 		<h1>Rapport du Contrôle</h1>
 		<h1>Rapport du Contrôle</h1>
 	</header>
 	</header>
 	
 	
-	<a id="logo" href="\" title="Retour à l'accueil">
-		<img src="{{ url_for('static', filename='mn_logo_mini.png') }}" />
-	</a>
-	
 	<section id=main>
 	<section id=main>
     {% for reportfile in report.report_files %}
     {% for reportfile in report.report_files %}