Sindbad~EG File Manager

Current Path : /home/numerotech/conf-regdesk.numerotech.com/reg_desk/core/controller/
Upload File :
Current File : //home/numerotech/conf-regdesk.numerotech.com/reg_desk/core/controller/DashboardController.py

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