Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,Response,jsonify,json
from core.model.ExamCandidateModel import ExamCandidateModel
from random import randint
from core.library.email import EMAIL
from .. import Cryptography
from flask import session, app
from werkzeug.utils import secure_filename
import ast
from mandrill import Mandrill
from os.path import join, dirname,isfile, realpath
from datetime import datetime, timedelta
import os
import requests,mandrill,json,math,random
from itertools import groupby
from operator import itemgetter
app = Blueprint('exam_candidate', __name__)
@app.route('/fiages_candidate_list', methods = ["GET", "POST"])
def FIAGESCandidateList():
more_than_record_list = ['atluri9@yahoo.com','avinash.1973@gmail.com','becksahad23@gmail.com','bharucha.manoj@gmail.com','bhuwnesh1989@gmail.com','birendravss@gmail.com','dinshu.mh0106@gmail.com','docnaveenverma@gmail.com','doctorratneshkumar@gmail.com','dr_ramakanth@rediffmail.com','dr.jagat01@gmail.com','dr.jnbarman@gmail.com','dr.pnarendra@gmail.com','dr.ramaswami89@gmail.com','dr.vrajan@yahoo.co.in','drchlua@gmail.com','drdurgesh11@gmail.com','drharshms@gmail.com','drirshadkgmc2009@gmail.com','drkcacarunagiri@gmail.com','drkrishnaaiims@gmail.com','drlenka09@gmail.com','drlohokarenarendra@gmail.com','drmatchavel@hotmail.com','drnk.2011@gmail.com','drpradip4u@gmail.com','drprateekgourav@gmail.com','drpriyambad.sahu@gmail.com','drravihzb@gmail.com','drsameerummer@gmail.com','drsdilipkumar450@gmail.com','drtejassavdekar@gmail.com','drvinay07@gmail.com','elango.vikram@gmail.com','export@lebenlab.com','gilesfanny@gmail.com','gnagagsri@gmail.com','imrantariqajmal@gmail.com','karanwalpoonam123@gmail.com','karthikshivam03@gmail.com','krn1980p@gmail.com','lavanyamoturi08@gmail.com','mahenderjkv@gmail.com','milanvaghasia921993@gmail.com','mohdtariq271@gmail.com','myselfsohail74@gmail.com','nagaa.mahendran@gmail.com','namria73@gmail.com','naveenalexander@yahoo.co.in','nazrulhasan355@gmail.com','patelshaishav99@gmail.com','prashantmeshram1980@gmail.com','pravin.hector@gmail.com','prudhvismc@gmail.com','rahulmahadar@gmail.com','rathodprajawalam@gmail.com','rehan1977@rediffmail.com','rohtash.luthra@gmail.com','saad.anwar05@gmail.com','samirjain29@gmail.com','shamv21@gmail.com','singh.santanu8@gmail.com','sourabh.damani@yahoo.com','spsknair@gmail.com','sudiptomallik2010@gmail.com','thasneem.eakareem@gmail.com','tusharastafari@gmail.com','uk19850003@gmail.com','ukpandey.gmc@gmail.com','varun14021982@gmail.com','vedrishu@gmail.com','veenavenkat.2994@gmail.com','vgokul1708@gmail.com','vignesh.vicky827@gmail.com','vsuganyadevi@gmail.com','yashpal_ksp28@rediffmail.com','zahidrather8989@gmail.com']
more_than_record_list = str(more_than_record_list)
more_than_record_list = more_than_record_list.replace("[","")
more_than_record_list = more_than_record_list.replace("]","")
more_than_records = ExamCandidateModel().getDelegateDuplicateEmailRecords(more_than_record_list)
one_records = ExamCandidateModel().getDelegateNonDuplicateEmailRecords(more_than_record_list)
print(type(more_than_records))
print(type(one_records))
# candidate_data = ExamCandidateModel().getFIAGESCandidateOnly()
return render_template('exam_candidate/exam_candidate_index.html' ,candidate_data=candidate_data,itemgetter=itemgetter,groupby=groupby)
@app.route('/mail_respond/<uuid>', methods = ["GET", "POST"])
def MailRespond(uuid):
data_1 = None
candidate_data = ExamCandidateModel().getExamCandidateByUserUUID(uuid)
course_data = ExamCandidateModel().CourseData()
course_data_1 =[]
conf_id =1
other_course = None
delegate_id = 0
if candidate_data :
data_1 = candidate_data[0]
user_id = data_1["user_id"]
email = data_1["email"]
arrival_time = data_1["arrival_time"]
departure_time = data_1["departure_time"]
delegate_id = data_1["delegate_id"]
for index,value in enumerate(candidate_data) :
course_name = value["course_name"]
course_data_1.append(course_name)
course_data_1 = str(course_data_1)
course_data_1 = course_data_1.replace("[", "")
course_data_1 = course_data_1.replace("]", "")
other_course = ExamCandidateModel().OtherCourseData(email,user_id,conf_id)
states = ExamCandidateModel().getStatesList()
html_data = render_template('exam_candidate/other_course_table.html',other_course = other_course)
else:
candidate_data = ExamCandidateModel().getNoneRegisteredData(uuid)
if candidate_data :
data_1 = candidate_data[0]
user_id = None
email = data_1["email"]
arrival_time = None
departure_time = None
other_course = ExamCandidateModel().OtherCourseData(email,user_id,conf_id)
states = ExamCandidateModel().getStatesList()
html_data = render_template('exam_candidate/other_course_table.html',other_course = other_course)
else :
return "<h4 style='color:red;'> Invalid URL <h4>"
return render_template('exam_candidate/mail_response.html',candidate_data=candidate_data ,data=data_1,course_data=course_data,email=email,user_id=user_id,html_data=html_data,course_data_1=course_data_1,uuid=uuid,states=states,arrival_time = arrival_time,departure_time=departure_time,len=len,delegate_id=delegate_id)
# invitation mail start single
# @app.route('/invitation_mail/<uuid>', methods = ["GET", "POST"])
# def InvitationMail(uuid):
# candidate_data = ExamCandidateModel().getExamCandidateByUserUUID(uuid)
# if candidate_data :
# data_1 = candidate_data[0]
# return render_template('exam_candidate/fiages_email/invitation_mail.html',candidate_data=candidate_data ,data=data_1,uuid=uuid)
# else :
# candidate_data = ExamCandidateModel().getNoneRegisteredData(uuid)
# if candidate_data :
# data_1 = candidate_data[0]
# return render_template('exam_candidate/fiages_email/invitation_mail.html',candidate_data=candidate_data ,data=data_1,uuid=uuid)
# else :
# return "<h4 style='color:red;'>Record does not exist.</h4>"
#add_mcq_other_course
@app.route('/add_mcq_other_course', methods = ["GET", "POST"])
def AddMcqOtherCourse():
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
try:
user_id = request.values.get("user_id")
email = request.values.get("email")
mcq_other_course = request.values.get("mcq_other_course")
delegate_no = request.values.get("delegate_no") or None
if delegate_no and delegate_no == 0 :
delegate_no = None
fiages_course_id = request.values.get("fiages_course_id") or None
conf_id = 1
data_for_db={'user_id' : user_id,
'email' : email,
# 'mcq_other_course' : mcq_other_course,
'created_at' : curr_dt,
'updated_at' : curr_dt,
'course_name' : mcq_other_course,
'delegate_no' : delegate_no,
'conf_id' : conf_id
}
if int(fiages_course_id) > 0 :
if 'created_at' in data_for_db: del data_for_db['created_at']
else :
if 'updated_at' in data_for_db: del data_for_db['updated_at']
save_and_get_data = ExamCandidateModel().saveDataAndGetData(data_for_db,fiages_course_id,email,user_id,conf_id)
html_data = render_template('exam_candidate/other_course_table.html',other_course = save_and_get_data)
data = {"html_data" : html_data , "msg" : "success" , "status" : 1}
json_data = json.dumps(data,default =str)
return json_data
except Exception as e:
data = {"html_data" : "" , 'msg' : str(e) , "status" : 401}
json_data = json.dumps(data,default =str)
return json_data
# delete mail fiages_course_id
@app.route('/delete_mcq_other_course/<int:fiages_course_id>', methods = ["GET", "POST"])
def DeleteMcqOtherCourse(fiages_course_id):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = 1
try:
user_id = request.values.get("user_id")
email = request.values.get("email")
delete_and_get_data =ExamCandidateModel().DeleteAndGetData(fiages_course_id,email,user_id,conf_id)
html_data = render_template('exam_candidate/other_course_table.html',other_course = delete_and_get_data)
data = {"html_data" : html_data , "msg" : "success" , "status" : 1}
json_data = json.dumps(data,default =str)
return json_data
except Exception as e:
data = {"html_data" : "" , 'msg' : str(e) , "status" : 401}
json_data = json.dumps(data,default =str)
return json_data
@app.route('/edit_mcq_other_course/<int:fiages_course_id>', methods = ["GET", "POST"])
def EditMcqOtherCourse(fiages_course_id):
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = 1
try:
user_id = request.values.get("user_id")
email = request.values.get("email")
get_data = ExamCandidateModel().EditDataById(fiages_course_id)
if get_data :
course_name = get_data["course_name"]
else :
course_name = ""
data = {"course_name" : course_name , "msg" : "success" , "status" : 1}
json_data = json.dumps(data,default =str)
return json_data
except Exception as e:
data = {"course_name" : "" , 'msg' : str(e) , "status" : 401}
json_data = json.dumps(data,default =str)
return json_data
# save mail response date
@app.route('/save_mail_response', methods = ["GET", "POST"])
def SaveMailResponse():
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
user_id = request.values.get("user_id") or None
email = request.values.get("email")
full_name = request.values.get("full_name") or None
mobile = request.values.get("mobile") or None
mc_number = request.values.get("mc_number") or None
# mc_state_id = request.values.get("mc_state_id") or None
delegate_no = request.values.get("delegate_no") or None
arrival_date = request.values.get("arrival_date") or None
arrival_time = request.values.get("arrival_time") or None
arrival_by = request.values.get("arrival_by") or None
departure_date = request.values.get("departure_date") or None
departure_time = request.values.get("departure_time") or None
departure_by = request.values.get("departure_by") or None
stay_at = request.values.get("stay_at") or None
uuid = request.values.get("uuid") or None
f_user_id = request.values.get("f_user_id") or 0
delegate_id = request.values.get("delegate_id") or 0
course_names = request.values.getlist("course_name") or None
insert_values_1 = ""
course_ids = None
insert_values_1 = "("
insert_stmt = " insert into user_course_map (user_id,course_id,created_at)values"
if course_names and len(course_names) > 0:
course_ids = str(course_names)
for course_id_1 in course_names :
# print(course_id_1|t)
if 'None' not in course_id_1:
insert_values = ""+ str(f_user_id) + ","+str(course_id_1)+ ",'"+curr_dt+"'"
insert_values = insert_values+"),("
insert_values_1 = insert_values_1 + insert_values
insert_values = insert_values_1[:-2]
insert_query = insert_stmt+insert_values
# insert_course_data = ExamCandidateModel().InsertCourseData(insert_query,f_user_id,course_ids)
is_interest = request.values.get("is_interest") or None
reason = request.values.get("reason") or None
conf_id = 1
data = {
'user_id' : user_id,
'email' : email,
# 'full_name' : full_name,
'mobile' : mobile,
'mc_number' : mc_number,
# 'mc_state_id' : mc_state_id,
'delegate_no' : delegate_no,
'arrival_date' : arrival_date,
'arrival_time' : arrival_time,
'arrival_by' : arrival_by,
'departure_date' : departure_date,
'departure_time' : departure_time,
'departure_by' : departure_by,
'stay_at' : stay_at,
'is_interest' : is_interest,
'reason' : reason,
'conference_id' : conf_id,
'updated_at' : curr_dt,
'created_at' : curr_dt
}
# if not delegate_no
# check record already exist in delegate table using email and conf_id
check_already_exist = ExamCandidateModel().CheckAlreadyExist(conf_id,delegate_no,email,delegate_id)
if check_already_exist :
if 'created_at' in data: del data['created_at']
save_data = ExamCandidateModel().updateMailResponseData(conf_id,delegate_no,email,data,delegate_id)
else :
if 'updated_at' in data: del data['updated_at']
save_data = ExamCandidateModel().insertRecorMailResponse(data)
data_for_update = {'uuid' :uuid , 'updated_at' : curr_dt}
update_stmt = "update fiages_candidate set updated_at = '"+curr_dt+"' where uuid = '"+uuid+"' ;"
ExamCandidateModel().updateFiageCandidate(uuid,update_stmt)
if save_data == "success" :
sendConfirmateionMail(uuid)
# flash("Thanks for your updates . " ,"successMsg")
return redirect(url_for('exam_candidate.InfoUpdateCompletd',uuid =uuid))
else :
flash(save_data, "errorMsg")
return redirect(url_for('exam_candidate.MailRespond',uuid =uuid))
@app.route('/send_confirmation_mail/<uuid>', methods = ["GET", "POST"])
def sendConfirmateionMail(uuid):
conf_id = 1
user_id = None
candidate_data = ExamCandidateModel().getExamCandidateByUserUUID(uuid)
if candidate_data :
data = candidate_data[0]
email = data["email"]
user_id = data["user_id"]
prefix = data["prefix"]
full_name_1 = data["full_name"] or ''
full_name = prefix + " " + full_name_1 if prefix else "Dr. " + full_name_1
other_course = ExamCandidateModel().OtherCourseData(email,user_id,conf_id)
html = render_template('exam_candidate/fiages_email/confirmation_mail.html',data=data,candidate_data=candidate_data,uuid=uuid,other_course=other_course)
if full_name :
subject = "Dear "+ full_name + ", IAGES 2023 - Delegate / Convocation information update confirmation"
else :
subject = "IAGES 2023 - Delegate / Convocation information update confirmation"
email = "ganesan@numerotec.com"
print(email)
# please enable it
# EMAIL.sendMail(subject,html,email)
return "success"
return render_template('exam_candidate/fiages_email/confirmation_mail.html',data=data,candidate_data=candidate_data,uuid=uuid,other_course=other_course)
else :
return "<h4 style='color:red;'>Invalid URL </h4>"
@app.route('/info_update_complete/<uuid>', methods = ["GET", "POST"])
def InfoUpdateCompletd(uuid):
candidate_data = ExamCandidateModel().getExamCandidateByUserUUID(uuid)
if candidate_data :
data = candidate_data[0]
email = data["email"]
user_id = data["user_id"]
return render_template('exam_candidate/thankyou_screen.html',email =email)
else:
candidate_data = ExamCandidateModel().getNoneRegisteredData(uuid)
if candidate_data :
data = candidate_data[0]
email = data["email"]
return render_template('exam_candidate/thankyou_screen.html',email =email)
else:
return "<h4 style='color:red;'>Invalid URL </h4>"
# Bulk mail
@app.route('/bulk_mail', methods = ["GET", "POST"])
def BulkMail():
candidate_data = ExamCandidateModel().getExamCandidate()
course_data = []
i = 1
if candidate_data :
for key, value in groupby(candidate_data,key = itemgetter('email')) :
email = key
data_1 = value
for r in data_1 :
uuid = r["uuid"]
prefix = r["prefix"]
full_name = r["full_name"] or ''
# full_name = prefix + " " + full_name_1 if prefix else "Dr. " +full_name_1
delegate_no = r["delegate_no"]
mobile = r["mobile"]
mc_number = r["mc_number"]
state_name = r["state_name"]
course_name= r["course_name"]
course_data.append(course_name)
data = {'prefix': prefix,'full_name':full_name,'email':email,'mobile':mobile,'mc_number' :mc_number,'state_name':state_name,"uuid" : uuid}
base_url = request.host_url
if "https" in base_url:
pass
else :
base_url = base_url.replace("http" , "https")
base_url = "https://delegates.iages2023.com/"
url_1 = base_url+"mail_respond/"+uuid
html = render_template('exam_candidate/fiages_email/bulk_invitation_mail.html',candidate_data=course_data ,data=data,uuid=uuid,url_1=url_1)
if full_name :
if prefix :
full_name_2 = prefix + " " + full_name
else :
full_name_2 = "Dr. "+ full_name
subject = "Dear " + full_name_2 + ", "+ " Very important! Confirmation required for IAGES 2023 Convocation / Conference"
else:
subject = " Very important! Confirmation required for IAGES 2023 Convocation / Conference"
email = "ganesan@numerotec.com"
if email :
# please uncommand this test mail
# EMAIL.sendMail(subject,html,email)
print( str(i) , email)
else :
pass
# return "mail sent successfully"
i=i+1
# return "mail sent successfully"
return "mail sent successfully"
else :
return "Records does not exists"
return render_template('exam_candidate/exam_candidate_index.html' ,candidate_data=candidate_data,itemgetter=itemgetter,groupby=groupby)
@app.route('/send_mail/<uuid>', methods = ["GET", "POST"])
def SendMailToCandidate(uuid):
candidate_data = ExamCandidateModel().getExamCandidateByUserUUID(uuid)
if candidate_data :
data_1 = candidate_data[0]
email = data_1["email"]
uuid = data_1["uuid"] or ''
prefix = data_1["prefix"]
full_name_1 = data_1["full_name"] or ''
full_name = prefix + " " + full_name_1 if prefix else full_name_1
base_url = request.host_url
if "https" in base_url:
pass
else :
base_url = base_url.replace("http" , "https")
base_url = "https://delegates.iages2023.com/"
url_1 = base_url+"mail_respond/"+uuid
html = render_template('exam_candidate/fiages_email/invitation_mail.html',candidate_data=candidate_data ,data=data_1,uuid=uuid,url_1=url_1)
if full_name :
subject = "Dear "+ full_name +", Very important! Confirmation required for IAGES 2023 Convocation / Conference"
else :
subject = "Very important! Confirmation required for IAGES 2023 Convocation / Conference"
email = "ganesan@numerotec.com"
print(email)
# return "please wait"
# EMAIL.sendMail(subject,html,email)
return "Email sent successfully."
else :
candidate_data = ExamCandidateModel().getNoneRegisteredData(uuid)
if candidate_data :
data_1 = candidate_data[0]
email = data_1["email"]
uuid = data_1["uuid"] or ''
prefix = data_1["prefix"]
full_name_1 = data_1["full_name"]
full_name = prefix + " " + full_name_1 if prefix else "Dr. " +full_name_1
base_url = request.host_url
if "https" in base_url:
pass
else :
base_url = base_url.replace("http" , "https")
base_url = "https://delegates.iages2023.com/"
url_1 = base_url+"mail_respond/"+uuid
html = render_template('exam_candidate/fiages_email/invitation_mail.html',candidate_data=candidate_data ,data=data_1,uuid=uuid,url_1=url_1)
subject = "Dear "+ full_name + ", "+" Very important! Confirmation required for IAGES 2023 Convocation / Conference"
# EMAIL.sendMail(subject,html,email)
return "Email sent successfully."
else :
return "<h4 style='color:red;'>Record does not exist.</h4>"
@app.route('/test', methods = ["GET", "POST"])
def test():
candidate_data = ExamCandidateModel().test()
return "success"
return render_template('exam_candidate/exam_candidate_index.html' ,candidate_data=candidate_data,itemgetter=itemgetter,groupby=groupby)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists