Sindbad~EG File Manager

Current Path : /home/numerotech/scans.numerotech.com/scan_v1/core_old/controller/
Upload File :
Current File : //home/numerotech/scans.numerotech.com/scan_v1/core_old/controller/FoodSessionController.py

from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json

from core.model.FoodSessionModel import FoodSessionModel

from random import randint
import datetime
 
from datetime import timedelta,date,datetime
# from .. import Cryptography,Auth,RouteGroup
from flask import session, app

from os.path import join
import os
from os import path




app = Blueprint('food_session', __name__)



@app.route('/<int:conf_id>/<conf_key>/food_sessionlogin',methods = ["GET", "POST"])
def FoodSessionLogin(conf_id,conf_key):
	now = datetime.now()
	current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
	getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
	if getFcConfData :
		conf_name = getFcConfData["conf_name"]
		if session.get("fcbosession"):
			return redirect(url_for('food_session.FoodSessionIndex',conf_id = conf_id,conf_key = conf_key))
		else  :
			return render_template('foodsession_counter/food_session_login_screen.html',conf_id = conf_id,conf_key = conf_key,conf_name = conf_name)
	else :
		return "<h2 style= 'color:red;text-align:center' ; >Invalid URL </h2>"      

@app.route('/post_food_session_login', methods = ["GET","POST"])
def PostFoodSessionLogin():
	if request.method == "POST":
		now = datetime.now()
		current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
		user_name     = request.form['user_name']
		password      = request.form['password']
		conf_id      = request.form['conf_id']
		conf_key      = request.form['conf_key']

		if  not user_name  or not password:
			flash('Please enter user_name and password')
			return redirect (url_for('food_session.FoodSessionLogin',conf_id = conf_id,conf_key = conf_key))
		else :
			us = FoodSessionModel()
			user_output = us.getDataByUsername(user_name)
			
			if user_output : 
				db_pass = user_output['password']

				if password == db_pass:
					fc_user_id = user_output['fc_user_id']
					us.updateFCLoginTime(fc_user_id,current_dt);
					session["fcbosession"] = user_output
					flash("Login successful." ,"successMsg")
					return redirect (url_for('food_session.FoodSessionIndex',conf_id = conf_id,conf_key = conf_key)) 
				else:   
					flash('Passsword invalid. Please check the password.',"errorMsg" )
					return redirect (url_for('food_session.FoodSessionLogin',conf_id = conf_id,conf_key = conf_key))
			else:
				flash("Email id is not registered." ,"errorMsg" )
				return redirect (url_for('food_session.FoodSessionLogin',conf_id = conf_id,conf_key = conf_key)) 
	else:
		return redirect (url_for('food_session.FoodSessionLogin',conf_id = conf_id,conf_key = conf_key)) 


@app.route('/<int:conf_id>/<conf_key>/foodsession_logout',methods = ["GET", "POST"])
def FoodSessionLogout(conf_id,conf_key):
	if session.get("fcbosession") :
		session.pop('fcbosession', None)
		flash("Logout successful." ,"successMsg")

	else :
		pass
	return redirect(url_for('food_session.FoodSessionLogin',conf_id = conf_id,conf_key = conf_key))


@app.route('/<int:conf_id>/<conf_key>/food_session_index',methods = ["GET", "POST"])
def FoodSessionIndex(conf_id,conf_key):
	getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
	if getFcConfData :
		conf_name =  getFcConfData["conf_name"]
		if session.get("fcbosession"):
			session_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
			html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =session_data)
			return render_template('foodsession_counter/food_session_index.html',html_data=html_data,conf_id = conf_id,conf_key = conf_key,conf_name = conf_name,session_data=session_data)
		else:
			flash("Invalid Login." ,"errorMsg")
			return redirect(url_for('food_session.FoodSessionLogin' ,conf_id = conf_id,conf_key = conf_key)) 
	else:
		return "<h4 style= 'color:red' ; >Invalid URL </h4>"
			

@app.route('/post_food_session', methods = ["GET", "POST"])
def PostFoodSession():
	data = None
	if session.get("fcbosession") :
		session_data = session.get("fcbosession")

		now = datetime.now()
		current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
		session_name = request.values.get("session_name")  or None
		session_key = request.values.get("session_key")  or None
		start_time  = request.values.get("start_time")  or None
		end_time    = request.values.get("end_time")  or None
		conf_id  = request.values.get("conf_id")  or None
		conf_key    = request.values.get("conf_key")  or None
		# fetching data from form..
		data = {
			'session_name' : session_name,
			'session_key' : session_key,
			'start_time'  : start_time,
			'end_time'  : end_time,
			'conf_id': conf_id,
			'conf_key': conf_key,
			'created_at': current_dt    
		}
		insert_fcbo = FoodSessionModel().insert_fcbodata_and_getdata(data,conf_id,conf_key)
		html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =insert_fcbo)
		data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
		return json.dumps(data)
	else:
		return json.dumps(data)


@app.route('/edit_food_session_index',methods = ["GET","POST"])
def EditFoodSessionIndex():
	session_id = request.values.get("session_id")
	fcbo_data = FoodSessionModel().edit_fcbo(session_id) 
	# states = RegisterModel().get_states() # if we use state in edit form  un comment this line
	if fcbo_data :
		data = {'fcbo_data' :fcbo_data ,'msg' : 'success' ,'status' : 1}
	else :
		data = {'fcbo_data' :[] ,'msg' : 'data not exist' ,'status' : 2} 

	return json.dumps(data,default=str)

@app.route('/update_food_session_index', methods = ["GET","POST"])
def UpdateFoodSessionIndex():
	now = datetime.now()
	current_dt    = now.strftime("%Y-%m-%d %H:%M:%S")
	session_name  = request.values.get("session_name")  or None
	session_key   = request.values.get("session_key")  or None
	start_time    = request.values.get("start_time")  or None
	end_time      = request.values.get("end_time")  or None
	session_id  = request.values.get("session_id")  or None
	conf_id = request.values.get("conf_id")
	conf_key = request.values.get("conf_key")


	if session_id and int(session_id) > 0 :
		data_for_update = {
		'session_name': session_name,
		'session_key' : session_key,
		'start_time'  : start_time,
		'end_time'    : end_time,
		'updated_at'  : current_dt
		}

		update_and_getdata = FoodSessionModel().update_fcbo_and_getdata(data_for_update,session_id,conf_id,conf_key)
		html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =update_and_getdata)
		data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
	return json.dumps(data)



@app.route('/delete_fcbo_session_index',methods = ["GET","POST"])
def DeleteFcbosessionIndex():
	session_id    = request.values.get('session_id')
	delet_data = FoodSessionModel().delete_fcbo_session_index(session_id)
	html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =delet_data)
	data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
	return json.dumps(data)


@app.route('/update_food_start_time', methods = ["GET","POST"])
def UpdateFoodStartTime():
	now = datetime.now()
	current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
	curr_dt_dateformat = datetime.strptime(current_dt, "%Y-%m-%d %H:%M:%S")
	session_id = request.values.get("session_id")  or None
	
	conf_id  = request.values.get("conf_id")  or None
	conf_key = request.values.get("conf_key")  or None

	if session_id and int(session_id) > 0 :
		data_for_update = { 'start_time' : current_dt,'updated_at' : current_dt,'is_active' : 1}

		update_and_getdata = FoodSessionModel().update_fcbo_and_getdata(data_for_update,session_id,conf_id,conf_key)
		html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =update_and_getdata , curr_dt_dateformat= curr_dt_dateformat)
		data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
		return json.dumps(data)
	else :
		data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid login"}
		return "Invalid login"    

@app.route('/update_food_end_time', methods = ["GET","POST"])
def UpdateFoodEndTime():
	now = datetime.now()
	current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
	session_id = request.values.get("session_id")  or None
	
	conf_id  = request.values.get("conf_id")  or None
	conf_key = request.values.get("conf_key")  or None

	if session_id and int(session_id) > 0 :
		data_for_update = {'end_time' : current_dt,'updated_at' : current_dt, 'is_active' : 0}

		update_and_getdata = FoodSessionModel().update_fcbo_and_getdata(data_for_update,session_id,conf_id,conf_key)
		html_data = render_template('foodsession_counter/food_session_table.html',fcbo_data =update_and_getdata)
		data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
		return json.dumps(data)
	else :
		data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid login"}
		return "Invalid login"    


# Santhosh code integration for Food counter session create
@app.route('/<int:conf_id>/<conf_key>/create_fcsessions', methods = ["GET","POST"])
def CreateFcSessions(conf_id,conf_key):
	now              = datetime.now()
	current_dt       = now.strftime("%Y-%m-%d %H:%M:%S")
	conf_date_1      = []
	dateformat       = "%Y-%m-%d %H:%M:%S"
	day_diff         = 0
	session_key      = 111
	session_data_all = " "

	getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
	if getFcConfData :
		conf_start_time = getFcConfData["conf_start_time"]
		conf_end_time   = getFcConfData["conf_end_time"]
		fcSessions      = FoodSessionModel().getFcsessionData(conf_id,conf_key)
		if fcSessions :
			flash("Already food counter sessions created. ","errorMsg")
			return redirect(url_for('food_session.FoodSessionIndex' ,conf_id = conf_id,conf_key = conf_key))

		if conf_start_time and conf_end_time :
			st_date = conf_start_time.strftime("%Y-%m-%d") # string format f
			day_diff = (conf_end_time.date() - conf_start_time.date()).days
			if day_diff  >= 0 :
				day_diff = day_diff + 1
			else :
				flash("Conference end date must be greater than start time" ,"errorMsg")
				return redirect(url_for('food_session.FoodSessionIndex' ,conf_id = conf_id,conf_key = conf_key))

			# day_diff = 1 # For one day conference testing
			if  day_diff and day_diff == 1 : # For one day conference Block
				i = 1
				session_data_1 = ("Day "+str(i)+" Breakfast",session_key,st_date+' 06:00:00',st_date+' 11:45:00',current_dt,conf_id,conf_key)
				session_key=session_key+111
				session_data_2 = ("Day "+str(i)+" Lunch",session_key,st_date+' 11:46:00',st_date+' 17:45:00',current_dt,conf_id,conf_key)
				session_key=session_key+111
				session_data_3 = ("Day "+str(i)+" Dinner",session_key,st_date+' 17:46:00',st_date+' 23:59:00',current_dt,conf_id,conf_key)
				session_key=session_key+111
				session_data_all = str(session_data_all) + str(session_data_1) + "," + str(session_data_2)+","+str(session_data_3)+","
				
				session_insert_stmt = "INSERT INTO fc_sessions ( session_name,session_key,start_time,end_time,created_at,conf_id,conf_key) VALUES"+session_data_all+" ;" 
				session_insert_stmt = session_insert_stmt[:len(session_insert_stmt)-3]
				session_insert_stmt = session_insert_stmt + ';'   

			else : # For more than 1 day conference block   
				for i in range(0,day_diff):
					day_in_date = conf_start_time + timedelta(days=i)
					conf_date   = day_in_date.strftime("%Y-%m-%d")
					conf_date_1.append(conf_date)

				i = 0
				for conf_date in conf_date_1:
					conf_date = conf_date
					for  day in range(1,day_diff):
						i = i+1
						session_data_1 = ("Day "+str(i)+" Breakfast",session_key,conf_date+' 06:00:00',conf_date+' 11:45:00',current_dt,conf_id,conf_key)
						session_key=session_key+111
						session_data_2 = ("Day "+str(i)+" Lunch",session_key,conf_date+' 11:46:00',conf_date+' 17:45:00',current_dt,conf_id,conf_key)
						session_key=session_key+111
						session_data_3 = ("Day "+str(i)+" Dinner",session_key,conf_date+' 17:46:00',conf_date+' 23:59:00',current_dt,conf_id,conf_key)
						session_key=session_key+111
						session_data_all = str(session_data_all) + str(session_data_1) + "," + str(session_data_2)+","+str(session_data_3)+","
						break
			
				session_insert_stmt = "INSERT INTO fc_sessions ( session_name,session_key,start_time,end_time,created_at,conf_id,conf_key) VALUES"+session_data_all+" ;" 
				session_insert_stmt = session_insert_stmt[:len(session_insert_stmt)-3]
				session_insert_stmt = session_insert_stmt + ';' 

			FoodSessionModel().insert_food_session(session_insert_stmt)
			flash('Successfully inserted sessions.',"successMsg")
			return redirect(url_for('food_session.FoodSessionIndex' ,conf_id = conf_id,conf_key = conf_key))
				
		else :
			flash("Conference start time and end time must to generate session(s)" ,"errorMsg")
			return redirect(url_for('food_session.FoodSessionIndex' ,conf_id = conf_id,conf_key = conf_key))
	else:
		flash('Invalid URL  mismach.',"errorMsg")
		return "<h2 style= 'color:red;text-align:center' ; >Invalid URL </h2>"
		
	# food session remove scaned data start 

@app.route('/<int:conf_id>/<conf_key>/fc_delete', methods = ["GET","POST"])
def FcDelete(conf_id,conf_key):
	getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
	if getFcConfData :
		fc_session_entry_table = getFcConfData["fc_session_entry_table_name"]
		del_table_name         = getFcConfData["del_table_name"]
		session_names          = FoodSessionModel().getsession_names(conf_id)
		return render_template('foodsession_counter/fc_scanned_data_screen.html',conf_id = conf_id,conf_key = conf_key,session_names=session_names,fc_session_entry_table=fc_session_entry_table,del_table_name=del_table_name)
	else:
		flash('Invalid URL  mismach.',"errorMsg")
		return "<h2 style= 'color:red;text-align:center' ; >Invalid URL </h2>"

@app.route('/<int:conf_id>/<conf_key>/view_delete_session_entry', methods = ["GET","POST"])
def ViewFcDeleteSessionEntry(conf_id,conf_key):
	try:
		session_id             = request.values.get("session_id")  or None
		delegate_nos           = request.values.get("delegate_nos")  or '0'
		fc_session_entry_table = request.values.get("fc_session_entry_table") or None
		del_table_name         = request.values.get("del_table_name") or None
		full_name              = request.values.get("full_name") 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
		# delegate_nos = delegate_nos[:-1] if delegate_nos.endswith(",") else delegate_nos
		getfcsession_data = FoodSessionModel().getFcsession_data_by_delno(conf_id,fc_session_entry_table,del_table_name,session_id,delegate_nos,full_name)
		html_data =  render_template('foodsession_counter/fc_session_entry_data_table.html',conf_id=conf_id,conf_key=conf_key,getfcsession_data=getfcsession_data,session_id=session_id,delegate_nos=delegate_nos,full_name=full_name)
		
		data = { "html_data":html_data,"msg" : "" ,"status" : 1}
		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>/delete_data_index', methods = ["GET","POST"])
def delete_data_index(conf_id,conf_key):
	try:
		getFcConfData = FoodSessionModel().getFcConfData(conf_id,conf_key)
		if getFcConfData :
			fc_session_entry_table = getFcConfData["fc_session_entry_table_name"]
			del_table_name         = getFcConfData["del_table_name"]
			session_id             = request.values.get("session_id")  or None
			delegate_nos           = request.values.get("delegate_nos")  or None
			uncheck_del_nos        = request.values.get("uncheck_del_nos")  or None
			full_name              = request.values.get("full_name")  or None

			fc_deleted_data        = FoodSessionModel().DeleteFcsession_data_by_delno(conf_id,fc_session_entry_table,del_table_name,session_id,delegate_nos,uncheck_del_nos,full_name)
			balance_uncheck_data   = FoodSessionModel().getfcsession_data_by_delno_uncheck(fc_session_entry_table,del_table_name,session_id,uncheck_del_nos,full_name)
			html_data              =  render_template('foodsession_counter/fc_session_entry_data_table.html',conf_id=conf_id,conf_key=conf_key,getfcsession_data=balance_uncheck_data,session_id=session_id,delegate_nos=uncheck_del_nos)

			if fc_deleted_data :
				data = {"html_data":html_data,"msg" : "Successfully Deleted ." ,"status" : 1}
			else:
				data = {"html_data":html_data,"msg" : "'Deleted Failed'" ,"status" : 2}
			return json.dumps(data,default=str)
		else:
			data = {"html_data":"","msg" : "'Invalid URL  mismach.'" ,"status" : 3}
		return json.dumps(data,default=str)
	except Exception as e:
		data = {"html_data":"","html_data":"","msg" : str(e) ,"status" : 401}
		return json.dumps(data,default=str)

# food session remove scaned data end 

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