Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json
import datetime
from datetime import timedelta,date,datetime
from flask import session, app
from .. import Cryptography,Auth,RouteGroup,Helper
from core.model.SignUpModel import SignUpModel
from core.model.CMEScanModel import CMEScanModel
from core.model.BadgeModel import BadgeModel
from core.model.KitSessionModel import KitSessionModel
# Jan 10 ,2023
from core.model.BadgeUserModel import BadgeUserModel
from itertools import groupby
from operator import itemgetter
import datetime
import csv
from io import StringIO
import io
from flask import Response
import xlwt
from datetime import datetime
app = Blueprint('signup', __name__)
@app.route('/<int:conf_id>/<conf_key>/signup_login', methods = ["GET", "POST"])
def SignupLogin(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_data = KitSessionModel().getkcConf(conf_id,conf_key,current_dt)
if conf_data:
conf_name = conf_data['conf_name']
return render_template('signup/signup_login.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,conf_name=conf_name)
else:
return "<h2 style= 'color:red;text-align:center' ; >Invalid Session </h2>"
except Exception as e:
# raise e
msg = str(e)
flash(msg,"errorMsg")
return redirect(url_for('signup.SignupLogin',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_signup_login', methods = ["GET", "POST"])
def postSignupLogin(conf_id,conf_key):
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
get_conf = BadgeModel().checkUsername(username,conf_id)
if get_conf :
db_pass = get_conf['badge_login_password']
if password == db_pass:
admin_id = get_conf['conf_id']
session['signupsession'] = get_conf
return redirect (url_for('signup.getSearch',conf_id=conf_id ,conf_key = conf_key))
else:
flash("Password mismatch" , "errorMsg")
return redirect (url_for('signup.SignupLogin',conf_id=conf_id ,conf_key= conf_key))
else:
flash("Username is not registered." , "errorMsg")
return redirect (url_for('signup.SignupLogin',conf_id=conf_id ,conf_key= conf_key))
else :
return "Method not allowed"
@app.route('/<int:conf_id>/<conf_key>/search', methods = ["GET", "POST"])
def getSearch(conf_id,conf_key):
if session.get("signupsession") :
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
count = SignUpModel().getCount(conf_id,del_table_name)
return render_template('signup/search_delegate.html',conf_id=conf_id,conf_key=conf_key,total=count)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.SignupLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_search', methods = ["GET", "POST"])
def postSearch(conf_id,conf_key):
if session.get("signupsession") :
if request.method == 'POST':
search_data = request.form['search_delegate']
btn = request.values.get('search_btn')
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
search_data = search_data.strip()
if btn == 'Search Del. No':
delegatesData = SignUpModel().usp_search_regdesk(del_table_name,search_data,1,conf_id)
else:
delegatesData = SignUpModel().usp_search_regdesk(del_table_name,search_data,0,conf_id)
if delegatesData :
msg = None
else:
msg = "No Data"
count = SignUpModel().getCount(conf_id,del_table_name)
return render_template('signup/search_delegate.html',members=delegatesData,msg=msg,conf_id=conf_id,conf_key=conf_key,total=count,search_data=search_data)
else:
return redirect(url_for('signup.getSearch',conf_id=conf_id,conf_key=conf_key))
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.SignupLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/insert_signup', methods = ["GET", "POST"])
def InsertSignup(conf_id,conf_key):
try:
if session.get('signupsession'):
signed_by = request.values.get('signup') or None
comments = request.values.get('remarks') or None
delegate_no = request.values.get('delegate_no')
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y %H:%M")
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
total_count = SignUpModel().usp_save_signed_data(conf_id,delegate_no,signed_by,comments,del_table_name)
total = total_count[0]
total_signed_on = total['total_signed_on']
datas = {"msg" : "success" ,"status" : 1,'signup_date':dt_string,'total_signed_on':total_signed_on}
json_data = json.dumps(datas,default=str)
return json_data
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('/<int:conf_id>/<conf_key>/signup_logout', methods = ["GET", "POST"])
def SignupLogout(conf_id,conf_key):
if session.get("signupsession") :
session.pop('signupsession', None)
else :
pass
session.pop('_flashes', None)
return redirect(url_for('signup.SignupLogin' ,conf_id = conf_id,conf_key= conf_key))
# Average : {{((total.total_signed_on/total.total_count)*100)|round(2)}}
# Auto login option for Singup option
@app.route('/<int:conf_id>/<conf_key>/signup_auto_login/<conf_uuid>', methods = ["GET","POST"])
def SignupAutoLogin(conf_id,conf_key,conf_uuid):
try:
get_conf = BadgeUserModel().checkConfUUID(conf_id,conf_uuid)
if get_conf :
if session.get("signupsession") :
session.pop('signupsession', None)
session['signupsession'] = get_conf
encrypted_admin_id = Cryptography.encrypt(conf_id)
return redirect (url_for('signup.getSearch',conf_id=conf_id ,conf_key = conf_key))
else:
flash("Username is not registered." , "errorMsg")
return redirect (url_for('signup.SignupLogin',conf_id=conf_id ,conf_key= conf_key))
except Exception as e:
msg = str(e)
flash(msg , "errorMsg")
return redirect (url_for('signup.SignupLogin',conf_id=conf_id ,conf_key= conf_key))
# CME scan Controller
@app.route('/<int:conf_id>/<conf_key>/cmescan_login', methods = ["GET", "POST"])
def CMEScanLogin(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_data = KitSessionModel().getkcConf(conf_id,conf_key,current_dt)
if conf_data:
conf_name = conf_data['conf_name']
return render_template('cmescan/cme_signup_login.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,conf_name=conf_name)
else:
# flash("Invalid session. ","errorMsg")
# return redirect(url_for('signup.SignupLogin',conf_id=conf_id,conf_key=conf_key))
return "<h2 style= 'color:red;text-align:center' ; >Invalid Session </h2>"
except Exception as e:
msg = str(e)
flash(msg,"errorMsg")
return redirect(url_for('signup.CMEScanLogin',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_cmescan_login', methods = ["GET", "POST"])
def postCMEScanLogin(conf_id,conf_key):
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
get_conf = BadgeModel().checkUsername(username,conf_id)
if get_conf :
db_pass = get_conf['badge_login_password']
if password == db_pass:
admin_id = get_conf['conf_id']
session['cmescansession'] = get_conf
return redirect (url_for('signup.getCMEScan',conf_id=conf_id ,conf_key = conf_key))
else:
flash("Password is mismatch" , "errorMsg")
return redirect (url_for('signup.CMEScanLogin',conf_id=conf_id ,conf_key= conf_key))
else:
flash("Username is not registered." , "errorMsg")
return redirect (url_for('signup.CMEScanLogin',conf_id=conf_id ,conf_key= conf_key))
else :
return "Method not allowed"
@app.route('/<int:conf_id>/<conf_key>/cme_search', methods = ["GET", "POST"])
def getCMESearch(conf_id,conf_key):
if session.get("cmescansession") :
get_conf = BadgeModel().GetConf(conf_id,conf_key)
count = 0
if get_conf :
signup_table = get_conf["signup_table"] # March 07 2023
signup_for_alldays = get_conf["signup_for_alldays"] # March 07 2023
del_table_name = get_conf["del_table_name"]
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
# curr_date = '2023-03-24'
delegateData = CMEScanModel().delegateDataForCMEScan(conf_id,del_table_name,signup_for_alldays,signup_table,curr_date)
if delegateData:
for index,value in enumerate(delegateData):
count_1 = value['signed_on']
if count_1:
count = count+1
# count = SignUpModel().getCount(conf_id,del_table_name)
return render_template('cmescan/cme_search_delegate.html',conf_id=conf_id,conf_key=conf_key,total=count)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.CMEScanLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_cme_search', methods = [ "POST"])
def postCMESearch(conf_id,conf_key):
if session.get("cmescansession") :
if request.method == 'POST':
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
# curr_date = '2023-03-24'
search_data = request.form['search_delegate']
btn = request.values.get('search_btn')
get_conf = BadgeModel().GetConf(conf_id,conf_key)
signup_table = get_conf["signup_table"] # March 07 2023
signup_for_alldays = get_conf["signup_for_alldays"]
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
search_data = search_data.strip()
if btn == 'Search Del. No':
delegatesData = CMEScanModel().usp_search_regdesk_v1(del_table_name,search_data,1,conf_id,signup_table,signup_for_alldays,curr_date)
else:
delegatesData = CMEScanModel().usp_search_regdesk_v1(del_table_name,search_data,0,conf_id,signup_table,signup_for_alldays,curr_date)
if delegatesData :
msg = None
else:
msg = "No Data"
delegate_data_and_count = CMEScanModel().syncAllDataWithSignedCount(conf_id,del_table_name,curr_date,signup_for_alldays,signup_table)
if delegate_data_and_count :
for index,value in enumerate(delegate_data_and_count) :
if index == 0 :
delegate_data = value
if index == 1 :
signed_count_1 = value
if signed_count_1 :
signed_count = signed_count_1[0]["signed_count"]
# count = 0
# count = SignUpModel().getCount(conf_id,del_table_name)
return render_template('cmescan/cme_search_delegate.html',members=delegatesData,msg=msg,conf_id=conf_id,conf_key=conf_key,total=signed_count,search_data=search_data)
else:
return redirect(url_for('signup.getCMESearch',conf_id=conf_id,conf_key=conf_key))
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.CMEScanLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/insert_cme_signup', methods = ["GET", "POST"])
def InsertCMESignup(conf_id,conf_key):
try:
if session.get('cmescansession'):
signed_by = request.values.get('signup') or None
comments = request.values.get('remarks') or None
delegate_no = request.values.get('delegate_no')
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
# curr_date = '2023-03-24'
get_conf = BadgeModel().GetConf(conf_id,conf_key)
signup_table = get_conf["signup_table"]
signup_for_alldays = get_conf["signup_for_alldays"]
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
update_and_get_count = CMEScanModel().updateAndGetSignedCount(conf_id,delegate_no,del_table_name,curr_dt,signed_by,comments,curr_date,signup_for_alldays,signup_table)
# total_count = SignUpModel().usp_save_signed_data(conf_id,delegate_no,signed_by,comments,del_table_name)
if update_and_get_count :
for index,value in enumerate(update_and_get_count) :
if index == 0 :
is_valid_1 = value
if index == 1 :
signed_on_1 = value
if index == 2 :
signed_count_1 = value
if signed_count_1 :
signed_count = signed_count_1[0]["signed_count"]
datas = {"msg" : "success" ,"status" : 1,'signup_date':curr_date,'total_signed_on':signed_count}
json_data = json.dumps(datas,default=str)
return json_data
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('/<int:conf_id>/<conf_key>/cme_scan_logout', methods = ["GET", "POST"])
def CMEScanLogout(conf_id,conf_key):
if session.get("cmescansession") :
session.pop('cmescansession', None)
else :
pass
return redirect(url_for('signup.CMEScanLogin' ,conf_id = conf_id,conf_key= conf_key))
# Average : {{((total.total_signed_on/total.total_count)*100)|round(2)}}
# Auto login option for cmescan option
@app.route('/<int:conf_id>/<conf_key>/cme_scan_auto_login/<conf_uuid>', methods = ["GET","POST"])
def CMEScanAutoLogin(conf_id,conf_key,conf_uuid):
try:
get_conf = BadgeUserModel().checkConfUUID(conf_id,conf_uuid)
if get_conf :
if session.get("cmescansession") :
session.pop('cmescansession', None)
session['cmescansession'] = get_conf
encrypted_admin_id = Cryptography.encrypt(conf_id)
return redirect (url_for('signup.getCMESearch',conf_id=conf_id ,conf_key = conf_key))
else:
flash("Username is not registered." , "errorMsg")
return redirect (url_for('signup.CMEScanLogin',conf_id=conf_id ,conf_key= conf_key))
except Exception as e:
msg = str(e)
flash(msg , "errorMsg")
return redirect (url_for('signup.CMEScanLogin',conf_id=conf_id ,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/get_delegate_data_cme', methods = ["GET", "POST"])
def getDelegateDataCME(conf_id,conf_key):
try:
if session.get('cmescansession'):
delegate_no = request.values.get('delegate_no')
delegateData = CMEScanModel().getDelegateDataCMEScan(conf_id,delegate_no)
datas = {'prefix':delegateData['prefix'],'full_name':delegateData['full_name'],'email':delegateData['email'],'mobile':delegateData['mobile'],'mc_number':delegateData['mc_number'],'mc_state_id':delegateData['mc_state_id'],'updated_at':delegateData['updated_at']}
json_data = json.dumps(datas,default=str)
return json_data
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('/mc_state', methods = ["GET","POST"])
def MCState():
country_id = request.values['country_id']
data = CMEScanModel().get_mcstates_of_india(country_id)
return json.dumps(data)
@app.route('/<int:conf_id>/<conf_key>/update_delegatedata_cme', methods = ["GET", "POST"])
def updateDelegateDataCME(conf_id,conf_key):
try:
if session.get('cmescansession'):
delegate_no = request.values.get('delegate_no')
prefix = request.values.get('prefix') or None
full_name = request.values.get('full_name') or None
email = request.values.get('email') or " "
mobile = request.values.get('mobile') or " "
mc_number = request.values.get('mc_number') or None
mc_state_id = request.values.get('mc_state_id') or None
get_conf = BadgeModel().GetConf(conf_id,conf_key)
del_table_name = get_conf['del_table_name']
updated_data = CMEScanModel().updateDelegatedata_cme(del_table_name,prefix,full_name,email,mobile,mc_state_id,mc_number,delegate_no,conf_id)
if updated_data:
for index,value in enumerate(updated_data) :
if index == 0:
userData = value[0]
if userData and userData['user_id']:
total_count = CMEScanModel().count_email(userData['user_id'],userData['email'],get_conf['society_id'])
total_count = total_count["count"]
if int(total_count) > 0 :
msg="Email id already exist, upadated only in delegate table"
else:
data = {
'full_name' : full_name,
'prefix' : prefix,
'email' : email,
'mobile' : mobile,
'mc_number' : mc_number,
'mc_state_id' :mc_state_id,
'updated_at' : datetime.now()
}
output = CMEScanModel().update_member(userData['user_id'],data)
msg ="Successfully updated"
else:
msg="Successfully updated. "
data = { "msg" : msg ,"status" :1}
json_data = json.dumps(data,default=str)
return json_data
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('/<int:conf_id>/<conf_key>/cme_scan', methods = ["GET"])
def getCMEScan(conf_id,conf_key):
if session.get("cmescansession") :
get_conf = BadgeModel().GetConf(conf_id,conf_key)
count = 0
if get_conf :
signup_table = get_conf["signup_table"] # March 07 2023
signup_for_alldays = get_conf["signup_for_alldays"] # March 07 2023
del_table_name = get_conf["del_table_name"]
# return json.dumps(delegateData,default=str)
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
# curr_date = '2023-03-23'
delegateData = CMEScanModel().delegateDataForCMEScan(conf_id,del_table_name,signup_for_alldays,signup_table,curr_date)
if delegateData:
for index,value in enumerate(delegateData):
count_1 = value['signed_on']
if count_1:
count = count+1
return render_template('cmescan/cme_scan_to_signin.html',conf_id=conf_id,conf_key=conf_key,total=count)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.CMEScanLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_cme_scan', methods = [ "POST"])
def PostCMEScan(conf_id,conf_key):
if session.get("cmescansession") :
if request.method == 'POST':
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
# curr_date = '2023-03-25'
# curr_dt = '2023-03-25 13:40:00'
delegate_no = request.values.get('delegate_no',0)
get_conf = BadgeModel().GetConf(conf_id,conf_key)
signup_table = get_conf["signup_table"] # March 07 2023
signup_for_alldays = get_conf["signup_for_alldays"]
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
try:
int(delegate_no)
except Exception as e:
delegate_no = 0
if int(delegate_no) >0 :
delegatesData = CMEScanModel().usp_search_regdesk_v1(del_table_name,delegate_no,2,conf_id,signup_table,signup_for_alldays,curr_date)
if delegatesData :
msg = None
else:
msg = "No Data"
update_and_get_count = CMEScanModel().update_badge_scan_signup(conf_id,delegate_no,del_table_name,curr_dt,'delegate','Badge Scan',curr_date,signup_for_alldays,signup_table)
# delegate_data_and_count = CMEScanModel().syncAllDataWithSignedCount(conf_id,del_table_name,curr_date,signup_for_alldays,signup_table)
# return jsonify(update_and_get_count)
get_cme_scandata = CMEScanModel().getCMEScanybydelegaateno(conf_id,signup_table,delegate_no)
if update_and_get_count :
for index,value in enumerate(update_and_get_count) :
if index == 0 :
statuscode = value[0]["statuscode"]
if index == 1 :
msg = value[0]["msg"]
if index == 2 :
signed_count = value[0]["signed_count"]
if index == 3:
delegatesData = value
if delegatesData:
delegatesData = delegatesData[0]
else:
delegatesData = None
return render_template('cmescan/result.html',delegate_no=delegate_no,statuscode=statuscode,msg=msg,signed_count=signed_count,conf_id=conf_id,data=delegatesData,get_cme_scandata=get_cme_scandata)
return "Invalid Delegate number"
else:
flash("Session Expired","errorMsg")
return "Error"
# unsignup delegate number start -- To be moved to live Step 14,2023 Santhosh
@app.route('/<int:conf_id>/<conf_key>/signed_details', methods = [ "POST","GET"])
def SignedDetails(conf_id,conf_key):
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
signed_data = SignUpModel().getsigned_data(conf_id,del_table_name)
html_data = render_template ('signup/unsignup_table.html',conf_id=conf_id,conf_key=conf_key,signed_data=signed_data)
return render_template ('signup/unsign_delegates.html',conf_id=conf_id,conf_key=conf_key,html_data=html_data)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
@app.route('/<int:conf_id>/<conf_key>/remove_signup', methods = ["GET", "POST"])
def RemoveSignup(conf_id,conf_key):
status = 0
signup_list= None
try:
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y %H:%M")
delegate_no = request.values.get('delegate_no',None)
reason = request.values.get('reason',None)
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
signup_for_alldays = get_conf["signup_for_alldays"]
main_db = "numerotech_primary_db"
unsignupdata = SignUpModel().unsignupdata_andbackup(main_db,conf_id,delegate_no,del_table_name,reason)
if unsignupdata:
for index,value in enumerate(unsignupdata) :
if index == 0 :
msg = value[0]
msg = msg["msg"]
if index == 1 :
status = value[0]
status = status["status"]
if index == 2 :
signup_list = value
html_data = render_template ('signup/unsignup_table.html',conf_id=conf_id,conf_key=conf_key,signed_data=signup_list)
datas = {"msg" : msg,"status":status,"html_data":html_data}
json_data = json.dumps(datas,default=str)
return json_data
else:
datas = {"msg" : "data not exist","status":3,"html_data":""}
json_data = json.dumps(datas,default=str)
return json_data
else :
msg = "Invalid URL"
datas = {"msg" : msg,"status":5,"html_data":""}
json_data = json.dumps(datas,default=str)
return json_data
except Exception as e:
datas = {"msg" : str(e) ,"status" : 401,"html_data":""}
json_data = json.dumps(datas,default=str)
return json_data
# unsignup delegate number END
# cme report start
@app.route('/<int:conf_id>/<conf_key>/cme_scan_report', methods = [ "POST","GET"])
def CMEScanReport(conf_id,conf_key):
# '%Y-%m-%d'
get_conf = BadgeModel().GetConf(conf_id,conf_key)
conf_start_time = get_conf["conf_start_time"]
conf_end_time = get_conf["conf_end_time"]
date_list = [{'conf_date': (conf_start_time + timedelta(days=i)).strftime('%d-%m-%Y')} for i in range((conf_end_time - conf_start_time).days + 1)]
if date_list:
return render_template("cmescan/cme_scan_report.html",conf_id= conf_id,conf_key= conf_key,date_list=date_list)
else:
return render_template("cmescan/cme_scan_report.html",conf_id= conf_id,conf_key= conf_key,date_list=date_list)
@app.route('/<int:conf_id>/<conf_key>/cme_scan_day_wise_report', methods = [ "POST","GET"])
def CMEScanDayWiseReport(conf_id,conf_key):
try:
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf:
signup_table = get_conf["signup_table"] # March 07 202
del_table_name = get_conf["del_table_name"]
conf_date = request.values.get("conf_date") or None
conf_date = "All" if conf_date == "All" else datetime.strptime(conf_date, "%d-%m-%Y").strftime("%Y-%m-%d")
delegate_data = CMEScanModel().getCMEScandelegateRecord(conf_id,del_table_name,signup_table,conf_date)
html_data = render_template("cmescan/cme_scan_report_table.html",conf_id= conf_id,conf_key= conf_key,delegate_data=delegate_data,conf_date=conf_date,itemgetter=itemgetter,groupby=groupby)
data = {"html_data":html_data,"msg" : "" ,"status" :1}
return json.dumps(data,default=str)
else:
data = {"html_data":"","msg" : "INVALID LOGIN" ,"status" :2}
return json.dumps(data,default=str)
except Exception as e:
data = {"html_data":"","msg" : str(e) ,"status" : 401}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:conf_id>/<conf_key>/cme_scan_single_day_report_download', methods = [ "POST","GET"])
def CMEScanDayWiseReportDownload(conf_id,conf_key):
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf:
signup_table = get_conf["signup_table"] # March 07 202
del_table_name = get_conf["del_table_name"]
conf_name = get_conf["conf_name"]
conf_date = request.values.get("conf_date") or None
delegate_data = CMEScanModel().getCMEScandelegateRecord(conf_id,del_table_name,signup_table,conf_date)
if delegate_data:
# column_values = column_names
column_names = ["delegate_no","full_name","email","mobile","role","signin_date","signed_on","state","mc_number","membership_no"]
column_names = ["s_no"] + column_names
inc_val = 1
for index,value in enumerate(delegate_data) :
value["s_no"] = inc_val
inc_val = inc_val + 1
return ExportDownloadXSL_single(delegate_data,column_names,conf_key,conf_name)
else :
flash("CME Scan Record does not exists." ,"errorMsg")
return redirect(url_for('signup.CMEScanReport',conf_id=conf_id,conf_key=conf_key))
else:
flash("Record does not exists." ,"errorMsg")
return redirect(url_for('signup.CMEScanReport',conf_id=conf_id,conf_key=conf_key))
def ExportDownloadXSL_single(result_data,sel_columns_for_xl,conf_key,conf_name):
file_name = "CME Scan Report"
now = datetime.now()
date = now.strftime("%Y-%m-%d %H:%M")
output = io.BytesIO()
Workbook = xlwt.Workbook()
sh = Workbook.add_sheet('Report')
idx = 0
a = 0
for row in sel_columns_for_xl:
row_1 = row
if row_1 :
row_1 = row_1.replace("_", " ")
row_1 = row_1.upper()
row_1 = row_1.replace("FULL " , "") if "FULL" in row_1 else row_1
sh.write(0,a,row_1)
a+=1
b=0
for index,row in enumerate(result_data) :
for i in sel_columns_for_xl:
sh.write(idx+1, b, row[i])
b+=1
b=0
idx+=1
Workbook.save(output)
output.seek(0)
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M")
return Response(output, mimetype="application/ms-excel", headers={"Content-Disposition":"attachment;filename="+conf_name+"-"+file_name+"-"+curr_dt+".xls"})
# cme repot end
@app.route('/<int:conf_id>/<conf_key>/back', methods = ["GET", "POST"])
def Back(conf_id,conf_key):
if session.get("cmescansession") :
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
return render_template('cmescan/cme_scan_to_signin.html',conf_id=conf_id,conf_key=conf_key)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
else:
flash("Session Expired","errorMsg")
return redirect(url_for('signup.CMEScanLogin' ,conf_id = conf_id,conf_key= conf_key))
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists