Kaynağa Gözat

Docuware File Stream

gc-server3 2 gün önce
ebeveyn
işleme
77a31b8576

+ 5 - 3
app/routes.py

@@ -6,6 +6,7 @@ from typing import Annotated
 from urllib.parse import unquote, urlencode
 from urllib.parse import unquote, urlencode
 
 
 import pandas as pd
 import pandas as pd
+import requests
 from docx import Document
 from docx import Document
 from docxtpl import DocxTemplate
 from docxtpl import DocxTemplate
 from fastapi import APIRouter, Depends, Form, HTTPException, Request, Response
 from fastapi import APIRouter, Depends, Form, HTTPException, Request, Response
@@ -400,9 +401,10 @@ def forderungen_files(request: Request, primary_key: str, db: Session = Depends(
     pkey = convert_primary_key("forderungen", primary_key)
     pkey = convert_primary_key("forderungen", primary_key)
     try:
     try:
         filename = get_invoice_pdf_by_document_no(client_db=pkey["Client_DB"], document_no=pkey["Beleg_Nr"])
         filename = get_invoice_pdf_by_document_no(client_db=pkey["Client_DB"], document_no=pkey["Beleg_Nr"])
-        return Response(
-            content=f'<iframe src="{filename}" style="width: 100%; height: 800px;" frameborder="0">Ihr Browser kann leider keine eingebetteten Frames anzeigen.</iframe>',
-            media_type="text/html",
+        # filename = "http://localhost:8093/static/assets/pdf/invoice.pdf"
+        return StreamingResponse(
+            requests.get(filename, stream=True).raw,
+            media_type="application/pdf",
         )
         )
     except ValueError as e:
     except ValueError as e:
         raise HTTPException(status_code=404, detail=str(e))
         raise HTTPException(status_code=404, detail=str(e))

+ 1 - 1
templates/base/liste.html

@@ -70,7 +70,7 @@ Klassen:
         <button type="button" class="btn-close" data-coreui-dismiss="modal" aria-label="Close"></button>
         <button type="button" class="btn-close" data-coreui-dismiss="modal" aria-label="Close"></button>
       </div>
       </div>
       <div class="modal-body" id="exampleModalBody">
       <div class="modal-body" id="exampleModalBody">
-        <iframe src="/static/assets/pdf/invoice.pdf" style="width: 100%; height: 800px;" frameborder="0">
+        <iframe src="/static/assets/pdf/invoice.pdf" style="width: 100%; height: 800px;" frameborder="0" id="invoiceIframe">
           Ihr Browser kann leider keine eingebetteten Frames anzeigen.
           Ihr Browser kann leider keine eingebetteten Frames anzeigen.
         </iframe>
         </iframe>
       </div>
       </div>

+ 1 - 1
templates/forderungen/liste/liste_zeile.html

@@ -16,7 +16,7 @@
 
 
   <td class="text-end align-top">
   <td class="text-end align-top">
     <div class="gc-money">{{ row.Beleg_Betrag|number_format }} €</div>
     <div class="gc-money">{{ row.Beleg_Betrag|number_format }} €</div>
-    <a href="#" data-coreui-toggle="modal" data-coreui-target="#exampleModal" hx-get="/app/forderungen/files/{{ row.Client_DB }}_{{ row.Beleg_Nr }}" hx-target="#exampleModalBody" hx-swap="innerHTML">
+    <a href="#" data-coreui-toggle="modal" data-coreui-target="#exampleModal" onclick='javascript:document.getElementById("invoiceIframe").src="/app/forderungen/files/{{ row.Client_DB }}_{{ row.Beleg_Nr }}";'>
       <span class="gc-badge gc-badge-info">{{ row.Beleg_Nr }}</span>
       <span class="gc-badge gc-badge-info">{{ row.Beleg_Nr }}</span>
     </a>
     </a>
   </td>
   </td>