Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,Response,jsonify
from core.model.BOModel import BOModel
from random import randint
import datetime
from datetime import timedelta,date,datetime
import requests, json
# from .. import Cryptography
from flask import session, app
from instamojo_wrapper import Instamojo
import hashlib
from .. import config
import flask
import io
# from .. import Cryptography
# import csv
from flask import send_file
# from xlsxwriter import Workbook
# from re import L
# import schedule
# import time
# from openpyxl import Workbook
import csv
# from pyexcel.cookbook import merge_all_to_a_book
# import pyexcel.ext.xlsx # no longer required if you use pyexcel >= 0.2.2
# import glob
from flask import session
from flask import request, Blueprint, jsonify
from sqlalchemy import create_engine, select, MetaData, Table,text
from sqlalchemy.sql import and_, or_
from core import app
engine = create_engine(app.config['DATABASE_URI'],pool_pre_ping=True,pool_recycle=3600)
import base64
app = Blueprint('bo', __name__)
@app.route('/admin', methods = ["GET", "POST"])
def BOAdmin():
if session.get('admin'):
admin_data = session.get('admin')
admin_id = admin_data["admin_id"]
appmasters = BOModel().appMasterRecords(admin_id)
return render_template('backoffice/admin_dashboard.html' ,appmasters= appmasters)
else :
return render_template('backoffice/bologin.html')
# Post_login1
@app.route('/post_boadmin', methods = ["POST"])
def PostBOAdmin():
if request.method =="POST" :
form_email = request.form['email']
form_password = request.form['password']
admin_output = BOModel().getAdminByEmail(form_email)
if admin_output :
db_pass = admin_output['password']
if form_password == db_pass:
admin_id = admin_output['admin_id']
session['admin'] = admin_output
flash("Successfully login" ,"successMsg")
return redirect (url_for('bo.BOAdmin'))
else:
flash("Password is mismatch","errorMsg")
return redirect (url_for('bo.BOAdmin'))
else:
flash("Email id not registered.","errorMsg" )
return redirect (url_for('bo.BOAdmin'))
else :
return "Method not allowed"
# logout route
@app.route('bo_logout', methods = ["GET", "POST"])
def BOLogout():
if session.get('admin') :
session.pop('admin')
session.pop('_flashes', None)
return redirect(url_for('bo.BOAdmin'))
else :
return redirect(url_for('bo.BOAdmin'))
@app.route('/payment_index/<int:am_id>', methods = ["GET", "POST"])
def PayemntIndex(am_id):
if session.get('admin'):
# user = session.get('user')
# admin_id = user['admin_id']
# app_mid int(4),p_status varchar(45),u_name varchar(65) ,u_email varchar(45),u_mobile varchar(30),pay_id int(11),f_date varchar(35) ,t_date varchar(35) , p_method varchar(60)
p_status = None
u_name = None
u_email = None
u_mobile = None
pay_id = None
f_date = None
t_date = None
p_method = None
getPayments = BOModel().getPaymentRecords(am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method)
html_data = render_template('backoffice/payment_index_table.html' ,data= getPayments)
app_name = getPayments[0]["app_name"]
return render_template('backoffice/payment_index.html' ,html_data= html_data , am_id= am_id,app_name= app_name)
else :
return render_template('backoffice/bologin.html')
@app.route('/get_payment_filter/<am_id>', methods = ["GET", "POST"])
def GetPaymentFilter(am_id):
if session.get('admin'):
try:
# am_id = request.values.get("am_id") or 0
p_status = request.values.get("status") or None
u_name = request.values.get("name") or None
u_email = request.values.get("email") or None
u_mobile = request.values.get("mobile") or None
pay_id = request.values.get("payment_id") or None
f_date = request.values.get("from_date" ) or None
t_date = request.values.get("to_date") or None
p_method = None
if u_name :
u_name = u_name.strip()
if u_email :
u_email = u_email.strip()
if u_mobile:
u_mobile = u_mobile.strip()
if pay_id :
pay_id = pay_id.strip()
# getPayments = BOModel().getPaymentRecords(0,None,None,u_email,None,0,None,None,None)
getPayments = BOModel().getPaymentRecords(am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method)
html_data = render_template('backoffice/payment_index_table.html' ,data= getPayments)
if getPayments :
app_name = getPayments[0]["app_name"]
stauts = 1
msg = " Records exits "
html_data = html_data
else :
stauts = 2
msg = "Records not exists" ;
html_data = html_data
except Exception as e:
stauts = 401
msg = str(e)
html_data = ""
# raise e
data = {"html_data" : html_data ,"status" : stauts , "msg" : msg}
return json.dumps(data, default=str)
else :
data = {"html_data" : html_data ,"status" : 3 , "msg" : "Invalid Login"}
return json.dumps(data, default=str)
@app.route('/download_records/<int:am_id>' ,methods = ["GET", "POST"])
def DownloadRecords(am_id):
if session.get('admin'):
try:
# am_id = request.values.get("am_id") or 0
p_status = request.values.get("status") or None
u_name = request.values.get("name") or None
u_email = request.values.get("email") or None
u_mobile = request.values.get("mobile") or None
pay_id = request.values.get("payment_id") or None
f_date = request.values.get("from_date" ) or None
t_date = request.values.get("to_date") or None
p_method = None
if u_name :
u_name = u_name.strip()
if u_email :
u_email = u_email.strip()
if u_mobile:
u_mobile = u_mobile.strip()
if pay_id :
pay_id = pay_id.strip()
# getPayments = BOModel().getPaymentRecords(0,None,None,u_email,None,0,None,None,None)
result = BOModel().getPaymentRecords(am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method)
output = io.StringIO()
writer = csv.writer(output)
# writer = csv.writer(output,delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMA)
line = ['Name', 'Email', 'Mobile', 'Amount' , 'Txn-ID' ,'status']
writer.writerow(line)
for row in result:
line = [row['name'] , row['email'] , row['mobile'] , row['amount'] , row['payment_id'] ,row['payment_status'] ]
writer.writerow(line)
output.seek(0)
return Response(output, mimetype="text/csv", headers={"Content-Disposition":"attachment;filename=data_report.csv"})
except Exception as e:
flash("Error : " + str(e))
return redirect(url_for('bo.PayemntIndex', am_id=am_id))
else :
flash("Invalid login")
return redirect(url_for('bo.PayemntIndex', am_id=am_id))
@app.route('/export_excel/<int:am_id>', methods=['GET'])
def ExportExcel(am_id):
p_status = None
u_name = None
u_email = None
u_mobile = None
pay_id = None
f_date = None
t_date = None
p_method = None
# getPayments = BOModel().getPaymentRecords(0,None,None,u_email,None,0,None,None,None)
getPaymentRecords_1(am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method)
return "success"
# dict_1 = dict(enumerate(result))
# return "wait"
# result = {result[i]: result[i + 1] for i in range(0, len(result), 2)}
# your_dict = {key: i for i, key in enumerate(result)}
wb = Workbook('static/images/workbook.xlsx')
wb.add_worksheet('All Data')
for item in dict_1.fetchall():
wb.write(item)
wb.close()
return send_file('path/to/workbook.xlsx')
# values = execute("SELECT * from table",[])
# wb = Workbook('path/to/workbook.xlsx')
# wb.add_worksheet('All Data')
# for item in values.fetchall():
# wb.write(item)
# wb.close()
# return send_file('path/to/workbook.xlsx')
def getPaymentRecords_1(am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method):
return "i am fnction"
wb = Workbook('static/images/workbook.xlsx')
wb.add_worksheet('All Data')
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.callproc("usp_payment_data",[am_id,p_status,u_name,u_email,u_mobile,pay_id,f_date,t_date,p_method])
if cursor.description :
columns = [column[0] for column in cursor.description]
results = []
for row in cursor.fetchall():
wb.write(item)
wb.close()
cursor.close()
connection.commit()
return send_file('static/images/workbook.xlsx')
# @app.route('/job', methods=['GET'])
# def job():
# now = datetime.now()
# dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
# schedule.every(10).seconds.do(job)
# schedule.every(10).minutes.do(job)
# schedule.every().hour.do(job)
# schedule.every().day.at("10:30").do(job)
# schedule.every(5).to(10).minutes.do(job)
# schedule.every().monday.do(job)
# schedule.every().wednesday.at("13:15").do(job)
# schedule.every().minute.at(":17").do(job)
# while True:
# schedule.run_pending()
# time.sleep(1)
# @app.route('/download_excel', methods=['GET'])
# def DownloadExcel():
# # merge_all_to_a_book(glob.glob("/Users/apple/Python-Flask/GIT/paymentAPI/paymentapi/core/static/csv/sample.csv"), "output.xlsx")
# wb = Workbook()
# ws = wb.active
# with open('/Users/apple/Python-Flask/GIT/paymentAPI/paymentapi/core/static/csv/sample.csv', 'r') as f:
# for row in csv.reader(f):
# ws.append(row)
# return wb.save('name.xlsx')
# return send_from_directory(directory=app.config['CSV_FOLDER'], filename=filename)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists