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/SocitiesController.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.AbstractAdminModel import AbstractAdminModel
# 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 core import app
from core.library.helper import Helper
from urllib.parse import unquote
import math,csv,urllib,io
from io import StringIO
import string
import ast
app = Blueprint('societies', __name__)



@app.route('/society', methods = ["GET","POST"])
def Society():
	society_id    = 0
	all_societies = MemAppModel().get_societies()
	societies     = MemAppModel().get_societies_byid(society_id)
	countries     = MemAppModel().get_countries()
	return render_template('societies_templates/societies.html',data=societies,countries=countries,data_1=all_societies)

@app.route('/society_media/<society_id>', methods = ["GET","POST"])
def SocietyMedia(society_id):
	btn_active           = 2
	asset_name           = MemAppModel().get_asset_name()
	check_society_assest = MemAppModel().get_asset_by_id(society_id)
	societies            = MemAppModel().get_societies_byid(society_id)
	society_assets       = MemAppModel().get_admin_society_assets(society_id)
	html_data = render_template('societies_templates/society_assest.html',data_1=society_assets,asset_data=check_society_assest)
	return render_template('societies_templates/society_media.html',data=societies,data_2=asset_name,btn_active=btn_active,asset_data=check_society_assest,html_data=html_data)

@app.route('/post_society_media/<society_id>', methods = ["GET","POST"])
def PostSocietyMedia(society_id):
	society_logo   			= request.form['society_logo']
	email_logo   			= request.form['email_logo']
	favicon_logo   			= request.form['favicon_logo']
	data_1={
		'society_logo' : society_logo,
		'email_logo'   : email_logo,
		'favicon_url'  : favicon_logo,
		'updated_at'   : datetime.now()
	}
	total_assets 			= request.values.get('total_assets' or 0)
	data = []
	for i in range(1,int(total_assets)+1):
		data_dicts = {
				'society_asset_id' : request.values.get('society_asset_id_'+str(i)),
				'asset_name'       : request.values.get('asset_name_'+str(i)),
				'asset_url'        : request.values.get('asset_url_'+str(i)),
				'updated_at'       : datetime.now()
				}
		data.append(data_dicts)
	MemAppModel().update_socities(society_id,data_1)
	MemAppModel().update_admin_society_assets(data)
	flash("updated successfully","successMsg")
	return redirect(url_for('societies.SocietyMedia',society_id=society_id))

@app.route('/post_society_media_duplicate/<society_id>', methods = ["GET","POST"])
def PostSocietyMediaDuplicate(society_id):
	society_key          = request.form['society_key']
	duplicate_society_id = MemAppModel().get_society_id_duplicate(society_key)
	duplicate_society_id = duplicate_society_id['society_id']
	result = MemAppModel().get_admin_society_assets(duplicate_society_id)
	created_at = datetime.now()
	value=''
	for i in result:
		data = "('"+str(society_id)+"','"+str(i['asset_name'])+"','"+str(i['asset_url'])+"','"+str(created_at)+"')"
		value+= str(data)+','
	stmt_1=value.rstrip(',')
	stmt = "insert into society_assets (society_id,asset_name,asset_url,created_at) values"+stmt_1
	society_assets       = MemAppModel().insert_society_assets_bulk(stmt)
	check_society_assest = MemAppModel().get_asset_by_id(society_id)
	society_assets       = MemAppModel().get_admin_society_assets(society_id)
	html_data = render_template('societies_templates/society_assest.html',data_1=society_assets,asset_data=check_society_assest)
	data = {
			'html_data'  : html_data,
			'msg' 	: "success"
		}
	json_data   = json.dumps(data)
	return json_data


@app.route('/add_society_assets/<society_id>', methods = ["GET","POST"])
def AddSocietyAssets(society_id):
	asset_name 			= request.form['asset_name']
	asset_url  			= request.form['asset_url']
	data={
		'society_id' : society_id,
		'asset_name' : asset_name,
		'asset_url'  : asset_url,
		'created_at' : datetime.now()
	}
	if asset_name:
		society_asset = MemAppModel().check_asset_name(asset_name,society_id)
		if society_asset:
			flash(asset_name+" Already Exists" ,"errorMsg")
		else:
			society_asset_id 		= MemAppModel().insert_society_assets(data)
			flash("Inserted successfully","successMsg")
		return redirect(url_for('societies.SocietyMedia',society_id=society_id))

@app.route('/societies_ids/<society_id>', methods = ["GET","POST"])
@app.route('/<id>/societies_ids/<society_id>', methods = ["GET","POST"])
def SocietiesIds(society_id,id=None):
	btn_active    = 1
	all_societies = MemAppModel().get_societies()
	societies 	  = MemAppModel().get_societies_byid(society_id)
	countries     = MemAppModel().get_countries()
	if id:
		flash('Added successfully','successMsg')
	return render_template('societies_templates/societies.html',data=societies,countries=countries,data_1=all_societies,btn_active=btn_active)


@app.route('/post_societies', methods = ["GET","POST"])
def PostSocieties():
	society_id 				= request.form['society_id']
	society_name  		 	= request.form['society_name']
	society_key   			= request.form['society_key']
	society_title   		= request.form['society_title']
	society_intial   		= request.form['society_intial']
	society_host   			= request.form['society_host'] or None	
	aws_bucket         		= request.form['aws_bucket']
	aws_url   				= request.form['aws_url']
	e_support_mail   		= request.form['e_support_mail']
	e_backup_mails   		= request.form['e_backup_mails']
	e_from_mail_name   		= request.form['e_from_mail_name']
	e_from_mail_id   		= request.form['e_from_mail_id']
	e_reply_mail_id			= request.form['e_reply_mail_id']
	e_secretary_mail_id 	= request.form['e_secretary_mail_id']
	secretary_name 			= request.form['secretary_name']
	secretary_mobile    	= request.form['secretary_mobile']
	society_style   		= request.form['society_style']
	static_site_url 		= request.form['static_site_url']
	default_country_id      = request.form['country']
	if society_host==None:
		society_host = request.form['society_default_host']
	data = {
			'society_name' 				: society_name,
			'society_title' 			: society_title,
			'society_style' 			: society_style,
			'society_key'  				: society_key,
			'society_host' 				: society_host,
			'default_country_id' 		: default_country_id,
			'aws_bucket' 				: aws_bucket,
			'aws_url'	 				: aws_url,
			'society_intial' 			: society_intial,
			'e_support_mail' 			: e_support_mail,
			'e_backup_mails' 			: e_backup_mails,
			'e_from_mail_name' 			: e_from_mail_name,
			'e_from_mail_id' 			: e_from_mail_id,
			'e_reply_mail_id'  			: e_reply_mail_id,
			'e_secretary_mail_id' 		: e_secretary_mail_id,
			'static_site_url' 			: static_site_url,
			'secretary_name'            : secretary_name,
			'secretary_mobile'          : secretary_mobile,
			'updated_at' 				: datetime.now()
	}
	_blank = "_blank"
	mesg = " "
	mesg_1 = " "
	is_valid  		= True
	if society_key :
		society_data   = MemAppModel().check_society_by_key_id(society_key,society_id)
		if society_data :
			is_society_id = society_data.society_id
			link = url_for('societies.SocietiesIds',society_id=is_society_id)
			mesg ="Society key already Exists with us ,<a href ="+link+" target="+_blank+" > View</a>"
			is_valid  		= False
	if society_name :
		society_data = MemAppModel().check_society_by_name_id(society_name,society_id)
		if society_data :
			is_society_id = society_data.society_id
			link = url_for('societies.SocietiesIds',society_id=is_society_id)
			mesg_1 ="Society name already Exists with us ,<a href ="+link+" target="+_blank+" > View</a>"
			is_valid  		= False
		else:
			pass
	if society_intial :
		society_data = MemAppModel().check_society_by_intial_id(society_intial,society_id)
		if society_data :
			is_society_id = society_data.society_id
			link = url_for('societies.SocietiesIds',society_id=is_society_id)
			mesg_1 ="Society Initial already Exists with us ,<a href ="+link+" target="+_blank+" > View</a>"
			is_valid  		= False
	if is_valid :	
		MemAppModel().update_socities(society_id,data)
		flash("updated successfully","successMsg")
	else:		
		flash(mesg_1,"errorMsg")
	return redirect(url_for('societies.SocietiesIds',society_id=society_id))

@app.route('/upload_society_detail', methods = ["GET","POST"])
def UploadSociteyDetail():
	file                = request.files['file']
	file_name 			= request.form['file_name']
	if " " in file_name :
		file_name = file_name.replace(" ","")
	acl="public-read"
	s3 = boto3.client("s3",aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ',aws_secret_access_key='EEudWCsWeCIt/J9/z5m5htmUdGFJNzWFPvNQBIp/')
	try:
		bucket     = 'test-memberapp'
		foldername = 'demo'
		response   = s3.upload_fileobj(file, bucket,foldername+'/102/'+ file_name, ExtraArgs={"ACL": acl,"ContentType": file.content_type})
		file_path  ="https://"+bucket+".s3.ap-southeast-1.amazonaws.com/"+ foldername +"/102/"+ file_name
		data = {
			"file_path" : file_path,
			'msg' 	: "success"
		}
		json_data   = json.dumps(data)
		return json_data
	except ClientError as e:
		logging.error(e)
		data_1      = {'msg':'Image upload failed .Please try again.','status':0}        
		json_data   = json.dumps(data_1)
		return json_data

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists