Sindbad~EG File Manager
from flask import Flask,app, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json
import datetime
from datetime import timedelta,date,datetime
from flask import session, app
from .. import Cryptography,Auth,RouteGroup,Helper
from core.library.email import EMAIL
from core.model.BadgeModel import BadgeModel
from core.model.AttendanceModel import AttendanceModel
app = Blueprint('attendance', __name__)
@app.route('/<int:conf_id>/<conf_key>/attendance', methods = ["GET", "POST"])
def AttendanceLogin(conf_id,conf_key):
if session.get("attendancesession"):
return redirect (url_for('attendance.attendanceDays',conf_id=conf_id ,conf_key = conf_key))
else:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d")
conf_data = AttendanceModel().getConf_open_closed(conf_id,conf_key,current_dt)
if conf_data:
return render_template('attendance/user/login.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data)
else:
return "<h2 style= 'color:red;text-align:center' ; >Conference closed </h2>"
@app.route('/<int:conf_id>/<conf_key>/post_attendance_login', methods = ["GET", "POST"])
def postAttendanceLogin(conf_id,conf_key):
if request.method == 'POST':
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
delegate_name = request.values.get('full_name') or None
delegate_mobile = request.values.get('mobile') or None
session['attendancesession'] = {'delegate_name':delegate_name,'mobile':delegate_mobile}
return redirect (url_for('attendance.attendanceDays',conf_id=conf_id ,conf_key = conf_key))
else :
return "Method not allowed"
@app.route('/<int:conf_id>/<conf_key>/attendance_days', methods = ["GET", "POST"])
def attendanceDays(conf_id,conf_key):
if session.get("attendancesession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getDays = AttendanceModel().getDays(conf_data['abs_ses_table_name'],conf_id)
now = datetime.now()
current_date = now.strftime('%Y-%m-%d')
return render_template('attendance/user/days.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getDays=getDays,current_date=current_date)
else:
flash("Session Expired..","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/attendance_halls/<conf_date>', methods = ["GET", "POST"])
def attendanceHalls(conf_id,conf_key,conf_date):
if session.get("attendancesession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getHalls = AttendanceModel().getHalls(conf_data['abs_ses_table_name'],conf_id,conf_date)
hall_1 = getHalls[0]
return render_template('attendance/user/halls.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getHalls=getHalls,conf_date=conf_date,hall_1=hall_1)
else:
flash("Session Expired...","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/abstract_sessions/<hall_id>/<conf_date>', methods = ["GET", "POST"])
def AbstractSessions(conf_id,conf_key,hall_id,conf_date):
if session.get("attendancesession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getSessionName = AttendanceModel().getSessionName(conf_data['abs_ses_table_name'],conf_id,hall_id,conf_date)
session_1 = getSessionName[0]
now = datetime.now()
current_dt = now.strftime('%Y-%m-%d %H:%M:%S')
currentsession = AttendanceModel().getCurrentSession(conf_data['abs_ses_table_name'],conf_id,current_dt,hall_id,conf_date)
return render_template('attendance/user/session.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getSessionName=getSessionName,conf_date=conf_date,session_1=session_1,currentsession=currentsession)
else:
flash("Session Expired","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/get_speaker/<asession_id>', methods = ["GET", "POST"])
def getspeaker(conf_id,conf_key,asession_id):
if session.get("attendancesession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
data = AttendanceModel().get_session(conf_id,asession_id)
hall_data = data[0]
session_data = data[1]
speaker_data = data[2]
if session_data:
session_data = session_data[0]
return render_template('attendance/user/attendance.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,sessionData=session_data,speaker_data=speaker_data,session_id=asession_id)
else:
flash("Session Expired......","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/get_attendance_volunteer/<asession_id>', methods = ["GET", "POST"])
def Get_attendance_volunteer(conf_id,conf_key,asession_id):
if session.get("attendancesession"):
data = AttendanceModel().get_session_volunteer(asession_id)
return render_template('attendance/user/attendance_volunteer_table.html',conf_id=conf_id,conf_key=conf_key,session_id=asession_id,data=data)
else:
flash("Session Expired......","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/postattendance', methods = ["GET", "POST"])
def postAttendance(conf_id,conf_key):
if session.get("attendancesession"):
get_conf = BadgeModel().GetConf(conf_id,conf_key)
asession_id = request.values.get('asession_id') or None
speaker_data = request.values.get('json_data') or None
remarks = request.values.get('remarks') or None
is_mail = request.values.get('is_mail') or None
# speaker_data = speaker_data.replace('"', "\"")
# speaker_data = speaker_data.replace("\'", "\"")
# speaker_data = speaker_data.replace("None", "-1")
# speaker_data = json.loads(speaker_data)
data = AttendanceModel().get_session(conf_id,asession_id)
speaker_data = data[2]
for i in speaker_data:
i['previous_is_present'] = i['is_present']
i['is_present'] = request.values.get('radio_'+str(i['pk_id'])+'_'+str(i["is_judge"]))
update = AttendanceModel().update_attendance(speaker_data,get_conf["conf_schema"])
update = AttendanceModel().update_session(asession_id,datetime.now(),remarks,get_conf["conf_schema"])
session_data = session.get("attendancesession")
data = {
'name' : session_data["delegate_name"],
'mobile' : session_data["mobile"],
'abs_session_id': asession_id,
'loged_on' : datetime.now(),
}
AttendanceModel().insert_session_attendance_log(data)
if int(conf_id) not in [0]:
AttendanceModel().generate_certificates(conf_id,asession_id)
data = AttendanceModel().get_session(conf_id,asession_id)
session_data = data[1][0]
conf_data = BadgeModel().GetConf(conf_id,conf_key)
conf_data["conf_title"] = "TRICON 2023 - Scientific Committee"
mail_sent = 0
for i in speaker_data:
if i['is_present'] and i['is_present'] != "":
email = i["email"]
# email = 'mukeshkumar@numerotec.com'
if email:
if int(i["is_present"]) == 1 :
subject = "Your scientific participation for the session - '"+session_data["session_name"]+"'"
html = render_template('attendance/email/attendance.html',data=i,sessionData=session_data,conf_data=conf_data)
# return html
# EMAIL.sendMail(subject,html,email,conf_data)
mail_sent = 0
if mail_sent == 1:
flash('Mail Sent Successfuly','successMsg')
flash('Attendance Saved Successfuly','successMsg')
return redirect(url_for('attendance.getspeaker' ,conf_id = conf_id,conf_key= conf_key,asession_id = asession_id))
else:
flash("Session Expired......","errorMsg")
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/attendance_logout', methods = ["GET", "POST"])
def AttendanceLogout(conf_id,conf_key):
if session.get("attendancesession") :
session.pop('attendancesession', None)
else :
pass
return redirect(url_for('attendance.AttendanceLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/mail_to_speakers/<asession_id>', methods = ["GET", "POST"])
def mail_to_speaker(conf_id,conf_key,asession_id):
data = AttendanceModel().get_session(conf_id,asession_id)
# session_data = data[1]
session_speaker_data = data[2]
session_data = AttendanceModel().getsessiondata_session_id(asession_id)
conf_data = BadgeModel().GetConf(conf_id,conf_key)
for i in session_speaker_data:
email = i["email"]
email = 'mukeshkumar@numerotec.com'
if email:
subject = "Your Attendance for IAGES 2023"
html = render_template('attendance/email/attendance.html',conf_id=conf_id,conf_key=conf_key,data=i,conf_data=conf_data,sessionData=session_data)
# print(html)
# EMAIL.sendMail(subject,html,email,conf_data)
flash('Mail Sent Successfuly','successMsg')
return redirect(url_for('attendance.getspeaker' ,conf_id = conf_id,conf_key= conf_key,asession_id = asession_id))
# <span style="float: right;"><i class="fa fa-arrow-right" aria-hidden="true"></i></span>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists