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
app = Blueprint('scan_signup', __name__)
@app.route("<int:conf_id>/<conf_key>/scan_to_signup",methods = ["GET", "POST"])
def ScanToSignup(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"
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
return render_template("scan_signup/signup_page.html",conf = conf_data,conf_id = conf_id,conf_key=conf_key,total_signup_count=total_signup_count)
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))
@app.route('/<int:conf_id>/<conf_key>/search_signup', methods = ["GET", "POST"])
def SearchSignup(conf_id,conf_key):
try:
active_key = Helper.active_key
conf = LoginModel().GetConf(conf_id,conf_key,active_key)
conf_schema = conf["conf_schema"]
search_data = request.values.get('search_data')
search_type = request.values.get('search_type')
search_data = search_data.strip()
delegatesData = SignUpModel().usp_search_regdesk(conf_schema,search_data,search_type,conf_id)
if delegatesData :
msg = None
else:
msg = "No Data"
html_data = render_template('scan_signup/search_data.html',conf=conf,delegatesData=delegatesData,conf_id=conf_id,conf_key=conf_key)
return json.dumps({"html_data": html_data, "msg": "success", "status": 1}, default=str)
except Exception as e:
return json.dumps({"html_data": "", "msg": str(e), "status": 401}, default=str)
@app.route('/<int:conf_id>/<conf_key>/signup/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/signup/<delegate_no>', methods = ["GET", "POST"])
def Signup(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 GetSearchSignup(conf_id,conf_key,uuid)
else :
url = "https://conf-regdesk.numerotech.com/"+str(conf_id)+"/"+conf_key+"/scan_to_signup"
print("Signup = "+url)
return "<h2 style='color:red;'>No Badge Found<br><a href='"+str(url)+"' style='font-size: 10px;'>Back to Scan</a></h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
except Exception as e:
raise e
@app.route('/<int:conf_id>/<conf_key>/get_search_signup/at/', methods = ["GET", "POST"])
@app.route('/<int:conf_id>/<conf_key>/get_search_signup/at/<uuid>', methods = ["GET", "POST"])
def GetSearchSignup(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']
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']
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('scan_signup/scan_data.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 :
url = "https://conf-regdesk.numerotech.com/"+str(conf_id)+"/"+conf_key+"/scan_to_signup"
print("Signup = "+url)
return "<h2 style='color:red;'>No Badge Found<br><a href='"+str(url)+"' style='font-size: 10px;'>Back to Scan</a></h2>"
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
except Exception as e:
raise e
@app.route("<int:conf_id>/<conf_key>/overall_signup_count",methods = ["GET", "POST"])
def OverallSignupCount(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:
del_table_name = conf_data.get("conf_schema") + ".delegates"
total_rolewise_count = SignUpModel().get_overall_signup_count(del_table_name,conf_id)
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
return render_template("scan_signup/overall_signup_count.html",conf = conf_data,conf_id = conf_id,conf_key=conf_key,total_rolewise_count=total_rolewise_count,total_signup_count=total_signup_count)
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))
@app.route("<int:conf_id>/<conf_key>/overall_signup_data_by_role",methods = ["GET", "POST"])
def OverallSignupDatabyRole(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:
del_table_name = conf_data.get("conf_schema") + ".delegates"
role = request.values.get('role' or None) or None
total_rolewise_count = SignUpModel().get_overall_signup_data(del_table_name,conf_id,role)
total_signup_count = SignUpModel().get_signup_count(del_table_name,conf_id)
total_role_signup_count = SignUpModel().get_signup_count_by_role(del_table_name,conf_id,role)
return render_template("scan_signup/overall_signup_table.html",conf = conf_data,conf_id = conf_id,conf_key=conf_key,total_rolewise_count=total_rolewise_count,total_signup_count=total_signup_count,role=role,total_role_signup_count=total_role_signup_count)
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))
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists