diff --git a/media/attendance_files/attendance_0c97e6f8-b729-4c69-ba01-15228935f27c.pdf b/media/attendance_files/attendance_0c97e6f8-b729-4c69-ba01-15228935f27c.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_0c97e6f8-b729-4c69-ba01-15228935f27c.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_1b92e9a7-8f29-4af4-9ad1-47ae41e74c33.pdf b/media/attendance_files/attendance_1b92e9a7-8f29-4af4-9ad1-47ae41e74c33.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_1b92e9a7-8f29-4af4-9ad1-47ae41e74c33.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_1c6390d8-adfe-481c-a2cd-fc8476d1c225.pdf b/media/attendance_files/attendance_1c6390d8-adfe-481c-a2cd-fc8476d1c225.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_1c6390d8-adfe-481c-a2cd-fc8476d1c225.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_6984e06c-ee28-41ff-9823-ff4344a6d37f.pdf b/media/attendance_files/attendance_6984e06c-ee28-41ff-9823-ff4344a6d37f.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_6984e06c-ee28-41ff-9823-ff4344a6d37f.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_9f414abd-7adf-4fdd-9208-47769216ed85.pdf b/media/attendance_files/attendance_9f414abd-7adf-4fdd-9208-47769216ed85.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_9f414abd-7adf-4fdd-9208-47769216ed85.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_bbf94d2c-9cc5-4eff-a28e-2bc8fb801761.pdf b/media/attendance_files/attendance_bbf94d2c-9cc5-4eff-a28e-2bc8fb801761.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/attendance_files/attendance_bbf94d2c-9cc5-4eff-a28e-2bc8fb801761.pdf and /dev/null differ diff --git a/media/attendance_files/attendance_da3b8e62-13d3-4511-8277-305d23dc8cb7.pdf b/media/attendance_files/attendance_da3b8e62-13d3-4511-8277-305d23dc8cb7.pdf new file mode 100644 index 0000000..cb89fa9 Binary files /dev/null and b/media/attendance_files/attendance_da3b8e62-13d3-4511-8277-305d23dc8cb7.pdf differ diff --git a/media/resolution_files/res_con_0f1191a5-307b-4722-b89b-3d7a6bd0b4c6.pdf b/media/resolution_files/res_con_0f1191a5-307b-4722-b89b-3d7a6bd0b4c6.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/resolution_files/res_con_0f1191a5-307b-4722-b89b-3d7a6bd0b4c6.pdf and /dev/null differ diff --git a/media/resolution_files/res_con_109b961f-f152-4152-a314-3e5875bb493d.pdf b/media/resolution_files/res_con_109b961f-f152-4152-a314-3e5875bb493d.pdf new file mode 100644 index 0000000..8558865 Binary files /dev/null and b/media/resolution_files/res_con_109b961f-f152-4152-a314-3e5875bb493d.pdf differ diff --git a/media/resolution_files/res_con_7ffe081b-5ce6-4966-97a6-60b2f3caddec.pdf b/media/resolution_files/res_con_7ffe081b-5ce6-4966-97a6-60b2f3caddec.pdf deleted file mode 100644 index ab2f67d..0000000 Binary files a/media/resolution_files/res_con_7ffe081b-5ce6-4966-97a6-60b2f3caddec.pdf and /dev/null differ diff --git a/media/resolution_files/res_con_9f9a48cc-190e-4ffa-a849-3e6ca9b52467.pdf b/media/resolution_files/res_con_9f9a48cc-190e-4ffa-a849-3e6ca9b52467.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/resolution_files/res_con_9f9a48cc-190e-4ffa-a849-3e6ca9b52467.pdf and /dev/null differ diff --git a/media/resolution_files/res_con_c806c1aa-5e74-45ae-821b-02bfae98333c.pdf b/media/resolution_files/res_con_c806c1aa-5e74-45ae-821b-02bfae98333c.pdf deleted file mode 100644 index 7ddcbe5..0000000 Binary files a/media/resolution_files/res_con_c806c1aa-5e74-45ae-821b-02bfae98333c.pdf and /dev/null differ diff --git a/media/resolution_files/res_con_da006cd1-758e-4922-84b2-143d8df0ca9c.pdf b/media/resolution_files/res_con_da006cd1-758e-4922-84b2-143d8df0ca9c.pdf deleted file mode 100644 index 86c87c5..0000000 Binary files a/media/resolution_files/res_con_da006cd1-758e-4922-84b2-143d8df0ca9c.pdf and /dev/null differ diff --git a/media/resolution_files/res_con_e1bab1de-30a6-47c5-a13e-beb8bc4026e6.pdf b/media/resolution_files/res_con_e1bab1de-30a6-47c5-a13e-beb8bc4026e6.pdf deleted file mode 100644 index 86c87c5..0000000 Binary files a/media/resolution_files/res_con_e1bab1de-30a6-47c5-a13e-beb8bc4026e6.pdf and /dev/null differ diff --git a/resulation/__pycache__/urls.cpython-311.pyc b/resulation/__pycache__/urls.cpython-311.pyc index b789b9a..fcfdf5d 100644 Binary files a/resulation/__pycache__/urls.cpython-311.pyc and b/resulation/__pycache__/urls.cpython-311.pyc differ diff --git a/resulation/__pycache__/views.cpython-311.pyc b/resulation/__pycache__/views.cpython-311.pyc index e25a3e6..b6eded1 100644 Binary files a/resulation/__pycache__/views.cpython-311.pyc and b/resulation/__pycache__/views.cpython-311.pyc differ diff --git a/resulation/urls.py b/resulation/urls.py index 75939b1..fa552d6 100644 --- a/resulation/urls.py +++ b/resulation/urls.py @@ -1,10 +1,11 @@ from django.conf import settings from django.contrib import admin -from django.urls import path, include, re_path +from django.urls import path, include import resulation.views from django.conf.urls.static import static -from django.urls import path +from django.urls import path, re_path from . import views +from django.views.static import serve urlpatterns = [ path('', resulation.views.Home, name='home'), @@ -12,6 +13,9 @@ urlpatterns = [ path('viewresulation/', resulation.views.Viewresulation, name='viewresulation'), path('deed/', resulation.views.Contract, name='deed'), path('mou/', resulation.views.Mou, name='mou'), + re_path('downloads//', resulation.views.file_download, name='file-download'), + path('rcm/downloads//', resulation.views.file_download, name='file-download'), + path('rcm/', resulation.views.file_download, name='download_file'), ] if settings.DEBUG: diff --git a/resulation/views.py b/resulation/views.py index eac4a84..1af1115 100644 --- a/resulation/views.py +++ b/resulation/views.py @@ -1,9 +1,12 @@ -from django.shortcuts import render, HttpResponse, get_object_or_404 +from django.shortcuts import render, HttpResponse, get_object_or_404, Http404, redirect from .models import resulation from datetime import datetime import os, uuid import misdghs.settings -from django.http import FileResponse +from django.http import FileResponse, StreamingHttpResponse +from urllib.parse import unquote +from misdghs import settings +from django.core.files.storage import default_storage # Create your views here. def Home(request): @@ -27,15 +30,17 @@ def Savepdf(request): # Create a new seminar instance with text fields if attendance_file: - new_filename = f"attendance_{uuid.uuid4()}.pdf" - path1 = os.path.join('media', 'attendance_files', new_filename) + new_filename1 = f"attendance_{uuid.uuid4()}.pdf" + path1 = os.path.join('media', 'attendance_files', new_filename1) + with open(path1, 'wb') as destination: for chunk in attendance_file.chunks(): destination.write(chunk) if res_con_mou_file: - new_filename = f"res_con_{uuid.uuid4()}.pdf" - path2 = os.path.join('media', 'resolution_files', new_filename) + new_filename2 = f"res_con_{uuid.uuid4()}.pdf" + path2 = os.path.join('media', 'resolution_files', new_filename2) + print(path2) with open(path2, 'wb') as destination: for chunk in res_con_mou_file.chunks(): @@ -48,8 +53,8 @@ def Savepdf(request): m_number=m_number, m_date=m_date, m_venue=m_venue, - attendance_file=path1, - res_con_mou_file=path2, + attendance_file=new_filename1, + res_con_mou_file=new_filename2, ) seminar.save() print(path1) @@ -66,13 +71,18 @@ def Savepdf(request): # Render the form template return render(request, 'resulation/resulation.html') -def Viewresulation(request, pk): +def Viewresulation(request): # Get all records from database pdf_records = resulation.objects.all().order_by('-m_date') # Latest first - return render(request, response, 'resulation/viewresulation.html', {'pdf_records': pdf_records}) + return render(request, 'resulation/viewresulation.html', {'pdf_records': pdf_records}) +def file_download(request, attendance_id, filename): + # Construct the full path to the file + file_path = os.path.join(settings.MEDIA_ROOT, 'attendance_files', filename) + # Use sendfile to stream the file directly + return FileResponse(open(file_path, 'rb'), content_type='application/pdf') def Contract(request): diff --git a/templates/resulation/viewresulation.html b/templates/resulation/viewresulation.html index de97a56..6c6525b 100644 --- a/templates/resulation/viewresulation.html +++ b/templates/resulation/viewresulation.html @@ -1,6 +1,7 @@ {% extends "base.html" %} {% block content %} {% load static %} +

PDF Records

@@ -34,7 +35,7 @@ {{ record.m_date|date:"d M Y" }} {{ record.m_venue }} - Download + Download {% if record.res_con_mou_file %}