1111from api .playwright import render_pdf_from_url
1212from api .utils import generate_eap_export_url
1313from eap .models import EAPRegistration , EAPType , FullEAP , SimplifiedEAP
14- from eap .utils import get_coordinator_emails_by_region , get_eap_email_context
14+ from eap .utils import (
15+ get_coordinator_emails_by_region ,
16+ get_eap_email_context ,
17+ get_eap_registration_email_context ,
18+ )
1519from main .utils import logger_context
1620from notifications .notification import send_notification
1721
@@ -113,7 +117,6 @@ def generate_export_eap_pdf(eap_registration_id, version):
113117 eap_registration = EAPRegistration .objects .get (id = eap_registration_id )
114118 user = User .objects .get (id = eap_registration .created_by_id )
115119 token = Token .objects .filter (user = user ).last ()
116-
117120 url = generate_eap_export_url (
118121 registration_id = eap_registration_id ,
119122 version = version ,
@@ -181,7 +184,7 @@ def send_new_eap_registration_email(eap_registration_id: int):
181184 ]
182185 )
183186 )
184- email_context = get_eap_email_context (instance )
187+ email_context = get_eap_registration_email_context (instance )
185188 email_subject = (
186189 f"[{ instance .get_eap_type_display () if instance .get_eap_type_display () else 'EAP' } IN DEVELOPMENT] "
187190 f"{ instance .country } { instance .disaster_type } "
@@ -206,12 +209,17 @@ def send_new_eap_submission_email(eap_registration_id: int):
206209 if not instance :
207210 return None
208211
209- partner_contacts = (
210- instance .latest_simplified_eap .partner_contacts
211- if instance .get_eap_type_enum == EAPType .SIMPLIFIED_EAP
212- else instance .latest_full_eap .partner_contacts
213- )
212+ if instance .get_eap_type_enum == EAPType .SIMPLIFIED_EAP :
213+ latest_eap = instance .latest_simplified_eap
214+ else :
215+ latest_eap = instance .latest_full_eap
214216
217+ if not latest_eap .export_file :
218+ generate_export_eap_pdf (
219+ eap_registration_id = instance .id ,
220+ version = latest_eap .version ,
221+ )
222+ partner_contacts = latest_eap .partner_contacts
215223 partner_ns_emails = list (partner_contacts .values_list ("email" , flat = True ))
216224
217225 regional_coordinator_emails : list [str ] = get_coordinator_emails_by_region (instance .country .region )
@@ -258,7 +266,9 @@ def send_feedback_email(eap_registration_id: int):
258266 latest_eap = instance .latest_simplified_eap
259267 else :
260268 latest_eap = instance .latest_full_eap
269+
261270 ifrc_delegation_focal_point_email = latest_eap .ifrc_delegation_focal_point_email
271+
262272 partner_contacts = latest_eap .partner_contacts
263273 partner_ns_emails = list (partner_contacts .values_list ("email" , flat = True ))
264274
@@ -303,13 +313,19 @@ def send_eap_resubmission_email(eap_registration_id: int):
303313 instance = EAPRegistration .objects .filter (id = eap_registration_id ).first ()
304314 if not instance :
305315 return None
306-
307316 if instance .get_eap_type_enum == EAPType .SIMPLIFIED_EAP :
308317 latest_eap = instance .latest_simplified_eap
309318 else :
310319 latest_eap = instance .latest_full_eap
311320
312321 latest_version = latest_eap .version
322+
323+ if not latest_eap .diff_file :
324+ generate_export_diff_pdf (
325+ eap_registration_id = instance .id ,
326+ version = latest_eap .version ,
327+ )
328+
313329 partner_contacts = latest_eap .partner_contacts
314330 partner_ns_emails = list (partner_contacts .values_list ("email" , flat = True ))
315331
@@ -464,12 +480,17 @@ def send_pending_pfa_email(eap_registration_id: int):
464480 if not instance :
465481 return None
466482
467- partner_contacts = (
468- instance .latest_simplified_eap .partner_contacts
469- if instance .get_eap_type_enum == EAPType .SIMPLIFIED_EAP
470- else instance .latest_full_eap .partner_contacts
471- )
483+ if instance .get_eap_type_enum == EAPType .SIMPLIFIED_EAP :
484+ latest_eap = instance .latest_simplified_eap
485+ else :
486+ latest_eap = instance .latest_full_eap
487+
488+ if not latest_eap .summary_file :
489+ generate_eap_summary_pdf (
490+ eap_registration_id = instance .id ,
491+ )
472492
493+ partner_contacts = latest_eap .partner_contacts
473494 partner_ns_emails = list (partner_contacts .values_list ("email" , flat = True ))
474495
475496 regional_coordinator_emails : list [str ] = get_coordinator_emails_by_region (instance .country .region )
0 commit comments