Sindbad~EG File Manager

Current Path : /home/numerotech/conference.numerotech.com/food_kit_scan_badges/core/controller/
Upload File :
Current File : /home/numerotech/conference.numerotech.com/food_kit_scan_badges/core/controller/QueryController.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 dateutil.rrule import rrule, DAILY
from core.model.BadgeModel import BadgeModel
from core.model.QueryModel import QueryModel

app = Blueprint('query', __name__)

@app.route('/<int:conf_id>/<conf_key>/query', methods = ["GET", "POST"])
def QueryLogin(conf_id,conf_key):
	if session.get("querysession"):
		return redirect (url_for('query.Days',conf_id=conf_id ,conf_key = conf_key))
	else:
		now = datetime.now()
		current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
		conf_data  = QueryModel().getConf_open_closedForQuery(conf_id,conf_key,current_dt)
		if conf_data:
			return render_template('query/user/login.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data)
		else:
			return "<h2 style= 'color:red;text-align:center' ; >Conference closed </h2>"

@app.route('/<int:conf_id>/<conf_key>/post_query_login', methods = ["GET", "POST"])
def postQueryLogin(conf_id,conf_key):
	if request.method == 'POST':
		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>"	
		delegate_name = request.values.get('full_name') or None
		session['querysession']   =  {'delegate_name':delegate_name}
		return redirect (url_for('query.Days',conf_id=conf_id ,conf_key = conf_key))
		
	else :
		return "Method not allowed"	


@app.route('/<int:conf_id>/<conf_key>/days', methods = ["GET", "POST"])
def Days(conf_id,conf_key):
	if session.get("querysession"):
		conf_data = BadgeModel().GetConf(conf_id,conf_key)
		getDays   = QueryModel().getDaysQueryModel(conf_data['abs_ses_table_name'],conf_id)
		now       = datetime.now()
		current_date   = now.strftime('%Y-%m-%d')
		return render_template('query/user/days.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getDays=getDays,current_date=current_date)
	
	else: 
		flash("Session Expired","errorMsg")
		return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))

@app.route('/<int:conf_id>/<conf_key>/halls/<conf_date>', methods = ["GET", "POST"])
def Halls(conf_id,conf_key,conf_date):
	if session.get("querysession"):
		conf_data = BadgeModel().GetConf(conf_id,conf_key)
		getHalls  = QueryModel().getHallsQueryModel(conf_data['abs_ses_table_name'],conf_id,conf_date)
		hall_1    = getHalls[0]
		return render_template('query/user/halls.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getHalls=getHalls,conf_date=conf_date,hall_1=hall_1)
	else: 
		flash("Session Expired","errorMsg")
		return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))

@app.route('/<int:conf_id>/<conf_key>/abs_sessions/<hall_id>/<conf_date>', methods = ["GET", "POST"])
def AbsSessions(conf_id,conf_key,hall_id,conf_date):
	if session.get("querysession"):
		conf_data         = BadgeModel().GetConf(conf_id,conf_key)
		getSessionName    = QueryModel().getSessionNameQuery(conf_data['abs_ses_table_name'],conf_id,hall_id,conf_date)
		session_1         = getSessionName[0]
		now       		= datetime.now()
		current_dt   	= now.strftime('%Y-%m-%d %H:%M:%S')
		currentsession    = QueryModel().getCurrentSessionQueryModel(conf_data['abs_ses_table_name'],conf_id,current_dt,hall_id,conf_date)
		return render_template('query/user/session.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getSessionName=getSessionName,conf_date=conf_date,session_1=session_1,currentsession=currentsession)
	else: 
		flash("Session Expired","errorMsg")
		return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))

@app.route('/<int:conf_id>/<conf_key>/get_query/<asession_id>', methods = ["GET", "POST"])
def getQuery(conf_id,conf_key,asession_id):
	if session.get("querysession"):
		conf_data = BadgeModel().GetConf(conf_id,conf_key)
		sessionData  = QueryModel().get_sessionQueryModel(conf_data['abs_ses_table_name'],conf_id,asession_id)
		if sessionData:
			return render_template('query/user/query.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,sessionData=sessionData)
		else:
			pass
	else: 
		flash("Session Expired","errorMsg")
		return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))

@app.route('/<int:conf_id>/<conf_key>/post_query', methods = ["GET", "POST"])
def postQuery(conf_id,conf_key):
	try:
		delegateData = session.get("querysession")
		conf_data = BadgeModel().GetConf(conf_id,conf_key)
		now = datetime.now()
		current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
		if delegateData :
			asession_id = request.values.get('asession_id') or 0
			commands    = request.values.get('commands') or ' '
			# data        = {'asession_id':asession_id,'commands':commands,'delegate_name':delegateData['delegate_name'],'created_at':datetime.now()}
			insert_stmt ="insert into "+str(conf_data['abs_ses_query_table_name'])+"(asession_id,commands,delegate_name,created_at) values("+str(asession_id)+",'"+str(commands)+"','"+str(delegateData['delegate_name'])+"','"+current_dt+"');"
			QueryModel().insert_delegate_query(insert_stmt)
			datas = {"msg" : "Your query posted successfully" ,"status" : 1}
			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>/logout', methods = ["GET", "POST"])
def Logout(conf_id,conf_key):
	if session.get("querysession") :
		session.pop('querysession', None)
	else :
		pass
	return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))


# For generating abstract session for query and current active session
@app.route('/<int:conf_id>/<conf_key>/generate_abstract_session', methods = ["GET", "POST"])
def GenerateAbstractSession(conf_id,conf_key):
	conf_data = BadgeModel().GetConf(conf_id,conf_key)
	QueryModel().usp_generate_query_session(conf_data['conf_schema'] ,conf_data['abs_ses_table_name'],conf_id)	
	start_date = conf_data['conf_start_time']
	end_date   = conf_data['conf_end_time']
	i=1
	if start_date and end_date:
		
		for dt in rrule(DAILY, dtstart=start_date, until=end_date):
			session_date = dt.strftime("%Y-%m-%d")
			QueryModel().update_abs_sessions(conf_data['abs_ses_table_name'],session_date,"Day "+str(i),conf_id)
			i=i+1

	return 'Abstract sessions generated successfully'


# <span style="float: right;"><i class="fa fa-arrow-right" aria-hidden="true"></i></span>


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists