]> Softwares of Agnibho - librevax.git/commitdiff
Mark administered
authorAgnibho Mondal <mondal@agnibho.com>
Thu, 14 Mar 2024 15:46:30 +0000 (21:16 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Thu, 14 Mar 2024 15:46:30 +0000 (21:16 +0530)
librevax.py
templates/vaccination-view.html
vaccination.py

index fb0f0f99743400152f8c3c1f94872a716a5e3a99..86498df8f7a316a6931f43a52748f006a8562919 100644 (file)
@@ -654,6 +654,19 @@ def vaccination_edit(vid=None, pid=None):
         raise(e)
         return render_template("error.html", data=e)
 
+@app.post("/mark")
+def mark():
+    if((ret:=problem())!="go"):
+        return ret
+    try:
+        cursor=get_db().cursor()
+        (ok, data)=vaccination.mark(cursor, request.form["vid"], True)
+        if(not ok):
+            raise Exception(data)
+        return redirect("/vaccination/view/"+str(request.form["vid"]))
+    except Exception as e:
+        raise(e)
+        return render_template("error.html", data=e)
 
 @app.get("/advice/<action>")
 @app.get("/advice/<action>/<id>")
index 47057af36f6cb6a307efac69a6a699b30a94fcda..2ff7792d9b29f4c6278052a4f55014222de5305b 100644 (file)
@@ -49,7 +49,9 @@ You should have received a copy of the GNU General Public License along with Lib
   </table>
   <a href="/vaccination/edit/{{data["vid"]}}" class="btn btn-primary">Edit</a>
   <a href="/delete/vaccination/{{data["vid"]}}" class="btn btn-danger delete-link">Delete</a>
-  </table>
+  {%if not data["given"]%}
+  <form action="/mark" method="post" class="mt-4"><input type="hidden" name="vid" value="{{data["vid"]}}"><button type="submit" class="btn btn-warning">Mark Administered</button></form>
+  {%endif%}
 
   {% endif %}
 </div>
index 34abbb9f7991213b5d9ca4ab5422961ce052f30c..a92f3cc5f6934c8ba083e71ba1617bf65896ad83 100644 (file)
@@ -45,6 +45,16 @@ def delete(cursor, vid):
     except Exception as e:
         return (False, e)
 
+def mark(cursor, vid, given):
+    try:
+        cursor.execute("UPDATE vaccination SET given=? WHERE vid=?", (given, vid))
+        if(cursor.rowcount==0):
+            return (False, "Failed to update record.")
+        else:
+            return (True, cursor.lastrowid)
+    except Exception as e:
+        return (False, e)
+
 def list_by_patient(cursor, pid):
     try:
         result=cursor.execute("SELECT * FROM vaccination LEFT JOIN inventory ON vaccination.iid=inventory.iid WHERE pid=? ORDER BY vaccination.date", (pid,))