Sindbad~EG File Manager
from flask import request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,render_template_string,Response
from core.model.BadgeModel import BadgeModel
from core.model.FoodSessionModel import FoodSessionModel
from core.model.KitSessionModel import KitSessionModel
from core.model.BadgeUserModel import BadgeUserModel
from core.library.email import EMAIL
from .. import Cryptography,Helper,path_wkhtmltopdf,is_windows_os
# from flask import session, app
from random import randint
import datetime
from datetime import timedelta,date,datetime,time
# import requests, json
from werkzeug.utils import secure_filename
from os.path import join, dirname, realpath
import os
import flask
import string
import boto3, botocore
import webbrowser
import re
from flask import Flask
import barcode
from barcode import EAN8
from barcode import EAN13
from barcode.writer import ImageWriter
# from Code128 import Code128
# from base64 import b64encode
from collections import defaultdict
import math
from core import app
import pyqrcode
import pdfkit
import ast
import io
import os
import base64
from PIL import Image
import boto3, botocore
from botocore.exceptions import ClientError
from core.library.BackgroundTasks import BackgroundTasks
# from flask_qrcode import QRcode
app = Blueprint('badge', __name__)
# JAN 01,2023
@app.route('/<int:conf_id>/<conf_key>/generate_counter_batch', methods = ["GET","POST"])
def GenerateCounterBatch(conf_id,conf_key):
# del_table_name = "delegates_karavali22"
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
set_list = []
total_delegates = 0
array_position = 0
loop_value = -1
total_counter = 0
update_stmt = ""
set_list = ['A','B','C','D','E','F','G','H']
i = -1
count_per_counter = int(request.form['count_per_counter']) or 200 # form data
count_per_set = int(request.form['count_per_set']) or 25 # form data
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
delegate_ids = BadgeModel().AllDelegageIds(conf_id,del_table_name)
if delegate_ids :
total_delegates = len(delegate_ids)
total_counter = int(total_delegates/count_per_counter)
total_counter = total_counter +1
count_per_counter_1 = count_per_counter + 1
# count_per_set = count_per_set +1
# For loop start
for max_inc in range (0,total_counter):
for row in range(1,count_per_counter_1) :
i = i+1
if i < total_delegates:
for index,value in enumerate(delegate_ids) :
if index == i :
loop_value = loop_value+ 1
delegate_no = value["delegate_no"]
break
# loop_value =loop_value +1
if loop_value == count_per_set :
# loop_value = 1
loop_value = 0
array_position = array_position+1
if array_position <len(set_list) :
# print(i,max_inc+1 , set_list[array_position])
# update_stmt_1 = "update "+del_table_name+" set counter ="+str(max_inc+1)+ " , batch = '" +set_list[array_position]+"' , updated_at = '"+curr_dt+"' where delegate_no = " +str(i) + " ;\n"
update_stmt_1 = "update "+del_table_name+" set counter ="+str(max_inc+1)+ " , batch = '" +set_list[array_position]+"' , updated_at = '"+curr_dt+"' where delegate_no = " +str(delegate_no) + " ;\n"
update_stmt = update_stmt + update_stmt_1
else :
array_position = 0
# print(i,max_inc+1 , set_list[array_position])
update_stmt_1 = "update "+del_table_name+" set counter = " +str(max_inc+1)+ " , batch = '" +set_list[array_position]+"' , updated_at = '"+curr_dt+"' where delegate_no = " +str(delegate_no) + " ;\n"
update_stmt = update_stmt + update_stmt_1
array_position = -1
if i%count_per_counter ==0:
pass
else :
i = i+1-1
# For loop end
update_response = BadgeModel().updateCouterBatch(update_stmt )
if update_response == "success" :
flash( "Counter and batch updated .Total updated records : " + str(total_delegates) , "successMsg")
else :
flash(update_response , "errorMsg")
return redirect(url_for('badge_user.RegisteredUsers' ,conf_id=conf_id,conf_key= conf_key))
else :
flash("Delegates records not exist." ,"errorMsg")
return redirect (url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
# @app.route('/<int:conf_id>/<conf_key>/generate_counter_batch', methods = ["GET","POST"])
# def GenerateCounterBatch(conf_id,conf_key):
# batch_list = []
# array_position = 0
# loop_value = 0
# delegate_list_len = 0
# update_stmt = ""
# min_del_len = 0
# del_id_index = 0
# del_id = 1
# now = datetime.now()
# curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
# max_counter_val = request.form['max_counter_val']
# count_per_counter = request.form['count_per_counter']
# if max_counter_val :
# max_counter_val = int(max_counter_val)
# if count_per_counter :
# count_per_counter = int(count_per_counter)
# per_set_val = int(count_per_counter/max_counter_val)
# # create set list
# for row in range(0,max_counter_val) :
# batch_list.append(string.ascii_uppercase[row])
# count_per_counter = count_per_counter + 1
# per_set_val = per_set_val + 1
# get_conf = BadgeModel().GetConf(conf_id,conf_key)
# if get_conf :
# del_table_name = get_conf["del_table_name"]
# delegate_ids = BadgeModel().AllDelegageIds(conf_id,del_table_name)
# else :
# flash("Invalid URL" , "errorMsg")
# return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
# if delegate_ids :
# delegate_list_len = len(delegate_ids)
# else :
# delegate_list_len = 0
# if delegate_list_len > 0 :
# for max_inc in range (0,max_counter_val):
# for row in range(1,count_per_counter) :
# # quotient_val = row//per_set_val
# loop_value =loop_value +1
# if loop_value == per_set_val :
# loop_value = 1
# array_position = array_position+1
# if array_position <len(batch_list) :
# min_del_len = min_del_len +1
# if min_del_len <= delegate_list_len :
# del_id_index = min_del_len-1
# del_id = delegate_ids[del_id_index]["delegate_no"]
# # print(max_inc+1 ,row, batch_list[array_position] , min_del_len)
# update_stmt_1 = "update "+del_table_name+" set counter = " +str(max_inc+1)+ " , batch = '" +batch_list[array_position]+"' , updated_at = '"+curr_dt+"' where delegate_no = " +str(del_id) + " ;\n"
# update_stmt = update_stmt + update_stmt_1
# else :
# array_position = 0
# min_del_len = min_del_len + 1
# if min_del_len <= delegate_list_len :
# del_id_index = min_del_len-1
# del_id = delegate_ids[del_id_index]["delegate_no"]
# # print(row,max_inc+1 , batch_list[array_position] ,min_del_len)
# # update_stmt_1 = "update delegates set counter = " +str(max_inc+1)+ " , batch = '" +batch_list[array_position]+"' ,updated_at = '"+curr_dt+"' where delegate_no = " +str(del_id) + " and conference_id ="+str(conf_id) +" ;\n"
# update_stmt_1 = "update "+del_table_name+" set counter = " +str(max_inc+1)+ " , batch = '" +batch_list[array_position]+"' ,updated_at = '"+curr_dt+"' where delegate_no = " +str(del_id) +" ;\n"
# update_stmt = update_stmt + update_stmt_1
# update_response = BadgeModel().updateCouterBatch(update_stmt )
# if update_response == "success" :
# flash( "Counter and batch updated .Total updated records : " + str(del_id_index+1) , "successMsg")
# else :
# flash(update_response , "errorMsg")
# return redirect(url_for('badge_user.RegisteredUsers' ,conf_id=conf_id,conf_key= conf_key))
# else :
# flash("Delegates records not exist." ,"errorMsg")
# return redirect(url_for('badge_user.RegisteredUsers' ,conf_id=conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/delegate_batch', methods = ["GET","POST"])
def DelegateBatch(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
# del_table_name = badge_user["del_table_name"]
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
get_batch_counter_role = BadgeModel().GetBatchCounterRole(conf_id,del_table_name)
for index,value in enumerate(get_batch_counter_role) :
if index == 0 :
batch_data = value
if index == 1 :
counter_data = value
if index == 2 :
role_data = value
return render_template('badge/delegate_badge.html' ,conf_id= conf_id, conf_key =conf_key,batch_data = batch_data,counter_data = counter_data,role_data = role_data ,conf_name=conf_name,del_table_name=del_table_name)
else :
flash("Invalid login" , "errorMsg")
return redirect(url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key = conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect(url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key = conf_key))
@app.route('/delegate_batch_print', methods = ["POST"])
def DelegateBatchPrint():
if session.get('badge'):
# aa = Helper.getQRCode("https://abs.numerotech.com/view/27/ksos23/FP/103")
# return aa
del_nos_array = []
dic_name = {}
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_key = badge_user["conf_key"]
role = request.values.get("role") or None
counter = request.values.get("counter") or None
batch = request.values.get("batch") or None
del_no_from = request.values.get("del_no_from") or None
del_no_to = request.values.get("del_no_to") or None
qr_code = request.values.get("qr_code") or 0
static_qr_code = request.values.get("static_qr_code") or 0
print_center = request.values.get("print_center") or 0
is_commitment = request.values.get("is_commitment") or None
Delegate_badge_type = request.values.get("badge_type") or 'Delegate Badge'
# is_commitment = int(is_commitment)
print_both_side = request.values.get("print_both_side") or 'No' # set 'Yes' or 'No'
del_table_name = request.values.get("del_table_name") or None
# abinav event use conf_id = 55
badge_photo = request.values.get("badge_photo") or None
badge_size_dim = request.values.get("badge_size") or None
del_no_single = request.values.get("delegate_no") or None
badge_background_img = request.values.get("badge_background") or None
if del_no_single:
del_no_from = del_no_single
del_no_to = del_no_single
badge_size = BadgeModel().Get_badge_size(conf_id,Delegate_badge_type)
if del_no_from and "," in del_no_from :
del_nos = del_no_from
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit=1)
else :
data_for_print = BadgeModel().dataForBadgePrint(conf_id,role,counter,batch,del_no_from,del_no_to,del_table_name,is_commitment)
# if conf_id == 55 and "small_badge" == badge_size_dim and "with_photo" == badge_photo :
# print("data_for_print",data_for_print)
if conf_id == 55 and "small_badge" in badge_size_dim:
pageWidth = "57mm"
pageHeight = "89mm"
badge_size["badge_height"] = "634px"
badge_size["badge_width"] = "408px"
badge_size["padding_top"] = "56.6mm"
badge_size["qr_code_size"] = "135px"
badge_size["display_no_size"] = "1.3rem"
badge_size["photo_width"] = "136px"
badge_size["photo_height"] = "153px"
badge_size["photo_out_height"] = "160px"
badge_size["photo_left"] = "31.35%"
badge_size["name_font_size"] = "2.4rem"
badge_size["name_heigth"] = "80px"
elif conf_id == 55 and "big_badge" in badge_size_dim:
pageWidth = "92.96mm"
pageHeight = "134.96mm"
badge_size["badge_height"] = "637.5px"
badge_size["badge_width"] = "439.5px"
badge_size["padding_top"] = "61mm"
badge_size["qr_code_size"] = "135px"
badge_size["display_no_size"] = "1.3rem"
badge_size["photo_width"] = "145px"
badge_size["photo_height"] = "165px"
badge_size["photo_out_height"] = "169px"
badge_size["photo_left"] = "31.35%"
badge_size["name_font_size"] = "1.8rem"
badge_size["name_heigth"] = "61px"
if data_for_print :
# return "please wait---"
for index,value in enumerate(data_for_print) :
del_no = value["delegate_no"]
dic_name["delegate_no"] = del_no
del_nos_array.append(dic_name["delegate_no"])
value['base64code'] = ''
if value['email']:
value['base64code'] = Helper.base64encode(value['email'])
elif value['mobile']:
value['base64code'] = Helper.base64encode(value['mobile'])
#for commmtment
comm = value["commitment_content"]
# if comm :
# comm = comm.replace("*|" ,'<img src="{{qrcode("')
# comm = comm.replace("|*" ,'",box_size=2)}}">')
# value["commitment_content"] = render_template_string(comm)
# return value["commitment_content"]
# return comm
# else :
# value["commitment_content"] = None
if comm :
# comm = comm.replace("*|" ,'<div class="cm-qrcode" data-qrcode="')
# comm = comm.replace("|*" ,'"> </div>')
comm = comm.replace("*|" ,'<img style="width:70px;" src="data:image/png;base64, {{ Helper.getQRCode(" ')
comm = comm.replace("|*" ,'") }} " />')
value["commitment_content"] = render_template_string(comm)
else :
value["commitment_content"] = None
role = value["role"]
# print(role)
# if conf_id == 46 :
# bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/ss23/Surgical_Strike_2023_Badge.jpg"
# # spot
# # bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/vrsi23/awardees_vrsi23_spot.jpg"
# value["bg_url_front"] = bg_url_front
# value["color_code"] = [0xff , 0xff , 0xff]
# value["font_color"] = "black"
# bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/ss23/Surgical_Strike_2023_Badge.jpg"
# if conf_id == 26 and role in ["" , ""]: # For multiple role
if conf_id == 56 and role in ["DELEGATE" , "ACCOM.DELEGATE","PG"]: # For multiple role
bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/del_acc_del_pg_selsicon24_v1.jpg"
value["bg_url_front"] = bg_url_front
# value["color_code"] = [0xfc, 0xe7, 0xce]
value["color_code"] = [0xff, 0xff, 0xff]
bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/del_acc_pg_back_selsi24_v1.jpg"
elif conf_id == 56 and role in ["FACULTY" , "ORG.CHAIRMAN","ORG.COMMITTEE","ORG.SECRETARY","ORG.JOINT SECRETARY"]: # For multiple role
bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/org_comm_faculty_selsi24_v1.jpg"
value["bg_url_front"] = bg_url_front
# value["color_code"] = [0xf0, 0xe1, 0xed]
value["color_code"] = [0xff, 0xff, 0xff]
bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/org_com_faculty_back_selsicon24_v1.jpg"
elif conf_id == 56 and "TRADE" in role:
bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/trade_selsi24_v1.jpg"
value["bg_url_front"] = bg_url_front
# value["color_code"] = [0xf0, 0xe1, 0xed]
value["color_code"] = [0xff, 0xff, 0xff]
bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/trade_selsi24_v1.jpg"
# elif conf_id == 56 and role in ["VOLUNTEER" ,"EVENT CO ORDINATOR"]: # For multiple role
# bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/others_selsi24_v1.jpg"
# value["bg_url_front"] = bg_url_front
# # value["color_code"] = [0xf0, 0xe1, 0xed]
# value["color_code"] = [0xff, 0xff, 0xff]
# bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/trade_selsi24_v1.jpg"
else :
# return "Else block " + role
bg_url_front = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/others_selsi24_v1.jpg"
value["bg_url_front"] = bg_url_front
# value["color_code"] = [0xe6, 0xdf, 0xed]
value["color_code"] = [0xff , 0xff , 0xff]
bg_url_commit_image = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/selsicon24/others_selsi24_v1.jpg"
if value["commitment_content"] :
value["bg_url_back"] = bg_url_commit_image
else :
value["bg_url_back"] = bg_url_front
if request.values.get("print_spot"):
badge_photo = "with_photo"
value["bg_url_front"] = ""
badge_size["badge_height"] = "13cm"
badge_size["badge_width"] = "9.22cm"
badge_size["padding_top"] = "44.5mm"
badge_size["qr_code_size"] = "111px"
badge_size["display_no_size"] = "1rem"
badge_size["photo_width"] = "100px"
badge_size["photo_height"] = "120px"
badge_size["photo_out_height"] = "127px"
badge_size["photo_left"] = "33%"
badge_size["name_font_size"] = "1.5rem"
badge_size["name_heigth"] = "55px"
# if value["commitment_content"] :
# value["bg_url_back"] = bg_url_commit_image
# else :
# value["bg_url_back"] = bg_url_front
static_links = []
# if int(static_qr_code) == 1:
# static_links.append({'name':'Download App','link':'https://boaeyeadvance2023.com/mobile-app'})
# static_links.append({'name':'Conference Website','link':'https://boaeyeadvance2023.com'})
# static_links.append({'name':'Scientific Program','link':'https://delegateapp.s3.ap-southeast-1.amazonaws.com/phacoref_sci_program.pdf'})
# static_links.append({'name':'Attendance Certificate','link':'https://phacorefcertificates.numerotech.com/22/phacoref23'})
# static_links.append({'name':'Raise a Query','link':'https://conference.numerotech.com/1/iages23/query'})
# value["static_qr_code"] = '<div class="cm-qrcode" data-qrcode="'
# badge_size["qr_code_margin_left"] = "10px"
# badge_size["qr_code_margin_top"] = "20px"
# badge_size["padding_top"] = "100px"
# badge_size["qr_code_size"] = "200px"
# badge_size["name_font_size"] = "30px"
if data_for_print :
if conf_id in [40,36] :
# .html
return render_template('badge/delegate_badge_print_download_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str )
# return render_template('badge/delegate_badge_print_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center)
if conf_id in [26] :
# return "TESTING"
# color_badge_both_side_same.html for download pdf
html = render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# html = render_template('badge/delegate_badge_print_sztnaoi23.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# vrsi23_color_print_both_side.html
# html = render_template('badge/delegate_badge_print_sztnaoi23.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# return html
if conf_id in [55,56] :
html = render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
#html = render_template('badge/delegate_badge_print_biff24.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str, badge_size=badge_size,badge_photo=badge_photo )
# return html
if request.values.get("print") or request.values.get("print_spot"):
return html
config = None
pageWidth = "95mm"
pageHeight = "150mm"
cert_name = "badge_for_print.pdf"
options = {
'dpi': 300,
# 'page-size': 'A4',
'page-height': pageHeight ,
'page-width': pageWidth ,
'margin-top': '0.0in',
'margin-right': '0.0in',
'margin-bottom': '0.0in',
'margin-left': '0.0in',
"enable-local-file-access": ""
# 'enable-javascript': True,
# 'javascript-delay': 5000,
# 'no-stop-slow-scripts': 'true',
# 'encoding': 'UTF-8'
}
if is_windows_os == 1:
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
else:
config = None
return Response(pdfkit.from_string(html, options=options,configuration=config),
mimetype="application/pdf",
headers={"Content-Disposition":
"attachment;filename="+str(cert_name)+""})
return render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
#delegate_badge_print_frontback_same_content.html, delegate_badge_print_qronly_orgcomm.html , sztnaoi delegate_badge_print_qronly.html,delegate_badge_print_sztnaoi23.html,delegate_badge_print_phacof23
# return render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,conf_id=conf_id,static_links=static_links,len =len)
else :
flash("record not exists.", "errorMsg")
return redirect(url_for('badge.DelegateBatch' , conf_id= conf_id,conf_key =conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect(url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key = conf_key))
@app.route('/delegate_batch_print_spot', methods = ["POST"])
def DelegateBatchPrintSpot():
if session.get('badge'):
del_nos_array = []
dic_name = {}
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_key = badge_user["conf_key"]
role = request.values.get("role") or None
counter = request.values.get("counter") or None
batch = request.values.get("batch") or None
del_no_from = request.values.get("del_no_from") or None
del_no_to = request.values.get("del_no_to") or None
qr_code = request.values.get("qr_code") or 0
static_qr_code = request.values.get("static_qr_code") or 0
print_center = request.values.get("print_center") or 0
is_commitment = request.values.get("is_commitment") or None
Delegate_badge_type = request.values.get("badge_type") or 'Delegate Badge'
# is_commitment = int(is_commitment)
print_both_side = request.values.get("print_both_side") or 'No' # set 'Yes' or 'No'
del_table_name = request.values.get("del_table_name") or None
# abinav event use conf_id = 55
badge_photo = request.values.get("badge_photo") or None
badge_size_dim = request.values.get("badge_size") or None
del_no_single = request.values.get("delegate_no") or None
badge_background_img = request.values.get("badge_background") or None
file_name = request.values.get('file_name',None) or None
image_data = request.values.get('image_data',None) or None
full_name = request.values.get('full_name',None) or None
email = request.values.get('email',None) or None
mobile = request.values.get('mobile',None) or None
role = request.values.get('role',None) or None
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
del_result = BadgeModel().usp_gen_delegate_no_with_spot_data(full_name,email,mobile,role)
if del_result:
del_no_single = del_result[0].get('delegate_no')
file_name = None
if del_no_single:
del_no_from = str(del_no_single)
del_no_to = str(del_no_single)
file_name = str(del_no_single)+".png"
if file_name and image_data:
file_upload = AwsFileUpload(del_no_single,file_name,image_data)
else:
file_upload = None
if file_upload :
file_upload = ast.literal_eval(file_upload)
file_upload_msg = file_upload["msg"]
file_upload_status = file_upload["status"]
if file_upload_status == 1 :
image_path = file_upload["image_path"] or None
image_name = file_upload["image_name"] or None
update_stmt = "update "+ del_table_name + " set updated_at = '"+current_dt+"' , image_name = '"+str(image_name)+"' , image_path = '"+str(image_path)+"' where delegate_no = " + str(del_no_single) + " ;"
updated_data = BadgeModel().UpdateDelegatePhoto(update_stmt,del_no_single,conf_id)
badge_size = BadgeModel().Get_badge_size(conf_id,Delegate_badge_type)
if del_no_from and "," in del_no_from :
del_nos = del_no_from
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit=1)
else :
data_for_print = BadgeModel().dataForBadgePrint(conf_id,role,counter,batch,del_no_from,del_no_to,del_table_name,is_commitment)
# if conf_id == 55 and "small_badge" == badge_size_dim and "with_photo" == badge_photo :
if data_for_print :
# return "please wait---"
for index,value in enumerate(data_for_print) :
del_no = value["delegate_no"]
dic_name["delegate_no"] = del_no
del_nos_array.append(dic_name["delegate_no"])
value['base64code'] = ''
if value['email']:
value['base64code'] = Helper.base64encode(value['email'])
elif value['mobile']:
value['base64code'] = Helper.base64encode(value['mobile'])
#for commmtment
comm = value["commitment_content"]
# if comm :
# comm = comm.replace("*|" ,'<img src="{{qrcode("')
# comm = comm.replace("|*" ,'",box_size=2)}}">')
# value["commitment_content"] = render_template_string(comm)
# return value["commitment_content"]
# return comm
# else :
# value["commitment_content"] = None
if comm :
# comm = comm.replace("*|" ,'<div class="cm-qrcode" data-qrcode="')
# comm = comm.replace("|*" ,'"> </div>')
comm = comm.replace("*|" ,'<img style="width:70px;" src="data:image/png;base64, {{ Helper.getQRCode(" ')
comm = comm.replace("|*" ,'") }} " />')
value["commitment_content"] = render_template_string(comm)
else :
value["commitment_content"] = None
role = value["role"]
if request.values.get("print_spot"):
badge_photo = "with_photo"
value["bg_url_front"] = ""
value["color_code"] = [0xff , 0xff , 0xff]
badge_size["badge_height"] = "13cm"
badge_size["badge_width"] = "9.22cm"
badge_size["padding_top"] = "44.5mm"
badge_size["qr_code_size"] = "111px"
badge_size["display_no_size"] = "1rem"
badge_size["photo_width"] = "100px"
badge_size["photo_height"] = "120px"
badge_size["photo_out_height"] = "127px"
badge_size["photo_left"] = "33%"
badge_size["name_font_size"] = "1.5rem"
badge_size["name_heigth"] = "55px"
# if value["commitment_content"] :
# value["bg_url_back"] = bg_url_commit_image
# else :
# value["bg_url_back"] = bg_url_front
static_links = []
# if int(static_qr_code) == 1:
# static_links.append({'name':'Download App','link':'https://boaeyeadvance2023.com/mobile-app'})
# static_links.append({'name':'Conference Website','link':'https://boaeyeadvance2023.com'})
# static_links.append({'name':'Scientific Program','link':'https://delegateapp.s3.ap-southeast-1.amazonaws.com/phacoref_sci_program.pdf'})
# static_links.append({'name':'Attendance Certificate','link':'https://phacorefcertificates.numerotech.com/22/phacoref23'})
# static_links.append({'name':'Raise a Query','link':'https://conference.numerotech.com/1/iages23/query'})
# value["static_qr_code"] = '<div class="cm-qrcode" data-qrcode="'
# badge_size["qr_code_margin_left"] = "10px"
# badge_size["qr_code_margin_top"] = "20px"
# badge_size["padding_top"] = "100px"
# badge_size["qr_code_size"] = "200px"
# badge_size["name_font_size"] = "30px"
if data_for_print :
if conf_id in [40,36] :
# .html
return render_template('badge/delegate_badge_print_download_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str )
# return render_template('badge/delegate_badge_print_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center)
if conf_id in [26] :
# return "TESTING"
# color_badge_both_side_same.html for download pdf
html = render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# html = render_template('badge/delegate_badge_print_sztnaoi23.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# vrsi23_color_print_both_side.html
# html = render_template('badge/delegate_badge_print_sztnaoi23.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
# return html
if conf_id in [55] :
html = render_template('badge/delegate_badge_print_biff24.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str, badge_size=badge_size,badge_photo=badge_photo )
# return html
if request.values.get("print") or request.values.get("print_spot"):
return html
config = None
# pageWidth = "95mm"
# pageHeight = "150mm"
cert_name = "badge_for_print.pdf"
options = {
'dpi': 300,
# 'page-size': 'A4',
'page-height': pageHeight if pageHeight else '134mm',
'page-width': pageWidth if pageWidth else '189mm',
'margin-top': '0.0in',
'margin-right': '0.0in',
'margin-bottom': '0.0in',
'margin-left': '0.0in',
"enable-local-file-access": ""
# 'enable-javascript': True,
# 'javascript-delay': 5000,
# 'no-stop-slow-scripts': 'true',
# 'encoding': 'UTF-8'
}
if is_windows_os == 1:
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
else:
config = None
return Response(pdfkit.from_string(html, options=options,configuration=config),
mimetype="application/pdf",
headers={"Content-Disposition":
"attachment;filename="+str(cert_name)+""})
return render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
#delegate_badge_print_frontback_same_content.html, delegate_badge_print_qronly_orgcomm.html , sztnaoi delegate_badge_print_qronly.html,delegate_badge_print_sztnaoi23.html,delegate_badge_print_phacof23
# return render_template('badge/color_badge_both_side_same.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,conf_id=conf_id,static_links=static_links,len =len)
else :
flash("record not exists.", "errorMsg")
return redirect(url_for('badge.DelegateBatch' , conf_id= conf_id,conf_key =conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect(url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key = conf_key))
@app.route('/<int:conf_id>/<conf_key>/delegate_batch_print_from_reg', methods = ["GET","POST"])
def DelegateBatchPrintFromReg(conf_id,conf_key):
static_qr_code =1
del_nos_array = []
dic_name = {}
role = request.values.get("role") or None
counter = request.values.get("counter") or None
batch = request.values.get("batch") or None
is_kit = request.values.get("is_kit") or 1 # this line added by ganesan on Nov 21 2022
static_qr_code = request.values.get("static_qr_code") or 1
print_center = request.values.get("print_center") or 1
del_nos = request.values.get("del_nos") or None
qr_code = request.values.get("qr_code") or 1
is_commitment = request.values.get("is_commitment") or 1
is_commitment = int(is_commitment)
# print_both_side = request.values.get("print_both_side") or 'Yes'
print_both_side = request.values.get("print_both_side") or 'No'
# del_table_name = request.values.get("del_table_name") or None
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
kc_del_sess_tab = get_conf["kc_del_session_table_name"]
fc_del_sess_tab = get_conf["fc_del_session_table_name"]
# return (kc_del_sess_tab + fc_del_sess_tab)
# call usp_delegate_session_map(9,5001,'kc_sessions','kc_delegates_sessions_irc22' );
if is_kit and int(is_kit) > 0 :
session_table = "kc_sessions"
del_ses_table = kc_del_sess_tab
else :
session_table = "fc_sessions"
del_ses_table = fc_del_sess_tab
del_id_int = int(del_nos)
#insert_session = BadgeModel().sessionMap(conf_id,del_id_int,session_table,del_ses_table)
Delegate_badge_type = request.values.get("badge_type") or 'Delegate Badge'
badge_size = BadgeModel().Get_badge_size(conf_id,Delegate_badge_type)
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit)
# json_data = json.dumps(data_for_print,default=str)
# return json_data
if data_for_print :
for index,value in enumerate(data_for_print) :
del_no = value["delegate_no"]
dic_name["delegate_no"] = del_no
del_nos_array.append(dic_name["delegate_no"])
value['base64code'] = ''
if value['email']:
value['base64code'] = Helper.base64encode(value['email'])
elif value['mobile']:
value['base64code'] = Helper.base64encode(value['mobile'])
#for commmtment
comm = value["commitment_content"]
# if comm :
# comm = comm.replace("*|" ,'<img src="{{qrcode("')
# comm = comm.replace("|*" ,'",box_size=2)}}">')
# value["commitment_content"] = render_template_string(comm)
# return value["commitment_content"]
# return comm
# else :
# value["commitment_content"] = None
if comm :
comm = comm.replace("*|" ,'<div class="cm-qrcode" data-qrcode="')
comm = comm.replace("|*" ,'"> </div>')
value["commitment_content"] = render_template_string(comm)
else :
value["commitment_content"] = None
if data_for_print :
qr_code = 1
static_links = []
if int(static_qr_code) == 1:
# static_links.append({'name':'Conference Website','link':'https://boaeyeadvance2023.com'})
# static_links.append({'name':'Download App','link':'https://boaeyeadvance2023.com/mobile-app'})
# static_links.append({'name':'Scientific Program','link':'https://conference.numerotech.com/static/boa23/program_book.pdf'})
# static_links.append({'name':'Download Certificate','link':'https://certificates.boaeyeadvance2023.com/18/boa23'})
static_links.append({'name':'Scientific Program','link':'https://delegateapp.s3.ap-southeast-1.amazonaws.com/phacoref_sci_program.pdf'})
static_links.append({'name':'Attendance Certificate','link':'https://phacorefcertificates.numerotech.com/22/phacoref23'})
# return render_template('badge/delegate_badge_print.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,conf_id =conf_id,static_links= static_links)
# return render_template('badge/delegate_badge_print_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,conf_id)
# delegate_badge_print_qronly
return render_template('badge/delegate_badge_print_frontback_same_content.html',int=int,len=len, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,conf_id=conf_id,static_links=static_links,badge_size=badge_size)
# return render_template('badge/delegate_badge_print_qronly_vrsi22.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment)
else :
flash("record not exists.", "errorMsg")
return redirect(url_for('badge.DelegateBatch' , conf_id= conf_id,conf_key =conf_key))
# Photo badge start
@app.route('/<int:conf_id>/<conf_key>/delegate_batch_print_with_photo', methods = ["GET","POST"])
def DelegateBatchPrintWithPhoto(conf_id,conf_key):
if session.get('badge'):
del_nos_array = []
dic_name = {}
delegate_no = request.values.get("delegate_no") or 0
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_key = badge_user["conf_key"]
del_table_name = badge_user["del_table_name"]
role = request.values.get("role") or None
counter = None
batch = None
del_no_from = delegate_no
del_no_to = delegate_no
qr_code = 0
static_qr_code = 0
print_center = 1
is_commitment = None
Delegate_badge_type = "Delegate Badge"
print_both_side = request.values.get("print_both_side") or 'Yes'
# return "testing"
badge_size = BadgeModel().Get_badge_size(conf_id,Delegate_badge_type)
if del_no_from and "," in del_no_from :
del_nos = del_no_from
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit=1)
else :
data_for_print = BadgeModel().dataForBadgePrint(conf_id,role,counter,batch,del_no_from,del_no_to,del_table_name,is_commitment)
if data_for_print :
# return "please wait---"
for index,value in enumerate(data_for_print) :
del_no = value["delegate_no"]
dic_name["delegate_no"] = del_no
del_nos_array.append(dic_name["delegate_no"])
value['base64code'] = ''
if value['email']:
value['base64code'] = Helper.base64encode(value['email'])
elif value['mobile']:
value['base64code'] = Helper.base64encode(value['mobile'])
#for commmtment
comm = value["commitment_content"]
if comm :
comm = comm.replace("*|" ,'<div class="cm-qrcode" data-qrcode="')
comm = comm.replace("|*" ,'"> </div>')
value["commitment_content"] = render_template_string(comm)
else :
value["commitment_content"] = None
static_links = []
if data_for_print :
print(badge_size)
if conf_id in [40,36,45,55,8] :
# .html
return render_template('badge/delegate_badge_print_biff24.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str ,badge_size=badge_size,len=len)
# return render_template('badge/barcode_download_with_photo.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center ,str=str ,badge_size=badge_size,len=len)
# return render_template('badge/delegate_badge_print_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center)
if role and role in ["TRADE","VOLUNTEER","AV - TEAM" , "SUPPORT - IT","EXHIBITOR","BANQUET - DAY 1","BANQUET - DAY 2"]:
# delegate_badge_print_qronly_orgcomm.html , sztnaoi delegate_badge_print_qronly.html,delegate_badge_print_sztnaoi23.html,delegate_badge_print_phacof23
return render_template('badge/delegate_badge_print_qronly.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
else :
return render_template('badge/delegate_badge_print_qronly.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,badge_size=badge_size,len =len)
return render_template('badge/delegate_badge_print_qronly.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,print_center=print_center,conf_id=conf_id,static_links=static_links,len =len)
else :
flash("record not exists.", "errorMsg")
return redirect(url_for('badge.DelegateBatch' , conf_id= conf_id,conf_key =conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect(url_for('badge_user.RegisteredUsers',conf_id=conf_id ,conf_key = conf_key))
# End
###### exhibitor reg start
@app.route('/<int:conf_id>/<conf_key>/exhibitor_batch_print_from_reg', methods = ["GET","POST"])
def ExhibitorBatchPrintFromReg(conf_id,conf_key):
static_qr_code =1
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
del_nos_array = []
dic_name = {}
role = request.values.get("role") or None
counter = request.values.get("counter") or None
batch = request.values.get("batch") or None
is_kit = request.values.get("is_kit") or 1 # this line added by ganesan on Nov 21 2022
del_nos = request.values.get("del_nos") or None
qr_code = request.values.get("qr_code") or 0
is_commitment = request.values.get("is_commitment") or 1
is_exhibitor = request.values.get("is_exhibitor") or 0
is_commitment = int(is_commitment)
if is_exhibitor :
is_exhibitor = int(is_exhibitor)
# updateExhibitor
print_both_side = request.values.get("print_both_side") or 'Yes'
# del_table_name = request.values.get("del_table_name") or None
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
kc_del_sess_tab = get_conf["kc_del_session_table_name"]
fc_del_sess_tab = get_conf["fc_del_session_table_name"]
if is_exhibitor and is_exhibitor > 0 :
pass
update_stmt = "update " + del_table_name + " set is_exhibitor = 1 , updated_at = '"+curr_dt+"' where delegate_no = " + str(del_nos) + " ;"
BadgeModel().updateExhibitor(update_stmt)
# return (kc_del_sess_tab + fc_del_sess_tab)
# call usp_delegate_session_map(9,5001,'kc_sessions','kc_delegates_sessions_irc22' );
if is_kit and int(is_kit) > 0 :
session_table = "kc_sessions"
del_ses_table = kc_del_sess_tab
else :
session_table = "fc_sessions"
del_ses_table = fc_del_sess_tab
del_id_int = int(del_nos)
# insert_session = BadgeModel().sessionMap(conf_id,del_id_int,session_table,del_ses_table)
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit)
if data_for_print :
for index,value in enumerate(data_for_print) :
del_no = value["delegate_no"]
dic_name["delegate_no"] = del_no
del_nos_array.append(dic_name["delegate_no"])
if data_for_print :
qr_code = 0
static_links = []
if int(static_qr_code) == 1:
static_links.append({'name':'Conference Website','link':'https://boaeyeadvance2023.com'})
static_links.append({'name':'Download App','link':'https://boaeyeadvance2023.com/mobile-app'})
static_links.append({'name':'Scientific Program','link':'https://conference.numerotech.com/static/boa23/program_book.pdf'})
static_links.append({'name':'Download Certificate','link':'https://certificates.boaeyeadvance2023.com/18/boa23'})
return render_template('badge/delegate_badge_print.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,conf_id =conf_id,static_links= static_links)
#return render_template('badge/delegate_badge_print_barcode.html',int=int, data_for_print =data_for_print,del_nos_array=del_nos_array ,qr_code=qr_code,print_both_side=print_both_side,is_commitment=is_commitment,conf_id)
else :
flash("record not exists.", "errorMsg")
return redirect(url_for('badge.DelegateBatch' , conf_id= conf_id,conf_key =conf_key))
##### exhibitor reg end
@app.route('/<int:conf_id>/<conf_key>/empty_badge', methods = ["GET","POST"])
def EmptyBatch(conf_id,conf_key):
try:
if session.get('badge'):
badge_user = session.get('badge')
conf_name = badge_user["conf_name"]
return render_template('badge/empty_badge.html' ,conf_id= conf_id, conf_key =conf_key,conf_name=conf_name)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
except Exception as e:
raise e
flash(str(e) ,"errorMsg")
@app.route('/<int:conf_id>/<conf_key>/empty_badge_print', methods = ["POST"])
def EmptyBatchPrint(conf_id,conf_key):
try:
del_nos_array = []
dic_name = {}
print_both_side = 'Yes'
badge_user = request.values.get("badge_user") or None
role = request.values.get("role") or None
company_name = request.values.get("company_name") or None
region = request.values.get("region") or None
del_no_from = request.values.get("del_no_from") or None
del_no_to = request.values.get("del_no_to") or None
qr_code = request.values.get("qr_code") or None
del_no_prefix= request.values.get("del_no_prefix") or None
is_food_coupon = request.values.get("is_food_coupon") or 0
Delegate_badge_type = request.values.get("badge_type") or None
badge_size = BadgeModel().Get_badge_size(conf_id,Delegate_badge_type)
data = {'badge_user' : badge_user,'role' : role,'company_name':company_name ,'region' : region,'del_no_from':del_no_from,'del_no_to':del_no_to}
dic_name["del_no_from"] = del_no_from
del_no_from = int(del_no_from)
dic_name["del_no_to"] = del_no_to
del_no_to = int(del_no_to)
del_no_to = del_no_to + 1
for del_no in range(del_no_from,del_no_to):
del_nos_array.append(del_no)
# return str(del_nos_array)
if is_food_coupon and int(is_food_coupon) > 0 :
return render_template('badge/empty_badge_print_smallsize_barcode.html' ,conf_id = conf_id, conf_key = conf_key, data = data,del_nos_array = del_nos_array,print_both_side=print_both_side)
else :
return render_template('badge/empty_badge_print_qronly.html' ,conf_id = conf_id, conf_key = conf_key, data = data,del_nos_array = del_nos_array,print_both_side=print_both_side,badge_size=badge_size)
# return render_template('badge/empty_badge_print.html' ,conf_id = conf_id, conf_key = conf_key, data = data,del_nos_array = del_nos_array,print_both_side=print_both_side)
except Exception as e:
flash(str(e) ,"errorMsg")
return redirect(url_for('badge.EmptyBatch',conf_id=conf_id ,conf_key = conf_key))
@app.route('/<int:conf_id>/<conf_key>/delegate_list', methods = ["GET","POST"])
def DelegateList(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
get_batch_counter_role =BadgeModel().GetBatchCounterRole(conf_id,del_table_name)
for index,value in enumerate(get_batch_counter_role) :
if index == 0 :
batch_data = value
if index == 1 :
counter_data = value
if index == 2 :
role_data = value
return render_template('badge/delegate_list.html' ,conf_id= conf_id, conf_key =conf_key,batch_data = batch_data,counter_data = counter_data,role_data = role_data,conf_name=conf_name )
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/delegate_list_print', methods = ["GET","POST"])
def DelegateListPirnt():
conf_id = request.values.get("conf_id") or None
conf_key = request.values.get("conf_key") or None
if session.get('badge'):
count_per_set = 25
# count_per_set = 10
del_no_from = None
del_no_to = None
badge_user = session.get('badge')
conf_id = request.values.get("conf_id") or None
conf_id = int(conf_id) if conf_id else conf_id
conf_key = request.values.get("conf_key") or None
role = request.values.get("role") or None
counter = request.values.get("counter") or None
batch = request.values.get("batch") or None
print_title = request.values.get("print_title") or None
attendance_col = request.values.get("attendance_col") or None
del_no_from = request.values.get("del_no_from") or None
del_no_to = request.values.get("del_no_to") or None
'''
if del_no_from :
del_no_from = int(del_no_from)
if del_no_to :
del_no_to = int(del_no_to)
'''
total_conf_days = 1 # this is generally conference 3 days only
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
# start dec 1,2023
if del_no_from and "," in del_no_from :
del_nos = del_no_from
data_for_print = BadgeModel().dataForBadgePrintDelNos(conf_id,role,counter,batch,del_nos,del_table_name,is_kit=1)
else :
is_commitment = None
data_for_print = BadgeModel().dataForBadgePrint(conf_id,role,counter,batch,del_no_from,del_no_to,del_table_name,is_commitment)
# end
# data_for_print = BadgeModel().dataForBadgePrint(conf_id,role,counter,batch,del_no_from,del_no_to,del_table_name)
# total_records = len(data_for_print)
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
conf_start_time = get_conf["conf_start_time"]
conf_end_time = get_conf["conf_end_time"]
start_date = conf_start_time.date()
end_date = conf_end_time.date()
delta = end_date - start_date
total_conf_days = delta.days+1
if attendance_col :
if "One" in attendance_col :
total_conf_days = 1
else :
pass
else :
total_conf_days = 1
list_of_dict = []
i = 0
if data_for_print :
total_records = len(data_for_print)
s = data_for_print
a = [s[count_per_set*i:count_per_set*i+count_per_set] for i in range(0,math.ceil(len(s)/count_per_set))]
if role and role in ["Trade Delegate" , "Crew","Volunteer" ,"Associate Delegate"] :
return render_template('badge/delegate_list_print_not_delegates.html',conf_id=conf_id, conf_key =conf_key,data_for_print = a ,total_conf_days=total_conf_days,print_title=print_title)
else :
return render_template('badge/delegate_list_print.html',conf_id=conf_id, conf_key =conf_key,data_for_print = a ,total_conf_days=total_conf_days,print_title=print_title)
else :
flash("Delegate records not exists", "errorMsg")
return redirect(url_for('badge.DelegateList' , conf_id= conf_id,conf_key = conf_key))
else :
flash("Sessin Expired", "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/empty_list', methods = ["GET","POST"])
def EmptyList(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
return render_template('badge/empty_list.html' ,conf_id= conf_id, conf_key =conf_key,conf_name=conf_name)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/badge_print_settings', methods = ["GET","POST"])
def BadgePrintSettings(conf_id,conf_key):
get_conf = BadgeModel().GetConf(conf_id,conf_key)
return render_template('badge/badge_print_settings.html' ,conf_id= conf_id, conf_key =conf_key,conf_data = get_conf)
# @app.route('/<int:conf_id>/<conf_key>/badge_print_settings_table', methods = ["GET","POST"])
# def BadgePrintSettingsTable(conf_id,conf_key):
# role = request.values.get("role")
# city = request.values.get("city")
# state = request.values.get("state")
# counter = request.values.get("counter")
# counter_set = request.values.get("counter_set")
# data = {'role':role, 'city':city ,'state':state ,'counter':counter ,'counter_set':counter_set}
# return render_template('badge/badge_print_settings_table.html' ,conf_id= conf_id, conf_key =conf_key,data=data)
######
@app.route('/<int:conf_id>/<conf_key>/session_map', methods = ["GET","POST"])
def SessionMap(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
get_batch_counter_role =BadgeModel().GetBatchCounterRole(conf_id,del_table_name)
for index,value in enumerate(get_batch_counter_role) :
if index == 0 :
batch_data = value
if index == 1 :
counter_data = value
if index == 2 :
role_data = value
return render_template('badge/session_map.html' ,conf_id= conf_id, conf_key =conf_key,batch_data = batch_data,counter_data = counter_data,role_data = role_data,conf_name=conf_name )
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/post_session_map', methods = ["GET","POST"])
def PostSessionMap():
conf_id = request.values.get("conf_id")
conf_key = request.values.get("conf_key")
session_id = request.values.get("session_id")
roles = request.form.getlist("role")
# check already session map if already mapped return with flash message
# else get all delegate number using role with in query
# step 2 :
# generate insert query and execute the query with session_id,delegate_number in delegates_sessions_table
if roles :
for role in roles :
pass
# data = {'role':role, 'city':city ,'state':state ,'counter':counter ,'counter_set':counter_set}
return render_template('badge/badge_print_settings_table.html' ,conf_id= conf_id, conf_key =conf_key,data=data)
# empty records min and max start
@app.route('/<int:conf_id>/<conf_key>/get_delgate_numbers_by_role', methods = ["GET","POST"])
def GetDelegateNumbersByRole(conf_id,conf_key):
role_max_value = 0
role_min_value = 0
try:
role = request.values.get("role") or None
del_table_name = request.values.get("del_table_name") or None
role_min_max_value = BadgeModel().GetDelMaxNumberMinNumber(del_table_name,role,conf_id)
if role_min_max_value :
role_max_value = role_min_max_value['max_del_num']
role_min_value = role_min_max_value['min_del_num']
data = { "role_max_value":role_max_value,"role_min_value":role_min_value,"msg" : "" ,"status" : 1}
return json.dumps(data,default=str)
else:
data = {"role_max_value":role_max_value,"role_min_value" : role_min_value ,"msg" : "Record(s) does not exists." ,"status" : 2}
return json.dumps(data,default=str)
except Exception as e:
data = { "role_max_value" :role_max_value ,"role_min_value": role_min_value,"msg" : str(e) ,"status" : 401}
return json.dumps(data,default=str)
@app.route('/<int:conf_id>/<conf_key>/empty_records', methods = ["GET","POST"])
def EmptyRecords(conf_id,conf_key):
if session.get('badge'):
image_url = None
file_name = None
file_path = None
bs_id = 0
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
get_role_data = BadgeModel().getRole(conf_id)
badge_setting_data = BadgeModel().getfilename_and_path(conf_id)
if badge_setting_data :
file_name = badge_setting_data["file_name"]
file_path = badge_setting_data["file_path"]
bs_id = badge_setting_data["bs_id"]
if file_name and file_path :
image_url = file_path+"/"+file_name
return render_template('badge/empty_records.html',bs_id=bs_id,del_table_name=del_table_name ,conf_id=conf_id ,conf_key=conf_key, b_role=get_role_data,conf_name=conf_name,image_url=image_url)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
# --------------
@app.route('/post_empty_records', methods = ["GET","POST"])
def PostEmptyRecords():
insert_stmt = ""
count = 0
role_min_value = 0
role_max_value = 0
if request.method == "POST":
del_table_name = request.form['del_table_name']
del_no_from = request.form['del_no_from']
del_no_to = request.form['del_no_to']
full_name = request.form['full_name']
role = request.form['role']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
del_no_from = int(del_no_from) if del_no_from else del_no_from
del_no_to = int(del_no_to) if del_no_to else del_no_to
if del_no_to < del_no_from :
flash("Please enter valid delegate number to insert. 'To' delegate number must be greater than 'From' delegate number" ,"errorMsg")
return redirect (url_for('badge.EmptyRecords',conf_id=conf_id ,conf_key=conf_key))
already_exists_data = BadgeModel().get_delegate_already_exists(del_table_name,del_no_from,del_no_to,conf_id)
if already_exists_data:
# role_max_value = already_exists_data['max_del_num']
# role_min_value = already_exists_data['min_del_num']
# msg = "Already existing minumum delegate number :" + str(role_min_value) + " and maximum delegate number is " + str( role_max_value) + " for role ("+role+ ") .<br/> Your are entered delegate number from " + str(del_no_from) + " to " + str(del_no_to)+". "
errormsg = "Delegate number "+str(del_no_from)+" to "+str(del_no_to) + " Records already exists";
flash(errormsg ,"errorMsg")
return redirect (url_for('badge.EmptyRecords',conf_id=conf_id ,conf_key=conf_key))
else:
if full_name:
for i in range(del_no_from,del_no_to+1):
insert_stmt= "insert into "+del_table_name+"(delegate_no,conf_id,full_name,role) values("+str(i)+","+str(conf_id) +",'" +str(full_name)+"','"+str(role)+"');"
# insert_stmt= "insert into "+del_table_name+"(delegate_no,full_name,role) values("+str(i)+",'"+str(full_name)+"','"+str(role)+"');"
count=count+1
insert_records = BadgeModel().insertEmptyRecords(insert_stmt)
else:
for i in range(del_no_from,del_no_to+1):
# insert_stmt= "insert into "+del_table_name+"(delegate_no,role) values("+str(i)+",'"+str(role)+"');"
insert_stmt= "insert into "+del_table_name+"(delegate_no,conf_id,role) values("+str(i)+","+str(conf_id) +",'" +str(role)+"');"
count=count+1
insert_records = BadgeModel().insertEmptyRecords(insert_stmt)
if insert_records=="success":
msg = count
flash(str(msg) +" Records Inserted succesfully " ,"successMsg")
return redirect (url_for('badge.EmptyRecords',conf_id=conf_id ,conf_key=conf_key,del_table_name=del_table_name))
else:
msg = insert_records
flash(msg ,"errorMsg")
return redirect (url_for('badge.EmptyRecords',conf_id=conf_id ,conf_key=conf_key,del_table_name=del_table_name))
# empty records min and max start
@app.route('/empty_list_print', methods = ["GET","POST"])
def EmptyListPirnt():
if session.get('badge'):
count_per_set = 25
total_conf_days = 1
data_for_print = []
del_nos = {}
badge_user = session.get('badge')
conf_id = request.values.get("conf_id") or None
conf_key = request.values.get("conf_key") or None
conf_id = int(conf_id) if conf_id else conf_id
role = request.form['role']
del_no_from = request.form['del_no_from']
del_no_to = request.form['del_no_to']
count_per_set = request.form['count_per_set'] or 25
attendance_col = request.form['attendance_col']
print_title = request.form['print_title'] or None
del_no_from = int(del_no_from)
del_no_to = int(del_no_to)
if count_per_set :
count_per_set = int(count_per_set)
if role :
role = role.upper()
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
conf_start_time = get_conf["conf_start_time"]
conf_end_time = get_conf["conf_end_time"]
if not print_title :
print_title = get_conf["conf_name"]
start_date = conf_start_time.date()
end_date = conf_end_time.date()
delta = end_date - start_date
total_conf_days = delta.days+1
if attendance_col :
if "One" in attendance_col :
total_conf_days = 1
else :
pass
else :
total_conf_days = 1
# code updagted by Ganesan on Nov 18 2022
for row in range(del_no_from ,del_no_to + 1):
# print(row)
del_nos['delegate_no'] = row # added new key on empty dict
del_nos['role'] = role
data_for_print.append(del_nos) # add a new dict on list
del_nos = {}
s = data_for_print
a = [s[count_per_set*i:count_per_set*i+count_per_set] for i in range(0,math.ceil(len(s)/count_per_set))]
#### end
return render_template('badge/empty_list_print.html' ,conf_id= conf_id, conf_key =conf_key,del_no_from=del_no_from,del_no_to=del_no_to,role=role,data_for_print= a,total_conf_days=total_conf_days,print_title=print_title)
else :
flash("Delegate records not exists", "errorMsg")
return redirect(url_for('badge.BadgeLogin' , conf_id= conf_id,conf_key = conf_key))
# Dec 05 ,2022
# Role option start - ----------------------------------- ------------------
@app.route('/<int:conf_id>/<conf_key>/role_index', methods = ["GET", "POST"])
def RoleIndex(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_id = badge_user["conf_id"]
conf_name = badge_user["conf_name"]
get_role_data = BadgeModel().getRole(conf_id)
return render_template('badge/role_index.html',conf_id= conf_id, conf_key =conf_key,data=get_role_data,conf_name=conf_name)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/edit_role/<int:b_role_id>',methods = ["GET","POST"])
def EditRole(b_role_id):
output = BadgeModel().getRole(conf_id)
return render_template('badge/role_index.html',data=output)
@app.route('/post_edit_record',methods = ["GET","POST"])
def PostEditRecord():
if request.method == "POST":
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.form["conf_id"]
conf_key = request.form["conf_key"]
b_role_id = request.form["b_role_id"]
role = request.form["role"]
# role = role.upper() if role else role
data = {'b_role' : role,'updated_at' : curr_dt}
output = BadgeModel().updateBadgeRole(b_role_id,data)
if output == "success":
flash("Updated !","successMsg")
return redirect( url_for('badge.RoleIndex',conf_id=conf_id,conf_key=conf_key))
else:
return redirect (url_for('badge.EditRole'))
@app.route('/<int:conf_id>/<conf_key>/delete_role/<int:b_role_id>' ,methods = ["GET","POST"])
def DeleteRole(b_role_id,conf_key,conf_id):
output = BadgeModel().deleteBadgeRole(b_role_id)
flash(' Data Deleted ! ',"successMsg" )
return redirect (url_for('badge.RoleIndex',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/add_role',methods = ["GET","POST"])
def AddRole(conf_key,conf_id):
return render_template('badge/role_index.html',conf_id=conf_id,conf_key=conf_key)
@app.route('/post_add_role',methods = ["GET","POST"])
def PostAddRole():
if request.method == "POST":
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
role = request.form["role"]
conf_id = request.form["conf_id"]
conf_key = request.form["conf_key"]
# role = role.upper() if role else role
data = {'b_role': role,'conf_id': conf_id,'created_at' : curr_dt}
insert_role = BadgeModel().insertBadgeRole(data)
flash("Role Added !","successMsg")
return redirect( url_for('badge.RoleIndex',conf_id=conf_id,conf_key=conf_key))
# Role option end ------------------ ------------------
#Dec 23, 2022 Siva Session Map
#FcSessionMapping
@app.route('/<int:conf_id>/<conf_key>/fc_session_map',methods = ["GET","POST"])
def FCSessionMap(conf_id,conf_key):
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
get_role_data = BadgeModel().get_role_count(conf_id,del_table_name)
session_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
return render_template('badge/fc_session_map_screen_new.html',session_data=session_data,role_data=get_role_data,conf_id=conf_id,conf_key=conf_key)
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/fc_post_session_map', methods = ["GET", "POST"])
def FCPostSeessionMap():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
role = request.values.getlist('role')
role = (",".join(role))
session_id = request.form['session_id']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
fc_del_session_table_name = getConfData["fc_del_session_table_name"]
#usp_insert_delegate_sessions_map`(in_role ,in_session_id ,del_table_name ,in_del_session_table )
session_map = BadgeModel().usp_delegates_session_map(role,session_id,del_table_name,fc_del_session_table_name)
if session_map :
session_map = session_map[0]
total_count = session_map["total_count"]
session_id = session_map["session_id"]
success_msg = "Session succesfully mapped. Total existing count is " + str(total_count)
flash(success_msg ,"successMsg")
return redirect (url_for('badge.FCSessionMap',conf_id=conf_id ,conf_key=conf_key))
else:
flash("Error Try again." ,"errorMsg")
return redirect (url_for('badge.FCSessionMap',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/delete_fcsessiondata' ,methods = ["GET","POST"])
def DeleteFcSessionData():
conf_id = request.values.get('conf_id')
conf_key = request.values.get('conf_key')
role = request.values.getlist('role')
role = (",".join(role))
session_id = request.values.get('session_id')
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
fc_del_session_table_name = getConfData["fc_del_session_table_name"]
output = BadgeModel().delete_sessiondata(role,session_id,del_table_name,fc_del_session_table_name)
get_role_data = BadgeModel().get_role_count(conf_id,del_table_name)
session_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
html_data = render_template('badge/fc_session_map_screen_new.html',session_data=session_data,role_data=get_role_data,conf_id=conf_id,conf_key=conf_key)
data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
return json.dumps(data)
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
#Dec 23, 2022 Siva Session Map
#kcSessionMapping
@app.route('/<int:conf_id>/<conf_key>/kc_session_map',methods = ["GET","POST"])
def KCSessionMap(conf_id,conf_key):
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
get_role_data = BadgeModel().get_role_count(conf_id,del_table_name)
session_data = KitSessionModel().getSessionData(conf_id,conf_key)
return render_template('badge/kc_session_map_screen_new.html',session_data=session_data,role_data=get_role_data,conf_id=conf_id,conf_key=conf_key)
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/kc_post_session_map', methods = ["GET", "POST"])
def KCPostSeessionMap():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
role = request.values.getlist('role')
role = (",".join(role))
session_id = request.form['session_id']
conf_id = request.form['conf_id']
conf_key = request.form['conf_key']
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
kc_del_session_table_name = getConfData["kc_del_session_table_name"]
#usp_insert_delegate_sessions_map`(in_role ,in_session_id ,del_table_name ,in_del_session_table )
session_map = BadgeModel().usp_delegates_session_map_kc(role,session_id,del_table_name,kc_del_session_table_name)
if session_map :
session_map = session_map[0]
total_count = session_map["total_count"]
session_id = session_map["session_id"]
success_msg = "Session succesfully mapped. Total existing count is " + str(total_count)
flash(success_msg ,"successMsg")
return redirect (url_for('badge.KCSessionMap',conf_id=conf_id ,conf_key=conf_key))
else:
flash("Error Try again." ,"errorMsg")
return redirect (url_for('badge.KCSessionMap',conf_id=conf_id ,conf_key=conf_key))
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/delete_kcsessiondata' ,methods = ["GET","POST"])
def DeleteKcSessionData():
conf_id = request.values.get('conf_id')
conf_key = request.values.get('conf_key')
role = request.values.getlist('role')
role = (",".join(role))
session_id = request.values.get('session_id')
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
kc_del_session_table_name = getConfData["kc_del_session_table_name"]
output = BadgeModel().delete_sessiondata(role,session_id,del_table_name,kc_del_session_table_name)
get_role_data = BadgeModel().get_role_count(conf_id,del_table_name)
session_data = KitSessionModel().getSessionData(conf_id,conf_key)
html_data = render_template('badge/kc_session_map_screen_new.html',session_data=session_data,role_data=get_role_data,conf_id=conf_id,conf_key=conf_key)
data = {"html_data" : html_data ,"status" : 1 , "msg" : "success"}
return json.dumps(data)
else :
flash("Invalid URL" , "errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
# start badge adjestment setting module #santhosh
@app.route('/<int:conf_id>/<conf_key>/badge_setting_index' ,methods = ["GET","POST"])
def BadgeSettingIndex(conf_id,conf_key):
if session.get('badge'):
badge_user = session.get('badge')
conf_name = badge_user["conf_name"]
badge_adjest_data = BadgeModel().badgeSettingsData(conf_id)
return render_template('badge/badge_setting_index.html',conf_id=conf_id,conf_key=conf_key,adjest_data=badge_adjest_data,conf_name=conf_name)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('badge_user.BadgeLogin',conf_id=conf_id ,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/add_badge' ,methods = ["GET","POST"])
def AddBadge(conf_key,conf_id):
try:
html_data = render_template('badge/add_badge_setting.html',conf_id=conf_id,conf_key=conf_key)
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>/postadd_badge_setting' ,methods = ["GET","POST"])
def PostAddBadgeSetting(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.values.get('conf_id') or None
conf_key = request.values.get('conf_key') or None
badge_type = request.values.get('badge_type') or None
name_font_size = request.values.get('name_font_size') or None
role_font_size = request.values.get('role_font_size') or None
display_no_size = request.values.get('display_no_size') or None
padding_top = request.values.get('padding_top') or None
qr_code_size = request.values.get('qr_code_size') or None
qr_code_margin_left = request.values.get('qr_code_margin_left') or None
qr_code_margin_top = request.values.get('qr_code_margin_top') or None
data_for_save = {
'conf_id' : conf_id,
'badge_type' : badge_type,
'name_font_size' : name_font_size,
'role_font_size' : role_font_size,
'display_no_size' : display_no_size,
'padding_top' : padding_top,
'qr_code_size' : qr_code_size,
'qr_code_margin_left' : qr_code_margin_left,
'qr_code_margin_top' : qr_code_margin_top
}
badge_data = BadgeModel().Get_badge_size(conf_id,badge_type)
if badge_data:
data_for_save["updated_at"] = current_dt
bs_id = badge_data["bs_id"]
update_badge = BadgeModel().update_badge_data(bs_id,conf_id,data_for_save)
html_data = render_template('badge/add_badge_setting.html',conf_id=conf_id,conf_key=conf_key)
if update_badge == "success" :
data = {"html_data" : html_data,"msg" : "Successfully updated" , "status" :1 }
else :
data = {"html_data" : "","msg" : update_badge , "status" :2 }
else:
data_for_save["created_at"] = current_dt
insert_badge = BadgeModel().insert_badge_data(data_for_save)
html_data = render_template('badge/add_badge_setting.html',conf_id=conf_id,conf_key=conf_key)
if insert_badge == "success" :
data = {"html_data" : html_data,"msg" : "Successfully inserted" , "status" :1 }
else :
data = {"html_data" : "","msg" : insert_badge , "status" :2 }
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_badge/<int:bs_id>' ,methods = ["GET","POST"])
def DeleteBadge(bs_id,conf_key,conf_id):
output = BadgeModel().deleteBadgeSize(bs_id,conf_id)
flash(' Data Deleted ! ',"successMsg" )
return redirect (url_for('badge.BadgeSettingIndex',conf_id=conf_id,conf_key=conf_key))
@app.route('/<int:conf_id>/<conf_key>/edit_badge/<int:bs_id>' ,methods = ["GET","POST"])
def EditBadge(bs_id,conf_key,conf_id):
output = BadgeModel().editBadgeSize(conf_id,bs_id)
html_data = render_template('badge/add_badge_setting.html',conf_id=conf_id,conf_key=conf_key,badge_data = output)
data = {"html_data" : html_data,"msg" : "" , "status" :1 }
return json.dumps(data,default = str)
# end badge adjestment setting module
# image upload option using empty_records page start
@app.route('/<int:conf_id>/<conf_key>/badge_printing_del_list_image_upload', methods = ["GET","POST"])
def BadgePrintingDelListImageUpload(conf_id,conf_key):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
img_url = " "
file = request.files['file'] or None
file_name = request.form['file_name'] or None
bs_id = request.form['bs_id'] or 0
if file_name:
split_tup = os.path.splitext(file_name)
file_extension = split_tup[1]
file_name_str = conf_key+file_extension
acl="public-read"
s3 = boto3.client("s3",aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ',aws_secret_access_key='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')
try:
bucket = 'aws-s3store'
foldername = 'conf_app'
response = s3.upload_fileobj(file, bucket,foldername+'/'+ file_name_str, ExtraArgs={"ACL": acl,"ContentType": file.content_type})
file_name = file_name_str
file_path_for_db = "https://"+bucket+".s3.ap-southeast-1.amazonaws.com/conf_app"
img_url = file_path_for_db+"/"+file_name
remove_path_name = foldername+"/"+file_name
data_for_update = {'file_path' :file_path_for_db,'file_name' :file_name,'updated_at':curr_dt}
save_data = BadgeModel().update_file_nameand_path(conf_id,bs_id,data_for_update)
if "sucess" in save_data :
print(file_name,"",)
data = {"file_name":file_name,"file_path" : img_url,'msg' : "Successfully uploaded",'status':1}
else :
data = {"file_name":file_name,"file_path" : img_url,'msg' : save_data,'status':2}
return json.dumps(data,default = str)
except ClientError as e:
data_1 = {"file_name":"", "msg": str(e),"status":400}
return json.dumps(data_1,default = str)
else :
data_1 = {"file_name":"", "msg": "File does not exists.","status":3}
return json.dumps(data_1,default = str)
@app.route('/<int:conf_id>/<conf_key>/remove_image_aws', methods = ["GET","POST"])
def RemoveImageAWS(conf_id,conf_key):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
image_name = request.values.get('image_name') or None
image_name = image_name.split("?")[0]
if image_name:
acl="public-read"
s3 = boto3.resource("s3",aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ',aws_secret_access_key='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')
bucket = 'aws-s3store'
foldername = 'conf_app'
path = foldername+"/"+image_name
try:
response = s3.Object(bucket, path).delete()
# response = s3.delete_object(Bucket=bucket, Prefix=path)
print("Object deleted successfully")
except Exception as e:
print(f"An error occurred: {str(e)}")
delete_in_db = BadgeModel().delete_file_nameand_path(conf_id)
if delete_in_db == "success" :
data = {'msg' : "Removed Successfully ",'status':1}
else :
data = {'msg' : delete_in_db,'status':2}
return json.dumps(data,default = str)
else :
data_1 = {"msg": "File does not exists.","status":3}
return json.dumps(data_1,default = str)
# image upload option using empty_records page end
# Ganesan on Sep 20,2023
@app.route('/<int:conf_id>/<conf_key>/get_longest_name_data',methods = [ "GET","POST"])
def GetLongestNameData(conf_id,conf_key):
html_data = " "
del_nos = ""
try:
role = request.values.get("role") or None
del_table_name = request.values.get("del_table_name") or None
if del_table_name :
del_data = BadgeModel().GetLongestName(del_table_name,role,conf_id)
if del_data :
for index,value in enumerate(del_data) :
del_no = value["delegate_no"]
del_nos = del_nos+","+str(del_no)
x = del_nos.startswith(",")
if x == True:
del_nos = del_nos[1:]
html_data = render_template("badge/longest_name_table.html" ,del_data = del_data )
data = {"html_data" : html_data ,"del_nos" : del_nos, "msg" : "success" ,"status" : 1}
else :
data = {"html_data" : "" ,"del_nos" : del_nos,"msg" : "Invalid conference Id or conference key" ,"status" : 2}
json_data = json.dumps(data,default =str)
return json_data
except Exception as e:
data = {"html_data" : "" ,"del_nos" : del_nos,"msg" : str(e) ,"status" : 401}
json_data = json.dumps(data,default =str)
return json_data
@app.route('/<int:conf_id>/<conf_key>/get_longest_commetment_data',methods = [ "GET","POST"])
def GetLongestCommetmentData(conf_id,conf_key):
html_data = " "
del_nos = ""
try:
role = request.values.get("role") or None
print(role)
del_table_name = request.values.get("del_table_name") or None
if del_table_name :
del_data = BadgeModel().GetLongestCommetment(del_table_name,role,conf_id)
if del_data :
for index,value in enumerate(del_data) :
del_no = value["delegate_no"]
del_nos = del_nos+","+str(del_no)
x = del_nos.startswith(",")
if x == True:
del_nos = del_nos[1:]
html_data = render_template("badge/longest_commetment_table.html" ,del_data = del_data )
data = {"html_data" : html_data ,"del_nos" : del_nos, "msg" : "success" ,"status" : 1}
else :
data = {"html_data" : "" ,"del_nos" : del_nos,"msg" : "Invalid conference Id or conference key" ,"status" : 2}
json_data = json.dumps(data,default =str)
return json_data
except Exception as e:
data = {"html_data" : "" ,"del_nos" : del_nos,"msg" : str(e) ,"status" : 401}
json_data = json.dumps(data,default =str)
return json_data
# Food and Kid counter credential start
@app.route('/<int:conf_id>/<conf_key>/view_mail_credentials', methods = ["GET","POST"])
def ViewMailCredentials(conf_id,conf_key):
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
conf_name = getConfData["conf_name"]
mail_header_logo = getConfData["mail_header_logo"]
fc_sessions_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
kc_sessions_data = BadgeUserModel().getkCSessionData(conf_id,conf_key)
html_data = render_template('badge_users/email/fc_credentials_mail.html',conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,mail_header_logo=mail_header_logo,fc_sessions_data=fc_sessions_data,kc_sessions_data=kc_sessions_data)
if fc_sessions_data:
data = {"html_data":html_data,"msg" : "", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"html_data":html_data,"msg" : "Session not mapped", "status" : 2}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Invalid URL", "status" : 3}
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>/send_mail_credentials', methods = ["GET","POST"])
def SendMailCredentials(conf_id,conf_key):
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
conf_name = getConfData["conf_name"]
mail_header_logo = getConfData["mail_header_logo"]
from_name = "Food and Kid counter credentials "
subject = conf_name+"- Food and Kid counter credentials"
mail_ids = request.values.get('email_id') or None
fc_sessions_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
kc_sessions_data = BadgeUserModel().getkCSessionData(conf_id,conf_key)
mail_template = render_template('badge_users/email/fc_credentials_mail.html',conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,mail_header_logo=mail_header_logo,fc_sessions_data=fc_sessions_data,kc_sessions_data=kc_sessions_data)
if mail_ids:
last_char = mail_ids[-1:]
# check last character is commma
if "," == last_char :
mail_ids = re.sub(r".$", "", mail_ids)
# check white spance in given inputs ,if exist then replace as empty
if " " in mail_ids :
mail_ids = mail_ids.replace(" " ,"")
# set list from a string using comma character
mail_list = list(mail_ids.split(","))
try:
for email in mail_list:
# email = "santhosh@numerotec.com" this only testing purpose
EMAIL.MandrillMailFunciton(subject,mail_template,email,from_name,getConfData )
data = {"html_data":mail_template,"msg" : "Email sent successfully", "status" : 1}
return json.dumps(data,default = str)
except Exception as e:
return str(e)
else:
data = {"html_data":"","msg" : "Please enter email", "status" : 2}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Invalid URL", "status" : 3}
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>/send_whatsapp_credentials', methods = ["GET","POST"])
def SendWhatsappCredentials(conf_id,conf_key):
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
conf_name = getConfData["conf_name"]
mail_header_logo = getConfData["mail_header_logo"]
from_name = "Food and Kid counter credential "
subject = conf_name+" - Food and Kid counter credential"
whatsapp_number = request.values.get('whatsapp_number') or None
fc_sessions_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
kc_sessions_data = BadgeUserModel().getkCSessionData(conf_id,conf_key)
html_data = render_template('badge_users/email/fc_credentials_mail.html',conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,mail_header_logo=mail_header_logo,fc_sessions_data=fc_sessions_data,kc_sessions_data=kc_sessions_data)
msg_content = render_template('badge_users/credential_whatsapp.html',conf_id=conf_id,conf_key=conf_key,conf_name=conf_name,mail_header_logo=mail_header_logo,fc_sessions_data=fc_sessions_data,kc_sessions_data=kc_sessions_data)
if whatsapp_number:
# whatsapp_number = "9597494106" testing perpose santhosh whatsapp number
msg_content = "https://wa.me/91"+str(whatsapp_number)+"?text="+subject+"%0A%0A"+msg_content
webbrowser.open(msg_content) # to send whatsapp via new tab
print(whatsapp_number)
data = {"html_data":html_data,"msg" : "Whatsapp sent successfully", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"html_data":html_data,"msg" : "Please enter whatsapp number", "status" : 2}
return json.dumps(data,default = str)
else:
data = {"html_data":"","msg" : "Session invalid", "status" : 3}
return json.dumps(data,default = str)
except Exception as e:
data = {"html_data":"","msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
# Food and Kid counter credential
# update custom counter set start
@app.route("<int:conf_id>/<conf_key>/Update_custom_counter_set",methods = ["GET", "POST"])
def UpdateCustomCounterSet(conf_id,conf_key):
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
start_del_number = request.values.get('start_del_number') or None
end_del_number = request.values.get('end_del_number') or None
batch = request.values.get('batch') or None
counter = request.values.get('counter') or None
update_stmt = "update " + del_table_name + " set batch ='"+batch+"', counter = "+str(counter)+" where conf_id = "+str(conf_id)+" and delegate_no between "+str(start_del_number)+" and "+str(end_del_number)+" ;"
update_custom_set = BadgeModel().update_custom_counter_set_data(conf_id,update_stmt)
if update_custom_set:
data = {"msg" : "Updated successfully", "status" : 1}
return json.dumps(data,default = str)
else:
data = {"msg" : "Updated Failed", "status" : 2}
return json.dumps(data,default = str)
else:
data = {"msg" : "Session invalid", "status" : 3}
except Exception as e:
data = {"msg" : str(e) , "status" : 401}
return json.dumps(data,default = str)
# update custom counter set end
# commitment generate and update created by Aravinth 17.11.2023 17:30
@app.route('/<int:conf_id>/<conf_key>/view_commitment',methods=["GET"])
def ViewCommitment(conf_id,conf_key):
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData:
return render_template('badge/view_commitment.html',conf_id=conf_id,conf_key=conf_key,conf_data=getConfData)
else:
return "<h4 style = 'color:red'; > Invalid URL </h4>"
@app.route('/<int:conf_id>/<conf_key>/generate_commitments',methods=["GET","POST"])
def GenerateCommitments(conf_id,conf_key):
user_id = None
report_type = None
start_date = None
end_date = None
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
get_view_commitment = BadgeModel().getCommitment(user_id,report_type,start_date,end_date,conf_id)
for index,value in enumerate(get_view_commitment):
if index == 0:
all_details = value
if index == 1:
commitments_data = value
if commitments_data:
generate_total_count = "Generated Commitment Count : "+str(len(commitments_data))
else:
generate_total_count = None
data = {"generate_total_count" : generate_total_count ,"status" : 1 , "msg" : "Successfully Generated."}
return json.dumps(data,default=str)
else:
return "<h4 style= 'color:red' ; > Invalid URL </h4>"
except Exception as e:
data = {"generate_data" : "","msg" : str(e), "status" : 401}
return json.dumps(data,default=str)
@app.route('/<int:conf_id>/<conf_key>/update_commitment',methods = ["GET","POST"])
def UpdateCommitment(conf_id,conf_key):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
count = 0
try:
getConfData = BadgeModel().GetConf(conf_id,conf_key)
if getConfData :
del_table_name = getConfData["del_table_name"]
update_commitment = BadgeModel().UpdateCommitments(del_table_name)
if update_commitment:
updated_total_commitment_count = "Updated Commitment Count : "+str(update_commitment['total_commitment_count'])
else:
updated_total_commitment_count = None
data = {"updated_total_commitment_count" : updated_total_commitment_count ,"status" : 1 , "msg" : "Successfully updated."}
return json.dumps(data,default=str)
else:
return "<h4 style= 'color:red' ; > Invalid URL </h4>"
except Exception as e:
data = {"update_data" : "","msg" : str(e), "status" : 401}
return json.dumps(data,default=str)
#end
# start session table view
@app.route('/<int:conf_id>/<conf_key>/fc_session_table', methods = ["GET","POST"])
def FcSessionsTable(conf_id,conf_key):
try:
session_data = FoodSessionModel().getFCBOSessionData(conf_id,conf_key)
if session_data:
html_data = render_template("badge/fc_sessions_table.html" ,session_data = session_data )
data = {"html_data" : html_data ,"msg" : "success" ,"status" : 1}
else :
html_data = render_template("badge/fc_sessions_table.html" ,session_data = session_data )
data = {"html_data" : "" ,"msg" : "Invalid " ,"status" : 2}
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)
@app.route('/<int:conf_id>/<conf_key>/edit_fc_session_table',methods = ["GET","POST"])
def EditFcSessionTable(conf_id,conf_key):
try:
session_id = request.values.get("session_id")
edit_session_data = FoodSessionModel().edit_fcbo(conf_id,session_id)
# states = RegisterModel().get_states() # if we use state in edit form un comment this line
if edit_session_data :
data = {'session_data' :edit_session_data ,'msg' : 'success' ,'status' : 1}
return json.dumps(data,default=str)
else :
data = {'session_data' :"" ,'msg' : 'data not exist' ,'status' : 2}
return json.dumps(data,default=str)
except Exception as e:
data = {"session_data":"","msg" : str(e) ,"status" : 401}
return json.dumps(data,default =str)
@app.route('/<int:conf_id>/<conf_key>/update_fc_session_table', methods = ["GET","POST"])
def UpdateFcSessiontable(conf_id,conf_key):
try:
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)
if update_and_getdata :
html_data = render_template('badge/fc_sessions_table.html',session_data =update_and_getdata)
data = {"html_data" : html_data , "msg" : "Updated Successfully","status" : 1 }
return json.dumps(data,default =str)
else:
html_data = render_template('badge/fc_sessions_table.html',session_data =update_and_getdata)
data = {"html_data" : "" , "msg" : " Updated Failed .","status" : 2 }
return json.dumps(data,default =str)
else:
data = {"html_data" : "" , "msg" : " Invalid session .","status" : 3 }
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>/post_fc_session', methods = ["GET", "POST"])
def PostFoodSession(conf_id,conf_key):
data = None
try:
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_session_data = FoodSessionModel().insert_fcbodata_and_getdata(data,conf_id,conf_key)
if insert_session_data:
html_data = render_template('badge/fc_sessions_table.html',session_data =insert_session_data)
data = {"html_data" : html_data ,"msg" : "Inserted Successfully","status" : 1 }
return json.dumps(data,default =str)
else:
html_data = render_template('badge/fc_sessions_table.html',session_data =insert_session_data)
data = {"html_data" : "" , "msg" : "Inserted Failed","status" : 2}
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_fc_session_index', methods = ["GET", "POST"])
def DeleteFcbosessionIndex(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
session_id = request.values.get("session_id") or None
delete_session_data = FoodSessionModel().delete_fcbodata_and_getdata(conf_id,session_id)
html_data = render_template('badge/fc_sessions_table.html',session_data =delete_session_data)
data = {"html_data" : html_data ,"msg" : "Deleted 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)
# start session table view kit
@app.route('/<int:conf_id>/<conf_key>/kc_session_table', methods = ["GET","POST"])
def KcSessionsTable(conf_id,conf_key):
try:
session_data = KitSessionModel().getSessionData(conf_id,conf_key)
if session_data:
html_data = render_template("badge/kc_sessions_table.html" ,session_data = session_data )
data = {"html_data" : html_data ,"msg" : "success" ,"status" : 1}
else :
html_data = render_template("badge/kc_sessions_table.html" ,session_data = session_data )
data = {"html_data" : "" ,"msg" : "Invalid " ,"status" : 2}
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)
@app.route('/<int:conf_id>/<conf_key>/edit_kc_session_table',methods = ["GET","POST"])
def EditKcSessionTable(conf_id,conf_key):
try:
session_id = request.values.get("session_id")
edit_session_data = KitSessionModel().edit_kcbo(conf_id,session_id)
# states = RegisterModel().get_states() # if we use state in edit form un comment this line
if edit_session_data :
data = {'session_data' :edit_session_data ,'msg' : 'success' ,'status' : 1}
return json.dumps(data,default=str)
else :
data = {'session_data' :"" ,'msg' : 'data not exist' ,'status' : 2}
return json.dumps(data,default=str)
except Exception as e:
data = {"session_data":"","msg" : str(e) ,"status" : 401}
return json.dumps(data,default =str)
@app.route('/<int:conf_id>/<conf_key>/update_kc_session_table', methods = ["GET","POST"])
def UpdateKcSessiontable(conf_id,conf_key):
try:
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 = KitSessionModel().update_kitbo_and_getdata(data_for_update,session_id,conf_id,conf_key)
print(update_and_getdata);
if update_and_getdata:
html_data = render_template('badge/kc_sessions_table.html',session_data =update_and_getdata)
data = {"html_data" : html_data , "msg" : "Updated Successfully","status" : 1 }
return json.dumps(data,default =str)
else:
html_data = render_template('badge/kc_sessions_table.html',session_data =update_and_getdata)
data = {"html_data" : "" , "msg" : " Updated Failed .","status" : 2 }
return json.dumps(data,default =str)
else:
data = {"html_data" : "" , "msg" : " Invalid session .","status" : 3 }
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>/post_kc_session', methods = ["GET", "POST"])
def PostKitSession(conf_id,conf_key):
data = None
try:
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_session_data = KitSessionModel().insert_kitdata_and_getdata(data,conf_id,conf_key)
if insert_session_data:
html_data = render_template('badge/kc_sessions_table.html',session_data =insert_session_data)
data = {"html_data" : html_data ,"msg" : "Inserted Successfully","status" : 1 }
return json.dumps(data,default =str)
else:
html_data = render_template('badge/kc_sessions_table.html',session_data =insert_session_data)
data = {"html_data" : "" , "msg" : "Inserted Failed","status" : 2}
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_kc_session_index', methods = ["GET", "POST"])
def DeleteKcbosessionIndex(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
session_id = request.values.get("session_id") or None
delete_session_data = KitSessionModel().delete_kitbodata_and_getdata(conf_id,session_id)
html_data = render_template('badge/kc_sessions_table.html',session_data =delete_session_data)
data = {"html_data" : html_data ,"msg" : "Deleted 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)
# Create kit session option
@app.route('/<int:conf_id>/<conf_key>/create_kcsessions', methods = ["GET","POST"])
def CreateKcSessions(conf_id,conf_key):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
session_data_1 = []
session_key = 111
getKcConfData = KitSessionModel().getKcConfData(conf_id,conf_key)
if getKcConfData :
conf_start_time = getKcConfData["conf_start_time"]
conf_end_time = getKcConfData["conf_end_time"]
if not conf_start_time and not conf_end_time :
flash('Cannot created sessions without conference start and end date.',"errorMsg")
return redirect(url_for('badge.KCSessionMap' ,conf_id = conf_id,conf_key = conf_key))
else:
KcsessionData = KitSessionModel().getKcsessionData(conf_id,conf_key)
if KcsessionData:
flash('Already session created for kit counter',"errorMsg")
return redirect(url_for('badge.KCSessionMap' ,conf_id = conf_id,conf_key = conf_key))
else :
kit_start_time = conf_start_time + timedelta(hours=6)
kit_start_time = kit_start_time.strftime("%Y-%m-%d %H:%M") # string format f
kit_end_time = conf_end_time.strftime("%Y-%m-%d %H:%M") # string format f
session_data_1 = ("Delegate KIT ",session_key,kit_start_time,kit_end_time,current_dt,conf_id,conf_key)
session_insert_stmt = "INSERT INTO kc_sessions ( session_name,session_key,start_time,end_time,created_at,conf_id,conf_key) VALUES"+str(session_data_1)+" ;"
KitSessionModel().insert_kit_session(session_insert_stmt)
flash('Kit counter session(s) successfuylly created.',"successMsg")
return redirect(url_for('badge.KCSessionMap' ,conf_id = conf_id,conf_key = conf_key))
else:
flash('Invalid URL.',"errorMsg")
return "<h2 style= 'color:red;text-align:center' ; >Invalid URL </h2>"
# 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('badge.FCSessionMap' ,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('badge.FCSessionMap' ,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('badge.FCSessionMap' ,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('badge.FCSessionMap' ,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>"
# AWS File upload start
# def AwsFileUpload(user_id,file,filename_str,foldername,file_extension):
def AwsFileUpload(delegate_no,file_name,image_data):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
image_name = None
image_path = None
bucket = "aws-s3store"
try:
if file_name:
if image_data:
split_tup = os.path.splitext(file_name)
file_name = split_tup[0]
file_extension = split_tup[1]
filename_str = "delegate_image_"+ datetime.now().strftime("%Y%m%d-%H%M%S") +file_extension
if " " in filename_str :
filename_str = filename_str.replace(" ","")
delegate_no = str(delegate_no) if delegate_no else None
foldername = "bigtech23"
acl = "public-read"
s3 = boto3.client("s3",aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ',aws_secret_access_key='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')
image_data = base64.b64decode(image_data.split(',')[1])
image = Image.open(io.BytesIO(image_data))
if image.mode == 'RGBA':
image = image.convert('RGB')
image.save(os.path.join('core/static/temp_images', filename_str))
img_path = os.path.join('core/static/temp_images/'+ filename_str)
with open(img_path, 'rb') as f:
response = s3.upload_fileobj(f,bucket,foldername+'/'+delegate_no+'/'+ filename_str, ExtraArgs={"ACL": acl, "ContentType": "image/jpeg"})
os.remove('core/static/temp_images/'+ filename_str)
data_1 = {'bucketname' : bucket,'foldername':foldername,'file_name':filename_str+"?"+str(Helper.getcurrenttimestamp()),'msg':'Image successfully uploded','file_extension':file_extension,'status':1}
file_path = "https://aws-s3store.s3.ap-southeast-1.amazonaws.com/"+foldername+"/"+delegate_no+"/"
image_path = file_path
image_name = filename_str
msg = "Added Successfully"
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 1 }
else :
msg = "File name is not exists."
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 2 }
return json.dumps(return_data,default =str)
else :
msg = "File not exists. Please try again"
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : msg, "status" : 3 }
return json.dumps(return_data,default =str)
except ClientError as e:
return_data = { "image_name" : image_name,"image_path" : image_path, "msg" : str(e), "status" : 401 }
return json.dumps(return_data,default =str)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists