Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json
from core.model.FCModel import FCModel
from core.model.FoodSessionModel import FoodSessionModel
from random import randint
import datetime,time
from datetime import timedelta,date,datetime
from .. import Auth,RouteGroup
from flask import session, app
from core.library.email import EMAIL
from os.path import join
import os
from os import path
import re
import webbrowser
import csv
from io import StringIO
import io
from flask import Response
# import base64
from urllib.parse import unquote
# from time import sleep
# import time
app = Blueprint('fc', __name__)
@app.route('/<int:conf_id>/<conf_key>/fclogin',methods = ["GET", "POST"])
def FCLogin(conf_id,conf_key):
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
if getFcConfData :
conf_name = getFcConfData["conf_name"]
if session.get("fcsession"):
return redirect (url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else:
return render_template('foodcounter/fc_login.html',conf_id = conf_id , conf_key=conf_key,conf_name=conf_name)
else :
return "<h4 style= 'color:red' ; >Invalid URL </h4>"
@app.route('/post_fc_login', methods = ["GET","POST"])
def PostFCLogin():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
if request.method == "POST":
session_key = request.form['session_key']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
scan_system_name = request.form['scan_system_name'] or ''
if not session_key:
flash('Please enter session_key',"errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else :
us = FCModel()
user_output = us.getDataBysession_keyFrontEnd(session_key,current_dt,conf_id,conf_key)
# json_data = json.dumps(user_output,default =str)
# return json_data
if user_output:
db_session_key = user_output['session_key']
if session_key == db_session_key:
user_output["scan_system_name"] = scan_system_name
session_id = user_output['session_id']
session["fcsession"] = user_output
# Auth.login(user_output)
flash('Login Sucessfully.',"successMsg" )
return redirect (url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key = conf_key))
else :
flash('Invalid Session Key.',"errorMsg" )
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else:
flash('Invalid Session Key.',"errorMsg" )
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/fc_logout',methods = ["GET", "POST"])
def FcLogout(conf_id,conf_key):
if session.get("fcsession") :
session.pop('fcsession', None)
else :
pass
return redirect(url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/post_fc_scan_data', methods = ["POST"])
def PostFCScanData():
try:
# time.sleep(0.3)
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
scan_system_name = session_data["scan_system_name"] # updated on March 25 2023
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
delegate_no = request.values.get("delegate_no") or None
if delegate_no :
delegate_no =delegate_no.lstrip('0')
del_table_name = request.form["del_table_name"]
fc_del_session_table_name = request.form["fc_del_session_table_name"]
fc_session_entry_table_name = request.form["fc_session_entry_table_name"]
insert_data = FCModel().insertFCScannedData1(session_id,delegate_no,del_table_name,fc_del_session_table_name,fc_session_entry_table_name,scan_system_name)
data = insert_data
json_data = jsonify(data)
return json_data
else:
data = {"delegate_no" :"", "full_name" : "" ,"role" : "" , "scan_at" : "","msg" : "INVALID LOGIN" ,"status" : 5}
json_data = json.dumps(data,default=str)
return json_data
except Exception as e:
data = {"delegate_no" : "", "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : str(e) ,"status" : 401}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:conf_id>/<conf_key>/fc_dashboard',methods = ["GET", "POST"])
def FCDashboard(conf_id,conf_key):
total_count = 0
start_time = ""
end_time = ""
session_name = ""
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
current_dt_1 = now.strftime("%Y-%m-%d %H:%M:%S")
#start
getFCConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
if getFCConfData :
conf_name = getFCConfData["conf_name"]
del_table_name = getFCConfData["del_table_name"]
fc_del_session_table_name = getFCConfData["fc_del_session_table_name"]
fc_session_entry_table_name = getFCConfData["fc_session_entry_table_name"]
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
# user_output["scan_system_name"] = scan_system_name
session_data["scan_system_name"] = 'System-2'
# scan_system_name =
scan_system_name = session_data["scan_system_name"] or 'System-2' # updated on March 25 2023
# check session is end or not
is_session_open = FCModel().checkFCSessionIsOpen(session_id,current_dt_1)
# json_data= json.dumps(is_session_open,default =str)
# return json_data
#get completed session list
completed_sessions = FCModel().completedSessions(conf_id,current_dt_1)
if is_session_open :
session_name = is_session_open["session_name"]
start_time = is_session_open["start_time"]
end_time = is_session_open["end_time"]
if start_time :
start_time = start_time.strftime("%d-%m-%Y %H:%M:%S")
if end_time :
end_time = end_time.strftime("%d-%m-%Y %H:%M:%S")
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name,scan_system_name)
if scanned_data :
for index,value in enumerate(scanned_data) :
scan_count = value["scanned_count"]
total_count = total_count + scan_count
html_data = render_template('foodcounter/report_table.html' , scanned_data = scanned_data,total_count=total_count)
role_data = render_template('foodcounter/fc_download_report_dropdown.html' , scanned_data = scanned_data)
return render_template('foodcounter/fc_dashboard.html' ,html_data =html_data , scanned_data = scanned_data,total_count = total_count ,current_dt=current_dt,start_time =start_time ,end_time=end_time,session_name =session_name,conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,del_table_name=del_table_name,fc_del_session_table_name=fc_del_session_table_name,fc_session_entry_table_name=fc_session_entry_table_name,role_data=role_data,completed_sessions = completed_sessions)
else :
if session.get("fcsession"):
session.pop("fcsession", None)
else:
pass
flash("Invalid session key","errorMsg")
return redirect(url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Invalid session key" ,"errorMsg")
return redirect(url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else:
return "<h4 style= 'color:red' ; >Invalid URL </h4>"
# end
@app.route('/fc_reports', methods = ["POST"])
def FCReports():
try:
total_count = 0
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
scan_system_name = 'System-2'
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name,scan_system_name)
if scanned_data :
for index,value in enumerate(scanned_data) :
scan_count = value["scanned_count"]
total_count = total_count + scan_count
html_data = render_template('foodcounter/report_table.html' , scanned_data = scanned_data,total_count=total_count)
role_data = render_template('foodcounter/fc_download_report_dropdown.html' , scanned_data = scanned_data)
data = { 'html_data' : html_data ,'scanned_data' : scanned_data,'role_data' : role_data , 'msg' :'success' ,'current_dt' : current_dt,'total_count': total_count ,'status' : 1 }
json_data = json.dumps(data ,default =str)
return json_data
else :
data = { 'html_data' : "" ,"scanned_data" : "" ,'role_data' : "", "msg" :"Invalid login",'current_dt' : current_dt,'total_count': total_count ,"status" : 2}
json_data = json.loads(data)
return json_data
except Exception as e:
data = { 'html_data' : "" ,"scanned_data" : "" ,'role_data' : "", "msg" : str(e) ,'current_dt' : current_dt,'total_count': total_count,"status" : 401}
json_data = json.loads(data)
return json_data
@app.route('/send_fc_report_mail',methods = [ "POST"])
def SendFCReportMail():
total_count = 0
scan_count = 0
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
current_date = now.strftime("%d-%m-%Y")
mail_ids = request.form['mail_id']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
if mail_ids:
last_char = mail_ids[-1:]
# check last character is commma
if "," == last_char :
mail_ids = re.sub(r".$", "", mail_ids)
# check white spance in given inputs ,if exist then replace as empty
if " " in mail_ids :
mail_ids = mail_ids.replace(" " ,"")
# set list from a string using comma character
mail_list = list(mail_ids.split(","))
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
scan_system_name = 'System-2'
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name,scan_system_name)
if scanned_data :
for index,value in enumerate(scanned_data) :
scan_count = value["scanned_count"]
total_count = total_count + scan_count
mail_template = render_template('foodcounter/fc_email/fc_report_mail.html' , scanned_data = scanned_data,total_count=total_count)
# subject = " "+ conf_name+"- Food counter Report on " + current_date
subject = " "+ conf_name+"- Food counter Report"
for email in mail_list:
# parsing the element from a list using for loop
# send mail here
EMAIL.FcReportMail(subject,mail_template,email)
flash("Report mail has been sent. ","successMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Invalid session" , "errorMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Please enter atleast one mail-id ." ,"errorMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/send_fc_report_whatsapp',methods = ["POST"])
def SendFCReportWhaatsapp():
total_count = 0
scan_count = 0
msg_content = ""
mobile_no = request.form['mobile_no']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
if mobile_no:
last_char = mobile_no[-1:]
# check last character is commma
if "," == last_char :
mobile_no = re.sub(r".$", "", mobile_no)
# check white spance in given inputs ,if exist then replace as empty
if " " in mobile_no :
mobile_no = mobile_no.replace(" " ,"")
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name)
if scanned_data :
# msg_content = "KIT Counter Report - SESLI22%0a%0a"+session_name+"%0a%0a"
msg_content = "*Food Counter Report - "+conf_name+"* %0a%0a"
for index,value in enumerate(scanned_data) :
if index == 0 :
session_name = value["session_name"]
session_date = value["start_time"]
if session_date :
session_date = session_date.strftime("%d/%m/%Y")
else :
session_date = ""
msg_content = "*Food Counter Report - SESLI22* %0a" +"*"+session_date+" - "+session_name+"*" +"%0a%0a"
scan_count = value["scanned_count"]
role = value["role"]
total_count = total_count + scan_count
msg_content = msg_content + "*"+role+"*" +" : " + str(scan_count) +"%0a"
msg_content = msg_content +"%0a*Total Scanned Count : "+ str(total_count)+"*"
msg_content = "https://wa.me/91"+str(mobile_no)+"?text="+msg_content
webbrowser.open(msg_content) # to send whatsapp via new tab
flash("Food counter report has been sent sucessfully to " + mobile_no ,"successMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key)) # comment after testing
# return flask.redirect(msg_content)
# return redirect(url_for('kit.KcDashBoard'))
else :
flash("Invalid session" , "errorMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else:
flash("Please enter the whatsapp number to sent the food counter report.")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/download_fc_report',methods = ["GET","POST"])
def DowloadFcReport(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
# session_id = 1
# conf_id = 3
role = request.values.get('role')
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
# fc_del_session_table_name = getFcConfData["fc_del_session_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
scanned_data = FCModel().getFcReportDownload(session_id,conf_id,fc_session_entry_table_name,role,del_table_name)
if scanned_data :
output = io.StringIO()
writer = csv.writer(output)
line = ['Name','Email', 'Mobile', 'Membership Number' , 'City' ,'Role']
writer.writerow(line)
for row in scanned_data:
line = [row['full_name'],row['email'] or '' , row['mobile'] or '', row['membership_no'] or '' , row['city'] or '',row['role'] or '' ]
writer.writerow(line)
output.seek(0)
return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=data_report.csv"})
else :
return "Record not exist"
except Exception as e:
data = { 'html_data' : "" ,"scanned_data" : "" , "msg" : str(e) ,'current_dt' : current_dt,'total_count': total_count,"status" : 401}
json_data = json.loads(data)
return json_data
@app.route('/<int:conf_id>/<conf_key>/download_fc_report_1',methods = ["GET","POST"])
def DownloadFCReport1(conf_id,conf_key):
try:
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
role = request.values.get('role') #query string
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
# kc_del_session_table_name = getFcConfData["fc_del_session_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
# role = None
scanned_data = FCModel().getFcReportDownload(session_id,conf_id,fc_session_entry_table_name,role,del_table_name)
if scanned_data :
download_url = request.host_url+"/"+str(conf_id)+"/"+conf_key+"/download_fc_report?role="+role
webbrowser.open(download_url) # to send whatsapp via new tab
data = {"msg" :"success" ,"status" : 1}
else :
data = {"msg" :"Record not exists." ,"status" : 2}
json_data = json.dumps(data ,default =str)
else :
data = {"msg" :"Invalid login." ,"status" : 3}
json_data = json.dumps(data ,default =str)
return json_data
except Exception as e:
data = {"msg" :str(e) ,"status" :401}
json_data = json.dumps(data ,default =str)
return json_data
@app.route('/save_fc_token',methods = ["GET","POST"])
def SaveFCToken():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
ref_delegate_no = request.form['ref_delegate_no'] or 0
ref_name = request.form['ref_name'] or ''
ref_mobile = request.form['ref_mobile'] or ''
conf_id = request.form['conf_id'] or 0
conf_key = request.form['conf_key'] or ''
no_of_mebers = request.form['no_of_mebers'] or 1
#Siva updated on Dec 14, 2022
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
if not ref_delegate_no and not ref_name and not ref_mobile :
flash('Please enter Ref Delegate Number or Name or mobile .','errorMsg')
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else :
data = {
'ref_delegate_no' : ref_delegate_no,
'ref_name' : ref_name,
'ref_mobile' : ref_mobile,
'conf_id' : conf_id,
'session_id' : session_id,
'created_at' : current_dt,
'is_token' : 1
}
if no_of_mebers and int(no_of_mebers) > 1 :
insert_stmt = "insert into "+fc_session_entry_table_name+"(ref_delegate_no,ref_name,ref_mobile,session_id,created_at,is_token) values"
insert_values = "("
no_of_mebers = int(no_of_mebers)
for i in range(0, no_of_mebers) :
insert_values = insert_values + str(ref_delegate_no)+",'"+str(ref_name)+"','"+str(ref_mobile)+"',"+str(session_id)+",'"+current_dt+"','1'"
insert_values = insert_values+"),("
insert_values = insert_values[:-2]
insert_query = insert_stmt+insert_values
insert_users = FCModel().insert_token_data(insert_query)
if no_of_mebers and int(no_of_mebers) == 1 :
insert_stmt= "insert into "+fc_session_entry_table_name+"(ref_delegate_no,ref_name,ref_mobile,session_id,created_at,is_token) values("+str(ref_delegate_no)+",'"+str(ref_name)+"','"+str(ref_mobile)+"',"+str(session_id)+",'"+current_dt+"','1');"
insert_users = FCModel().insert_token_data(insert_stmt)
if insert_users == "success":
flash('Token count updated.','successMsg')
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Error .try again" , "errorMsg")
return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Invalid login " , "errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
# @app.route('/save_fc_token',methods = ["GET","POST"])
# def SaveFCToken():
# now = datetime.now()
# current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
# if session.get("fcsession") :
# session_data = session.get("fcsession")
# session_id = session_data["session_id"]
# ref_delegate_no = request.form['ref_delegate_no'] or None
# ref_name = request.form['ref_name'] or None
# ref_mobile = request.form['ref_mobile'] or None
# conf_id = request.form['conf_id'] or 0
# conf_key = request.form['conf_key'] or None
# no_of_mebers = request.form['no_of_mebers'] or 1
# if not ref_delegate_no and not ref_name and not ref_mobile :
# flash('Please enter Ref Delegate Number or Name or mobile .','errorMsg')
# return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
# else :
# data = {
# 'ref_delegate_no' : ref_delegate_no,
# 'ref_name' : ref_name,
# 'ref_mobile' : ref_mobile,
# 'conf_id' : conf_id,
# 'session_id' : session_id,
# 'created_at' : current_dt,
# 'is_token' : 1
# }
# if no_of_mebers and int(no_of_mebers) > 1 :
# no_of_mebers = int(no_of_mebers)
# for i in range(0, no_of_mebers) :
# insert_users = FCModel().insert_token_data(data,conf_id)
# if no_of_mebers and int(no_of_mebers) == 1 :
# insert_users = FCModel().insert_token_data(data,conf_id)
# if insert_users:
# flash('Token count updated.','successMsg')
# return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
# else :
# flash("Error .try again" , "errorMsg")
# return redirect(url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key=conf_key))
# else :
# flash("Invalid login " , "errorMsg")
# return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/<int:session_id>/view_fc_completed_session_report',methods = ["GET","POST"])
def ViewFcCompletedSessionReport(conf_id,conf_key,session_id):
try:
total_count = 0
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
if session.get("fcsession") :
session_data = session.get("fcsession")
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
conf_name = getFcConfData["conf_name"]
del_table_name = getFcConfData["del_table_name"]
fc_session_entry_table_name = getFcConfData["fc_session_entry_table_name"]
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name)
if scanned_data :
for index,value in enumerate(scanned_data) :
scan_count = value["scanned_count"]
total_count = total_count + scan_count
html_data = render_template('foodcounter/report_table.html' , scanned_data = scanned_data,total_count=total_count)
role_data = render_template('foodcounter/fc_download_report_dropdown.html' , scanned_data = scanned_data)
data = { 'html_data' : html_data ,'scanned_data' : scanned_data,'role_data' : role_data , 'msg' :'success' ,'current_dt' : current_dt,'total_count': total_count ,'status' : 1 }
json_data = json.dumps(data ,default =str)
return json_data
else :
data = { 'html_data' : "" ,"scanned_data" : "" ,'role_data' : "", "msg" :"Invalid login",'current_dt' : current_dt,'total_count': total_count ,"status" : 2}
json_data = json.loads(data)
return json_data
except Exception as e:
data = { 'html_data' : "" ,"scanned_data" : "" ,'role_data' : "", "msg" : str(e) ,'current_dt' : current_dt,'total_count': total_count,"status" : 401}
json_data = json.loads(data)
return json_data
# Food counte auto login -- Jan 10 ,2023
@app.route('/<int:conf_id>/<conf_key>/food_auto_login/<session_key>', methods = ["GET","POST"])
def FoodAutoLogin(conf_id,conf_key,session_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
user_output = FCModel().getDataBysession_key(session_key,current_dt,conf_id,conf_key)
if user_output :
if session.get("fcsession") :
session.pop('fcsession', None)
session_id = user_output['session_id']
session["fcsession"] = user_output
flash('Login sucessfully.',"successMsg" )
return redirect (url_for('fc.FCDashboard' ,conf_id = conf_id , conf_key = conf_key))
else :
flash("Ivalid session key" ,"errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
except Exception as e:
msg = str(e)
flash(msg , "errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/food_auto_login_2/<session_key>', methods = ["GET","POST"])
def FoodAutoLogin2(conf_id,conf_key,session_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
user_output = FCModel().getDataBysession_key(session_key,current_dt,conf_id,conf_key)
if user_output :
if session.get("fcsession") :
session.pop('fcsession', None)
session_id = user_output['session_id']
session["fcsession"] = user_output
flash('Login sucessfully.',"successMsg" )
return redirect (url_for('fc.FCDashboard_2' ,conf_id = conf_id , conf_key = conf_key))
else :
flash("Ivalid session key" ,"errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
except Exception as e:
msg = str(e)
flash(msg , "errorMsg")
return redirect (url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/fc_dashboard_2',methods = ["GET", "POST"])
def FCDashboard_2(conf_id,conf_key):
total_count = 0
start_time = ""
end_time = ""
session_name = ""
now = datetime.now()
current_dt = now.strftime("%d-%m-%Y %H:%M:%S")
current_dt_1 = now.strftime("%Y-%m-%d %H:%M:%S")
#start
getFCConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
if getFCConfData :
conf_name = getFCConfData["conf_name"]
del_table_name = getFCConfData["del_table_name"]
fc_del_session_table_name = getFCConfData["fc_del_session_table_name"]
fc_session_entry_table_name = getFCConfData["fc_session_entry_table_name"]
if session.get("fcsession") :
session_data = session.get("fcsession")
session_id = session_data["session_id"]
# check session is end or not
is_session_open = FCModel().checkFCSessionIsOpen(session_id,current_dt_1)
# json_data= json.dumps(is_session_open,default =str)
# return json_data
#get completed session list
completed_sessions = FCModel().completedSessions(conf_id,current_dt_1)
if is_session_open :
session_name = is_session_open["session_name"]
start_time = is_session_open["start_time"]
end_time = is_session_open["end_time"]
if start_time :
start_time = start_time.strftime("%d-%m-%Y %H:%M:%S")
if end_time :
end_time = end_time.strftime("%d-%m-%Y %H:%M:%S")
scan_system_name = "System-1"
scanned_data = FCModel().getFCReport(session_id,conf_id,conf_key,del_table_name,fc_session_entry_table_name,scan_system_name)
if scanned_data :
for index,value in enumerate(scanned_data) :
scan_count = value["scanned_count"]
total_count = total_count + scan_count
html_data = render_template('foodcounter/report_table.html' , scanned_data = scanned_data,total_count=total_count)
role_data = render_template('foodcounter/fc_download_report_dropdown.html' , scanned_data = scanned_data)
return render_template('foodcounter/fc_dashboard_report_only.html' ,html_data =html_data , scanned_data = scanned_data,total_count = total_count ,current_dt=current_dt,start_time =start_time ,end_time=end_time,session_name =session_name,conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,del_table_name=del_table_name,fc_del_session_table_name=fc_del_session_table_name,fc_session_entry_table_name=fc_session_entry_table_name,role_data=role_data,completed_sessions = completed_sessions)
else :
if session.get("fcsession"):
session.pop("fcsession", None)
else:
pass
flash("Invalid session key","errorMsg")
return redirect(url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else :
flash("Invalid session key" ,"errorMsg")
return redirect(url_for('fc.FCLogin' ,conf_id = conf_id , conf_key=conf_key))
else:
return "<h4 style= 'color:red' ; >Invalid URL </h4>"
# end
#
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists