1414
1515def create_ticket_message (ticket ):
1616 event = ticket .article .event
17- tmpl = loader .get_template (' events/email/ticket_message.md' )
18- subject = ' Entrada para {}' .format (event .name )
17+ tmpl = loader .get_template (" events/email/ticket_message.md" )
18+ subject = " Entrada para {}" .format (event .name )
1919 body = tmpl .render (
2020 {
21- ' ticket' : ticket ,
22- ' article' : ticket .article ,
23- ' category' : ticket .article .category ,
24- ' event' : event ,
21+ " ticket" : ticket ,
22+ " article" : ticket .article ,
23+ " category" : ticket .article .category ,
24+ " event" : event ,
2525 }
2626 )
2727 organization = Organization .load_main_organization ()
2828 mail = Mail (
2929 from_email = Email (organization .email , organization .name ),
3030 subject = subject ,
3131 to_email = Email (ticket .customer_email ),
32- content = Content (' text/html' , as_markdown (body )),
32+ content = Content (" text/html" , as_markdown (body )),
3333 )
3434
3535 attachment = Attachment ()
3636 pdf_filename = ticket .as_pdf ()
37- with open (pdf_filename , 'rb' ) as f :
37+ with open (pdf_filename , "rb" ) as f :
3838 data = f .read ()
3939 attachment .content = base64 .b64encode (data ).decode ()
40- attachment .type = ' application/pdf'
41- attachment .filename = ' ticket.pdf'
42- attachment .disposition = ' attachment'
40+ attachment .type = " application/pdf"
41+ attachment .filename = " ticket.pdf"
42+ attachment .disposition = " attachment"
4343 mail .add_attachment (attachment )
4444 return mail
4545
@@ -52,9 +52,9 @@ def send_ticket(ticket, force=False):
5252 response = sg .client .mail .send .post (request_body = msg .get ())
5353 if response .status_code >= 400 :
5454 error_msg = []
55- error_msg .append (' STATUS CODE: {}' .format (response .status_code ))
56- error_msg .append (' RESPONSE HEADERS: {}' .format (response .headers ))
57- error_msg .append (' RESPONSE BODY: {}' .format (response .body ))
55+ error_msg .append (" STATUS CODE: {}" .format (response .status_code ))
56+ error_msg .append (" RESPONSE HEADERS: {}" .format (response .headers ))
57+ error_msg .append (" RESPONSE BODY: {}" .format (response .body ))
5858 raise Exception (os .linesep .join (error_msg ))
5959 ticket .send_at = timezone .now ()
6060 ticket .save ()
@@ -65,20 +65,20 @@ def send_ticket(ticket, force=False):
6565
6666def create_proposal_acknowledge (proposal ):
6767 event = proposal .event
68- tmpl = loader .get_template (' events/email/proposal_acknowledge.md' )
69- subject = ' Acuse de recibo de su propuesta para {}' .format (event .name )
68+ tmpl = loader .get_template (" events/email/proposal_acknowledge.md" )
69+ subject = " Acuse de recibo de su propuesta para {}" .format (event .name )
7070 body = tmpl .render (
7171 {
72- ' event' : event ,
73- ' proposal' : proposal ,
72+ " event" : event ,
73+ " proposal" : proposal ,
7474 }
7575 )
7676 organization = Organization .load_main_organization ()
7777 mail = Mail (
7878 from_email = Email (organization .email , organization .name ),
7979 subject = subject ,
8080 to_email = Email (proposal .email ),
81- content = Content (' text/html' , as_markdown (body )),
81+ content = Content (" text/html" , as_markdown (body )),
8282 )
8383 return mail
8484
@@ -90,10 +90,44 @@ def send_proposal_acknowledge(proposal):
9090 response = sg .client .mail .send .post (request_body = msg .get ())
9191 if response .status_code >= 400 :
9292 error_msg = []
93- error_msg .append (' STATUS CODE: {}' .format (response .status_code ))
94- error_msg .append (' RESPONSE HEADERS: {}' .format (response .headers ))
95- error_msg .append (' RESPONSE BODY: {}' .format (response .body ))
93+ error_msg .append (" STATUS CODE: {}" .format (response .status_code ))
94+ error_msg .append (" RESPONSE HEADERS: {}" .format (response .headers ))
95+ error_msg .append (" RESPONSE BODY: {}" .format (response .body ))
9696 raise Exception (os .linesep .join (error_msg ))
9797 # ticket.send_at = timezone.now()
9898 # ticket.save()
9999
100+
101+ def create_proposal_notification (proposal ):
102+ event = proposal .event
103+ tmpl = loader .get_template ("events/email/proposal_notification.md" )
104+ subject = "Nueva propuesta para {}" .format (event .name )
105+ body = tmpl .render (
106+ {
107+ "event" : event ,
108+ "proposal" : proposal ,
109+ }
110+ )
111+ organization = Organization .load_main_organization ()
112+ mail = Mail (
113+ from_email = Email (organization .email , organization .name ),
114+ subject = subject ,
115+ to_email = Email (organization .email ),
116+ content = Content ("text/html" , as_markdown (body )),
117+ )
118+ return mail
119+
120+
121+ @job
122+ def send_proposal_notification (proposal ):
123+ msg = create_proposal_notification (proposal )
124+ sg = sendgrid .SendGridAPIClient (apikey = settings .SENDGRID_API_KEY )
125+ response = sg .client .mail .send .post (request_body = msg .get ())
126+ if response .status_code >= 400 :
127+ error_msg = []
128+ error_msg .append ("STATUS CODE: {}" .format (response .status_code ))
129+ error_msg .append ("RESPONSE HEADERS: {}" .format (response .headers ))
130+ error_msg .append ("RESPONSE BODY: {}" .format (response .body ))
131+ raise Exception (os .linesep .join (error_msg ))
132+ # ticket.send_at = timezone.now()
133+ # ticket.save()
0 commit comments