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 ):
@@ -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+ "Failed to export PDF" ,
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