Sindbad~EG File Manager

Current Path : /home/numerotech/conf-regdesk.numerotech.com/reg_desk/core/controller/
Upload File :
Current File : //home/numerotech/conf-regdesk.numerotech.com/reg_desk/core/controller/ScanSignupController.py

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