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 core.model.DashboardModel import DashboardModel
from core.model.LoginModel import LoginModel
from flask import app
import math
from .. import Cryptography,Auth,RouteGroup,Helper,Custom,XLSEXPORT
import math
from datetime import timedelta,date,datetime
from flask import session, app
from os import listdir
import io
import csv
import ast
import requests,mandrill,json,math
import flask
import os #use for new instance of chrome
import urllib.parse
from io import BytesIO
import xlsxwriter
from xlsxwriter import Workbook
import xlwt
from collections import defaultdict
app = Blueprint('dashboard', __name__)
@app.route('/<int:conf_id>/<conf_key>/conf_admin_dashboard', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def Dashboard(conf_id,conf_key):
get_conf = Auth.getConf(conf_id,conf_key)
view_type = request.values.get('view_type')
date = request.values.get('date') or None
user_id = None
if get_conf :
count = DashboardModel().get_reg_desk_count(conf_id,view_type,date,user_id)
for index,value in enumerate(count) :
if index == 0 :
days = value
if index == 1:
admins = value
if index == 2 :
total_registered_count = value
if index == 3 :
total_signed_on_count = value
if index == 4 :
total_spot_signed_on_count = value
if index == 5 :
total_pending_count = value
if index == 6 :
total_signedup_count = value
return render_template('dashboard/dashboard_page.html',total_signedup_count=total_signedup_count,conf_id=conf_id,conf_key=conf_key,total_registered_count=total_registered_count,total_signed_on_count=total_signed_on_count,total_pending_count=total_pending_count,conf=get_conf,days=days,admins=admins,total_spot_signed_on_count=total_spot_signed_on_count)
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
@app.route('/<int:conf_id>/<conf_key>/signup_table_data',methods=["GET","POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def DashboardTableData(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
society_id= conf['society_id']
view_type = request.values.get('view_type')
date = request.values.get('date') or None
user_id = request.values.get('user_id') or None
if conf:
count = DashboardModel().get_reg_desk_count(conf_id,view_type,date,user_id)
for index,value in enumerate(count) :
if index == 0 :
days = value
if index == 1:
admins = value
if index == 2 :
data = value
if date and (user_id is None) :
date_dt = datetime.strptime(date, '%Y-%m-%d' )
date_str = date_dt.strftime("%d-%m-%Y")
elif user_id and (date is None):
user = LoginModel().getUserByuser_id(user_id,society_id)
if user["prefix"]:
date_str = user["prefix"] +" "+ user["full_name"]
else:
date_str = user["full_name"]
else :
date_str = "All"
html_data = render_template('dashboard/dashboard_table.html',conf=conf,conf_id=conf_id,conf_key=conf_key,data=data,view_type=view_type,date=date,user_id=user_id,date_str=date_str)
data = {"html_data" : html_data,"msg" : "success","status" : 1}
return json.dumps(data,default = str)
else:
return "<h4 style='color:red;'> Invalid URL </h4>"
@app.route('/<int:conf_id>/<conf_key>/export', methods = ["GET", "POST"])
@RouteGroup.conf_required
@RouteGroup.bologin_required
def Export(conf_id,conf_key):
conf = Auth.getConf(conf_id,conf_key)
if conf:
view_type = request.values.get('view_type')
date = request.values.get('date') or None
user_id = request.values.get('user_id') or None
dashboard_data = DashboardModel().get_reg_desk_count(conf_id,view_type,date,user_id)
if dashboard_data:
for index,value in enumerate(dashboard_data):
if index == 2 :
data = value
# Header Should be like {'column name in database':'column name in sheet'}
header = {"delegate_no":"Delegate no","prefix":'Prefix',"full_name":"Full Name","email": "Email", "mobile":"Mobile",'role':"Role",'mc_number':"MC Number","mc_state_name":"MC State",'signed_on':"Signon"}
# Pass Sheet name
file_name = view_type
# Pass get delegate data from database
rows = data
conf_name = conf['conf_name']
if data :
# then call XLS
data = XLSEXPORT().export_singlesheet_xls(conf_name,rows,file_name,header)
return data
else:
flash("No Record Found !..","waiting_msg")
return redirect(url_for('cert_dashboard.Dashboard',conf_id=conf_id,conf_key=conf_key))
else :
return "<h1>Invalid URL </h1>"
@app.route('<int:conf_id>/<conf_key>/badge_issued_count',methods =["GET","POST"])
def BadgeIssuedCount(conf_id,conf_key):
get_conf = Auth.getConf(conf_id,conf_key)
if get_conf:
conf_schema = get_conf['conf_schema']
data = DashboardModel().get_badge_issued_count(conf_id,conf_schema)
if data :
return render_template('dashboard/badge_issued_count.html',data=data,conf=get_conf,conf_id=conf_id,conf_key=conf_key)
else :
return "<h1>Setting not configured for "+get_conf['conf_name']+"</h1>"
else:
return "<h1>Invalid URL </h1>"
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists