862 lines
43 KiB
Groff
Executable File
862 lines
43 KiB
Groff
Executable File
# from django.core.mail import EmailMultiAlternatives
|
|
# from django.utils.html import strip_tags
|
|
# from django.template.loader import render_to_string
|
|
# from django.conf import settings
|
|
# from MNF.settings import BasePath
|
|
# from django.core.mail import send_mail , get_connection
|
|
# from payment.models import privilegedUser1
|
|
# from django.contrib.auth.models import User
|
|
# from viewerLounge.models import VideoIntroduction, LifeMemberForm
|
|
# from lpp.models import MNFLPPDDatabase
|
|
# from harkat.models import HarkatClubDatabase
|
|
# from relationshipmanager.models import RMDatabase
|
|
# from mnfapp.models import centralDatabase
|
|
# import os
|
|
# from threading import Thread
|
|
# import time
|
|
# import pandas as pd
|
|
# from auto_email.models import emails_creadentials , auto_email_function_errors
|
|
# from MNF.settings import BasePath
|
|
from .models import *
|
|
from .serializer import *
|
|
from rest_framework.response import Response
|
|
from rest_framework.decorators import (api_view, authentication_classes,
|
|
permission_classes)
|
|
from rest_framework_simplejwt.authentication import JWTAuthentication
|
|
from rest_framework.permissions import AllowAny, IsAuthenticated
|
|
|
|
# import time
|
|
# Create your views here.
|
|
|
|
|
|
# basepath = BasePath()
|
|
# def newfunc(list):
|
|
# for i in list:
|
|
# t = User.objects.filter(email=i)
|
|
# if t.exists():
|
|
# t = t[0]
|
|
# username = t.first_name if t.first_name else t.email
|
|
# return True
|
|
|
|
# def poster(user,email_code=None):
|
|
# try:
|
|
# data = User.objects.filter(email = user).values()
|
|
# id = data[0]['id']
|
|
# central_object = centralDatabase.objects.get(user_id=id)
|
|
# if not central_object.isWhatsappJoined:
|
|
# return '1'
|
|
# elif not central_object.isNewsLetterSubscribed:
|
|
# return '2'
|
|
# elif not VideoIntroduction.objects.filter(user=id).exists():
|
|
# return '3'
|
|
# elif not MNFLPPDDatabase.objects.filter(user_id=id).exists():
|
|
# return '4'
|
|
# elif not HarkatClubDatabase.objects.filter(user_id=id).exists():
|
|
# return '5'
|
|
# elif not privilegedUser1.objects.filter(user=id).exists():
|
|
# return '6'
|
|
# elif not RMDatabase.objects.filter(user_id=id).exists():
|
|
# return '7'
|
|
# elif not central_object.isTelegramJoined:
|
|
# return '8'
|
|
# # elif not LifeMemberForm.objects.get(user=id).exists():
|
|
# # return '9'
|
|
# # elif LifeMemberForm.objects.filter(user=id, showreel__isnull=True).exists():
|
|
# # return '10'
|
|
# else:
|
|
# return '9'
|
|
# except Exception as e:
|
|
# print(e)
|
|
# auto_email_function_errors.objects.create(email = str(user),email_code=email_code,key_value={"test":"test"},error=str(e))
|
|
# return '10'
|
|
|
|
|
|
# def mailer(all_email,email_code):
|
|
# try:
|
|
# for to_email in all_email:
|
|
# sheet_code_excel = '/home/user/mnf/project/MNF/MNF/email/sheetCodeExcel.xlsx'
|
|
# fileexcel = pd.read_excel(sheet_code_excel)
|
|
# s1 = slice(0, 2)
|
|
# string = email_code[s1]
|
|
# value = fileexcel[fileexcel['sheet code'] == string]
|
|
# if len(value) <= 0:
|
|
# return ('Email code does not match with any sheet ')
|
|
# sheet_name = value.iloc[0, 1]
|
|
# file_path = "/home/user/mnf/project/MNF/MNF/email/EMAILSheet.xlsx"
|
|
# file = pd.read_excel(file_path, sheet_name=sheet_name, header=1)
|
|
# row_data = file[file['Email Code'] == str(email_code)]
|
|
# if len(row_data) <= 0:
|
|
# return 'Email code is not present in any sheet'
|
|
# row_data = row_data.fillna('')
|
|
# from_email = row_data.iloc[0, 3]
|
|
# additional_option_code = row_data.iloc[0, 7]
|
|
# option_file = pd.read_excel(
|
|
# file_path, sheet_name='Common Options', header=1)
|
|
# option_details = option_file[option_file['CODE'] == str(
|
|
# additional_option_code)]
|
|
# if len(option_details) <= 0:
|
|
# return 'options code does not match with sheet options code'
|
|
# poster_file = pd.read_excel(file_path, sheet_name='poster', header=1)
|
|
# poster_code = poster(user=to_email)
|
|
# postercode = 'P'+str(poster_code)
|
|
# if poster_code == '12':
|
|
# return 'user has not any priority to send poster'
|
|
# poster_url = poster_file[poster_file['Poster code'] == str(postercode)]
|
|
# posterurl = poster_url.iloc[0, 2]
|
|
# title = row_data.iloc[0, 5].split('/')
|
|
# message = {'subject': row_data.iloc[0, 4],
|
|
# 'title1': title[0],
|
|
# 'title2': title[1],
|
|
# 'invitation': row_data.iloc[0, 4],
|
|
# 'additional': option_details.iloc[0, 2],
|
|
# 'poster': posterurl,
|
|
# }
|
|
# msg_html = render_to_string('email_templete.html', message)
|
|
# excel_file = "/home/user/mnf/project/MNF/MNF/email/EmailCredentials.xlsx"
|
|
# details = pd.read_excel(excel_file)
|
|
# email_data = details[details['email'] == str(from_email)]
|
|
# host = email_data.iloc[0, 1]
|
|
# port = int(email_data.iloc[0, 2])
|
|
# password = emails_creadentials.objects.get(email=from_email)
|
|
# connection = get_connection(host=host,port=port,username=from_email,password=password.password,use_tls=True)
|
|
# send_mail(message['subject'],title[1],from_email=from_email,recipient_list=[to_email],html_message=msg_html,connection=connection)
|
|
# notification=Mnf_Notification(user=to_email,title=title[1])
|
|
# notifiaction.save()
|
|
# return
|
|
# except Exception as error:
|
|
# pass
|
|
|
|
# def sendmail(to_email,email_code,key_value=None,filePath=None):
|
|
# # start_time = time.process_time()
|
|
# # t = Thread(target=mailer,args=(to_email,email_code,key_value,filePath))
|
|
# t = Thread(target=mailer,args=(to_email,email_code))
|
|
|
|
# t.start()
|
|
# # t = mailer(to_email,email_code,key_value)
|
|
# # print(t)
|
|
# # time.sleep(1)
|
|
# # print("email func has taken", time.process_time()-start_time, "time")
|
|
# return
|
|
|
|
from django.core.mail import EmailMultiAlternatives
|
|
from django.utils.html import strip_tags
|
|
from django.template.loader import render_to_string
|
|
from django.conf import settings
|
|
from MNF.settings import BasePath
|
|
from django.core.mail import send_mail , get_connection
|
|
from payment.models import privilegedUser1
|
|
from django.contrib.auth.models import User
|
|
from viewerLounge.models import VideoIntroduction
|
|
from lpp.models import MNFLPPDDatabase
|
|
from harkat.models import HarkatClubDatabase
|
|
# from relationshipmanager.models import RMDatabase
|
|
from mnfapp.models import centralDatabase
|
|
import os
|
|
from threading import Thread
|
|
import pandas as pd
|
|
from auto_email.models import emails_creadentials , auto_email_function_errors
|
|
from MNF.settings import BasePath
|
|
# Create your views here.
|
|
|
|
|
|
basepath = BasePath()
|
|
def newfunc(list):
|
|
for i in list:
|
|
t = User.objects.filter(email=i)
|
|
if t.exists():
|
|
t = t[0]
|
|
username = t.first_name if t.first_name else t.email
|
|
return True
|
|
|
|
def poster(user,email_code=None):
|
|
try:
|
|
data = User.objects.filter(email = user).values()
|
|
id = data[0]['id']
|
|
if not centralDatabase.objects.get(user_id=id).isWhatsappJoined:
|
|
return '1'
|
|
elif not centralDatabase.objects.get(user_id=id).isNewsLetterSubscribed:
|
|
return '2'
|
|
elif not VideoIntroduction.objects.filter(user=id).exists():
|
|
return '3'
|
|
elif not MNFLPPDDatabase.objects.filter(user_id=id).exists():
|
|
return '4'
|
|
elif not HarkatClubDatabase.objects.filter(user_id=id).exists():
|
|
return '5'
|
|
elif not privilegedUser1.objects.filter(user=id).exists():
|
|
return '6'
|
|
# elif not RMDatabase.objects.filter(user_id=id).exists():
|
|
# return '7'
|
|
elif not centralDatabase.objects.get(user_id=id).isTelegramJoined:
|
|
return '8'
|
|
# elif not LifeMemberForm.objects.get(user=id).exists():
|
|
# return '9'
|
|
# elif LifeMemberForm.objects.filter(user=id, showreel__isnull=True).exists():
|
|
# return '10'
|
|
else:
|
|
return '9'
|
|
except Exception as e:
|
|
print(e)
|
|
auto_email_function_errors.objects.create(email = str(user),email_code=email_code,key_value={"test":"test"},error=str(e))
|
|
return '10'
|
|
|
|
def mailer(all_email,email_code,key_value,filePath):
|
|
print('basepath',basepath)
|
|
try:
|
|
if not key_value:
|
|
key_value={}
|
|
for to_email in all_email:
|
|
try:
|
|
try:
|
|
name = centralDatabase.objects.filter(email = to_email)
|
|
if name.exists():
|
|
name = name[0]
|
|
userName = name.firstName if name.firstName else name.email
|
|
except:
|
|
name = User.objects.filter(email = to_email)
|
|
if name.exists():
|
|
name = name[0]
|
|
userName = name.first_name if name.first_name else name.email
|
|
except:
|
|
userName = to_email
|
|
key_value.update({"User":userName})
|
|
sheet_code_excel = f'{basepath}/MNF/email/sheetCodeExcel.xlsx'
|
|
fileexcel = pd.read_excel(sheet_code_excel)
|
|
s1 = slice(0, 2)
|
|
string = email_code[s1]
|
|
print("string",string)
|
|
value = fileexcel[fileexcel['sheet code'] == string]
|
|
print("value",value)
|
|
if len(value) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="Email code does not match with any sheet ")
|
|
return print(('Email code does not match with any sheet'))
|
|
sheet_name = value.iloc[0, 1]
|
|
print("sheetname",sheet_name)
|
|
file_path = f"{basepath}/MNF/email/EMAILSheet39.xlsx"
|
|
file = pd.read_excel(file_path, sheet_name=sheet_name, header=1)
|
|
row_data = file[file['Email Code'] == str(email_code)]
|
|
if len(row_data) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="Email code is not present in any sheet")
|
|
return print('Email code is not present in any sheet')
|
|
row_data = row_data.fillna('')
|
|
from_email = row_data.iloc[0, 3]
|
|
print(from_email,"from_email")
|
|
additional_option_code = row_data.iloc[0, 7]
|
|
option_file = pd.read_excel(
|
|
file_path, sheet_name='Common Options', header=1)
|
|
option_details = option_file[option_file['CODE'] == str(
|
|
additional_option_code)]
|
|
if len(option_details) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error='options code does not match with sheet options code')
|
|
return print('options code does not match with sheet options code')
|
|
poster_file = pd.read_excel(file_path, sheet_name='poster', header=1)
|
|
poster_code = poster(user=to_email,email_code = email_code)
|
|
postercode = 'P'+str(poster_code)
|
|
if poster_code == '11':
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="user has not any priority to send poster")
|
|
return print('user has not any priority to send poster')
|
|
poster_url = poster_file[poster_file['Poster code'] == str(postercode)]
|
|
posterurl = poster_url.iloc[0, 2]
|
|
page_url = poster_url.iloc[0,3]
|
|
|
|
dic_subject = str(row_data.iloc[0, 4]).replace('{}','').format_map(key_value)
|
|
dic_invitation = str(row_data.iloc[0, 6]).replace('{}','').format_map(key_value)
|
|
dic_additional = str(option_details.iloc[0, 2]).replace('{}','').format_map(key_value)
|
|
title = str(row_data.iloc[0, 5]).replace('{}','').format_map(key_value).split('/')
|
|
message = {'subject': dic_subject,
|
|
'title1': title[0],
|
|
'title2': title[1],
|
|
'invitation':dic_invitation,
|
|
'additional': dic_additional,
|
|
'poster': posterurl,
|
|
'pageurl':page_url,
|
|
'emailcode':email_code
|
|
}
|
|
print('doneeee')
|
|
msg_html = render_to_string('email_template.html', message)
|
|
print('msg_html')
|
|
excel_file = f"{basepath}/MNF/email/EmailCredentials.xlsx"
|
|
print('exlefile', excel_file)
|
|
details = pd.read_excel(excel_file)
|
|
print('details')
|
|
email_data = details[details['email'] == str(from_email)]
|
|
print('email_sas')
|
|
host = email_data.iloc[0, 1]
|
|
print('hosj')
|
|
port = int(email_data.iloc[0, 2])
|
|
print('pass1')
|
|
password = emails_creadentials.objects.get(email=from_email)
|
|
print('pass2')
|
|
connection = get_connection(host=host,port=port,username=from_email,password=password.password,use_tls=True)
|
|
print('conn1')
|
|
# send_mail(message['subject'],title[1],from_email=from_email,recipient_list=[to_email],html_message=msg_html,connection=connection)
|
|
sendMail = EmailMultiAlternatives(message['subject'],title[1],from_email,to=[to_email],connection=connection)
|
|
print('con2')
|
|
sendMail.attach_alternative(msg_html,"text/html")
|
|
print('texthtml')
|
|
if filePath is not None:
|
|
sendMail.attach_file(f'{filePath}')
|
|
print('notnone')
|
|
# if sheet_name == "Rendz (traction)":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/build_team.png")
|
|
# elif sheet_name == "membershipReferences":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/pitchdeck.png")
|
|
# elif sheet_name == "Misc.":cd
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/ideamall.png")
|
|
if "Idea Mall" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Idea Mall",image_url = "/media/Notification_image/Idea_Mall.png")
|
|
elif "Conversion - LPP" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Conversion - LPP",image_url = "/media/Notification_image/Conversion_LPP.png")
|
|
elif "Script Builder" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Script Builder",image_url = "/media/Notification_image/Script_Builder.png")
|
|
elif "Messiah" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Messiah",image_url = "/media/Notification_image/Messiah.png")
|
|
elif "Project Centre" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Project Centre",image_url = "/media/Notification_image/Project_Centre.png")
|
|
elif "Harkat" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Harkat",image_url = "/media/Notification_image/Harkat.png")
|
|
elif "Pitchdeck Bundle" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Pitchdeck Bundle",image_url = "/media/Notification_image/Pitchdeck_Bundle.png")
|
|
elif "Script page" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Script Page",image_url = "/media/Notification_image/Script_page.png")
|
|
elif "subtitle" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Subtitle",image_url = "/media/Notification_image/subtitle.png")
|
|
# elif "script pad":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
elif "narration" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Narration",image_url = "/media/Notification_image/narration.png")
|
|
elif "Institutional Membership" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Institutional Membership",image_url = "/media/Notification_image/Institutional_Membership.png")
|
|
elif "LPP - Admininstration" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "LPP - Admininstration",image_url = "/media/Notification_image/LPP_Admininstration.png")
|
|
elif "Conversion ppt" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Conversion PPT",image_url = "/media/Notification_image/Conversion_ppt.png")
|
|
elif "viewers lounge" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Viewers Lounge",image_url = "/media/Notification_image/viewers_lounge.png")
|
|
# elif "Ask a question":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Payment":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/payment.png")
|
|
# elif sheet_name == "blockchain":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/blockchain.png")
|
|
# elif sheet_name == "Sheet14":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Institutional Membership":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Institutional Membership":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
else:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name)
|
|
# from plyer import notification
|
|
# notification.notify(title = sheet_name,message = title[1],timeout=100,app_icon = f'{basepath}/media/Notification_image/Conversion_ppt.png',app_name=sheet_name )
|
|
print('mnf_not')
|
|
mnf_notification.save()
|
|
print("sendmail1")
|
|
sendMail.send()
|
|
|
|
print('done compete notification')
|
|
return
|
|
except Exception as error:
|
|
print(error)
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error=str(error))
|
|
pass
|
|
|
|
|
|
def sendmail(to_email,email_code,key_value=None,filePath=None):
|
|
t = Thread(target=mailer,args=(to_email,email_code,key_value,filePath))
|
|
t.start()
|
|
# t = mailer(to_email,email_code,key_value)
|
|
# print(t)
|
|
return
|
|
|
|
|
|
|
|
|
|
@api_view(["GET", "DELETE", "POST", "PUT", "PATCH"])
|
|
@authentication_classes([JWTAuthentication])
|
|
@permission_classes([IsAuthenticated])
|
|
def mnf_notification(request,pk=None):
|
|
if request.method == "GET":
|
|
if pk is not None:
|
|
main = Mnf_Notification.objects.all().filter(user=pk)
|
|
if main:
|
|
|
|
serializer = Mnf_NotificationSerializer(main,many=True)
|
|
return Response(serializer.data)
|
|
else:
|
|
return Response([])
|
|
|
|
main = Mnf_Notification.objects.all()
|
|
serializer = Mnf_NotificationSerializer(main, many=True)
|
|
return Response(serializer.data)
|
|
if request.method == "PATCH":
|
|
main = Mnf_Notification.objects.get(id=pk)
|
|
serializer = Mnf_NotificationSerializer(main, data=request.data ,partial=True)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response("partial data updated")
|
|
return Response(serializer.errors)
|
|
if request.method == "DELETE":
|
|
if pk is not None:
|
|
main = Mnf_Notification.objects.filter(id=pk)
|
|
# else:
|
|
# main = MemberProfile.objects.filter(projectid=pk)
|
|
main.delete()
|
|
return Response("data deleted")# from django.core.mail import EmailMultiAlternatives
|
|
# from django.utils.html import strip_tags
|
|
# from django.template.loader import render_to_string
|
|
# from django.conf import settings
|
|
# from MNF.settings import BasePath
|
|
# from django.core.mail import send_mail , get_connection
|
|
# from payment.models import privilegedUser1
|
|
# from django.contrib.auth.models import User
|
|
# from viewerLounge.models import VideoIntroduction, LifeMemberForm
|
|
# from lpp.models import MNFLPPDDatabase
|
|
# from harkat.models import HarkatClubDatabase
|
|
# from relationshipmanager.models import RMDatabase
|
|
# from mnfapp.models import centralDatabase
|
|
# import os
|
|
# from threading import Thread
|
|
# import time
|
|
# import pandas as pd
|
|
# from auto_email.models import emails_creadentials , auto_email_function_errors
|
|
# from MNF.settings import BasePath
|
|
from .models import *
|
|
from .serializer import *
|
|
#<<<<<<< Updated upstream
|
|
from rest_framework.response import Response
|
|
|
|
from rest_framework.response import Response
|
|
#>>>>>>> Stashed changes
|
|
from rest_framework.decorators import (api_view, authentication_classes,
|
|
permission_classes)
|
|
from rest_framework_simplejwt.authentication import JWTAuthentication
|
|
from rest_framework.permissions import AllowAny, IsAuthenticated
|
|
|
|
# import time
|
|
# Create your views here.
|
|
|
|
|
|
# basepath = BasePath()
|
|
# def newfunc(list):
|
|
# for i in list:
|
|
# t = User.objects.filter(email=i)
|
|
# if t.exists():
|
|
# t = t[0]
|
|
# username = t.first_name if t.first_name else t.email
|
|
# return True
|
|
|
|
# def poster(user,email_code=None):
|
|
# try:
|
|
# data = User.objects.filter(email = user).values()
|
|
# id = data[0]['id']
|
|
# central_object = centralDatabase.objects.get(user_id=id)
|
|
# if not central_object.isWhatsappJoined:
|
|
# return '1'
|
|
# elif not central_object.isNewsLetterSubscribed:
|
|
# return '2'
|
|
# elif not VideoIntroduction.objects.filter(user=id).exists():
|
|
# return '3'
|
|
# elif not MNFLPPDDatabase.objects.filter(user_id=id).exists():
|
|
# return '4'
|
|
# elif not HarkatClubDatabase.objects.filter(user_id=id).exists():
|
|
# return '5'
|
|
# elif not privilegedUser1.objects.filter(user=id).exists():
|
|
# return '6'
|
|
# elif not RMDatabase.objects.filter(user_id=id).exists():
|
|
# return '7'
|
|
# elif not central_object.isTelegramJoined:
|
|
# return '8'
|
|
# # elif not LifeMemberForm.objects.get(user=id).exists():
|
|
# # return '9'
|
|
# # elif LifeMemberForm.objects.filter(user=id, showreel__isnull=True).exists():
|
|
# # return '10'
|
|
# else:
|
|
# return '9'
|
|
# except Exception as e:
|
|
# print(e)
|
|
# auto_email_function_errors.objects.create(email = str(user),email_code=email_code,key_value={"test":"test"},error=str(e))
|
|
# return '10'
|
|
|
|
|
|
# def mailer(all_email,email_code):
|
|
# try:
|
|
# for to_email in all_email:
|
|
# sheet_code_excel = '/home/user/mnf/project/MNF/MNF/email/sheetCodeExcel.xlsx'
|
|
# fileexcel = pd.read_excel(sheet_code_excel)
|
|
# s1 = slice(0, 2)
|
|
# string = email_code[s1]
|
|
# value = fileexcel[fileexcel['sheet code'] == string]
|
|
# if len(value) <= 0:
|
|
# return ('Email code does not match with any sheet ')
|
|
# sheet_name = value.iloc[0, 1]
|
|
# file_path = "/home/user/mnf/project/MNF/MNF/email/EMAILSheet.xlsx"
|
|
# file = pd.read_excel(file_path, sheet_name=sheet_name, header=1)
|
|
# row_data = file[file['Email Code'] == str(email_code)]
|
|
# if len(row_data) <= 0:
|
|
# return 'Email code is not present in any sheet'
|
|
# row_data = row_data.fillna('')
|
|
# from_email = row_data.iloc[0, 3]
|
|
# additional_option_code = row_data.iloc[0, 7]
|
|
# option_file = pd.read_excel(
|
|
# file_path, sheet_name='Common Options', header=1)
|
|
# option_details = option_file[option_file['CODE'] == str(
|
|
# additional_option_code)]
|
|
# if len(option_details) <= 0:
|
|
# return 'options code does not match with sheet options code'
|
|
# poster_file = pd.read_excel(file_path, sheet_name='poster', header=1)
|
|
# poster_code = poster(user=to_email)
|
|
# postercode = 'P'+str(poster_code)
|
|
# if poster_code == '12':
|
|
# return 'user has not any priority to send poster'
|
|
# poster_url = poster_file[poster_file['Poster code'] == str(postercode)]
|
|
# posterurl = poster_url.iloc[0, 2]
|
|
# title = row_data.iloc[0, 5].split('/')
|
|
# message = {'subject': row_data.iloc[0, 4],
|
|
# 'title1': title[0],
|
|
# 'title2': title[1],
|
|
# 'invitation': row_data.iloc[0, 4],
|
|
# 'additional': option_details.iloc[0, 2],
|
|
# 'poster': posterurl,
|
|
# }
|
|
# msg_html = render_to_string('email_templete.html', message)
|
|
# excel_file = "/home/user/mnf/project/MNF/MNF/email/EmailCredentials.xlsx"
|
|
# details = pd.read_excel(excel_file)
|
|
# email_data = details[details['email'] == str(from_email)]
|
|
# host = email_data.iloc[0, 1]
|
|
# port = int(email_data.iloc[0, 2])
|
|
<<<<<<< Updated upstream
|
|
# password = emails_creadentials.objects.get(email=from_email)
|
|
=======
|
|
# password = emails_creadentials.objects.get(email=from_email)
|
|
>>>>>>> Stashed changes
|
|
# connection = get_connection(host=host,port=port,username=from_email,password=password.password,use_tls=True)
|
|
# send_mail(message['subject'],title[1],from_email=from_email,recipient_list=[to_email],html_message=msg_html,connection=connection)
|
|
# notification=Mnf_Notification(user=to_email,title=title[1])
|
|
# notifiaction.save()
|
|
# return
|
|
# except Exception as error:
|
|
# pass
|
|
|
|
# def sendmail(to_email,email_code,key_value=None,filePath=None):
|
|
# # start_time = time.process_time()
|
|
# # t = Thread(target=mailer,args=(to_email,email_code,key_value,filePath))
|
|
# t = Thread(target=mailer,args=(to_email,email_code))
|
|
<<<<<<< Updated upstream
|
|
|
|
=======
|
|
|
|
>>>>>>> Stashed changes
|
|
# t.start()
|
|
# # t = mailer(to_email,email_code,key_value)
|
|
# # print(t)
|
|
# # time.sleep(1)
|
|
# # print("email func has taken", time.process_time()-start_time, "time")
|
|
<<<<<<< Updated upstream
|
|
# return
|
|
=======
|
|
# return
|
|
>>>>>>> Stashed changes
|
|
|
|
from django.core.mail import EmailMultiAlternatives
|
|
from django.utils.html import strip_tags
|
|
from django.template.loader import render_to_string
|
|
from django.conf import settings
|
|
from MNF.settings import BasePath
|
|
from django.core.mail import send_mail , get_connection
|
|
from payment.models import privilegedUser1
|
|
from django.contrib.auth.models import User
|
|
from viewerLounge.models import VideoIntroduction
|
|
from lpp.models import MNFLPPDDatabase
|
|
from harkat.models import HarkatClubDatabase
|
|
# from relationshipmanager.models import RMDatabase
|
|
from mnfapp.models import centralDatabase
|
|
import os
|
|
from threading import Thread
|
|
import pandas as pd
|
|
from auto_email.models import emails_creadentials , auto_email_function_errors
|
|
from MNF.settings import BasePath
|
|
# Create your views here.
|
|
|
|
|
|
basepath = BasePath()
|
|
def newfunc(list):
|
|
for i in list:
|
|
t = User.objects.filter(email=i)
|
|
if t.exists():
|
|
t = t[0]
|
|
username = t.first_name if t.first_name else t.email
|
|
return True
|
|
|
|
def poster(user,email_code=None):
|
|
try:
|
|
data = User.objects.filter(email = user).values()
|
|
id = data[0]['id']
|
|
if not centralDatabase.objects.get(user_id=id).isWhatsappJoined:
|
|
return '1'
|
|
elif not centralDatabase.objects.get(user_id=id).isNewsLetterSubscribed:
|
|
return '2'
|
|
elif not VideoIntroduction.objects.filter(user=id).exists():
|
|
return '3'
|
|
elif not MNFLPPDDatabase.objects.filter(user_id=id).exists():
|
|
return '4'
|
|
elif not HarkatClubDatabase.objects.filter(user_id=id).exists():
|
|
return '5'
|
|
elif not privilegedUser1.objects.filter(user=id).exists():
|
|
return '6'
|
|
<<<<<<< Updated upstream
|
|
elif not RMDatabase.objects.filter(user_id=id).exists():
|
|
return '7'
|
|
=======
|
|
# elif not RMDatabase.objects.filter(user_id=id).exists():
|
|
# return '7'
|
|
>>>>>>> Stashed changes
|
|
elif not centralDatabase.objects.get(user_id=id).isTelegramJoined:
|
|
return '8'
|
|
# elif not LifeMemberForm.objects.get(user=id).exists():
|
|
# return '9'
|
|
# elif LifeMemberForm.objects.filter(user=id, showreel__isnull=True).exists():
|
|
# return '10'
|
|
else:
|
|
return '9'
|
|
except Exception as e:
|
|
print(e)
|
|
auto_email_function_errors.objects.create(email = str(user),email_code=email_code,key_value={"test":"test"},error=str(e))
|
|
return '10'
|
|
|
|
def mailer(all_email,email_code,key_value,filePath):
|
|
print('basepath',basepath)
|
|
try:
|
|
if not key_value:
|
|
key_value={}
|
|
for to_email in all_email:
|
|
try:
|
|
try:
|
|
name = centralDatabase.objects.filter(email = to_email)
|
|
if name.exists():
|
|
name = name[0]
|
|
userName = name.firstName if name.firstName else name.email
|
|
except:
|
|
name = User.objects.filter(email = to_email)
|
|
if name.exists():
|
|
name = name[0]
|
|
userName = name.first_name if name.first_name else name.email
|
|
except:
|
|
userName = to_email
|
|
key_value.update({"User":userName})
|
|
sheet_code_excel = f'{basepath}/MNF/email/sheetCodeExcel.xlsx'
|
|
fileexcel = pd.read_excel(sheet_code_excel)
|
|
s1 = slice(0, 2)
|
|
string = email_code[s1]
|
|
print("string",string)
|
|
value = fileexcel[fileexcel['sheet code'] == string]
|
|
print("value",value)
|
|
if len(value) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="Email code does not match with any sheet ")
|
|
return print(('Email code does not match with any sheet'))
|
|
sheet_name = value.iloc[0, 1]
|
|
print("sheetname",sheet_name)
|
|
file_path = f"{basepath}/MNF/email/EMAILSheet39.xlsx"
|
|
file = pd.read_excel(file_path, sheet_name=sheet_name, header=1)
|
|
row_data = file[file['Email Code'] == str(email_code)]
|
|
if len(row_data) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="Email code is not present in any sheet")
|
|
return print('Email code is not present in any sheet')
|
|
row_data = row_data.fillna('')
|
|
from_email = row_data.iloc[0, 3]
|
|
print(from_email,"from_email")
|
|
additional_option_code = row_data.iloc[0, 7]
|
|
option_file = pd.read_excel(
|
|
file_path, sheet_name='Common Options', header=1)
|
|
option_details = option_file[option_file['CODE'] == str(
|
|
additional_option_code)]
|
|
if len(option_details) <= 0:
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error='options code does not match with sheet options code')
|
|
return print('options code does not match with sheet options code')
|
|
poster_file = pd.read_excel(file_path, sheet_name='poster', header=1)
|
|
poster_code = poster(user=to_email,email_code = email_code)
|
|
postercode = 'P'+str(poster_code)
|
|
if poster_code == '11':
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error="user has not any priority to send poster")
|
|
return print('user has not any priority to send poster')
|
|
poster_url = poster_file[poster_file['Poster code'] == str(postercode)]
|
|
posterurl = poster_url.iloc[0, 2]
|
|
page_url = poster_url.iloc[0,3]
|
|
<<<<<<< Updated upstream
|
|
|
|
dic_subject = str(row_data.iloc[0, 4]).replace('{}','').format_map(key_value)
|
|
=======
|
|
|
|
dic_subject = str(row_data.iloc[0, 4]).replace('{}','').format_map(key_value)
|
|
>>>>>>> Stashed changes
|
|
dic_invitation = str(row_data.iloc[0, 6]).replace('{}','').format_map(key_value)
|
|
dic_additional = str(option_details.iloc[0, 2]).replace('{}','').format_map(key_value)
|
|
title = str(row_data.iloc[0, 5]).replace('{}','').format_map(key_value).split('/')
|
|
message = {'subject': dic_subject,
|
|
'title1': title[0],
|
|
'title2': title[1],
|
|
'invitation':dic_invitation,
|
|
'additional': dic_additional,
|
|
'poster': posterurl,
|
|
'pageurl':page_url,
|
|
'emailcode':email_code
|
|
}
|
|
print('doneeee')
|
|
<<<<<<< Updated upstream
|
|
msg_html = render_to_string('email_template2.html', message)
|
|
excel_file = f"{basepath}/MNF/email/EmailCredentials.xlsx"
|
|
=======
|
|
msg_html = render_to_string('email_template.html', message)
|
|
print('msg_html')
|
|
excel_file = f"{basepath}/MNF/email/EmailCredentials.xlsx"
|
|
print('exlefile', excel_file)
|
|
>>>>>>> Stashed changes
|
|
details = pd.read_excel(excel_file)
|
|
print('details')
|
|
email_data = details[details['email'] == str(from_email)]
|
|
print('email_sas')
|
|
host = email_data.iloc[0, 1]
|
|
print('hosj')
|
|
port = int(email_data.iloc[0, 2])
|
|
print('pass1')
|
|
password = emails_creadentials.objects.get(email=from_email)
|
|
print('pass2')
|
|
connection = get_connection(host=host,port=port,username=from_email,password=password.password,use_tls=True)
|
|
print('conn1')
|
|
# send_mail(message['subject'],title[1],from_email=from_email,recipient_list=[to_email],html_message=msg_html,connection=connection)
|
|
sendMail = EmailMultiAlternatives(message['subject'],title[1],from_email,to=[to_email],connection=connection)
|
|
print('con2')
|
|
sendMail.attach_alternative(msg_html,"text/html")
|
|
print('texthtml')
|
|
if filePath is not None:
|
|
sendMail.attach_file(f'{filePath}')
|
|
<<<<<<< Updated upstream
|
|
|
|
# if sheet_name == "Rendz (traction)":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/build_team.png")
|
|
# elif sheet_name == "membershipReferences":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/pitchdeck.png")
|
|
# elif sheet_name == "Misc.":cd
|
|
=======
|
|
print('notnone')
|
|
# if sheet_name == "Rendz (traction)":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/build_team.png")
|
|
# elif sheet_name == "membershipReferences":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/pitchdeck.png")
|
|
# elif sheet_name == "Misc.":cd
|
|
>>>>>>> Stashed changes
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/ideamall.png")
|
|
if "Idea Mall" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Idea Mall",image_url = "/media/Notification_image/Idea_Mall.png")
|
|
elif "Conversion - LPP" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Conversion - LPP",image_url = "/media/Notification_image/Conversion_LPP.png")
|
|
elif "Script Builder" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Script Builder",image_url = "/media/Notification_image/Script_Builder.png")
|
|
elif "Messiah" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Messiah",image_url = "/media/Notification_image/Messiah.png")
|
|
elif "Project Centre" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Project Centre",image_url = "/media/Notification_image/Project_Centre.png")
|
|
elif "Harkat" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Harkat",image_url = "/media/Notification_image/Harkat.png")
|
|
elif "Pitchdeck Bundle" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Pitchdeck Bundle",image_url = "/media/Notification_image/Pitchdeck_Bundle.png")
|
|
elif "Script page" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Script Page",image_url = "/media/Notification_image/Script_page.png")
|
|
elif "subtitle" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Subtitle",image_url = "/media/Notification_image/subtitle.png")
|
|
# elif "script pad":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
elif "narration" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Narration",image_url = "/media/Notification_image/narration.png")
|
|
elif "Institutional Membership" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Institutional Membership",image_url = "/media/Notification_image/Institutional_Membership.png")
|
|
elif "LPP - Admininstration" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "LPP - Admininstration",image_url = "/media/Notification_image/LPP_Admininstration.png")
|
|
elif "Conversion ppt" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Conversion PPT",image_url = "/media/Notification_image/Conversion_ppt.png")
|
|
elif "viewers lounge" in sheet_name:
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = "Viewers Lounge",image_url = "/media/Notification_image/viewers_lounge.png")
|
|
# elif "Ask a question":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Payment":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/payment.png")
|
|
# elif sheet_name == "blockchain":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/blockchain.png")
|
|
# elif sheet_name == "Sheet14":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Institutional Membership":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
# elif sheet_name == "Institutional Membership":
|
|
# notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name,image_url = "/media/Notification_image/subtitle.png")
|
|
else:
|
|
<<<<<<< Updated upstream
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name)
|
|
# from plyer import notification
|
|
# notification.notify(title = sheet_name,message = title[1],timeout=100,app_icon = f'{basepath}/media/Notification_image/Conversion_ppt.png',app_name=sheet_name )
|
|
=======
|
|
mnf_notification=Mnf_Notification(user=to_email,title=title[1],service_name = sheet_name)
|
|
# from plyer import notification
|
|
# notification.notify(title = sheet_name,message = title[1],timeout=100,app_icon = f'{basepath}/media/Notification_image/Conversion_ppt.png',app_name=sheet_name )
|
|
print('mnf_not')
|
|
>>>>>>> Stashed changes
|
|
mnf_notification.save()
|
|
print("sendmail1")
|
|
sendMail.send()
|
|
<<<<<<< Updated upstream
|
|
|
|
=======
|
|
|
|
>>>>>>> Stashed changes
|
|
print('done compete notification')
|
|
return
|
|
except Exception as error:
|
|
print(error)
|
|
auto_email_function_errors.objects.create(email = to_email,email_code=email_code,key_value=key_value,error=str(error))
|
|
pass
|
|
|
|
|
|
def sendmail(to_email,email_code,key_value=None,filePath=None):
|
|
t = Thread(target=mailer,args=(to_email,email_code,key_value,filePath))
|
|
t.start()
|
|
# t = mailer(to_email,email_code,key_value)
|
|
# print(t)
|
|
<<<<<<< Updated upstream
|
|
return
|
|
=======
|
|
return
|
|
>>>>>>> Stashed changes
|
|
|
|
|
|
|
|
|
|
@api_view(["GET", "DELETE", "POST", "PUT", "PATCH"])
|
|
@authentication_classes([JWTAuthentication])
|
|
@permission_classes([IsAuthenticated])
|
|
def mnf_notification(request,pk=None):
|
|
if request.method == "GET":
|
|
if pk is not None:
|
|
main = Mnf_Notification.objects.all().filter(user=pk)
|
|
if main:
|
|
|
|
serializer = Mnf_NotificationSerializer(main,many=True)
|
|
return Response(serializer.data)
|
|
else:
|
|
return Response([])
|
|
|
|
main = Mnf_Notification.objects.all()
|
|
serializer = Mnf_NotificationSerializer(main, many=True)
|
|
return Response(serializer.data)
|
|
if request.method == "PATCH":
|
|
main = Mnf_Notification.objects.get(id=pk)
|
|
serializer = Mnf_NotificationSerializer(main, data=request.data ,partial=True)
|
|
if serializer.is_valid():
|
|
serializer.save()
|
|
return Response("partial data updated")
|
|
return Response(serializer.errors)
|
|
if request.method == "DELETE":
|
|
if pk is not None:
|
|
main = Mnf_Notification.objects.filter(id=pk)
|
|
# else:
|
|
# main = MemberProfile.objects.filter(projectid=pk)
|
|
main.delete()
|
|
return Response("data deleted")
|