resolution-archive/resulation/views.py

190 lines
7.4 KiB
Python
Raw Normal View History

2025-01-30 17:27:48 +06:00
from django.shortcuts import render, HttpResponse, get_object_or_404, Http404, redirect
2025-01-26 11:22:57 +06:00
from .models import resulation
2025-01-30 13:07:48 +06:00
from datetime import datetime
import os, uuid
import misdghs.settings
2025-01-30 17:27:48 +06:00
from django.http import FileResponse, StreamingHttpResponse
from urllib.parse import unquote
from misdghs import settings
from django.core.files.storage import default_storage
2025-01-26 11:22:57 +06:00
# Create your views here.
def Home(request):
return render(request,'resulation/home.html')
2025-01-30 13:07:48 +06:00
def Savepdf(request):
if request.method == 'POST':
2025-01-26 11:22:57 +06:00
try:
2025-01-30 13:07:48 +06:00
# Get text form fields
pdftype= request.POST.get('pdftype')
2025-01-26 11:22:57 +06:00
org_unit = request.POST.get('org_unit')
topic = request.POST.get('topic')
tittle = request.POST.get('tittle')
m_number = request.POST.get('m_number')
m_date = request.POST.get('m_date')
m_venue = request.POST.get('m_venue')
2025-01-30 13:07:48 +06:00
# Get file uploads
2025-01-26 11:22:57 +06:00
attendance_file = request.FILES.get('attendance_file')
res_con_mou_file = request.FILES.get('res_con_mou_file')
2025-01-30 13:07:48 +06:00
# Create a new seminar instance with text fields
if attendance_file:
2025-01-30 17:27:48 +06:00
new_filename1 = f"attendance_{uuid.uuid4()}.pdf"
path1 = os.path.join('media', 'attendance_files', new_filename1)
2025-01-30 13:07:48 +06:00
with open(path1, 'wb') as destination:
for chunk in attendance_file.chunks():
destination.write(chunk)
if res_con_mou_file:
2025-01-30 17:27:48 +06:00
new_filename2 = f"res_con_{uuid.uuid4()}.pdf"
path2 = os.path.join('media', 'resolution_files', new_filename2)
2025-01-30 13:07:48 +06:00
print(path2)
with open(path2, 'wb') as destination:
for chunk in res_con_mou_file.chunks():
destination.write(chunk)
seminar = resulation(
pdftype=pdftype,
2025-01-26 11:22:57 +06:00
org_unit=org_unit,
topic=topic,
tittle=tittle,
m_number=m_number,
m_date=m_date,
m_venue=m_venue,
2025-01-30 17:27:48 +06:00
attendance_file=new_filename1,
res_con_mou_file=new_filename2,
2025-01-30 13:07:48 +06:00
)
seminar.save()
print(path1)
2025-01-26 11:22:57 +06:00
message = "Data Inserted successfully"
2025-01-30 13:07:48 +06:00
# Redirect after a successful save
2025-01-26 11:22:57 +06:00
return render(request, "resulation/home.html", {'message': message})
2025-01-30 13:07:48 +06:00
2025-01-26 11:22:57 +06:00
except Exception as e:
2025-01-30 13:07:48 +06:00
# Handle any errors (e.g., invalid file types or sizes)
print(f"Error processing form: {str(e)}")
return render(request, 'resulation/resulation.html', {'error': str(e)})
else:
# Render the form template
2025-01-26 11:22:57 +06:00
return render(request, 'resulation/resulation.html')
2025-01-30 17:27:48 +06:00
def Viewresulation(request):
2025-01-26 11:22:57 +06:00
# Get all records from database
pdf_records = resulation.objects.all().order_by('-m_date') # Latest first
2025-01-30 17:27:48 +06:00
return render(request, 'resulation/viewresulation.html', {'pdf_records': pdf_records})
2025-01-30 13:07:48 +06:00
2025-02-02 12:26:20 +06:00
def file_download(request, type, filename):
2025-01-30 17:27:48 +06:00
# Construct the full path to the file
2025-02-02 12:26:20 +06:00
if type== 'attendance':
file_path = os.path.join(settings.MEDIA_ROOT, 'attendance_files', filename)
if type=='resolution':
file_path = os.path.join(settings.MEDIA_ROOT, 'resolution_files', filename)
2025-01-30 13:07:48 +06:00
2025-01-30 17:27:48 +06:00
# Use sendfile to stream the file directly
return FileResponse(open(file_path, 'rb'), content_type='application/pdf')
2025-01-30 13:07:48 +06:00
2025-01-26 11:22:57 +06:00
2025-02-18 16:23:22 +06:00
2025-01-26 11:22:57 +06:00
def Mou(request):
2025-02-18 16:23:22 +06:00
if request.method == 'POST':
try:
# Get text form fields
pdftype= request.POST.get('pdftype')
first_party = request.POST.get('first_party')
second_party = request.POST.get('second_party')
contract_mou_date = request.POST.get('contract_mou_date')
# Get file uploads
res_con_mou_file = request.FILES.get('res_con_mou_file')
if res_con_mou_file:
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():
destination.write(chunk)
seminar = resulation(
pdftype=pdftype,
first_party = first_party,
second_party = second_party,
contract_mou_date = contract_mou_date,
res_con_mou_file=new_filename2,
)
seminar.save()
message = "Data Inserted successfully"
# Redirect after a successful save
return render(request, "resulation/home.html", {'message': message})
except Exception as e:
# Handle any errors (e.g., invalid file types or sizes)
print(f"Error processing form: {str(e)}")
return render(request, 'resulation/mou.html', {'error': str(e)})
else:
# Render the form template
return render(request, 'resulation/mou.html')
def Viewmou(request):
# Get all records from database
pdf_records = resulation.objects.all().order_by('-m_date') # Latest first
return render(request, 'resulation/viewmou.html', {'pdf_records': pdf_records})
def Contract(request):
if request.method == 'POST':
try:
# Get text form fields
pdftype= request.POST.get('pdftype')
contract_name= request.POST.get('topic')
first_party = request.POST.get('first_party')
second_party = request.POST.get('second_party')
contract_mou_date = request.POST.get('contract_mou_date')
contract_mou_closing_date = request.POST.get('closing_date')
duration= request.POST.get('duration')
# Get file uploads
res_con_mou_file = request.FILES.get('res_con_mou_file')
if res_con_mou_file:
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():
destination.write(chunk)
seminar = resulation(
pdftype=pdftype,
topic=contract_name,
first_party = first_party,
second_party = second_party,
contract_mou_date = contract_mou_date,
closing_date= contract_mou_closing_date,
duration=duration,
res_con_mou_file=new_filename2,
)
seminar.save()
message = "Data Inserted successfully"
# Redirect after a successful save
return render(request, "resulation/home.html", {'message': message})
except Exception as e:
# Handle any errors (e.g., invalid file types or sizes)
print(f"Error processing form: {str(e)}")
return render(request, 'resulation/contract.html', {'error': str(e)})
else:
# Render the form template
return render(request, 'resulation/contract.html')
def Viewcontract(request):
# Get all records from database
pdf_records = resulation.objects.all().order_by('-m_date') # Latest first
return render(request, 'resulation/viewcontract.html', {'pdf_records': pdf_records})