diff --git a/back/app/contract/print/__init__.py b/back/app/contract/print/__init__.py index d356da39..ee7e4798 100644 --- a/back/app/contract/print/__init__.py +++ b/back/app/contract/print/__init__.py @@ -2,7 +2,7 @@ import datetime import os import base64 -from fastapi import APIRouter, HTTPException +from fastapi import APIRouter, HTTPException, Request from fastapi.responses import HTMLResponse, FileResponse from fastapi.templating import Jinja2Templates @@ -61,47 +61,47 @@ print_router = APIRouter() templates = Jinja2Templates(directory=str(BASE_PATH / "templates")) -async def render_print(host, contract): +async def render_print(root_url, contract): template = templates.get_template("print.html") return template.render({ "contract": contract, - "static_host": host + "root_url": root_url }) -async def render_css(host, contract): +async def render_css(root_url, contract): template = templates.get_template("styles.css") return template.render({ "contract": contract, - "static_host": host + "root_url": root_url }) @print_router.get("/preview/draft/{draft_id}", response_class=HTMLResponse) -async def preview_draft(draft_id: str) -> str: +async def preview_draft(draft_id: str, request: Request) -> str: draft = await build_model(await ContractDraft.get(draft_id)) - return await render_print('localhost', draft) + return await render_print(f'{request.url.scheme}://{request.url.hostname}', draft) @print_router.get("/preview/signature/{signature_id}", response_class=HTMLResponse) -async def preview_contract_by_signature(signature_id: str) -> str: +async def preview_contract_by_signature(signature_id: str, request: Request) -> str: contract = await Contract.find_by_signature_id(signature_id) for p in contract.parties: if p.signature_affixed: p.signature_png = retrieve_signature_png(f'media/signatures/{p.signature_uuid}.png') - return await render_print('localhost', contract) + return await render_print(f'{request.url.scheme}://{request.url.hostname}', contract) @print_router.get("/preview/{contract_id}", response_class=HTMLResponse) -async def preview_contract(contract_id: str) -> str: +async def preview_contract(contract_id: str, request: Request) -> str: contract = await Contract.get(contract_id) for p in contract.parties: if p.signature_affixed: p.signature_png = retrieve_signature_png(f'media/signatures/{p.signature_uuid}.png') - return await render_print('localhost', contract) + return await render_print(f'{request.url.scheme}://{request.url.hostname}', contract) @print_router.get("/pdf/{contract_id}", response_class=FileResponse) @@ -118,8 +118,8 @@ async def create_pdf(contract_id: str) -> str: # os.remove(signature_path) font_config = FontConfiguration() - html = HTML(string=await render_print('nginx', contract)) - css = CSS(string=await render_css('nginx', contract), font_config=font_config) + html = HTML(string=await render_print('http://nginx', contract)) + css = CSS(string=await render_css('http://nginx', contract), font_config=font_config) html.write_pdf(contract_path, stylesheets=[css], font_config=font_config) update_query = {"$set": { diff --git a/back/app/contract/print/templates/print.html b/back/app/contract/print/templates/print.html index 0e7440fc..a0340bf0 100644 --- a/back/app/contract/print/templates/print.html +++ b/back/app/contract/print/templates/print.html @@ -8,7 +8,7 @@
![]() |
+ ![]() |
Cooper, Hillman & Toshi LLP 6834 Innocence Boulevard LOS SANTOS - SA consulting@cht.law.com |