Sindbad~EG File Manager

Current Path : /home/numerotech/admin.numerotech.com/admin_app_v1/core/controller/
Upload File :
Current File : //home/numerotech/admin.numerotech.com/admin_app_v1/core/controller/ProfileAppController.py

# 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