1212from  playwright .sync_api  import  sync_playwright 
1313from  rest_framework .authtoken .models  import  Token 
1414
15+ from  main .utils  import  logger_context 
16+ 
1517from  .logger  import  logger 
1618from  .models  import  Export 
17- 
18- # from .utils import DebugPlaywright 
19+ from  .utils  import  DebugPlaywright 
1920
2021
2122def  build_storage_state (tmp_dir , user , token ):
@@ -25,7 +26,7 @@ def build_storage_state(tmp_dir, user, token):
2526    state  =  {
2627        "origins" : [
2728            {
28-                 "origin" : "https://"   +   settings .FRONTEND_URL  +  "/" ,
29+                 "origin" : settings .GO_WEB_INTERNAL_URL  +  "/" ,
2930                "localStorage" : [
3031                    {
3132                        "name" : "user" ,
@@ -51,9 +52,10 @@ def build_storage_state(tmp_dir, user, token):
5152
5253@shared_task  
5354def  generate_url (url , export_id , user , title ):
54-     export  =  Export .objects .filter (id = export_id ). first ( )
55-     user  =  User .objects .filter (id = user ). first ( )
55+     export  =  Export .objects .get (id = export_id )
56+     user  =  User .objects .get (id = user )
5657    token  =  Token .objects .filter (user = user ).last ()
58+ 
5759    footer_template  =  """ 
5860        <div class="footer" style="width: 100%;font-size: 8px;color: #FEFEFE; bottom: 10px; position: absolute;"> 
5961        <div style="float: left; margin-top: 10px; margin-left: 40px;"> 
@@ -80,6 +82,7 @@ def generate_url(url, export_id, user, title):
8082        </div> 
8183        </div> 
8284    """   # noqa: E501 
85+ 
8386    try :
8487        with  tempfile .TemporaryDirectory () as  tmp_dir :
8588            with  sync_playwright () as  p :
@@ -103,7 +106,8 @@ def generate_url(url, export_id, user, title):
103106                )
104107                context  =  browser .new_context (storage_state = storage_state )
105108                page  =  context .new_page ()
106-                 # DebugPlaywright.debug(page) 
109+                 if  settings .DEBUG_PLAYWRIGHT :
110+                     DebugPlaywright .debug (page )
107111                timeout  =  300000 
108112                page .goto (url , timeout = timeout )
109113                time .sleep (5 )
@@ -131,7 +135,11 @@ def generate_url(url, export_id, user, title):
131135                    "completed_at" ,
132136                ]
133137            )
134-     except  Exception  as  e :
135-         logger .error (e )
138+     except  Exception :
139+         logger .error (
140+             f"Failed to export PDF: { export .export_type }  " ,
141+             exc_info = True ,
142+             extra = logger_context (dict (export_id = export .pk )),
143+         )
136144        export .status  =  Export .ExportStatus .ERRORED 
137145        export .save (update_fields = ["status" ])
0 commit comments