Sindbad~EG File Manager

Current Path : /home/numerotech/conferencevideos.vrsi.in/vrsi_video_app/core/controller/
Upload File :
Current File : //home/numerotech/conferencevideos.vrsi.in/vrsi_video_app/core/controller/BOController.py

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