Sindbad~EG File Manager
from flask import render_template,request,flash,redirect,url_for, Blueprint,session,json,jsonify
import datetime
from datetime import timedelta,date,datetime
from .. import Cryptography,RouteGroup,Helper,Custom
from core.model.UserModel import UserModel
from core.model.ConfAppModel import ConfAppModel
from core.model.OfflineRegistrationModel import OfflineRegistrationModel
from core.model.BadgeModel import BadgeModel
from core.library.email import EMAIL
from flask import app
import flask
from .. import Cryptography,Auth,RouteGroup,Helper,Custom
app = Blueprint('userss', __name__)
@app.route('/search_users',methods = ["GET","POST"])
def Users():
society_data = UserModel().getSociety()
return render_template('users/adduser.html',society_data=society_data)
@app.route('/post_search_users',methods=["GET","POST"])
def PostSearchUsers():
search_name = request.values.get('search_name') or None
search_email = request.values.get('search_email') or None
search_mobile = request.values.get('search_mobile') or None
society_id = request.values.get('society_id') or None
data = UserModel().usp_get_all_society_members(search_name,search_email,search_mobile,society_id)
if data:
is_add_new_user=0
else:
is_add_new_user=1
html_data = render_template('users/search_table.html',search_data=data,is_add_new_user=is_add_new_user)
data = {"html_data" : html_data,'msg' :"success" , 'status' : 1 }
return json.dumps(data,default=str)
@app.route('/view_member',methods = ["GET","POST"])
def ViewMember():
user_id = request.values.get("user_id")
search_data = UserModel().view_search(user_id)
society_intial = UserModel().getSociety()
return render_template('users/view_member.html',user_data=search_data,user_id=user_id,society_intial=society_intial)
@app.route('/edit_user/<int:user_id>',methods =["GET","POST"])
def EditUser(user_id,data=None):
if data is None:
search_data = UserModel().view_search(user_id)
society_intial = UserModel().getSociety()
member_type_data = UserModel().get_member_type()
mc_state_data = UserModel().get_mcstates_of_india()
society_id = request.values.get('society_id') or None
conf_data = UserModel().get_conf_data_by_society(society_id)
is_edit = 1
return render_template('users/add_new_user.html',is_edit=is_edit,user_data=search_data,user_id=user_id,society_intial=society_intial,member_type_data=member_type_data,mc_state_data=mc_state_data,conf_data=conf_data,str=str)
else:
search_data = data
society_intial = UserModel().getSociety()
member_type_data = UserModel().get_member_type()
mc_state_data = UserModel().get_mcstates_of_india()
return render_template('users/add_new_user.html',user_data=search_data,user_id=user_id,society_intial=society_intial,member_type_data=member_type_data,mc_state_data=mc_state_data,str=str)
@app.route('/insert_user',methods=["GET","POST"])
def InsertUser():
email = request.values.get('email') or None
society_intial = UserModel().getSociety()
member_type_data = UserModel().get_member_type()
mc_state_data = UserModel().get_mcstates_of_india()
return render_template('users/add_new_user.html',email=email,user_data=None,society_intial=society_intial,member_type_data=member_type_data,mc_state_data=mc_state_data,str=str)
@app.route('/post_user',methods=["GET","POST"])
def PostUser():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
society_intial = request.values.get('society_intial') or None
member_type_data = request.values.get('member_type_id') or None
prefix = request.values.get('prefix') or None
full_name = request.values.get('full_name') or None
email = request.values.get('email') or None
mobile = request.values.get('mobile') or None
membership_no = request.values.get('membership_no') or None
membership_no_only = request.values.get('membership_no_only') or None
mc_number = request.values.get('mc_number') or None
mc_state_id = request.values.get('mc_state_id') or None
whatsapp_number = request.values.get('whatsapp_number') or None
city = request.values.get('city') or None
address1 = request.values.get('address1') or None
pincode = request.values.get('pincode') or None
is_admin = request.values.get('is_admin') or None
password = request.values.get('password') or None
date_of_birth = request.values.get('dob') or None
if date_of_birth:
try:
dob = datetime.strptime(date_of_birth, '%d-%m-%Y')
except Exception as e:
dob = None
else:
dob = None
otp = request.values.get('otp') or None
otp_expire_on = request.values.get('otp_expire_on') or None
otp_verified_at = request.values.get('otp_verified_at') or None
data ={
'prefix' : prefix,
'full_name' : full_name,
'email' : email,
'mobile' : mobile,
'membership_no' : membership_no,
'membership_no_only' : membership_no_only,
'mc_number' : mc_number,
'mc_state_id' : mc_state_id,
'society_id' : society_intial,
'member_type_id' : member_type_data,
'whatsapp_number' : whatsapp_number,
'city' : city,
'address1' : address1,
'pincode' : pincode,
'is_admin' : is_admin,
'password' : password,
'dob' : dob,
'otp' : otp,
'otp_expire_on' : otp_expire_on,
'otp_verified_at' : otp_verified_at,
'created_at' : current_dt
}
insert_userdata = UserModel().insert_user_data(data)
flash('Inserted Successfully.','successMsg')
return redirect (url_for('userss.Users'))
@app.route('/update_user',methods=["GET","POST"])
def UpdateUser():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
society_id = request.values.get('society_id') or None
prefix = request.values.get('prefix') or None
full_name = request.values.get('full_name') or None
email = request.values.get('email') or None
mobile = request.values.get('mobile') or None
membership_no = request.values.get('membership_no') or ' '
membership_no_only = request.values.get('membership_no_only') or None
mc_number = request.values.get('mc_number') or ' '
mc_state_id = request.values.get('mc_state_id') or ' '
whatsapp_number = request.values.get('whatsapp_number') or None
city = request.values.get('city') or None
address1 = request.values.get('address1') or None
pincode = request.values.get('pincode') or None
is_admin = request.values.get('is_admin') or None
password = request.values.get('password') or None
member_type_id = request.values.get('member_type_id') or None
user_id = request.values.get('user_id')
conference_id = request.form.get('conf_id') or None
parent_user_id = request.values.get('user_id') or None
update_delegate = request.values.get('update_delegate') or None
date_of_birth = request.values.get('dob') or None
update_delegate_user = request.values.get('update_delegate_user') or None
if date_of_birth:
try:
dob = datetime.strptime(date_of_birth, '%d-%m-%Y')
except Exception as e:
dob = None
else:
dob = None
otp = request.values.get('otp') or None
otp_expire_on = request.values.get('otp_expire_on') or None
otp_verified_at = request.values.get('otp_verified_at') or None
if update_delegate and int(update_delegate) == 0:
update_in_delegates = UserModel().update_in_delegate(user_id,parent_user_id,conference_id,membership_no,mc_number,mc_state_id,current_dt)
if update_delegate_user and int(update_delegate_user) == 0:
update_delegate_user = UserModel().update_user_and_delegate(user_id,parent_user_id,conference_id,prefix,full_name,email,mobile,current_dt)
if user_id and int(user_id) > 0 :
data ={
'society_id' : society_id,
'prefix' : prefix,
'full_name' : full_name,
'email' : email,
'mobile' : mobile,
'membership_no' : membership_no,
'membership_no_only' : membership_no_only,
'mc_number' : mc_number,
'mc_state_id' : mc_state_id,
'whatsapp_number' : whatsapp_number,
'city' : city,
'address1' : address1,
'pincode' : pincode,
'is_admin' : is_admin,
'password' : password,
'member_type_id' : member_type_id,
'dob' : dob,
'otp' : otp,
'otp_expire_on' : otp_expire_on,
'otp_verified_at' : otp_verified_at,
'updated_at' : [current_dt]
}
update_member = UserModel().update_member(user_id,data,society_id)
html_data = render_template ('users/add_new_user.html',user_data=update_member)
data = {"html_data" : html_data ,"status" : 1 , "msg" : "Updated Successfully.','successMsg"}
else:
data = {"html_data" : "" ,"status" : 2 , "msg" : "Invalid "}
return json.dumps(data)
@app.route('/update_in_delegate',methods =["POST"])
def UpdateInDelegate():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
membership_no = request.values.get('membership_no') or None
mc_number = request.values.get('mc_number') or None
mc_state_id = request.values.get('mc_state_id') or None
conference_id = request.form.get('conf_id') or None
user_id = request.values.get('user_id') or None
parent_user_id = request.values.get('user_id') or None
update_in_delegate = UserModel().update_in_delegate(user_id,parent_user_id,conference_id,membership_no,mc_number,mc_state_id,current_dt)
flash('Updated Successfully.','successMsg')
return redirect(url_for('userss.Users'))
@app.route('/duplicate_user/<int:user_id>',methods =["GET","POST"])
def DuplicateUser(user_id):
search_data = UserModel().view_search(user_id)
society_intial = UserModel().getSociety()
mc_state_data = UserModel().get_mcstates_of_india()
return render_template('users/duplicate_user.html',user_data=search_data,user_id=user_id,society_intial=society_intial,mc_state_data=mc_state_data)
@app.route('/post_duplicate_user',methods=["GET","POST"])
def PostDuplicateUser():
if request.method=='POST':
duplicate_user_id = request.values.get('duplicate_user_id') or None
society_id = request.values.get('society_intial') or None
prefix = request.values.get('prefix') or None
full_name = request.values.get('full_name') or None
email = request.values.get('email') or None
mobile = request.values.get('mobile') or None
membership_no = request.values.get('membership_no') or None
membership_no_only = request.values.get('membership_no_only') or None
mc_number = request.values.get('mc_number') or None
mc_state_id = request.values.get('mc_state_id') or None
whatsapp_number = request.values.get('whatsapp_number') or None
city = request.values.get('city') or None
address_1 = request.values.get('address_1') or None
pincode = request.values.get('pincode') or None
is_admin = request.values.get('is_admin') or None
password = request.values.get('password') or None
dob = request.values.get('dob') or None
otp = request.values.get('otp') or None
otp_expire_on = request.values.get('otp_expire_on') or None
otp_verified_at = request.values.get('otp_verified_at') or None
data ={
'society_id' : society_id,
'prefix' : prefix,
'full_name' : full_name,
'email' : email,
'mobile' : mobile,
'membership_no' : membership_no,
'membership_no_only' : membership_no_only,
'mc_number' : mc_number,
'mc_state_id' : mc_state_id,
'whatsapp_number' : whatsapp_number,
'city' : city,
'address1' : address_1,
'pincode' : pincode,
'is_admin' : is_admin,
'password' : password,
'dob' : dob,
'otp' : otp,
'otp_expire_on' : otp_expire_on,
'otp_verified_at' : otp_verified_at,
'created_at' : datetime.now()
}
user_data = UserModel().check_email(email,society_id)
if user_data:
flash('Society and Email Id Already Exists.','errorMsg')
return redirect(url_for('userss.DuplicateUser',user_id=duplicate_user_id))
else:
insert_userdata = UserModel().insert_user_data(data)
flash('Inserted Successfully.','successMsg')
return redirect (url_for('userss.Users'))
@app.route('/delete_user_id',methods = ['POST', 'GET'])
def DeleteUserId():
user_id = request.values.get("user_id")
delete_and_get_data = UserModel().delete_user_id(user_id)
flash("delete Successfully","successMsg")
return redirect(url_for('userss.Users'))
@app.route('/view_society_listby_email_id',methods=["GET","POST"])
def ViewSocietyListByEmailId():
user_id = request.values.get("user_id")
search_data = UserModel().view_email_list(user_id)
return render_template('users/view_society_list.html',user_data=search_data,user_id=user_id)
@app.route('/view_society_listby_mobile',methods=["GET","POST"])
def ViewSocietyListByMobile():
user_id = request.values.get("user_id")
search_data = UserModel().view_mobile_list(user_id)
return render_template('users/view_society_list.html',user_data=search_data,user_id=user_id)
@app.route('/search_user_id_in_delegate/<int:user_id>',methods=["GET","POST"])
def SearchUserIdInDelegate(user_id):
user_id = request.values.get('user_id')
search_data = UserModel().get_search_user_id_in_delagetes(user_id)
html_data = render_template('users/search_delegate_table_user_id.html',search_data=search_data,user_id=user_id)
data = {"html_data" : html_data,'msg' :"success" , 'status' : 1 }
return json.dumps(data,default=str)
@app.route('/delete_search_delegate_user_id',methods = ['POST', 'GET'])
def DeleteSearchDelegateUserId():
delegate_id = request.values.get("delegate_id")
delete_and_get_data = UserModel().delete_delegate_user_id(delegate_id)
flash("delete Successfully","successMsg")
return redirect(url_for('userss.Users'))
@app.route('/search_delegate_record',methods = ['POST', 'GET'])
def SearchDelegateRecord():
conference_data = ConfAppModel().get_conference()
return render_template('users/search_delegate_record.html',conference_data = conference_data)
@app.route('/post_search_delegate_record',methods = ['POST', 'GET'])
def PostSearchDelegateRecord():
now = datetime.now()
conf_id = request.values.get("conf_id" ) or None
search_data = request.values.get("search" ) or None
before_time = request.values.get("before_time" ) or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
get_delegate_data = UserModel().get_delegate_data(conf_id,search_data,before_time,None)
for index,value in enumerate(get_delegate_data):
if index == 0:
delegate_data = value
if index == 1:
delegate_addon_data = value
if index == 2:
user_payment_data = value
html_data = render_template('users/search_delegate_record_table.html',delegate_data=delegate_data,delegate_addon_data=delegate_addon_data,user_payment_data=user_payment_data)
data = {"html_data":html_data,"msg":"success","status":1}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:delegate_id>/update_delegate_record',methods = ['POST', 'GET'])
def UpdateDelegateRecord(delegate_id):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.values.get('conf_id') or None
search_data = request.values.get("search") or None
before_time = request.values.get("before_time") or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
delegate_no = request.values.get('delegate_no') or None
registered_on = request.values.get('registered_on' ) or None
del_status_id = request.values.get('del_status_id' ) or None
ref_no = request.values.get('ref_no' ) or None
ref_no_only = request.values.get('ref_no_only' ) or None
update_data = {
'delegate_no' :delegate_no,
'registered_on':registered_on,
'del_status_id':del_status_id,
'ref_no':ref_no,
'ref_no_only':ref_no_only,
'updated_at' :current_dt
}
get_conf = UserModel().get_conf_by_conf_id(conf_id)
conf_schema = get_conf['conf_schema']
updated_and_get_data= UserModel().update_delegate_record(delegate_id,update_data,conf_schema)
get_delegate_data = UserModel().get_delegate_data(conf_id,search_data,before_time,None)
for index,value in enumerate(get_delegate_data):
if index == 0:
delegate_data = value
if index == 1:
delegate_addon_data = value
if index == 2:
user_payment_data = value
html_data = render_template('users/search_delegate_record_table.html',delegate_data=delegate_data,delegate_addon_data=delegate_addon_data,user_payment_data=user_payment_data)
data = {"html_data":html_data,"msg":"Updated Successfully.","status":1}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:delegate_addon_id>/update_delegate_addon_record',methods = ['POST', 'GET'])
def UpdateDelegateAddonRecord(delegate_addon_id):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.values.get('conf_id') or None
search_data = request.values.get('search') or None
before_time = request.values.get('before_time') or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
delegate_id = request.values.get('delegate_id') or None
reg_status = request.values.get('reg_status') or 0
amount = request.values.get('amount') or None
reg_status = int(reg_status) if reg_status else 0
unique_id = request.values.get('unique_id') or None
addon_id = request.values.get('addon_id') or None
update_data = {
'reg_status' :reg_status,
'amount' :amount,
'unique_id' :unique_id,
'addon_id' :addon_id,
'updated_at' :current_dt
}
get_conf = UserModel().get_conf_by_conf_id(conf_id)
conf_schema = get_conf['conf_schema']
updated_data= UserModel().update_delegate_addon_record(delegate_addon_id,update_data,conf_schema)
get_delegate_data = UserModel().get_delegate_data(conf_id,search_data,before_time,None)
for index,value in enumerate(get_delegate_data):
if index == 0:
delegate_data = value
if index == 1:
delegate_addon_data = value
if index == 2:
user_payment_data = value
html_data = render_template('users/search_delegate_record_table.html',delegate_data=delegate_data,delegate_addon_data=delegate_addon_data,user_payment_data=user_payment_data)
data = {"html_data":html_data,"msg":"Updated Successfully.","status":1}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:payment_id>/update_user_payment_record',methods = ['POST', 'GET'])
def UpdateUserPaymentRecord(payment_id):
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.values.get('conf_id') or None
search_data = request.values.get('search' ) or None
before_time = request.values.get('before_time' ) or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
delegate_id = request.values.get('delegate_id') or None
receipt_no = request.values.get('receipt_no') or None
status = request.values.get('status') or None
payment_method_from_gateway = request.values.get('payment_method_from_gateway') or None
amount = request.values.get('amount') or None
payment_method = request.values.get('payment_method') or None
paid_at = request.values.get('paid_at') or None
updated_at = request.values.get('updated_at') or None
utr_number = request.values.get('utr_number') or None
amount = request.values.get('amount') or None
update_data = {
'receipt_no' : receipt_no,
'status' : status,
'payment_method_from_gateway': payment_method_from_gateway,
'payment_method' : payment_method,
'paid_at' : paid_at,
'updated_at' : updated_at,
'utr_number' : utr_number,
'api_payment_id' : utr_number,
'amount' : amount
}
updated_data = UserModel().update_user_payment_record(payment_id,update_data)
get_delegate_data = UserModel().get_delegate_data(conf_id,search_data,before_time,None)
for index,value in enumerate(get_delegate_data):
if index == 0:
delegate_data = value
if index == 1:
delegate_addon_data = value
if index == 2:
user_payment_data = value
html_data = render_template('users/search_delegate_record_table.html',delegate_data=delegate_data,delegate_addon_data=delegate_addon_data,user_payment_data=user_payment_data)
data = {"html_data":html_data,"msg":"Updated Successfully.","status":1}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/delete_delegate_record',methods = ['POST', 'GET'])
def DeleteDelegateRecord():
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_id = request.values.get('conf_id') or None
delegate_id = request.values.get('delegate_id') or None
delegate_addon_id = request.values.get('delegate_addon_id') or None
search_data = request.values.get('search') or None
before_time = request.values.get('before_time') or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
delete_delegate = UserModel().delete_delegate_record(delegate_id,delegate_addon_id,conf_id)
get_delegate_data = UserModel().get_delegate_data(conf_id,search_data,before_time,None)
for index,value in enumerate(get_delegate_data):
if index == 0:
delegate_data = value
if index == 1:
delegate_addon_data = value
if index == 2:
user_payment_data = value
html_data = render_template('users/search_delegate_record_table.html',delegate_data=delegate_data,delegate_addon_data=delegate_addon_data,user_payment_data=user_payment_data)
data = {"html_data":html_data,"msg":"Deleted Successfully.","status":1}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/search_error_logs',methods = ['POST', 'GET'])
def SearchErrorLogs():
logger_data = UserModel().get_logger_name()
host_url_data = UserModel().get_host_url()
app_type_data = UserModel().get_app_type()
return render_template('users/search_error_logs.html',app_type_data=app_type_data,logger_data = logger_data,host_url_data=host_url_data)
@app.route('/post_error_logs',methods = ['POST', 'GET'])
def PostErrorLogs():
try:
now = datetime.now()
app_type = request.values.get('app_type') or None
logger_name = request.values.get('logger_name') or None
host_url = request.values.get('host_url') or None
before_time = request.values.get('before_time') or None
limit = request.values.get('limit') or None
db_name = request.values.get('db_name') or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
error_log_data = UserModel().get_del_error_logs(logger_name,host_url,before_time,limit,app_type,db_name)
html_data = render_template('users/search_error_logs_table.html',error_log_data=error_log_data,db_name=db_name)
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
# Usage : Search Pending Delegate Record
# Date : 2023-07-03 12:00
# Created by : Ramya
@app.route('/search_pending_delegate_record',methods = ['POST', 'GET'])
def SearchPendingDelegateRecord():
now = datetime.now()
from_date = now.strftime("%Y-%m-%d 00:00:00")
to_date = now.strftime("%Y-%m-%d %H:%M:%S")
conference_data = ConfAppModel().get_conference()
return render_template('users/search_pending_delegate_record.html',conference_data=conference_data,from_date=from_date,to_date=to_date)
@app.route('/post_search_pending_delegate_record',methods = ['POST', 'GET'])
def PostSearchPendingDelegateRecord():
try:
conf_id = request.values.get('conf_id') or None
from_date = request.values.get('from_date') or None
to_date = request.values.get('to_date') or None
status = request.values.get('status') or None
limit = request.values.get('limit') or None
get_pending_delegate_record = UserModel().get_pending_delegate_record(conf_id,from_date,to_date,status,limit)
html_data = render_template('users/search_pending_delegate_record_table.html',del_data=get_pending_delegate_record)
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
# Usage : View Payment type for conference
# Date : 2023-07-11 12:27
# Created by : Ramya
@app.route('/<int:conf_id>/<conf_key>/view_payment_type',methods = ['POST', 'GET'])
def ViewPaymentType(conf_id,conf_key):
get_conf_name = ConfAppModel().get_conf_name(conf_id,conf_key)
if get_conf_name:
get_payment_data = UserModel().get_payment_type(conf_id)
return render_template('users/view_payment_type.html',conf_id = conf_id,conf_key=conf_key,payment_data=get_payment_data,get_conf_name=get_conf_name)
else:
return "<h1>Invalid URL </h1>"
@app.route('/<int:conf_id>/<conf_key>/post_payment_type',methods = ['POST', 'GET'])
def PostPaymentType(conf_id,conf_key):
try:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
m_payment_id = request.values.get('m_payment_id') or None
is_bo_visible = request.values.get('is_bo_visible') or None
is_online_visible = request.values.get('is_online_visible') or None
data = {
'is_bo_visible' : is_bo_visible,
'is_online_visible' : is_online_visible,
'updated_at' : current_dt
}
update_payment_type = UserModel().update_payment_type(m_payment_id,data)
return "success"
except Exception as e:
raise e
@app.route('/send_whatsapp_bo_credentials/<int:user_id>/<society_id>/<int:conf_id>/<whatsapp_number>',methods = ["GET","POST"])
def SendWhatsappBoCredentials(user_id,society_id,conf_id,whatsapp_number):
conference_data = ConfAppModel().get_conf_data_for_edit(conf_id)
conf_key = conference_data['conf_key']
conf = OfflineRegistrationModel().OR_get_confUserModel(conf_id,conf_key)
society_id = conf['society_id']
msg_content = "Backoffice Creadentials"
whatsappdata = UserModel().get_users_data_for_whatsapp(user_id)
full_name = whatsappdata['full_name']
email = whatsappdata['email']
password = whatsappdata['password']
prefix = whatsappdata['prefix']
if prefix:
name = whatsappdata["prefix"] +" "+ whatsappdata["full_name"]
else:
name = whatsappdata["full_name"]
if whatsapp_number:
last_char = whatsapp_number[-1:]
# check last character is commma
if "," == last_char :
whatsapp_number = re.sub(r".$", "", whatsapp_number)
# check white spance in given inputs ,if exist then replace as empty
if " " in whatsapp_number :
whatsapp_number = whatsapp_number.replace(" " ,"")
app_url = conf['app_url']
# safe_string_1 = "https://wa.me/91"+str(whatsapp_number)+"?text="+"Dear :%20"+prefix+full_name+"%0A%0AURL :%20"+app_url+"/bo%0A%0Aemail :%20"+email+"%0A%0Apassword :%20"+password
safe_string_1 = "https://wa.me/91"+str(whatsapp_number)+"?text="+"*Backoffice Credentials*%0A%0A*URL* :%20"+app_url+"/bo%0A%0A*email* :%20"+email+"%0A%0A*password* :%20"+password
return flask.redirect(safe_string_1)
webbrowser.open(safe_string_1) # to send whatsapp via new tab
return "success"
flash("mail sent Successful to " +str(whatsapp_number),"whatsapp_success")
else:
flash("Please enter the whatsapp number .","whatsapp_failed")
return "faild"
@app.route('/send_mail_bo_credentials/<int:user_id>/<society_id>/<int:conf_id>', methods = ["GET", "POST"])
def SendMailBoCredentials(user_id,society_id,conf_id):
conference_data = ConfAppModel().get_conf_data_for_edit(conf_id)
conf_key = conference_data['conf_key']
conf = OfflineRegistrationModel().OR_get_confUserModel(conf_id,conf_key)
conf_name = conf['conf_name']
now = datetime.now()
dt_string = now.strftime('%Y-%m-%d %H:%M:%S')
template_name = "backoffice_credentials"
mailData = ConfAppModel().get_mail_template(template_name,conf_id)
emaildata = UserModel().get_users_data_for_whatsapp(user_id)
is_send = request.values.get('is_send')
email = emaildata['email']
sub_data = {
'conf_name':conf_name
}
subject = Helper.merge_tags(mailData['subject'],sub_data)
m_data = {
'mail_content' : mailData.mail_content,
'emaildata' : emaildata,
'conf' : conf
}
mail_content = Helper.convert_html_for_mail_screen(m_data)
html = render_template('conferenceapp/email/bo_access_credentials_mail.html',mail_content=mail_content,conf=conf)
if int(is_send) == 1:
if email :
EMAIL.MailTemplateSendMail(subject,html,email,mailData,conf)
return 'Bo Access Mail send Successfully'
# Usage : Bulk Delete error logs
# Date : 2023-09-25 12:12
# Created by : Ramya
@app.route('/delete_error_logs',methods = ['POST', 'GET'])
def DeleteErrorLogs():
try:
now = datetime.now()
ids = request.values.get('ids') or None
app_type = request.values.get('app_type') or None
logger_name = request.values.get('logger_name') or None
host_url = request.values.get('host_url') or None
before_time = request.values.get('before_time') or None
limit = request.values.get('limit') or None
ids_length = request.values.get('ids_length') or None
db_name = request.values.get('db_name') or None
if before_time:
now_minus_before_time = now - timedelta(minutes = int(before_time))
before_time = now_minus_before_time.strftime("%Y-%m-%d %H:%M")
else:
before_time = None
delete_error_logs = UserModel().delete_error_logs(db_name,ids)
if delete_error_logs == 'success' :
error_log_data = UserModel().get_del_error_logs(logger_name,host_url,before_time,limit,app_type,db_name)
html_data = render_template('users/search_error_logs_table.html',error_log_data=error_log_data,db_name=db_name)
msg = str(ids_length) + " records deleted successfully in "+ db_name
data = {"html_data":html_data,"msg":msg,"status":1}
else:
data = {"html_data":"","msg":delete_error_logs,"status":2}
json_data = json.dumps(data,default=str)
return json_data
except Exception as e:
data = {"msg":str(e),"status":401}
json_data = json.dumps(data,default=str)
return json_data
# Usage : View BO Admin Access Users
# Date : 2023-07-07 15:02
# Created by : Ramya
# Old
@app.route('/<int:society_id>/view_boadmin_access_users',methods = ['POST', 'GET'])
def ViewBOAdminAccessUsers(society_id):
get_data = UserModel().get_boadmin_access_record(society_id)
society = UserModel().get_society_name(society_id)
return render_template('users/view_boadmin_access_users.html',get_data=get_data,society=society)
# Usage : View BO Admin Access Users
# Created on : 2023-07-07 15:02 and Changed on 2024-01-05 17:14:00 By Ramya
# @app.route('/<int:society_id>/<int:conf_id>/<conf_key>/view_boadmin_access_users',methods = ['POST', 'GET'])
# def ViewBOAdminAccessUsers(society_id,conf_id,conf_key):
# data = UserModel().get_boadmin_access_data(conf_id,society_id)
# for index,value in enumerate(data):
# if index == 0:
# conf_name = value[0]
# if index == 1:
# all_data = value
# if index == 2:
# total_count = value[0]
# if index == 3:
# other_email_total_count = value[0]
# return render_template('users/view_boadmin_access_users_v1.html',other_email_total_count=other_email_total_count,total_count=total_count,get_data=all_data,conf_name=conf_name,society_id=society_id,conf_id=conf_id,conf_key=conf_key)
# @app.route('/<int:society_id>/get_user_data',methods = ['POST', 'GET'])
# def GetUserDataforBOadminAccess(society_id):
# try:
# search_data = request.values.get('search_data') or None
# get_user_data = UserModel().get_user_for_boadmin_access(society_id,search_data)
# if get_user_data :
# html_data = render_template('users/view_boadmin_access_users_table_v1.html',search_data=search_data,data=get_user_data)
# msg = "User data successfully searched"
# status = 1
# else :
# html_data = render_template('users/view_boadmin_access_users_table_v1.html',search_data=search_data,data=get_user_data)
# msg = "No User data"
# status = 2
# data = {"html_data":html_data,"msg":msg,"status":status}
# json_data = json.dumps(data,default=str)
# return json_data
# except Exception as e:
# data = {"msg":str(e),"status":401}
# json_data = json.dumps(data,default=str)
# return json_data
# @app.route('/<int:conf_id>/<conf_key>/save_user_access',methods = ['POST', 'GET'])
# def SaveUserAccess(conf_id,conf_key):
# try:
# now = datetime.now()
# current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
# society_id = request.values.get('society_id') or None
# search_data = request.values.get('search_data') or None
# user_id = request.values.get('user_id') or None
# full_name = request.values.get('full_name') or None
# mobile = request.values.get('mobile') or None
# email = request.values.get('email') or None
# password = request.values.get('password') or None
# is_admin = request.values.get('is_admin') or None
# check_admin_access = UserModel().check_already_exist_in_admin_access(society_id,conf_id,email)
# if user_id and int(user_id) > 0:
# data_for_update = {"password":password,"is_admin":is_admin,"updated_at":current_dt}
# update_user = UserModel().update_user_bo_access(user_id,data_for_update)
# else :
# user_data_for_update = {"member_type_id":2,"society_id":society_id,"prefix":"Dr.","full_name":full_name,"mobile":mobile,"email":email,"password":password,"is_admin":is_admin,"created_at":current_dt}
# update_user = UserModel().insert_user_data_bo_access(user_data_for_update)
# if check_admin_access :
# data_for_update = {"password":password,"is_admin":is_admin,"updated_at":current_dt}
# update_user = UserModel().update_user_bo_access(user_id,data_for_update)
# else :
# insert_admin_access_data = {"admin_role_id": 1,"conf_id" : conf_id, "society_id" : society_id, "app_type_id" : 2, "admin_email" : email}
# insert_in_admin_access = UserModel().insert_in_admin_access(insert_admin_access_data)
# get_user_data = UserModel().get_user_for_boadmin_access(society_id,search_data)
# if get_user_data :
# html_data = render_template('users/view_boadmin_access_users_table_v1.html',search_data=search_data,data=get_user_data)
# msg = "User data successfully searched"
# status = 1
# else :
# html_data = render_template('users/view_boadmin_access_users_table_v1.html',search_data=search_data,data=get_user_data)
# msg = "No User data"
# status = 2
# data = {"html_data":html_data,"msg":msg,"status":status}
# json_data = json.dumps(data,default=str)
# return json_data
# except Exception as e:
# data = {"msg":str(e),"status":401}
# json_data = json.dumps(data,default=str)
# return json_data
@app.route('all_tariff',methods =["GET","POST"])
def AllTariff():
now = datetime.now()
curr_dt = now.strftime("%d-%m-%Y %H:%M:%S")
curr_date = now.strftime("%Y-%m-%d")
next_day = now + timedelta(days=1)
next_date = next_day.strftime("%Y-%m-%d")
conf = UserModel().get_all_active_conference(next_date)
return render_template('users/all_tariff.html',conf=conf)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists