Sindbad~EG File Manager
# from fileinput import filename
# import os
# from os import listdir
# from os.path import join, dirname, realpath
# from sqlalchemy import null
# from werkzeug.utils import secure_filename
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,Response,app
# import datetime
# from datetime import timedelta,date,datetime
# from flask import session, app
from .. import Cryptography,Auth,RouteGroup,Helper
from core.model.MemAppModel import MemAppModel
# from core.model.MasterTableModel import MasterTableModel
from core.model.ProfileAppModel import ProfileAppModel
# from core.model.MasterTableController import MasterTableController
# from core.library.email import EMAIL
# import boto3, botocore
from botocore.exceptions import ClientError
# import logging
# import requests
# from urllib.parse import unquote
# import math,csv,urllib,io
# from io import StringIO
# import string
# import ast
app = Blueprint('profile', __name__)
@app.route('/profiles', methods = ["GET"])
def GetProfileApp():
# user_email = Auth.user().get('admin_email')
userdata = Auth.user()
if userdata and userdata['admin_email']:
apps = ProfileAppModel().get_profile_applications(userdata['admin_email'])
societies = ProfileAppModel().get_unavailable_society_app()
count = ProfileAppModel().get_profile_app_status()
return render_template('profile_templates/profile_app_list.html',apps=apps,societies=societies,count=count)
else:
return redirect(url_for("dashboard.AdminPanelLogin"))
#-Profile Information----------------------------------------------------------------------------------------------------------------------------------------
@app.route('/edit_profile_info/<app_id>', methods = ["GET","POST"])
def EditProfileInfo(app_id,app_data=None):
is_page = 1
if app_data:
app_data = app_data
else:
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
society_id = app_data['society_id']
mail_settings = ProfileAppModel().get_mail_setting_ids()
profile_member_types = ProfileAppModel().get_profile_member_type_by_society_id(society_id)
if profile_member_types == None:
profile_member_types = ProfileAppModel().get_profile_member_type()
return render_template('profile_templates/profile_information.html',app=app_data,app_id=app_id,mail_settings=mail_settings,profile_member_types=profile_member_types,is_page=is_page)
@app.route('/post_edit_profile_info/<app_id>', methods = ["GET","POST"])
def PostEditProfileInfo(app_id):
if request.method == "POST":
app_id = request.values.get("app_id",None)
is_page = int(request.values.get("is_page",None))
app_url = request.values.get("app_url") or None
if app_url == None:
app_url = request.values.get("default_app_url") or None
else:
app_url = app_url
profile_member_type = request.form.getlist('profile_member_type',None)or None
if profile_member_type:
profile_member_type_id = ",".join(profile_member_type)
else:
profile_member_type_id = None
data = {
'app_title' : request.form.get("app_title",None),
'app_url' : app_url,
'app_host' : request.form.get("app_host",None),
'society_id' : request.form.get("society_id",None),
'mail_setting_id' : request.form.get("mail_setting",None),
'profile_member_type' : profile_member_type_id,
'is_autologin' : request.form.get("is_autologin",0),
'is_active' : request.form.get("is_active",0),
# 'is_daily_report_mail' : request.form.get("is_daily_report_mail",0),
}
app_title_count = ProfileAppModel().get_app_title_count(data["app_title"],app_id)
# society_id_count = ProfileAppModel().get_society_count(data["society_id"],app_id)
# app_host_count = ProfileAppModel().get_app_host_count(data["app_host"],app_id)
# app_url_count = ProfileAppModel().get_app_url_count(data["app_url"],app_id)
if app_title_count > 0 :
flash(data["app_title"] +" already exists" ,"errorMsg")
return EditProfileInfo(app_id,data)
# elif society_id_count > 0 :
# flash("Please, choose other Society," +"choosed Society already exists" ,"errorMsg")
# return EditProfileInfo(app_id,data)
# elif app_host_count > 0 :
# flash(data["app_host"] +" already exists" ,"errorMsg")
# return EditProfileInfo(app_id,data)
# elif app_url_count > 0 :
# flash(data["app_url"] +" already exists" ,"errorMsg")
# return EditProfileInfo(app_id,data)
else:
ProfileAppModel().update_profile_app(app_id,data)
flag,link = StepValidation(is_page,app_id)
if flag == True:
return redirect(url_for("profile.EditProfileIndexContent",app_id=app_id))
else:
return redirect(link)
# return redirect(url_for("profile.EditProfileIndexContent",app_id=app_id))
#-Profile Index Content----------------------------------------------------------------------------------------------------------------------------------------
@app.route('/edit_profile_index_content/<app_id>', methods = ["GET","POST"])
def EditProfileIndexContent(app_id,app_data=None):
is_page = 2
if app_data:
app_data = app_data
else:
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
return render_template('profile_templates/profile_indexcontent.html',app=app_data,app_id=app_id,is_page=is_page)
@app.route('/post_edit_profile_indexcontent/<app_id>', methods = ["GET","POST"])
def PostEditProfileIndexContent(app_id):
if request.method == "POST":
app_id = request.values.get("app_id",None)
is_page = int(request.values.get("is_page",None))
data = {
'index_content' : request.form.get("index_content",None),
}
ProfileAppModel().update_profile_app(app_id,data)
flag,link = StepValidation(is_page,app_id)
if flag == True:
return redirect(url_for("profile.EditProfileContent",app_id=app_id))
else:
return redirect(link)
# return redirect(url_for("profile.EditProfileContent",app_id=app_id))
#-Profile Content----------------------------------------------------------------------------------------------------------------------------------------
@app.route('/edit_profile_content/<app_id>', methods = ["GET","POST"])
def EditProfileContent(app_id,app_data=None):
is_page = 3
if app_data:
app_data = app_data
else:
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
return render_template('profile_templates/profile_profilecontent.html',app=app_data,app_id=app_id,is_page=is_page)
@app.route('/post_edit_profile_content/<app_id>', methods = ["GET","POST"])
def PostEditProfileContent(app_id):
if request.method == "POST":
app_id = request.values.get("app_id",None)
is_page = int(request.values.get("is_page",None))
data = {
'profile_content' : request.form.get("profile_content",None),
}
ProfileAppModel().update_profile_app(app_id,data)
flag,link = StepValidation(is_page,app_id)
if flag == True:
# flash("Successfully Update" ,"successMsg")
# return redirect(url_for("profile.GetProfileApp"))
return redirect(url_for("profile.ProfileMailTemplate",app_id=app_id))
else:
return redirect(link)
# return redirect(url_for("profile.GetProfileApp"))
# Profile Mail Template---------------------------------------------------------------------------------------------------------------------------------
@app.route('/add_profile_mail_template/<app_id>', methods = ["GET","POST"])
def ProfileMailTemplate(app_id,app_data=None):
is_page = 4
if app_data:
app_data = app_data
else:
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
society_id = app_data['society_id']
app_type_id = app_data['app_type_id']
mail_templates = ProfileAppModel().get_mail_templates(society_id,app_type_id)
# print(mail_templates)
societyData = ProfileAppModel().get_society_data(society_id)
return render_template('profile_templates/profile_mailtemplate.html',app=app_data,app_id=app_id,is_page=is_page,mail_templates=mail_templates,societyData=societyData)
@app.route('/post_add_profile_mail_template/<app_id>', methods = ["GET","POST"])
def PostAddProfileMailTemplate(app_id):
temp_name = ['profile_otp_mail','profile_confirmation_mail','profile_remainder_mail']
# temp_name = ' ,'.join(map(str, temp_name))
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
society_id = app_data['society_id']
# print(society_id)
app_type_id = app_data['app_type_id']
# print(app_type_id)
subject_type = "merge_tag"
# print(subject_type)
mail_type = "jinja"
# print(mail_type)
for template_name in temp_name:
insert_data = ProfileAppModel().insert_profile_mail_template(template_name,society_id,app_type_id,subject_type,mail_type)
return redirect(url_for('profile.ProfileMailTemplate',app_id=app_id))
@app.route('/get_profile_mail_template/<app_id>', methods = ["GET","POST"])
def get_profile_mail_template(app_id):
mail_template_id = request.values.get("mail_template_id",None) or None
mail_template = ProfileAppModel().get_mail_template_by_mail_id(mail_template_id)
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
# print(app_data)
# html_data = render_template('users/email/confirmation_user.html',app_data=app_data)
# print(mail_template)
data = {"mail_data":mail_template,'app_data':app_data,"msg" : "success" ,"status" : 1 }
json_data = json.dumps(data,default = str)
return json_data
@app.route('/update_profile_mail_template/<app_id>/<mail_template_id>', methods = ["GET","POST"])
def update_profile_mail_template(app_id,mail_template_id):
subject = request.values.get("subject") or None
mail_content = request.values.get("mail_content") or None
is_send_backup = request.values.get("is_send_backup") or 0
data_1={
"subject" : subject ,
"mail_content" : mail_content,
"is_send_backup" : is_send_backup
}
# mail_template_id = request.values.get("mail_template_id",None) or None
mail_data = ProfileAppModel().update_mail_template(mail_template_id,data_1)
mail_template = ProfileAppModel().get_mail_template_by_mail_id(mail_template_id)
data = {"mail_data":mail_template,"msg" : "success" ,"status" : 1 }
json_data = json.dumps(data,default = str)
return json_data
#-Add Profile Apps---------------------------------------------------------------------------------------------------------------------------------------
@app.route('/add_profile_app/<app_type_id>',methods=["GET","POST"])
def AddProfileApp(app_type_id):
society_id = request.values.get("society_id",None)
society_name = ProfileAppModel().get_society_name_by_society_id(society_id)
society_name = society_name['society_name']
data={
'app_type_id' : app_type_id,
'society_id' : society_id,
'app_title' : str(society_name) + " Profile Update"
}
app_id = ProfileAppModel().insert_profile_app(data)
return redirect(url_for('profile.EditProfileInfo',app_id=app_id))
#-Step Validation-------------------------------------------------------------------------------------------------------------------------------------------
def StepValidation(is_page,app_id):
data = ProfileAppModel().get_app_by_app_id(app_id)
# data = data
flag = True
link = ""
is_page = int(is_page)
if is_page >=1:
if data["app_title"] == None:
flash("Enter the App Title","app_title")
flag= False
# if get_app["society_id"] == None:
# flash("Please choose Society","society_id")
# flag= False
if data["mail_setting_id"] == None:
flash("Please choose Mail setting","mail_setting")
flag= False
if data["profile_member_type"] == None:
flash("Please select Member","profile_member_type")
flag= False
if data["is_autologin"] == None:
flash("Please select Is Autologin","is_autologin")
flag= False
# if get_app["is_active"] == None:
# flash("Please select Is Autologin","is_active")
# flag= False
if flag == False:
flash("Please Complete Profile Information ","errorMsg")
link = url_for('profile.EditProfileInfo',app_id=app_id)
return flag,link
#Edit Post(old)-----------------------------------------------------------------------------------------------------------------------------------------
@app.route('/edit_profile_info/<app_id>', methods = ["GET","POST"])
def EditProfileApp(app_id,app_data=None):
if app_data:
app_data = app_data
else:
app_data = ProfileAppModel().get_profile_application_by_app_id(app_id)
societies = ProfileAppModel().get_all_society()
mail_settings = ProfileAppModel().get_mail_setting_ids()
profile_member_types = ProfileAppModel().get_profile_member_type()
return render_template('profile_templates/edit_profileapp.html',app=app_data,app_id=app_id,societies=societies,mail_settings=mail_settings,profile_member_types=profile_member_types)
@app.route('/post_edit_profile_app/<app_id>', methods = ["GET","POST"])
def PostEditProfileApp(app_id):
if request.method == "POST":
app_id = request.values.get("app_id",None)
profile_member_type = request.form.getlist('profile_member_type')
profile_member_type_id = ",".join(profile_member_type)
data = {
'app_title' : request.form.get("app_title",None),
'app_url' : request.form.get("app_url",None),
'app_host' : request.form.get("app_host",None),
'society_id' : request.form.get("society_id",None),
'mail_setting_id' : request.form.get("mail_setting",None),
'profile_member_type' : profile_member_type_id,
'index_content' : request.form.get("index_content",None),
'profile_content' : request.form.get("profile_content",None),
'is_autologin' : request.form.get("is_autologin",0),
'is_active' : request.form.get("is_active",0),
'is_daily_report_mail' : request.form.get("is_daily_report_mail",0),
}
app_title_count = ProfileAppModel().get_app_title_count(data["app_title"],app_id)
society_id_count = ProfileAppModel().get_society_count(data["society_id"],app_id)
app_host_count = ProfileAppModel().get_app_host_count(data["app_host"],app_id)
app_url_count = ProfileAppModel().get_app_url_count(data["app_url"],app_id)
if app_title_count > 0 :
flash(data["app_title"] +" already exists" ,"errorMsg")
return EditProfileApp(app_id,data)
elif society_id_count > 0 :
flash("Please, choose other Society," +"choosed Society already exists" ,"errorMsg")
return EditProfileApp(app_id,data)
elif app_host_count > 0 :
flash(data["app_host"] +" already exists" ,"errorMsg")
return EditProfileApp(app_id,data)
elif app_url_count > 0 :
flash(data["app_url"] +" already exists" ,"errorMsg")
return EditProfileApp(app_id,data)
else:
ProfileAppModel().update_profile_app(app_id,data)
return redirect(url_for("profile.EditProfileApp",app_id=app_id))
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists