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.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