Advertisement
Guest User

Untitled

a guest
Jun 26th, 2018
972
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.31 KB | None | 0 0
  1. from django.core.files import File
  2. from django.core.files.base import ContentFile
  3.  
  4. from enapet.settings import BASE_DIR
  5. from enapet_trabalhos.secrets import token_urlsafe
  6. from enapet_trabalhos.models import CartaAceite, Trabalho, AvaliacaoIndividual
  7.  
  8. import os
  9. EIXOS = {
  10.     'A': 'Unidos pela Cidadania',
  11.     'B': 'Unidos pelo incentivo à Cultura',
  12.     'C': 'Unidos pela Tríade',
  13.     'D': 'Unidos pela Organização do Trabalho',
  14.     'E': 'Unidos pela Educação',
  15.     'F': 'Unidos pela Inovação',
  16.     'G': 'Unidos pela Sustentabilidade',
  17.     'H': 'Unidos pela Saúde Coletiva',
  18.     'I': 'Unidos pela Inclusão',
  19. }
  20.  
  21. PATH_TO_BASE = ""
  22. work_dir = '/home/olivato/cartas/'
  23.  
  24.  
  25. def get_lista_emails_proibidos():
  26.     return [
  27.         "paulavespinola@hotmail.com",
  28.         "iagosantosaguiar@gmail.com",
  29.         "juluzsg@gmail.com",
  30.         "gsouza447@gmail.com",
  31.         "danilorr716@yahoo.com.br",
  32.         "samiraandrade2010@gmail.com",
  33.         "paulavespinola@hotmail.com",
  34.         "mendesjob@hotmail.com",
  35.         "gabbygabrielah@gmail.com",
  36.         "wellissonmarcos@hotmail.com",
  37.         "laiscandido30@hotmail.com",
  38.         "thaislealsilva@hotmail.com",
  39.         "letycia_ffc@hotmail.com",
  40.         "cavalcantealy42@gmail.com",
  41.         "polianalanzzarin@gmail.com",
  42.         "cleversoncosta2009@gmail.com",
  43.         "joffilybrito@gmail.com",
  44.         "marconijunior1@hotmail.com",
  45.         "juliana33silva@gmail.com",
  46.         "thirsonac@gmail.com",
  47.         "iansfreitas16@gmail.com",
  48.         "malena.ac@hotmail.com",
  49.         "joaes.alves@gmail.com",
  50.         "bairral@hotmail.com",
  51.         "ritamendes.uftm@gmail.com",
  52.         "gabrielmoura.g@hotmail.com",
  53.         "silviasouzaac40@hotmail.com",
  54.         "lucassena21@gmail.com",
  55.         "rita.s.paula33@gmail.com",
  56.         "isabelefrancelino@hotmail.com",
  57.         "lleonentwig98@gmail.com",
  58.         "lleonentwig98@gmail.com",
  59.         "mariamenezes2014@outlook.pt",
  60.         "karlla.moraes960@gmail.com",
  61.         "petcultura@gmail.com",
  62.         "oliveirawilliam@outlook.com",
  63.         "moreirarthur42@gmail.com",
  64.         "ariannyoliveira@live.com",
  65.         "estefhanymarreiros@gmail.com",
  66.         "matheusffavila@gmail.com",
  67.         "luisaxavierdemoura@gmail.com",
  68.         "lucasdasilva.lima32@gmail.com"
  69.     ]
  70.  
  71.  
  72. def get_ressalvas_by_trabalho(trab):
  73.     ressalvas = []
  74.     for avind in AvaliacaoIndividual.objects.all():
  75.         if avind.avaliador_trabalho.trabalho == trab:
  76.             if avind.observacoes != "":
  77.                 ressalvas.append(avind.observacoes)
  78.  
  79.     return ressalvas
  80.  
  81.  
  82. def get_trabalhos_by_status(status):
  83.     trabalhos_total = Trabalho.objects.all().filter(valido=True)
  84.     trab = []
  85.     for avind in AvaliacaoIndividual.objects.all():
  86.         if avind.status == status:
  87.             if avind.avaliador_trabalho.trabalho in trabalhos_total and avind.avaliador_trabalho.trabalho not in trab:
  88.                 trab.append(avind.avaliador_trabalho.trabalho)
  89.     return trab
  90.  
  91.  
  92. def create_new_pdf_from_html(carta):
  93.     token = token_urlsafe(16)
  94.     os.system('wkhtmltopdf '+BASE_DIR+'/enapet2018/templates/enapet2018/temp_file.html '+BASE_DIR+'/enapet2018/media/cartas/'+token+'.pdf')
  95.     print(carta.nome_do_fulano + " created at " + work_dir+str(token) + ".pdf")
  96.     carta.carta = '/media/cartas/'+token+'.pdf'
  97.     carta.save()
  98.     return carta.carta
  99.  
  100.  
  101. def create_new_html_from_base(params,trab):
  102.     # wkhtmltopdf index.html index.pdf
  103.     path = BASE_DIR + '/enapet2018/templates/enapet2018/base_pdf.html'
  104.     with open(path,'r') as carta_base:
  105.         filedata = carta_base.read()
  106.         filedata = filedata.replace('[NOME DO AUTOR]', params["nome"])
  107.         filedata = filedata.replace('[TITULO DO TRABALHO]', params["trabalho"])
  108.         filedata = filedata.replace('[AUTORES]', params["autores"])
  109.         filedata = filedata.replace('[EIXO TEMÁTICO]', EIXOS[params["eixo"]])
  110.         filedata = filedata.replace('[APTO/APTO COM RESSALVAS/INAPTO]', params["status"])
  111.         filedata = filedata.replace(",,", ",")
  112.  
  113.     with open(BASE_DIR+ '/enapet2018/templates/enapet2018/temp_file.html', 'w') as file:
  114.         file.write(work_dir+filedata)
  115.     c = CartaAceite(nome_do_fulano=params["nome"], trabalho=trab)
  116.     link_html_pdf = create_new_pdf_from_html(c)
  117.     return link_html_pdf
  118.  
  119.  
  120. # FAZER ISSO PARA CADA TRABALHO QUE PRECISA SER ENVIADO CARTA
  121.  
  122.  
  123. for trab in get_trabalhos_by_status('A'):
  124.     params = {
  125.         "nome":trab.autores.partition(",")[0],
  126.         "trabalho":trab.titulo,
  127.         "autores":trab.autores,
  128.         "eixo":trab.eixos,
  129.         "status":" apto ",
  130.     }
  131.  
  132.     link_opcao = "https://enapet2018.com.br/trabalhos/apresentacao/" + trab.link_opcao
  133.     link_pdf = "https://enapet2018.com.br" + create_new_html_from_base(params, trab)
  134.  
  135.     if trab not in get_lista_emails_proibidos():
  136.         _enviar_email_generico( "ENAPET XXIII - Resultado das Avaliações",
  137.                                 "Resultado das Avaliações",
  138.                                 "Este e-mail contém informações sobre o parecer da avaliação e instruções acerca da escolha do tipo e envio da apresentação.<br/><br/>"                              
  139.                                
  140.                                 "Seu trabalho entitulado " + trab.titulo + " foi corrigido e classificado como Aprovado sem ressalvas.<br/>"
  141.                                 "Os próximos passos são escolher o tipo da apresentação e enviá-la. Para isso, você deve acessar o link disponível, escolher a opção de preferência e anexar o arquivo (.pptx) referente a apresentação.<br/><br/>"
  142.                                 "O link para download do documento com o parecer sobre as avaliações (Carta de Aceite), encontra-se no fim do corpo do e-mail."
  143.                                 "<br/><br/><br/>"
  144.                                 "<br/>Link para o <i>download</i> do parecer: " + link_pdf +
  145.                                 "<br/>Link para escolha tipo e envio da apresentação: " + link_opcao +
  146.                                 "<br/>"
  147.                                 "<u><b>Por favor, não responda este e-mail.</b></u>"
  148.                                 "<br/><br/>A comissão UFSCamp agradece sua participação.<br/>"
  149.                                 , {"nome": params["nome"], "email": a.email}
  150.                             )
  151.  
  152.  
  153.  
  154.  
  155.     # DO: SEM REENVIO DE TRABALHOS
  156.     # texto = texto_sem_ressalvas
  157. for trab in get_trabalhos_by_status('B'):
  158.     params = {
  159.         "nome": trab.autores.partition(",")[0],
  160.         "trabalho": trab.titulo,
  161.         "autores": trab.autores,
  162.         "eixo": trab.eixos,
  163.         "status": " apto com ressalvas, ",
  164.     }
  165.     ressalvas = get_ressalvas_by_trabalho(trab)
  166.     link_opcao = "https://enapet2018.com.br/trabalhos/apresentacao/" + trab.link_opcao
  167.     link_reenvio = "https://enapet2018.com.br/trabalhos/reenvio/" + trab.link_reenvio
  168.     link_pdf = "https://enapet2018.com.br" + create_new_html_from_base(params, trab)
  169.     if trab not in get_lista_emails_proibidos():
  170.         _enviar_email_generico("ENAPET XXIII - Resultado das Avaliações",
  171.                                "Resultado das Avaliações",
  172.                                "Este e-mail contém informações sobre o parecer da avaliação e instruções acerca da escolha do tipo e envio da apresentação.<br/><br/>"
  173.  
  174.                                "Seu trabalho entitulado " + trab.titulo + " foi corrigido e classificado como Aprovado com ressalvas.<br/>"
  175.                                 "<br/><br/> <b>Ressalvas:</b><br/>"
  176.                                 "<p><b>"+ressalvas+"</b></p><br/>"
  177.                                 "Os próximos passos são escolher o tipo da apresentação e enviá-la. Para isso, você deve acessar o link disponível, escolher a opção de preferência e anexar o arquivo (.pptx) referente a apresentação.<br/><br/>"
  178.                               "O link para download do documento com o parecer sobre as avaliações (Carta de Aceite), encontra-se no fim do corpo do e-mail."
  179.                               "<br/><br/><br/>"
  180.                               "<br/>Link para o <i>download</i> do parecer: " + link_pdf +
  181.                                "<br/>Link para escolha tipo e envio da apresentação: " + link_opcao +
  182.                                "<br/>"
  183.                                "<u><b>Por favor, não responda este e-mail.</b></u>"
  184.                                "<br/><br/>A comissão UFSCamp agradece sua participação.<br/>"
  185.                                , {"nome": params["nome"], "email": a.email}
  186.                                )
  187. for trab in get_trabalhos_by_status('C'):
  188.     if trab not in get_lista_emails_proibidos():
  189.         print("Titulo: " + trab.titulo + ", INAPTO")
  190.         _enviar_email_generico("ENAPET XXIII - Resultado das Avaliações",
  191.                                "Resultado das Avaliações",
  192.                                "Este e-mail contém informações sobre o parecer da avaliação.<br/><br/>"
  193.                                "Seu trabalho entitulado " + trab.titulo + " foi corrigido e classificado como Inapto.<br/>"
  194.                                "<u><b>Por favor, não responda este e-mail.</b></u>"
  195.                                "<br/><br/>A comissão UFSCamp agradece sua participação.<br/>"
  196.                                , {"nome": params["nome"], "email": a.email}
  197.                                )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement