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/AddonController.py

from flask import render_template,request,flash,redirect,url_for, Blueprint,session,json,jsonify
import datetime
from datetime import timedelta,date,datetime
from core.model.AddonModel import AddonModel
from core.model.UserModel import UserModel
from core.model.BadgeModel import BadgeModel

from flask import  app
import math



app = Blueprint('addons', __name__)

#----------------------- user_type -------------------------------

@app.route('<int:conf_id>/<conf_key>/user_type',methods =["GET","POST"])
def UserType(conf_id,conf_key):
	get_conf = BadgeModel().GetConf(conf_id,conf_key)
	if get_conf :
		user_type_data = AddonModel().get_user_types(conf_id)
		# conf_name = " "
		# if user_type_data : 
		# 	user_types = user_type_data[0]
		# 	conf_name = user_types["conf_name"]
		html_data = render_template ('addons/user_type_table.html',user_data = user_type_data)
		return render_template('addons/user_type.html',html_data=html_data,conf_id=conf_id,conf_key=conf_key,user_type_data=user_type_data)
	else:	
		return "<h1>Invalid URL </h1>"

@app.route('<int:conf_id>/<conf_key>/post_user_type',methods=["GET","POST"])
def PostUserType(conf_id,conf_key):
	now                     = datetime.now()
	current_dt  		    = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		user_type		        = request.values.get('user_type') or None
		is_mandatory_mc_no_state= request.values.get('is_mandatory_mc_no_state') or None
		color_code 				= request.values.get('color_code' ) or None
		if color_code : 
			color_code = color_code.replace(" " , "")

		data={
		'user_type' 			   : user_type,
		'is_mandatory_mc_no_state' : is_mandatory_mc_no_state,
		'color_code' 			   : color_code,
		'created_at'               : current_dt	
		}
		insert_get_data = AddonModel().insert_user_type(data)

		html_data = render_template ('addons/user_type_table.html',user_data = insert_get_data)

		data = {"html_data" : html_data,"msg" : "Added Successfully","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('/edit_user_type',methods = ["GET","POST"])
def EditUserType():
	user_type_id		        = request.values.get('user_type_id') or None
	user_data = AddonModel().user_type_edit(user_type_id) 
	data = {"edited_data" :user_data ,"status" : 1,"msg" : "success"}
	return json.dumps(data,default=str)

@app.route('/update_user_type',methods = ["GET","POST"])
def UpdateUserType():
		now        	    	     = datetime.now()
		current_dt               = now.strftime("%Y-%m-%d %H:%M:%S")
		user_type		         = request.values.get('user_type') or None
		is_mandatory_mc_no_state = request.values.get('is_mandatory_mc_no_state') or None
		color_code 				 = request.values.get('color_code' ) or None
		if color_code : 
			color_code = color_code.replace(" " , "")
		user_type_id 			 = request.values.get('user_type_id')

		if user_type_id and int(user_type_id) > 0 :
			data={
				'user_type' 			   : user_type,
				'is_mandatory_mc_no_state' : is_mandatory_mc_no_state,
				'color_code' 			   : color_code,
				'updated_at' 		 	   : [current_dt]
				}

			update_user_type_and_get_data = AddonModel().update_user_type_and_get_data(data,user_type_id)
			html_data = render_template ('addons/user_type_table.html',user_data=update_user_type_and_get_data)
			data 	  = {"html_data" : html_data ,"status" : 1 , "msg" : "Successfully updated."}
		else:
			data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid "}

		return json.dumps(data,default=str)

@app.route('/delete_user_type',methods = ['POST', 'GET'])
def DeleteUserType():
	try:
		user_type_id        = request.values.get("user_type_id")
		delete_and_get_data = AddonModel().delete_user_type(user_type_id)
		html_data 			= render_template("addons/user_type_table.html", user_data= delete_and_get_data)
		data 				= {"deleted_data" : html_data,"msg" : "Deleted Successfully", "status" :1}
		return json.dumps(data,default=str)
	except Exception as e:
		data = {"deleted_data" : "","msg" : str(e), "status" :401}
		return json.dumps(data,default=str)
	

	
#-------------------------------addon type form------------------------
@app.route('/<int:conf_id>/<conf_key>/addon_type_form',methods =["GET","POST"])
def Addon_Type_Form(conf_id,conf_key):
	get_conf = BadgeModel().GetConf(conf_id,conf_key)
	if get_conf :
		addon_type 			  = AddonModel().get_addon_type(conf_id)
		m_member_type_data    = UserModel().get_member_type()
		html_data 			  = render_template ('addons/addon_type_table.html',data= addon_type,conf_id=conf_id)
		return render_template('addons/addon_type_form.html',html_data=html_data,m_member_type_data=m_member_type_data,conf_id=conf_id,conf_key=conf_key)
	else:	
		return "<h1>Invalid URL </h1>"

@app.route('/<int:conf_id>/<conf_key>/post_addon_type',methods = ["POST","GET"])
def PostAddonType(conf_id,conf_key):
	now                     = datetime.now()
	current_dt  		    = now.strftime("%Y-%m-%d %H:%M:%S")
	addon_type 	            = request.values.get('addon_type') or None
	show_conf_ids       	= request.values.get('conf_id') or None
	description             = request.values.get('description') or None
	# order_by	    	    = request.values.get('order_by') or None
	# show_member_types	    = request.values.get('show_member_types') or None
	input_type	    	    = request.values.get('input_type') or None
	addon_limit	            = request.values.get('addon_limit') or None
	input_name	    	    = request.values.get('input_name') or None
	addon_mini_limit	    = request.values.get('addon_mini_limit') or None
	addon_max_limit	        = request.values.get('addon_max_limit') or None
	is_mandatory	        = request.values.get('is_mandatory') or None
	is_visible	        	= request.values.get('is_visible') or None
	is_custom	        	= request.values.get('is_custom') or None
	is_active	        	 = request.values.get('is_active') or None
	
	show_member_types	  = request.values.getlist('show_member_types') or None
	if show_member_types :
		show_member_types = (",".join(show_member_types))		

	get_order_by_addon_type = AddonModel().get_order_by_addon_type()
	max_order_by            = get_order_by_addon_type['order_by']
	order_by                = int(max_order_by)+1


	data={
	'addon_type' 		: addon_type,
	'show_conf_ids'     :show_conf_ids, 
	'description'		: description,
	'order_by' 			: order_by,
	'show_member_types' : show_member_types,
	'input_type'        : input_type,
	'addon_limit'       : addon_limit,
	'input_name'		: input_name,
	'addon_mini_limit'  : addon_mini_limit,
	'addon_max_limit'   : addon_max_limit,
	'is_mandatory'      : is_mandatory,
	'is_visible'        : is_visible,
	'is_custom'			: is_custom,
	'created_at' 		: [current_dt],
	'is_active'         : is_active
	}
	
	insert_addon_type = AddonModel().insert_addon_type(data)
	html_data         = render_template('addons/addon_type_table.html',data=insert_addon_type)
	flash("Successfully added....")
	return redirect (url_for('addons.Addon_Type_Form',conf_id=conf_id,conf_key=conf_key))


# @app.route('<int:conf_id><conf_key>/add_conf_id_with_addon_type',methods=["GET","POST"])
# def AddConfIdWithAddonType(conf_id,conf_key):

# 	addon_type_data   = AddonModel().get_addon_type_data()
	
 

	

@app.route('/addon_type_edit',methods = ["GET","POST"])
def AddonTypeEdit():
	addon_type_id = request.values.get("addon_type_id")	
	addon_type_data = AddonModel().addon_type_edit(addon_type_id) 
	data = {'addon_type_data' :addon_type_data ,'msg' : 'success' ,'status' : 1}
	json_data=json.dumps(data,default=str)
	return json.dumps(data,default=str)
	
		


@app.route('/<int:conf_id>/<conf_key>/update_addon_type',methods = ["GET","POST"])
def UpdateAddonType(conf_id,conf_key):
		now        	    	     = datetime.now()
		current_dt               = now.strftime("%Y-%m-%d %H:%M:%S")
		addon_type		         = request.values.get('addon_type') or None
		description              = request.values.get('description') or None
		order_by	    	     = request.values.get('order_by') or None
		show_conf_ids	    	 = request.values.get('show_conf_ids') or None
		# show_member_types	     = request.values.get('show_member_types') or None
		input_type	    	     = request.values.get('input_type') or None
		addon_limit	    	     = request.values.get('addon_limit') or None
		input_name	    	     = request.values.get('input_name') or None
		addon_mini_limit	     = request.values.get('addon_mini_limit') or None
		addon_max_limit	         = request.values.get('addon_max_limit') or None
		is_mandatory     		 = request.values.get('is_mandatory')
		is_visible     			 = request.values.get('is_visible')
		addon_type_id     		 = request.values.get('addon_type_id')
		is_active	        	 = request.values.get('is_active') or None

		show_member_types	     = request.values.getlist('show_member_types[]') or None
		if show_member_types :
			show_member_types = (",".join(show_member_types))


		if addon_type_id and int(addon_type_id) > 0 :   
			data={

			'addon_type'	     : addon_type,
			'description'        : description,
			'order_by'	         : order_by,
			'show_conf_ids'      : show_conf_ids,
			'show_member_types'  : show_member_types,
			'input_type'         : input_type,
			'addon_limit'		 : addon_limit,
			'input_name'         : input_name,
			'addon_mini_limit'   : addon_mini_limit,
			'addon_max_limit'    : addon_max_limit,
			'is_mandatory'       : is_mandatory,
			'is_visible'         : is_visible,
			'updated_at' 		 : [current_dt],
			'is_active'         : is_active
			}

			update_addon_type_and_get_data= AddonModel().update_addon_type_and_get_data(data,addon_type_id,conf_id)
			html_data = render_template ('addons/addon_type_table.html',data=update_addon_type_and_get_data)
			data = {"html_data" : html_data ,"status" : 1 , "msg" : "Updated Successfully"}
		else:
			data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid "}	

		return json.dumps(data,default=str)

@app.route('/<int:conf_id>/<conf_key>/delete_addon_type',methods = ['POST', 'GET'])
def DeleteAddonType(conf_id,conf_key):
	now        	    	  = datetime.now()
	curr_dt               = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		addon_type_id = request.values.get("addon_type_id")

		show_conf_ids = request.values.getlist('show_conf_ids') or None
		
		delete_and_get_data = AddonModel().remove_conf_id_inaddontypes(addon_type_id,conf_id,curr_dt)
		html_data = render_template("addons/addon_type_table.html", data= delete_and_get_data,conf_id=conf_id)

		data = {"deleted_data" : html_data,"msg" : "Deleted Successfully", "status" :1}
		return json.dumps(data,default=str)
	except Exception as e:
		data = {"deleted_data" : "","msg" : str(e), "status" : 401}
		return json.dumps(data,default=str)

#-------------------------------  addon form ----------------------------------------
@app.route('/<int:conf_id>/<conf_key>/addon_form',methods =["GET","POST"])
def AddonForm(conf_id,conf_key):
	get_conf = BadgeModel().GetConf(conf_id,conf_key)
	if get_conf :
		addon_type_data		  = AddonModel().get_addon_type_data()
		user_type   		  = AddonModel().get_user_types(conf_id)
		addon_data 			  = AddonModel().get_addons(conf_id)
		m_member_type_data    = UserModel().get_member_type()
		html_data             = render_template('addons/addon_table.html',addon_data=addon_data)
		return render_template('addons/addon.html',html_data=html_data,user_type=user_type,data=addon_type_data,conf_id=conf_id,conf_key=conf_key,m_member_type_data=m_member_type_data)
	else:	
		return "<h1>Invalid URL </h1>"

@app.route('/<int:conf_id>/<conf_key>/post_addon_form',methods = ["POST","GET"])
def PostAddonForm(conf_id,conf_key):
	now        			  = datetime.now()
	current_dt            = now.strftime("%Y-%m-%d %H:%M:%S")
	addon_type_id		  = request.values.get('addon_type_id') or None
	addon_name	          = request.values.get('addon_name') or None
	display_name	      = request.values.get('display_name') or None
	amount	  			  = request.values.get('amount') or None
	is_visible			  = request.values.get('is_visible') or None
	start_by			  = request.values.get('start_by') or None
	order_by 			  = request.values.get('order_by') or None	
	end_by	           	  = request.values.get('end_by') or None
	user_type_id	  	  = request.values.get('user_type_id') or None
	conference_id   	  = request.values.get('conference_id') or None
	head_count	          = request.values.get('head_count') or None
	description	          = request.values.get('description') or None
	is_mandatory	      = request.values.get('is_mandatory') or None
	is_custom_addon	      = request.values.get('is_custom_addon') or None
	reg_type	          = request.values.get('reg_type') or None
	addon_reg_type	      = request.values.get('addon_reg_type') or None
	show_member_types	  = request.values.getlist('show_member_types') or None
	if show_member_types :
		show_member_types = (",".join(show_member_types))
	
	data={

	'addon_type_id'		  : addon_type_id,
	'addon_name'	      : addon_name,
	'display_name'	      : display_name,
	'amount'	  		  : amount,
	'is_visible'		  : is_visible,
	'start_by'			  : start_by,
	'end_by'	          : end_by,
	'user_type_id'	  	  : user_type_id,
	'conference_id'       : conference_id,
	'head_count'	      : head_count,
	'order_by' 			  : order_by,
	'description'	      : description,
	'is_mandatory'	      : is_mandatory,
	'show_member_types'	  : show_member_types,
	'is_custom_addon'	  : is_custom_addon,
	'reg_type'  		  : reg_type,
	'addon_reg_type'      : addon_reg_type,
	'created_at'		  : current_dt

	}
	insert_addons = AddonModel().insert_addons(data,conference_id)
	html_data     = render_template('addons/addon_table.html',addon_data=insert_addons)
	return redirect (url_for('addons.AddonForm',conf_id=conf_id,conf_key=conf_key))



@app.route('/addon_edit',methods = ["GET","POST"])
def AddonEdit():
	addon_id   = request.values.get("addon_id")	
	addon_data = AddonModel().addon_edit(addon_id)
	data = {'edited_data' :addon_data,'msg' : 'success' ,'status' : 1}
	json_data=json.dumps(data,default=str)
	return json.dumps(data,default=str)


@app.route('/update_addon_1',methods = ["POST","GET"])
def UpdateAddon_1():
		now        			  = datetime.now()
		current_dt            = now.strftime("%Y-%m-%d %H:%M:%S")
		addon_type_id		  = request.values.get('addon_type_id') or None
		addon_name	          = request.values.get('addon_name') or None
		display_name	      = request.values.get('display_name') or None
		amount	  			  = request.values.get('amount') or None
		order_by	  		  = request.values.get('order_by') or None
		is_visible			  = request.values.get('is_visible') or None
		start_by			  = request.values.get('start_by') or None
		end_by	           	  = request.values.get('end_by') or None
		user_type_id	  	  = request.values.get('user_type_id[]') or None
		conference_id         = request.values.get('conference_id') or None
		head_count	          = request.values.get('head_count') or None
		description	          = request.values.get('description') or None
		is_mandatory	      = request.values.get('is_mandatory') or None
		is_custom_addon	      = request.values.get('is_custom_addon') or None
		reg_type      	      = request.values.get('reg_type') or None
		addon_reg_type        = request.values.get('addon_reg_type') or None
		show_member_types	  = request.values.getlist('show_member_types[]') or None
		if show_member_types :
			show_member_types = (",".join(show_member_types))

		addon_id              = request.values.get('addon_id')
		
		if addon_id and int(addon_id) > 0 :   

			data={
				'addon_type_id'		  : addon_type_id,
				'addon_name'	      : addon_name,
				'display_name'	      : display_name,
				'amount'	  		  : amount,
				'order_by'            : order_by,
				'is_visible'		  : is_visible,
				'start_by'			  : start_by,
				'end_by'	          : end_by,
				'user_type_id'	  	  : user_type_id,
				'conference_id'       : conference_id,
				'head_count'	      : head_count,
				'description'	      : description,
				'is_mandatory'	      : is_mandatory,
				'show_member_types'	  : show_member_types,
				'is_custom_addon'	  : is_custom_addon,
				'reg_type'			  : reg_type,
				'addon_reg_type'      : addon_reg_type,  
				'updated_at'		  : [current_dt]
				
				}
			update_addon_and_get_data= AddonModel().update_addon_and_get_data(data,addon_id,conference_id)
			html_data = render_template ('addons/addon_table.html',addon_data=update_addon_and_get_data)
			data = {"html_data" : html_data ,"status" : 1 , "msg" : "Updated Successfully"}
		else:
			data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid "}	

		return json.dumps(data,default=str)


@app.route('/delete_addon',methods = ['POST', 'GET'])
def DeleteAddon():
	try:
		addon_id 	  = request.values.get("addon_id")
		conference_id = request.values.get("conference_id")

		delete_and_get_data = AddonModel().delete_addon(addon_id,conference_id)

		html_data = render_template("addons/addon_table.html", addon_data= delete_and_get_data)
		data      = {"deleted_data" : html_data,"msg" : "Deleted Successfully", "status" :1}
		return json.dumps(data,default=str)

	except Exception as e:
		data = {"deleted_data" : "","msg" : str(e), "status" :401}
		return json.dumps(data,default=str)


#08.06.23
#------------------- payment_gateway_index_table--------------

# @app.route('/pg_index',methods =["GET","POST"])
# def PGIndex():

# 	get_pg_index_data = AddonModel().usp_get_pg_details()

# 	for index,value in enumerate(get_pg_index_data):
# 		if index == 0:
# 			PAYUMONEY = value
# 		if index == 1:
# 			CCAVENUE = value
# 		if index == 2:
# 			RAZORPAY = value
# 		if index == 3:
# 			ATOM = value
# 		if index == 4:
# 			payment_gateway = value	

# 	return render_template ('addons/pg_index_table.html',payment_gateway=payment_gateway)
	

#---------------- conference --------------

@app.route('/select_conference',methods =["GET","POST"])
def SelectConference():
	conf_id   = request.values.get('conf_id' ) or None
	conf_data = AddonModel().get_conf_data(conf_id)
	return render_template('addons/conference.html',conf_data=conf_data,conf_id=conf_id)
	
# Purpose : Adding New Mail Template
# Created At : 2023-10-14 10:46 By Ramya
@app.route('/<int:conf_id>/<conf_key>/mail_template_form',methods =["GET","POST"])
def MailTemplateForm(conf_id,conf_key):
	get_conf = BadgeModel().GetConf(conf_id,conf_key)
	if get_conf :
		mail_template_data = AddonModel().get_mail_template_data(conf_id)
		html_data  = render_template("addons/mail_template_table.html", mail_template_data= mail_template_data)
		return render_template('addons/mail_template_form.html',conf_id=conf_id,conf_key=conf_key,html_data=html_data)
	else:	
		return "<h1>Invalid URL </h1>"	



@app.route('/<int:conf_id>/<conf_key>/post_mail_template',methods =["GET","POST"])
def PostMailTemplate(conf_id,conf_key):
	now                   = datetime.now()
	current_dt            = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		conf_ids          = request.values.get('conf_ids',None) or None
		app_type_id       = request.values.get('app_type_id',None) or None
		display_name	  = request.values.get('display_name',None) or None
		template_name     = request.values.get('template_name',None) or None
		is_active         = request.values.get('is_active',None) or None
		is_send_backup    = request.values.get('is_send_backup',None) or None
		subject           = request.values.get('subject',None) or None
		subject_type      = request.values.get('subject_type',None) or None
		mail_content      = request.values.get('mail_content',None) or None
		mail_type         = request.values.get('mail_type',None) or None
		is_update         = request.values.get('is_update') or 0
		mail_template_id  = request.values.get('mail_template_id',None) or None

		if is_update and int(is_update) == 1 : 
			update_data        = {"app_type_id":app_type_id,"conf_ids":conf_ids,"display_name":display_name,"template_name":template_name,"is_active":is_active,"is_send_backup":is_send_backup,"subject":subject,"subject_type":subject_type,"mail_content":mail_content,"mail_type":mail_type,"updated_at":current_dt}
			mail_template_data = AddonModel().update_and_get_data(conf_id,update_data,mail_template_id)
			msg 			   = "Updated Successfully.."
		else :
			insert_data        = {"app_type_id":app_type_id,"conf_ids":conf_ids,"display_name":display_name,"template_name":template_name,"is_active":is_active,"is_send_backup":is_send_backup,"subject":subject,"subject_type":subject_type,"mail_content":mail_content,"mail_type":mail_type,"created_at":current_dt}	
			mail_template_data = AddonModel().insert_and_get_data(conf_id,insert_data)
			msg 			   = "Added Successfully.."

		html_data  = render_template("addons/mail_template_table.html", mail_template_data=mail_template_data)
		data = {"html_data":html_data,"msg" : msg , "status" :1 }
		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
	
	return json.dumps(data,default = str)


@app.route('/<int:conf_id>/<conf_key>/edit_mail_template',methods =["GET","POST"])
def EditMailTemplate(conf_id,conf_key):
	try:
		mail_template_id = request.values.get('mail_template_id')
		edit_data = AddonModel().get_mail_template_by_id(mail_template_id)
		data      = {"edit_data":edit_data, "status" :1 }
		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
	
	return json.dumps(data,default = str)

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