Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,Response
from .. import Auth
import datetime
from datetime import timedelta,date,datetime
from core.model.BOUserModel import BOUserModel
import io
import csv
from io import StringIO
import string
app = Blueprint('bo', __name__)
@app.route('/bologin',methods = ["GET"])
def BOLogin():
return render_template('neuro_backoffice/bo_login.html')
@app.route('/post_bologin', methods = ["POST"])
def PostBOLogin():
if request.method == "POST":
email = request.form['email']
password = request.form['password']
output = BOUserModel().check_email_password(email)
if output :
db_password = output['password']
bo_access = output['bo_access']
if bo_access == 1 and db_password :
if password == db_password :
session['bouser'] = output
return redirect (url_for('bo.BODashboard'))
else :
flash("Password mismatch" , "errorMsg")
return redirect (url_for('bo.BOLogin'))
else :
flash("Access denied !" ,"errorMsg")
return redirect (url_for('bo.BOLogin'))
else:
flash("Please enter correct Email id and password" ,"errorMsg")
return redirect (url_for('bo.BOLogin'))
else:
flash("Please, Try again.","errorMsg")
return redirect (url_for('bo.BOLogin'))
@app.route('/bologout', methods = ["GET", "POST"])
def BOLogout():
if session.get('bouser') :
session.pop('bouser')
flash("Successfully logged out" ,"successMsg")
return redirect (url_for('bo.BOLogin'))
else :
pass
return redirect (url_for('bo.BOLogin'))
@app.route('/bodashboard',methods = ["GET", "POST"])
def BODashboard():
if session.get('bouser') :
is_export = False
btn_page = request.values.get('form_submit',None)
if btn_page == "Export Records":
is_export = True
data = BOUserModel().usp_get_all_registered_users()
for index,value in enumerate(data):
if index == 0:
userData = value
if is_export == True:
now = datetime.now()
date = now.strftime("%Y-%m-%d %H:%M")
output = io.StringIO()
writer = csv.writer(output)
line = ['S.No', 'Name', 'Email','Mobile' ,'Amount' ,'Payment Status']
writer.writerow(line)
sno_val = 0
for row in userData:
sno_val = sno_val +1
line = [sno_val , row['full_name'], row['email'],row['mobile'],row['amount'],row['payment_status']]
writer.writerow(line)
output.seek(0)
return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=""User-Record-"+str(date)+".csv"})
return render_template('neuro_backoffice/all_users.html',userData=userData)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('bo.BOLogin'))
@app.route('/payment_success',methods = ["GET", "POST"])
def PaymentSuccess():
if session.get('bouser') :
is_export = False
btn_page = request.values.get('form_submit',None)
if btn_page == "Export Records":
is_export = True
data = BOUserModel().usp_get_all_registered_users()
for index,value in enumerate(data):
if index == 1:
payment_success = value
if is_export == True:
now = datetime.now()
date = now.strftime("%Y-%m-%d %H:%M")
output = io.StringIO()
writer = csv.writer(output)
line = ['S.No', 'Name', 'Email','Mobile' ,'Amount' ,'Payment Status','Payment Mode','Paid At']
writer.writerow(line)
sno_val = 0
for row in payment_success:
sno_val = sno_val +1
line = [sno_val , row['full_name'], row['email'],row['mobile'],row['amount'],row['payment_status'],row['payment_method'],row['paid_at']]
writer.writerow(line)
output.seek(0)
return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=""Payment-Success-Record-"+str(date)+".csv"})
return render_template('neuro_backoffice/payment_success.html',paymentData=payment_success)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('bo.BOLogin'))
@app.route('/payment_fail',methods = ["GET", "POST"])
def PaymentFail():
if session.get("bouser") :
is_export = False
btn_page = request.values.get('form_submit',None)
if btn_page == "Export Records":
is_export = True
data = BOUserModel().usp_get_all_registered_users()
for index,value in enumerate(data):
if index == 2:
payment_fail = value
if is_export == True:
now = datetime.now()
date = now.strftime("%Y-%m-%d %H:%M")
output = io.StringIO()
writer = csv.writer(output)
line = ['S.No', 'Name', 'Email','Mobile' ,'Amount' ,'Payment Status']
writer.writerow(line)
sno_val = 0
for row in payment_fail:
sno_val = sno_val +1
line = [sno_val , row['full_name'], row['email'],row['mobile'],row['amount'],row['payment_status']]
writer.writerow(line)
output.seek(0)
return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=""Payment-Failure-Record-"+str(date)+".csv"})
return render_template('neuro_backoffice/payment_fail.html',paymentData=payment_fail)
else :
flash("Invalid login" ,"errorMsg")
return redirect (url_for('bo.BOLogin'))
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists