Sindbad~EG File Manager

Current Path : /home/numerotech/test-abs.numerotech.com/common_abs_v2/core/controller/TNASICON24/
Upload File :
Current File : //home/numerotech/test-abs.numerotech.com/common_abs_v2/core/controller/TNASICON24/EPController.py

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
import datetime

# from .. import Cryptography,Auth,RouteGroup
from core.library.email import EMAIL
from core.library.cryptography import Cryptography
from core.library.route_group import RouteGroup
from core.library.auth import Auth
from core.library.helper import Helper
from datetime import timedelta,date,datetime

import ast
# import collections
from urllib.parse import unquote
from collections import defaultdict
#S3 import
import os
from werkzeug.utils import secure_filename
from os.path import join, dirname, realpath
import boto3, botocore
from botocore.exceptions import ClientError
#name : Mukesh kumar
#version : 4.5
#title: abstract submission
#date:19/01/2023 01:14

class EPController():
	
	def GuidelineIndex(abs_type,conf_id,conf_key):                                                
		guideline = UserModel().get_guidelines(abs_type)
		return render_template('users/IAGES/guideline.html',guideline = guideline,abs_type = abs_type,conf_id=conf_id,conf_key=conf_key)


	def AbstractsIndex(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')
		confe_id      = Auth.get_conference(conf_id).get('conf_id')
		data          = UserModel().get_abstract_home(user_id,abs_type,confe_id)
		validation    = AbstractModel().abstract_home_validation('EP',user_id,confe_id)
		my_abstracts  = data[0]
		eng_abstracts = data[1]

		if(validation["status"] != 1):
			flash(validation["msg"])
		return render_template('users/TNASI24/EP/abstract.html',data=my_abstracts,abs_type='EP',data1=eng_abstracts,data2 = validation,lent=len(my_abstracts),conf_id=conf_id,conf_key=conf_key)

	def main_layout(abs_type,abs_id,conf_id,conf_key):
		return render_template('users/TNASI24/EP/main_EP.html',abs_type=abs_type,abs_id=abs_id,conf_id=conf_id,conf_key=conf_key)

	def New(abs_type,conf_id,conf_key):
		confData = Auth.get_conference(conf_id)
		society_id = Auth.get_conference(conf_id).get("society_id")
		user_id = Auth.get_user(society_id).get('user_id')
		confe_id = Auth.get_conference(conf_id).get("conf_id")
		created_at = datetime.now()
		result   = UserModel().new_abs(user_id,abs_type,34,created_at,confe_id,confData.get('conf_schema'))
		abs_id   = Cryptography.encrypt(int(result[0]))
		return abs_id
		
	def Step1(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		json        =   {'msg':'','status' : 1,'data':''}
		abs_id      =   int(Cryptography.decrypt(unquote(request.values.get('abs_id'))))
		society_id  =   Auth.get_conference(conf_id).get("society_id")
		user_id     =   Auth.get_user(society_id).get('user_id')
		user_info   =   UserModel().get_users_member_no(user_id)#getting name and membership for the user_id
		# categories  =   UserModel().get_categories(abs_type,conf_id)
		categories  =   UserModel().get_categories_v1(abs_type,conf_id)
		if(abs_id > 0):
			abstract_info    =  AbstractModel().get_abstracts_by_user_abs_id(user_id,abs_id,confData['conf_schema'])#getting abstract info from abstract table
			if abstract_info == [] :
				json = {'msg':'Abstract Not Found<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)    
			if (abstract_info["abs_status_id"] == 0):
				type_of_presentation  = AbstractModel().get_usp_type_of_presentation(user_id,conf_id)#getting presenting type from DB for PP
				abs_id                = Cryptography.encrypt(abs_id)
				guideline             = UserModel().get_guidelines(abs_type,conf_id)
				json['data']          = render_template('users/TNASI24/EP/step1.html',guideline = guideline,user_info=user_info,abs_id=abs_id,abs_type=abs_type,data=abstract_info,type_of_presentation=type_of_presentation,categories=categories,conf_id=conf_id,conf_key=conf_key)
				return jsonify(json)
			else:
				json = {'msg':'Abstract already submitted<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)
		else:
			return redirect(url_for('main.AbstractsIndex',abs_type=abs_type))


	def Step1post(abs_type,conf_id,conf_key):

		json = {'msg':'','status' : 0,'data':''}
		confData  =  Auth.get_conference(conf_id)
		pa_user_id= request.values.get('pa_user_id')
		abs_id    = request.values.get('abs_id')
		abs_id    = int(Cryptography.decrypt(abs_id))
		if pa_user_id  and int(pa_user_id) > 0:
			PA_count    = AbstractModel().get_FP_PA_count(pa_user_id,abs_id,abs_type,confData.get('conf_schema')) #count the presenting author count to check with count from settings
			settings    = AbstractModel().settings(abs_type,conf_id) #taking count form settings table to check the count of presenting author
			if(PA_count < int(settings[0][0]["setting_value"])):
				data = {
				'category_id'         :request.values.get("cat_type")
				}
				cur_step = request.values['cur_step']
				# print("cur_step",cur_step)
				if int(cur_step) <= 1:
					data["cur_step"] = 1
				step1update = UserModel().update_step(data,abs_id,confData.get('conf_schema'))#updataing the data for step1
				abs_id      = Cryptography.encrypt(int(abs_id))
				return redirect(url_for('main.Step2',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
			else:
				flash('The presenting author can not participate more than '+settings[0][0]["setting_value"])
				abs_id = Cryptography.encrypt(int(abs_id))
				return redirect(url_for('main.Step1',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
		else:
			json['msg'] = 'please select presenting author'
			json['status'] = 0          
			return jsonify(json)


	def Step2(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		json = {'msg':'','status' : 1,'data':''}

		abs_id     = request.values.get('abs_id')
		abs_id     = int(Cryptography.decrypt(abs_id))
		society_id = Auth.get_conference(conf_id).get("society_id")
		user_id = Auth.get_user(society_id).get('user_id')
		step2data  = UserModel().steps_data(abs_id,confData.get('conf_schema'))#get date from DB
		# step2data  = UserModel().steps_2_data(abs_id)#get date from DB
		if step2data == [] :
				json = {'msg':'Abstract Not Found<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)    
		if(step2data['abs_status_id'] == 0 ):
			abs_id = Cryptography.encrypt(abs_id)
			json["data"] = render_template('users/TNASI24/EP/step2.html',data=step2data,abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key)
			return jsonify(json)
		else:
			json = {'msg':'Abstract already submitted<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
			return jsonify(json)

	def StepPost_2(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		abs_id   = request.values["abs_id"]
		user_id  = request.values["user_id"]
		is_next  = request.values.get('is_next')
		if (int(is_next) == 1):
			abs_id   = int(Cryptography.decrypt(abs_id))
			data     = {
			'title'       : request.values.get("title" or ''),
			'synopsis'    : request.values.get("synopsis" or ''),
			'methods'     : request.values.get("methods" or ''),
			'results'     : request.values.get("results" or ''),
			'updated_at'  : datetime.now()   
			}
			cur_step = request.values['cur_step']
			# print("cur_step",cur_step)
			if int(cur_step) <= 2:
				data["cur_step"] = 2
			step2data = UserModel().update_step(data,abs_id,confData.get('conf_schema'))#updating data to DB
			abs_id    = Cryptography.encrypt(int(abs_id))
			return redirect(url_for('main.Step3',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
		else:
			return redirect(url_for('main.Step1',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
		
	def Step3(abs_type,conf_id,conf_key):
		json = {'msg':'','status' : 1,'data':''}
		confData  =  Auth.get_conference(conf_id)
		abs_id     = request.values.get('abs_id')
		abs_id     =    int(Cryptography.decrypt(abs_id))
		step2data  =    UserModel().steps_data(abs_id,confData.get('conf_schema'))#get date from DB
		if step2data == [] :
				json = {'msg':'Abstract Not Found<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)
		if(step2data['abs_status_id'] == 0 ):
			decry_abs_id = abs_id
			abs_id = Cryptography.encrypt(int(abs_id))
			json["data"] = render_template('users/TNASI24/EP/step3.html',data = step2data,abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key,decry_abs_id=decry_abs_id)
			return jsonify(json)
		else:
			json = {'msg':'Abstract already submitted<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
			return jsonify(json)

	def Step3post(abs_id,abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		abs_id      =   unquote(abs_id)
		abs_id1     =   int(Cryptography.decrypt(abs_id))
		is_next     =   request.values.get('is_next')
		if (int(is_next) == 1):
			data    = {
			'is_award':request.values.get("rdnaward" or '')
				}
			cur_step = request.values['cur_step']
			if int(cur_step) <= 3:
				data["cur_step"] = 3
			step3data=UserModel().update_step(data,abs_id1,confData.get('conf_schema'))
			confe_id = Auth.get_conference(conf_id).get("society_id")
			# return redirect(url_for('EP.Step4',abs_id = abs_id,abs_type=abs_type))
			return redirect(url_for('main.Step4',abs_id = abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))# changed to step 4 because tnoa does not contain this steps 
		else:
			return redirect(url_for('main.Step2',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))


	def Searchauthor(abs_type,conf_id,conf_key):
		searchtext  = request.values["searchtext"]
		btn_val     = request.values["btn_val"]
		conf_id     = request.values["conf_id"]
		society_id  = Auth.get_conference(conf_id).get("society_id")
		role_id     = 35 
		if int(btn_val) == 0:
			setting_key = 'EP_PA_COUNT'
			data1       = AbstractModel().settings(setting_key,conf_id)#get settings for PP presenting author count
			if (data1[0]):
				data1 = data1=int(data1[0][0]["setting_value"])
			mem_type = None
			data        = UserModel().get_search_data_presenting(mem_type,role_id,searchtext,abs_type,society_id,conf_id)#getting search data from DB to step3
			html = render_template('users/TNASI24/EP/presenting_authour_search_table.html',data=data,data1=data1)
			return jsonify(html)
		else:
			setting_key = 'EP_CA_COUNT'
			data1       = AbstractModel().settings(setting_key,conf_id)#get settings for PP presenting author count
			if (data1[0]):
				data1 = data1=int(data1[0][0]["setting_value"])
			data        = UserModel().get_search_data(searchtext,role_id,abs_type,society_id,conf_id)#getting search data from DB to step3
			html = render_template('users/TNASI24/EP/co_authour_search_table.html',data=data,data1=data1)
			return jsonify(html)
		

	def Add_update_Presenting_author(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		user_id   = request.values["user_id"]
		abs_id    = request.values["abs_id"]
		role_id   = request.values["role_id"]
		add_PA = UserModel().get_user_data(user_id)#getting user data
		data      = AbstractModel().add_to_presenting_author(abs_id,user_id,role_id,confData.get('conf_schema'))#adding presenting author for PP
		html = render_template('users/TNASI24/EP/presenting_authour_table.html',pa_data=add_PA)
		return jsonify(html)

	def Add_update_co_author(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		user_id     = request.values["user_id"]
		abs_id      = request.values["abs_id"]
		role_id     = request.values["role_id"]
		addcoauthor = UserModel().get_user_data(user_id)#getting user data
		abs_id      = (int(Cryptography.decrypt(abs_id)))
		saved_to    = AbstractModel().add_to_presenting_author(abs_id,user_id,role_id,confData.get('conf_schema'))#adding presenting author for PP
		html    = render_template('users/TNASI24/EP/co_athour_table.html',co_data=addcoauthor)
		return jsonify(html)


	def Step1_get_author(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		abs_id    = request.values["abs_id"]
		data      = AbstractModel().FP_step1_get_author(abs_id,confData.get('conf_schema'))#getting the presenting author to show in step1
		if(data == []):
			data1 = 0
			return jsonify(data1)
		html = render_template('users/TNASI24/EP/presenting_authour_table.html',pa_data=data)
		return jsonify(html)

	def Get_co_author(abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		conf_id     =  request.values["conf_id"]
		confe_name  =  Auth.get_conference(conf_id).get('conf_name')
		duration_db =  AbstractModel().settings(confe_name+"_Duration",conf_id)
		abs_id      =  request.values["abs_id"]
		abs_id      =  int(Cryptography.decrypt(abs_id))
		data        =  AbstractModel().get_authors(abs_id,confData['conf_schema'])#geting author to show in step 3 table
		limit_of_authors = AbstractModel().limit_of_authors(abs_id,confData.get('conf_schema'))#geting count of author for co-authors
		settings    = AbstractModel().settings(abs_type+"_CA_COUNT",conf_id)
		# print(limit_of_authors)
		if(limit_of_authors >= int(settings[0][0]["setting_value"])):
			limit   = 0
		else:
			limit   = 1
		html = render_template('users/TNASI24/EP/co_athour_table.html',co_data=data,limit=limit)
		return jsonify(html)

	@RouteGroup.validation_EP_required
	def Step4(abs_id,abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		json = {'msg':'','status' : 1,'data':''}
		abs_id              = unquote(abs_id)
		abs_id              = int(Cryptography.decrypt(abs_id))
		society_id = Auth.get_conference(conf_id).get("society_id")
		user_id = Auth.get_user(society_id).get('user_id')
		stepsdata             =  AbstractModel().get_sept4_data(abs_id,confData.get('conf_schema'))#getting user and abstract data
		check_authors_count = AbstractModel().check_authors_count(abs_id,36,confData.get('conf_schema'))#this is used for step3 co-author count for VT AND PP
		if stepsdata == [] :
				json = {'msg':'Abstract Not Found<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)
		if(stepsdata["abs_status_id"] == 0 ):
			if(check_authors_count["authors_count"] >= 0 ):
				uploaded_data = AbstractModel().get_img_upload_by_abs_id(abs_id)
				stepsdata             =  AbstractModel().get_sept4_data(abs_id,confData.get('conf_schema'))#getting user and abstract data
				abs_id            =  Cryptography.encrypt(int(abs_id))
				# return redirect(url_for('EP.Step5',abs_id=abs_id,abs_type=abs_type))
				json["data"] = render_template('users/TNASI24/EP/step4.html',abs_type=abs_type,abs_id=abs_id,data=stepsdata,conf_id=conf_id,conf_key=conf_key,uploaded_data=uploaded_data)
				return jsonify(json) # this is commented by mukesh tnoa has only 4 steps and skipped the 4 step
			else:
				json["msg"] = 'Enter at least one author'
				json["status"] = 0
				return jsonify(json)
				
		else:
			json = {'msg':'Abstract already submitted<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
			return jsonify(json)

	def Step4post(abs_id,abs_type,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		abs_id       =   unquote(abs_id)
		abs_id       =   int(Cryptography.decrypt(abs_id))
		is_next      =   request.values.get('is_next')
		# img    = AbstractModel().get_img_upload_count(abs_id)
		# if img :
		if (int(is_next) == 1):
			misc1             = request.values["misc1"]
			data={
				'misc1':misc1,
			}
			cur_step = request.values['cur_step']
			if int(cur_step) <= 4:
				data["cur_step"] = 4
			datatoupdate=UserModel().update_step(data,abs_id,confData.get('conf_schema'))#update data from step 4 for Fp
			abs_id = Cryptography.encrypt(int(abs_id))
			return redirect(url_for('main.Step5',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
		else:
			abs_id            =  Cryptography.encrypt(int(abs_id))
			return redirect(url_for('main.Step3',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key))
		# else:
		#     json = {'msg':'Please upload your presentation','status' : 0,'data':''}
		#     return jsonify(json)
		
	def Step5(abs_id,abs_type,conf_id,conf_key):
		json = {'msg':'','status' : 1,'data':''}
		abs_id      =   unquote(abs_id)
		abs_id   = int(Cryptography.decrypt(abs_id))
		confData  =  Auth.get_conference(conf_id)
		data      = AbstractModel().get_sept4_data(abs_id,confData.get('conf_schema'))#getting user and abstract data
		if data == [] :
				json = {'msg':'Abstract Not Found<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
				return jsonify(json)
		elif(data["abs_status_id"] == 0 ):
			data1     = AbstractModel().get_authors(abs_id,confData['conf_schema'])#geting co authors
			data2     = AbstractModel().FP_step1_get_author(abs_id,confData.get('conf_schema'))#getting presenting author
			abs_id    = Cryptography.encrypt(int(abs_id))
			json["data"] = render_template('users/TNASI24/EP/step5.html',abs_type=abs_type,abs_id=abs_id,data=data,data2=data2,data1=data1,conf_id=conf_id,conf_key=conf_key)
			return jsonify(json)
		else:
			json = {'msg':'Abstract already submitted<a href="'+ request.host_url + url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key) +'"> click here to Home Page</a>','status' : 0,'data':''}
			return jsonify(json)

	def Mail(abs_id,conf_id,conf_key):
		conf_data  =  Auth.get_conference(conf_id)
		society_id = Auth.get_conference(conf_id).get("society_id")
		user_id = Auth.get_user(society_id).get('user_id')
		abs_id      =   unquote(abs_id)
		abs_id     = int(Cryptography.decrypt(abs_id))
		data       = AbstractModel().get_sept4_data(abs_id,conf_data.get('conf_schema')) # db call 1
		authors    = AbstractModel().get_authors(abs_id,conf_data['conf_schema']) # db call 2
		is_next  = request.values.get('is_next')
		
		if (int(is_next) == 1):
			if(data["status_check"] == 0):
				data1    = {
						   'submitted_at' :  str(datetime.now()),
						   }
				# ratifi_authour = UserModel().get_ratified_member_count(abs_id,confdata.get('conf_schema')) 
				ratifi_authour = 1
				if int(ratifi_authour) >= 1:
					PA_count = AbstractModel().get_FP_PA_count_final(abs_id,data["abs_type"],conf_data.get('conf_schema'))#checking presenting author count
					data2    = AbstractModel().FP_step1_get_author(abs_id,conf_data.get('conf_schema'))#getting presenting author details
					data3    = AbstractModel().fp_authors_for_email(abs_id,conf_data.get('conf_schema'))#getting co authors details
					settings = AbstractModel().settings('EP_PA_COUNT',conf_id)
					if(PA_count <= int(settings[0][0]["setting_value"])):
						output = AbstractModel().abstract_submited(user_id,abs_id,data["abs_type"],data1,conf_id)
						data       = AbstractModel().get_sept4_data(abs_id,conf_data.get('conf_schema'))
						confe_logo = conf_data['mail_header_logo']
						for i in data3:
							template_name = 'EP_submit_mail'
							mailData      = UserModel().get_mail_templates(template_name,conf_id)
							sub_data      = {'abs_type':data['abs_type'],'abs_no':str(data['abs_no']),'conf_name': conf_data['conf_name']}
							subject       = Helper.merge_tags(mailData.subject,sub_data)
							email         = i["email"]
							mail_data     = {'mail_content': mailData.mail_content,'data': data,'data1':authors,'confData':conf_data,'data2':data2}
							mail_content  = Helper.convert_html_for_mail_screen(mail_data)
							html          = render_template('users/email/mail_template.html',is_layout=mailData.is_layout,mail_content=mail_content,confData=conf_data,conf_id=conf_id,conf_key=conf_key)
							# name    = i["full_name"]
							# subject = "E-Poster Presentation Abstract "+data["abs_type"]+str(data["abs_no"])+" submitted successfully - "+conf_data['conf_name']
							# email   = i["email"]
							# html    = render_template('users/email/EP_submit.html',name=name,data=data,data1=authors,data2=data2,confe_logo = confe_logo,conf_id=conf_id)
							# now     = datetime.now()
							# EMAIL.sendMail(subject,html,email,conf_id)
							EMAIL.sendMail_v1(subject,html,email,mailData,conf_id)
						# return(html)
					else:
						abs_id = Cryptography.encrypt(int(abs_id))
						flash('The presenting author can not participate more than '+settings[0][0]["setting_value"])
						return redirect(url_for('main.AbstractsIndex',abs_type=data["abs_type"],conf_id=conf_id,conf_key=conf_key))
					if output == "success":
						abs_id  = Cryptography.encrypt(int(abs_id))
						user_id = Cryptography.encrypt(int(user_id))
						return redirect(url_for('main.success',abs_type=data["abs_type"],abs_id=abs_id,user_id=user_id,conf_id=conf_id,conf_key=conf_key))
				else:
					flash("There must be one Ratified Member as Author(presenting author or co-author)")
					return redirect(url_for('main.AbstractsIndex',abs_type=data['abs_type'],conf_id=conf_id,conf_key=conf_key))
			else:
				flash('This '+data["abs_type"]+str(data["abs_no"])+' is already submitted')
				return redirect(url_for('main.AbstractsIndex',abs_type=data['abs_type'],conf_id=conf_id,conf_key=conf_key)) 
		else:
			abs_id = Cryptography.encrypt(int(abs_id))
			return redirect(url_for('main.Step4',abs_id=abs_id,abs_type=data['abs_type'],conf_id=conf_id,conf_key=conf_key))#skiped one step for tnoa

			
	def success(abs_type,abs_id,user_id,conf_id,conf_key):
		confData	 = Auth.get_conference(conf_id)
		abs_id        = unquote(abs_id)
		user_id       = unquote(user_id)
		abs_id        = int(Cryptography.decrypt(abs_id))
		user_id       = int(Cryptography.decrypt(user_id))
		authors       = AbstractModel().get_authors(abs_id,confData['conf_schema'])
		data          = AbstractModel().get_abstracts_by_user_abs_id(user_id,abs_id,confData['conf_schema'])
		alert_class   = "alert-success"
		alert_image   = "/static/images/wrong.png"
		alert_message = "Congratulations! your "+ data["abs_type"] + str(data["abs_no"]) +" is submitted successfully "
		return render_template('users/TNASI24/EP/error_success.html',alert_class=alert_class,alert_message=alert_message,abs_id=abs_id,data=data,data2=authors,alert_image=alert_image,conf_id=conf_id,conf_key=conf_key)


	def View(abs_id,conf_id,conf_key):
		confData  =  Auth.get_conference(conf_id)
		abs_id      =   unquote(abs_id) 
		abs_id   = int(Cryptography.decrypt(abs_id))
		data     = AbstractModel().get_sept4_data(abs_id,confData.get('conf_schema'))
		data1    = AbstractModel().get_authors(abs_id,confData['conf_schema'])
		data2    = AbstractModel().FP_step1_get_author(abs_id,confData.get('conf_schema'))
		return render_template('users/TNASI24/EP/view.html',abs_id=abs_id,data=data,data2=data2,data1=data1,conf_id=conf_id,conf_key=conf_key)



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