Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session, app
from core.model.UserModel import UserModel
from core.model.AbstractModel import AbstractModel
from core.model.BoModel import BoModel
from random import randint
import datetime
from core.library.email import EMAIL
from datetime import timedelta,date,datetime
from .. import Cryptography,Auth,RouteGroup
from core.library.helper import Helper
import ast
# import collections
from urllib.parse import unquote
from collections import defaultdict
app = Blueprint('DB', __name__)
@app.route('/dashboard/<conf_id>/<conf_key>', methods = ["GET", "POST"])
@RouteGroup.conf_required #check if login else automatically redirect to login page
@RouteGroup.login_required #check if login else automatically redirect to login page
@RouteGroup.profile_required
def Dashboard(conf_id,conf_key):
# this function to be sorted
confData = Auth.get_conference(conf_id)
society_id = confData.get("society_id")
user_id = Auth.get_user(society_id).get('user_id')
data = AbstractModel().get_evaluation(conf_id,user_id,datetime.now(),confData.get('conf_schema'))
upload_data = AbstractModel().Check_can_upload(conf_id,user_id,datetime.now(),confData.get('conf_schema'))
if int(conf_id) in [19,37,54,49,69] and int(user_id) not in [126009,126011,128555,128075,128354,128671,128672,128673] :
check_delegate = AbstractModel().Check_if_delegate(conf_id,Auth.get_user(society_id).get('email'))
if check_delegate == 0:
return render_template('users/not_registered.html',conf_id=conf_id,conf_key=conf_key)
abs_data = UserModel().dashboard_content(user_id,conf_id,confData.get('conf_schema'))
abs_type = 'Dashboard'
Auth.abs_type(abs_data,abs_type,conf_id)
current_time = datetime.now()
return render_template('users/dashboard.html',abs_data=abs_data,data=data,conf_id=conf_id,conf_key=conf_key,society_id=society_id,current_time=current_time,upload_data=upload_data,user_id=user_id)
#ToDo: move to EvaluatorController
@app.route('/evaluation/<abs_type>/<conf_id>/<conf_key>',methods=["GET","POST"])
@RouteGroup.conf_required #check if login else automatically redirect to login page
@RouteGroup.login_required #check if login else automatically redirect to login page
@RouteGroup.Evaluation_required
def Evaluation(abs_type,conf_id,conf_key):
confData = Auth.get_conference(conf_id)
society_id = confData.get("society_id")
user_id = Auth.get_user(society_id).get('user_id')
eval_details = AbstractModel().get_abs_type_data(abs_type,conf_id)
# print(eval_details)
# abs_type = abs_type.replace('VAL', '')
categories = AbstractModel().get_categories_eva(user_id,abs_type,conf_id,confData.get('conf_schema'))
data = AbstractModel().get_evaluation_list(user_id,abs_type,conf_id,confData.get('conf_schema'))
cat_abs = defaultdict(list) # sub list with key
for r in data:
cat_abs[r["category_id"]].append(r)
return render_template('users/evaluation.html',category=categories,data=cat_abs,conf_id=conf_id,conf_key=conf_key,eval_details=eval_details,abs_type=abs_type)
@app.route('/view_evaluation/<abs_id>/<eva_abs_type>/<conf_id>/<conf_key>',methods=["GET","POST"])
@RouteGroup.conf_required #check if login else automatically redirect to login page
@RouteGroup.login_required #check if login else automatically redirect to login page
@RouteGroup.Evaluation_required
def View_Evaluation(abs_id,eva_abs_type,conf_id,conf_key):
society_id = Auth.get_conference(conf_id).get("society_id")
user_id = Auth.get_user(society_id).get('user_id')
abs_id = int(Cryptography.decrypt(abs_id))
# data_eva = UserModel().get_next_previous_data_eva(abs_id,user_id,eva_abs_type)
data_eva = UserModel().get_next_previous_data_eva_v1(abs_id,user_id,eva_abs_type,conf_id)
direction = data_eva[0][0]
data = data_eva[1][0]
# template_name = data['abs_type']+"_eval_View"
template_name = eva_abs_type
template_data = UserModel().get_template(template_name,conf_id)
temp_data = Helper.convert_jinja_template_v1(template_data,data)
return render_template('users/eva_view.html',data=data,direction=direction,conf_id=conf_id,conf_key=conf_key,html_content=temp_data,eva_abs_type=eva_abs_type)
@app.route('/post_view_evaluation/<abs_id>/<string:eva_abs_type>/<conf_id>/<conf_key>',methods=["GET","POST"])
@RouteGroup.conf_required #check if login else automatically redirect to login page
@RouteGroup.login_required #check if login else automatically redirect to login page
def Post_View_Evaluation(abs_id,eva_abs_type,conf_id,conf_key):
confData = Auth.get_conference(conf_id)
mark1 = request.values.get('mark1')
mark2 = request.values.get('mark2')
mark3 = request.values.get('mark3')
mark4 = request.values.get('mark4')
mark5 = request.values.get('mark5')
remark = request.values['Remarks']
total_mark = int(mark1 if mark1 else 0)+int(mark2 if mark2 else 0)+int(mark3 if mark3 else 0)+int(mark4 if mark4 else 0)+int(mark5 if mark5 else 0)
data = {
'm1' : mark1,
'm2' : mark2,
'm3' : mark3,
'm4' : mark4,
'm5' : mark5,
'sys_m1' : mark1,
'sys_m2' : mark2,
'sys_m3' : mark3,
'sys_m4' : mark4,
'sys_m5' : mark5,
'comments' : remark,
'sys_marks_total': total_mark,
'created_at' : str(datetime.now()),
'marks_total' : total_mark,
}
society_id = Auth.get_conference(conf_id).get("society_id")
user_id = Auth.get_user(society_id).get('user_id')
result = AbstractModel().sent_mark(abs_id,user_id,eva_abs_type,data,confData.get('conf_schema'))
flash('Marks saved successfully.','success')
return jsonify()
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists