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.DashboardModel import DashboardModel
from core.model.LoginModel import LoginModel
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
from collections import defaultdict
app = Blueprint('signup', __name__)
@app.route('/<int:conf_id>/<conf_key>/auto_signup/at/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/auto_signup/at/<uuid>', methods = ["GET", "POST"])
def AutoSignupBadgeLogin(conf_id,conf_key,uuid=None):
try:
if uuid:
user_id = 113313
is_post_signup = request.values.get("is_post_signup") or None
signed_by = request.values.get("signup") or "Delegate"
comments = request.values.get("remarks") or "Signed through Auto Signup Form"
delegate_no = request.values.get("delegate_no") or None
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data :
if int(conf_data.get("is_user_active") or 0) == 1:
del_table_name = conf_data["conf_schema"] +".delegates"
else:
return "<h3 style=\"color:red\"><center>The signup form is currently closed</center></h3>"
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
if int(is_post_signup or 0) == 1:
scan_data = SignUpModel().usp_save_scan_signed_data(conf_id,delegate_no,signed_by,comments,user_id)
scan_data = scan_data[0]
status = scan_data['status']
msg = scan_data['msg']
# print(scan_data)
delegates = SignUpModel().get_uuid_delegates_table(del_table_name,uuid,conf_id)
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
if delegates:
conf_schema = conf_data["conf_schema"]
delegates = delegates[0]
delegate_no = delegates['delegate_no']
# signed_by = "Delegate"
# comments = "Signed through Auto Signup Form"
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y %H:%M")
sigup_dt = delegates.get('signed_on').strftime("%d-%m-%Y %H:%M") if delegates.get('signed_on') else None
if int(is_post_signup or 0) != 1:
if sigup_dt:
status = 1
msg = f"#{delegate_no} - Already signed on {sigup_dt}."
else:
status = 0
msg = ''
return render_template('signup/auto_signup.html',msg=msg,conf=conf_data,status=status,delegate_no=delegate_no,conf_id=conf_id,conf_key=conf_key,delegates=delegates,total_signup_count=total_signup_count)
else :
return "<h2 style='color:red;text-align:center;'>No Badge Found</h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
# return redirect(url_for('digitalbatch.DigitalBadge',conf_id=conf_id,conf_key=conf_key))
except Exception as e:
raise e
@app.route('/<int:conf_id>/<conf_key>/qr_signup/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/qr_signup/<delegate_no>', methods = ["GET", "POST"])
def QRSignupBadge(conf_id,conf_key,delegate_no=None):
try:
if delegate_no:
user_id = 113313
is_post_signup = request.values.get("is_post_signup") or None
signed_by = request.values.get("signup") or "Delegate"
comments = request.values.get("remarks") or "Signed through Auto Signup Form"
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data :
if int(conf_data.get("is_user_active") or 0) == 1:
del_table_name = conf_data["conf_schema"] +".delegates"
else:
return "<h3 style=\"color:red\"><center>The signup form is currently closed</center></h3>"
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
delegate = SignUpModel().get_delegate_no_delegates_table(del_table_name,delegate_no,conf_id)
if delegate:
uuid = delegate.get('user_uuid')
return AutoSignupBadgeLogin(conf_id,conf_key,uuid)
else :
return "<h2 style='color:red;text-align:center;'>No Badge Found</h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
# return redirect(url_for('digitalbatch.DigitalBadge',conf_id=conf_id,conf_key=conf_key))
except Exception as e:
raise e
# @app.route('/<int:conf_id>/<conf_key>/auto_signup/at/', methods = ["GET", "POST"])
# @app.route('/<int:conf_id>/<conf_key>/auto_signup/at/<uuid>', methods = ["GET", "POST"])
# def AutoSignupBadgeLogin(conf_id,conf_key,uuid=None):
# try:
# if uuid:
# active_key = Helper.active_key
# conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
# if conf_data :
# del_table_name = conf_data["conf_schema"] +".delegates"
# else :
# return "<h4 style='color:red;'> Invalid URL </h4>"
# delegates = SignUpModel().get_uuid_delegates_table(del_table_name,uuid,conf_id)
# if delegates:
# conf_schema = conf_data["conf_schema"]
# delegates = delegates[0]
# delegate_no = delegates['delegate_no']
# signed_by = "Delegate"
# comments = "Signed through Auto Signup Form"
# now = datetime.now()
# user_id = 113313
# dt_string = now.strftime("%d-%m-%Y %H:%M")
# scan_data = SignUpModel().usp_save_scan_signed_data(conf_id,delegate_no,signed_by,comments,user_id)
# scan_data = scan_data[0]
# status = scan_data['status']
# msg = scan_data['msg']
# print(status)
# return render_template('signup/auto_signup.html',msg=msg,conf=conf_data,status=status,delegate_no=delegate_no,conf_id=conf_id,conf_key=conf_key,delegates=delegates)
# else :
# return "<h2 style='color:red;text-align:center;'>No Badge Found</h2>"
# else:
# return "<h4 style='color:red;'> Invalid URL </h4>"
# # return redirect(url_for('digitalbatch.DigitalBadge',conf_id=conf_id,conf_key=conf_key))
# except Exception as e:
# raise e
@app.route('/<int:conf_id>/<conf_key>/search', methods = ["GET", "POST"])
@RouteGroup.conf_required
# @RouteGroup.login_required
def getSearch(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf :
default_type = request.values.get('default_type' or 'search') or 'search'
schema_name = conf["conf_schema"]
del_table_name = conf["del_table_name"]
count = SignUpModel().getCount(conf_id,schema_name)
total_registered_count,total_signed_on_count,total_pending_count = signup_count(conf_id,None,None,None)
return render_template('signup/search_delegate.html',conf_id=conf_id,conf_key=conf_key,total=count,conf=conf,total_pending_count=total_pending_count,total_signed_on_count=total_signed_on_count,total_registered_count=total_registered_count,default_type=default_type)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
def signup_count(conf_id,view_type,date,user_id):
if conf_id :
totl_count = DashboardModel().get_reg_desk_count(conf_id,view_type,date,user_id)
for index,value in enumerate(totl_count) :
if index == 0 :
days = value
if index == 1:
admins = value
if index == 2 :
total_registered_count = value
if index == 3 :
total_signed_on_count = value
if index == 4 :
total_pending_count = value
total_registered_count = len(total_registered_count) if total_registered_count else 0
total_signed_on_count = len(total_signed_on_count) if total_signed_on_count else 0
total_pending_count = len(total_pending_count) if total_pending_count else 0
return total_registered_count,total_signed_on_count,total_pending_count
else :
return 0,0,0
@app.route('/<int:conf_id>/<conf_key>/post_search', methods = ["GET", "POST"])
@RouteGroup.conf_required
# @RouteGroup.login_required
def postSearch(conf_id,conf_key):
if request.method == 'POST':
print(request.values)
search_data = request.form['search_delegate']
default_type='search'
btn = request.values.get('search_btn')
conf = Auth.getConf(conf_id,conf_key)
if conf :
conf_schema = conf["conf_schema"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
search_data = search_data.strip()
print(btn)
if btn == 'Search Del. No':
delegatesData = SignUpModel().usp_search_regdesk(conf_schema,search_data,1,conf_id)
else:
delegatesData = SignUpModel().usp_search_regdesk(conf_schema,search_data,0,conf_id)
if delegatesData :
msg = None
else:
msg = "No Data"
total_registered_count,total_signed_on_count,total_pending_count = signup_count(conf_id,None,None,None)
return render_template('signup/search_delegate.html',default_type=default_type,conf=conf,members=delegatesData,msg=msg,conf_id=conf_id,conf_key=conf_key,total=total_signed_on_count,search_data=search_data,total_pending_count=total_pending_count,total_signed_on_count=total_signed_on_count,total_registered_count=total_registered_count)
else:
return redirect(url_for('signup.getSearch',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/insert_signup', methods = ["GET", "POST"])
@RouteGroup.conf_required
# @RouteGroup.login_required
def InsertSignup(conf_id,conf_key):
try:
conf = Auth.getConf(conf_id,conf_key)
if conf :
conf_schema = conf["conf_schema"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
society_id = conf['society_id']
user = Auth.user(society_id)
user_id = user['user_id']
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")
scan_data = SignUpModel().usp_save_scan_signed_data(conf_id,delegate_no,signed_by,comments,user_id)
scan_data = scan_data[0]
msg = scan_data['msg']
status = scan_data['status']
total_registered_count,total_signed_on_count,total_pending_count = signup_count(conf_id,None,None,None)
datas = {"msg" : msg ,"status" : status,'delegate_no':delegate_no,'signup_date':dt_string,'total_signed_on':total_signed_on_count,'total_signed_on_count':total_signed_on_count,'total_pending_count':total_pending_count,'total_registered_count':total_registered_count}
json_data = json.dumps(datas,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>/post_scan', methods = [ "POST"])
@RouteGroup.conf_required
@RouteGroup.login_required
def PostScan(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
if request.method == 'POST':
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
default_type = 'scan'
delegate_no = request.values.get('scan_delegate')
conf_schema = conf["conf_schema"]
society_id = conf['society_id']
user = Auth.user(society_id)
user_id = user['user_id']
signed_by = "From Scanning"
comments = ""
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y %H:%M")
scan_data = SignUpModel().usp_save_scan_signed_data(conf_id,delegate_no,signed_by,comments,user_id)
total_registered_count,total_signed_on_count,total_pending_count = signup_count(conf_id,None,None,None)
scan_data = scan_data[0]
msg = scan_data['msg']
status = scan_data['status']
if int(status) == 2 :
flash(str(msg),'successMsg')
else :
flash(str(msg),'errorMsg')
return redirect(url_for('signup.getSearch',conf_id=conf_id,conf_key=conf_key,default_type=default_type))
return render_template('signup/search_delegate.html',conf=conf,default_type=default_type,conf_id=conf_id,conf_key=conf_key,total_pending_count=total_pending_count,total_signed_on_count=total_signed_on_count,total_registered_count=total_registered_count)
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"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def SignedDetails(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf :
conf_schema = conf["conf_schema"]
signed_data = SignUpModel().getsigned_data(conf_id,conf_schema)
html_data = render_template ('signup/unsignup_table.html',conf=conf,conf_id=conf_id,conf_key=conf_key,signed_data=signed_data)
return render_template ('signup/unsign_delegates.html',conf=conf,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"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
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)
conf = Auth.getConf(conf_id,conf_key)
if conf :
conf_schema = conf["conf_schema"]
signup_for_alldays = conf["signup_for_alldays"]
main_db = "numerotech_primary_db"
unsignupdata = SignUpModel().unsignupdata_andbackup(main_db,conf_id,delegate_no,conf_schema,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=conf,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
@app.route("<int:conf_id>/<conf_key>/search_delegate",methods = ["GET", "POST"])
def SearchDelegate(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
return render_template("signup/search_all_table_delegtes.html",conf_id = conf_id,conf_key=conf_key)
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
# -------------------badge_collected_unsignup_list start-----------------
@app.route("<int:conf_id>/<conf_key>/badge_collected_unsignup_list",methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def BadgeCollectedUnsignupList(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
kc_entry_table = conf_schema+".kc_sessions_entry"
fc_entry_table = conf_schema+".fc_sessions_entry"
fcbackup_table = None
del_nos = None
is_bulk_signup = 0
is_view_bulk_signup_data = 0
is_manual_signup = 0
print(conf_id,del_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
attend_list = SignUpModel().UnsignupButScannedList(conf_id,del_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
if attend_list:
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
return render_template("signup/badge_collected_unsignup_list.html",conf=conf,conf_id=conf_id,conf_key=conf_key,html_data=html_data,is_view_bulk_signup_data=is_view_bulk_signup_data,attend_list=attend_list)
else:
# flash("Attend data not exists","errorMsg")
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
return render_template("signup/badge_collected_unsignup_list.html",conf=conf,conf_id=conf_id,conf_key=conf_key,html_data=html_data,is_view_bulk_signup_data=is_view_bulk_signup_data)
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
@app.route("<int:conf_id>/<conf_key>/scan_records_bulk_signup",methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def ScanRecordsBulkSighnup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
kc_entry_table = conf_schema+".kc_sessions_entry"
fc_entry_table = conf_schema+".fc_sessions_entry"
fcbackup_table = None
is_bulk_signup = request.values.get('is_bulk_signup') or 0
is_view_bulk_signup_data = request.values.get('is_view_bulk_signup_data') or 0
is_manual_signup = request.values.get('is_manual_signup') or 0
is_bulk_signup = int(is_bulk_signup) if is_bulk_signup else is_bulk_signup
is_view_bulk_signup_data = int(is_view_bulk_signup_data) if is_view_bulk_signup_data else is_view_bulk_signup_data
is_manual_signup = int(is_manual_signup) if is_manual_signup else is_manual_signup
del_nos = None
if is_bulk_signup == 1 and is_manual_signup == 0:
attend_list = SignUpModel().UnsignupButScannedList(conf_id,del_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
is_bulk_signup = 0;
is_view_bulk_signup_data = 0;
is_manual_signup = 0;
attend_list = SignUpModel().UnsignupButScannedList(conf_id,del_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
data = {"html_data":html_data,"msg" : "Successfully uploaded", "status" : 1}
return json.dumps(data,default = str)
else:
attend_list = SignUpModel().UnsignupButScannedList(conf_id,del_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
data = {"html_data":html_data,"msg" : "", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 3}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
@app.route("<int:conf_id>/<conf_key>/view_and_update_custom_bulk_signup",methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def ViewAndUpdateCostomeBulkSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
kc_entry_table = conf_schema+".kc_sessions_entry"
fc_entry_table = conf_schema+".fc_sessions_entry"
fcbackup_table = None
is_bulk_signup = request.values.get('is_bulk_signup') or 0
is_view_bulk_signup_data = request.values.get('is_view_bulk_signup_data') or 0
is_manual_signup = request.values.get('is_manual_signup') or 0
is_bulk_signup = int(is_bulk_signup) if is_bulk_signup else is_bulk_signup
is_view_bulk_signup_data = int(is_view_bulk_signup_data) if is_view_bulk_signup_data else is_view_bulk_signup_data
is_manual_signup = int(is_manual_signup) if is_manual_signup else is_manual_signup
delegate_nos = request.values.get('delegate_nos') or None
if delegate_nos:
delegate_nos = delegate_nos.replace(" ","")
delegate_nos = delegate_nos.replace(".",",")
delegate_nos = delegate_nos.replace(",,",",")
delegate_nos = delegate_nos[:-1] if delegate_nos.endswith(",") else delegate_nos or None
if is_bulk_signup == 1 and is_manual_signup == 1:
attend_list = SignUpModel().UnsignupButScannedList(conf_id,delegate_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
is_bulk_signup = 0;
is_view_bulk_signup_data = 1;
is_manual_signup = 0;
attend_list = SignUpModel().UnsignupButScannedList(conf_id,delegate_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
data = {"html_data":html_data,"msg" : " Successfully updated", "status" : 1}
return json.dumps(data,default = str)
else:
attend_list = SignUpModel().UnsignupButScannedList(conf_id,delegate_nos,del_table_name,kc_entry_table,fc_entry_table,fcbackup_table,is_bulk_signup,is_view_bulk_signup_data,is_manual_signup)
html_data = render_template("signup/badge_collected_unsignup_list_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,attend_list=attend_list,is_view_bulk_signup_data=is_view_bulk_signup_data)
data = {"html_data":html_data,"msg" : " ", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : "please enter delegate number ", "status" : 3}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 4}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
# -------------------badge_collected_unsignup_list end-----------------
@app.route("<int:conf_id>/<conf_key>/qr_scan_to_signup",methods = ["GET", "POST"])
def QRScanToSignup(conf_id,conf_key):
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data:
if int(conf_data.get("is_user_active") or 0) == 1:
conf_schema = conf_data["conf_schema"]
del_table_name = conf_schema+".delegates"
url = f"https://conf-regdesk.numerotech.com/{conf_id}/{conf_key}/qr_signup/"
return render_template("signup/qr_scanner.html",conf = conf_data,conf_id = conf_id,conf_key=conf_key,url=url)
else:
return "<h3 style=\"color:red\"><center>The signup form is currently closed</center></h3>"
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
# --------------------------------Bulk signup start --------------------------------------
@app.route('/<int:conf_id>/<conf_key>/bulk_signup', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def BulkSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
return render_template('signup/bulk_signup.html',conf_id=conf_id,conf_key=conf_key,conf=conf,total_signup_count=total_signup_count)
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/view_bulk_signup', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def ViewBulkSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
delegate_nos = request.values.get('delegate_nos') or None
if delegate_nos:
del_no = delegate_nos.rstrip(',')
del_datas = SignUpModel().getdelegate_data(conf_id,conf_schema,del_no)
if del_datas:
html_data = render_template("signup/signup_delegate_view.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas)
data = {"html_data":html_data,"msg" : " ", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Data not exist", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : "please enter delegate number ", "status" : 3}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 4}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
@app.route('/<int:conf_id>/<conf_key>/post_bulk_signup', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def PostBulkSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
delegate_nos = request.values.get('delegate_nos') or None
update_count = 0
if delegate_nos:
del_no = delegate_nos.rstrip(',')
del_signup_datas,update_count = SignUpModel().updatedelegate_signup(conf_id,conf_schema,del_no,dt_string)
del_datas = SignUpModel().getdelegate_data(conf_id,conf_schema,del_no)
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
html_data = render_template("signup/signup_delegate_view.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas)
if update_count > 0 :
data = {'total_signup_count':total_signup_count,"html_data":html_data,"msg" : str(update_count)+" delegates signed on successfully", "status" : 1}
else :
data = {'total_signup_count':total_signup_count,"html_data":html_data,"msg" : "Already Signed on updated", "status" : 1}
# data = {"html_data":html_data,"msg" : " updated Successfully", "status" : 1}
return json.dumps(data,default = str)
else :
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
data = {"total_signup_count":total_signup_count,"html_data":"","msg" : "please enter delegate number ", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 3}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
# --------------------------------Bulk signup end --------------------------------------
@app.route("<int:conf_id>/<conf_key>/qr_scan_to_delno",methods = ["GET", "POST"])
def DelnoQRScan(conf_id,conf_key):
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data:
if int(conf_data.get("is_user_active") or 0) == 1:
conf_schema = conf_data["conf_schema"]
del_table_name = conf_schema+".delegates"
form_name = "T-Shirt Form"
url = f"https://conf-regdesk.numerotech.com/{conf_id}/{conf_key}/delno_qr_scan_view/"
return render_template("signup/delno_qr_scanner.html",conf = conf_data,conf_id = conf_id,conf_key=conf_key,url=url)
else:
return "<h3 style=\"color:red\"><center>The "+str(form_name)+" is currently closed</center></h3>"
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/delno_qr_scan_view/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/delno_qr_scan_view/<delegate_no>', methods = ["GET", "POST"])
def DelNoQRScanView(conf_id,conf_key,delegate_no=None):
try:
if delegate_no:
user_id = 113313
form_name = "T-Shirt Form"
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data :
if int(conf_data.get("is_user_active") or 0) == 1:
del_table_name = conf_data["conf_schema"] +".delegates"
else:
return "<h3 style=\"color:red\"><center>The "+str(form_name)+" is currently closed</center></h3>"
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
delegate = SignUpModel().get_delegate_no_delegates_table(del_table_name,delegate_no,conf_id)
if delegate:
uuid = delegate.get('user_uuid')
print(uuid)
return PostDelnoQRScanView(conf_id,conf_key,uuid)
else :
return "<h2 style='color:red;text-align:center;'>No Badge Found</h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
# return redirect(url_for('digitalbatch.DigitalBadge',conf_id=conf_id,conf_key=conf_key))
except Exception as e:
raise e
@app.route('/<int:conf_id>/<conf_key>/post_delno_qr_scan_view/at/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/post_delno_qr_scan_view/at/<uuid>', methods = ["GET", "POST"])
def PostDelnoQRScanView(conf_id,conf_key,uuid=None):
try:
if uuid:
user_id = 113313
is_post_signup = request.values.get("is_post_signup") or None
delegate_no = request.values.get("delegate_no") or None
form_name = "T-Shirt Form"
active_key = Helper.active_key
conf_data = LoginModel().GetConf(conf_id,conf_key,active_key)
if conf_data :
if int(conf_data.get("is_user_active") or 0) == 1:
del_table_name = conf_data["conf_schema"] +".delegates"
else:
return "<h3 style=\"color:red\"><center>The "+str(form_name)+" is currently closed</center></h3>"
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
if int(is_post_signup or 0) == 1:
scan_data = SignUpModel().usp_conf_save_qr_scanned_data(conf_id,delegate_no)
scan_data = scan_data[0]
status = scan_data['status']
msg = scan_data['msg']
delegates = SignUpModel().get_uuid_delegates_table(del_table_name,uuid,conf_id)
total_collected_count = SignUpModel().get_tshirt_count(del_table_name,conf_id)
if delegates:
conf_schema = conf_data["conf_schema"]
delegates = delegates[0]
delegate_no = delegates['delegate_no']
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y %H:%M")
sigup_dt = delegates.get('tshirt_collected_at').strftime("%d-%m-%Y %H:%M") if delegates.get('tshirt_collected_at') else None
if int(is_post_signup or 0) == 0:
if sigup_dt:
status = 1
msg = "#"+str(delegate_no)+" - Already collected on "+str(sigup_dt)+"."
else:
print("else")
status = 0
msg = ''
return render_template('signup/delno_qr_scan.html',msg=msg,conf=conf_data,status=status,delegate_no=delegate_no,conf_id=conf_id,conf_key=conf_key,delegates=delegates,total_collected_count=total_collected_count)
else :
return "<h2 style='color:red;text-align:center;'>No Badge Found</h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
# return redirect(url_for('digitalbatch.DigitalBadge',conf_id=conf_id,conf_key=conf_key))
except Exception as e:
raise e
# Counter and Set wise Signup Starts here
@app.route('/<int:conf_id>/<conf_key>/counter_and_set_wise_signup', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.login_required
def CounterAndSetWiseSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
del_table_name = conf["conf_schema"]
counter = defaultdict(list)
counterList = None
counter_1 = []
get_data = SignUpModel().getCounterSetWise(del_table_name,conf_id)
# print("get_data :",get_data)
if get_data:
for r in get_data:
counter[r["counter"]].append(r['batch'])
counter_1.append(r["counter"])
counterList = list(set(counter_1))
# a = [str(x) for x in counterList]
counterList.sort()
print("counter :",counterList)
return render_template('signup/signup_counter_set_wise.html',conf_id=conf_id,conf_key=conf_key,conf=conf,counterList=counterList,get_data=counter)
else:
flash("Invalid URL","errorMsg")
return redirect(url_for('login.DashboardLoginPage',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/get_counter_set_data', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.login_required
def getCounterSetData(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
counter = request.values.get('counter') or None
set_for_badge = request.values.get('set') or None
del_datas = SignUpModel().getDelegateDetails(conf_id,conf_schema,counter,set_for_badge)
if del_datas:
signed_on_count = 0
unsigned_on_count = 0
for r in del_datas:
if r['signed_on']:
signed_on_count = signed_on_count+1
else:
unsigned_on_count = unsigned_on_count+1
html_data = render_template("signup/sigup_view_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas,signed_on_count=signed_on_count,unsigned_on_count=unsigned_on_count)
data = {"html_data":html_data,"msg" : " ", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Data not exist", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 4}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
@app.route('/<int:conf_id>/<conf_key>/post_bulk_signin', methods = ["GET", "POST"])
@RouteGroup.conf_required
def PostBulkSignIn(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
delegate_nos = request.values.get('delegate_nos') or None
counter = request.values.get('counter') or None
set_for_badge = request.values.get('set') or None
if delegate_nos:
del_no = delegate_nos.rstrip(',')
del_signup_datas,msg = SignUpModel().updatedelegate_signup(conf_id,conf_schema,del_no,dt_string)
del_datas = SignUpModel().getDelegateDetails(conf_id,conf_schema,counter,set_for_badge)
signed_on_count = 0
unsigned_on_count = 0
if del_datas:
for r in del_datas:
if r['signed_on']:
signed_on_count = signed_on_count+1
else:
unsigned_on_count = unsigned_on_count+1
html_data = render_template("signup/sigup_view_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas,signed_on_count=signed_on_count,unsigned_on_count=unsigned_on_count)
data = {"html_data":html_data,"msg" : str(msg)+' records updated..', "status" : 1}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : "please enter delegate number ", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 3}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
@app.route('/<int:conf_id>/<conf_key>/post_bulk_unsignup', methods = ["GET", "POST"])
@RouteGroup.conf_required
def PostBulkUnSignup(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
now = datetime.now()
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
delegate_nos = request.values.get('delegate_nos') or None
counter = request.values.get('counter') or None
set_for_badge = request.values.get('set') or None
if delegate_nos:
del_no = delegate_nos.rstrip(',')
del_signup_datas,msg = SignUpModel().updatedelegate_unsignup(conf_id,conf_schema,del_no,dt_string)
del_datas = SignUpModel().getDelegateDetails(conf_id,conf_schema,counter,set_for_badge)
signed_on_count = 0
unsigned_on_count = 0
if del_datas:
for r in del_datas:
if r['signed_on']:
signed_on_count = signed_on_count+1
else:
unsigned_on_count = unsigned_on_count+1
html_data = render_template("signup/sigup_view_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas,signed_on_count=signed_on_count,unsigned_on_count=unsigned_on_count)
data = {"html_data":html_data,"msg" : str(msg)+' records updated..', "status" : 1}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : "please enter delegate number ", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 3}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
@app.route('/<int:conf_id>/<conf_key>/get_delegates_no_data', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.login_required
def getDelegateNosData(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
try:
if conf:
conf_schema = conf["conf_schema"]
del_table_name = conf_schema+".delegates"
delegate_nos = request.values.get('delegate_nos') or None
del_datas = SignUpModel().getDelegateNosDetails(conf_id,conf_schema,delegate_nos)
if del_datas:
signed_on_count = 0
unsigned_on_count = 0
for r in del_datas:
if r['signed_on']:
signed_on_count = signed_on_count+1
else:
unsigned_on_count = unsigned_on_count+1
html_data = render_template("signup/sigup_view_table.html",conf=conf,conf_id=conf_id,conf_key=conf_key,del_datas=del_datas,signed_on_count=signed_on_count,unsigned_on_count=unsigned_on_count)
data = {"html_data":html_data,"msg" : " ", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Data not exist", "status" : 2}
return json.dumps(data,default = str)
else :
data = {"html_data":"","msg" : " Invalid URL", "status" : 4}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
# Counter and Set wise Signup Endss here
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists