diff --git a/FusionIIIT/applications/iwdModuleV2/models.py b/FusionIIIT/applications/iwdModuleV2/models.py
index a5c40c7b2..a0834f1bb 100644
--- a/FusionIIIT/applications/iwdModuleV2/models.py
+++ b/FusionIIIT/applications/iwdModuleV2/models.py
@@ -1,5 +1,5 @@
from django.db import models
-
+from datetime import date
# Create your models here.
@@ -160,3 +160,51 @@ class NoOfTechnicalBidTimes(models.Model):
key = models.ForeignKey(Projects, on_delete=models.CASCADE, unique=True)
number = models.IntegerField()
+class Requests(models.Model):
+ name = models.CharField(max_length=200)
+ description = models.CharField(max_length=200)
+ area = models.CharField(max_length=200)
+ requestCreatedBy = models.CharField(max_length=200)
+ engineerProcessed = models.IntegerField(default=0)
+ directorApproval = models.IntegerField(default=0)
+ deanProcessed = models.IntegerField(default=0)
+ status = models.CharField(max_length=200)
+ issuedWorkOrder = models.IntegerField(default=0)
+ workCompleted = models.IntegerField(default=0)
+ billGenerated = models.IntegerField(default=0)
+ billProcessed = models.IntegerField(default=0)
+ billSettled = models.IntegerField(default=0)
+
+class WorkOrder(models.Model):
+ # request_id = models.IntegerField()
+ request_id = models.ForeignKey(Requests, on_delete=models.CASCADE)
+ name = models.CharField(max_length=200)
+ date = models.DateField(default=date.today)
+ agency = models.CharField(max_length=200)
+ amount = models.IntegerField(default=0)
+ deposit = models.IntegerField(default=0)
+ alloted_time = models.CharField(max_length=200)
+ start_date = models.DateField()
+ completion_date = models.DateField()
+
+class Inventory(models.Model):
+ name = models.CharField(max_length=200)
+ quantity = models.IntegerField(default=0)
+ cost = models.IntegerField(default=0)
+
+class UsedItems(models.Model):
+ # requestId = models.IntegerField()
+ request_id = models.ForeignKey(Requests, on_delete=models.CASCADE)
+ itemName = models.CharField(max_length=200)
+ cost = models.IntegerField(default=0)
+ quantity = models.IntegerField(default=0)
+ date = models.DateField(default=date.today)
+
+class Bills(models.Model):
+ # requestId = models.IntegerField()
+ request_id = models.ForeignKey(Requests, on_delete=models.CASCADE)
+ file = models.FileField()
+
+class Budget(models.Model):
+ name = models.CharField(max_length=200)
+ budgetIssued = models.IntegerField(default=0)
diff --git a/FusionIIIT/applications/iwdModuleV2/urls.py b/FusionIIIT/applications/iwdModuleV2/urls.py
index 6ad401098..0c0830cea 100644
--- a/FusionIIIT/applications/iwdModuleV2/urls.py
+++ b/FusionIIIT/applications/iwdModuleV2/urls.py
@@ -36,5 +36,46 @@
url(r'milestoneView/$', views.milestoneView, name='Milestones'),
url(r'addendumView/$', views.addendumView, name='Addendum View'),
url('agreementView/$', views.agreementView, name='Agreement VIew'),
- url(r'corrigendumView/$', views.corrigendumView, name='Corrigendum View')
+ url(r'corrigendumView/$', views.corrigendumView, name='Corrigendum View'),
+ url('requestsView/',views.requestsView, name='Requests view'),
+ url('createdRequestsView/',views.createdRequests, name='Created Requests view'),
+ url('handleEngineerProcessRequests/', views.handleEngineerProcessRequests, name='Engineer-Process-Requests'),
+ url('engineerProcessedRequestsView/',views.engineerProcessedRequests, name='Engineer-Processed-Requests view'),
+ url('handleDeanProcessRequests/', views.handleDeanProcessRequests, name='Dean-Process-Requests'),
+ url('deanProcessedRequestsView/',views.deanProcessedRequests, name='Dean-Processed-Requests view'),
+ url('handleDirectorApprovalRequests/', views.handleDirectorApprovalRequests, name='Director-Approval-Requests'),
+ url('handleDirectorRejectionRequests/', views.handleDirectorRejectionRequests, name='Director-Rejection-Requests'),
+ url('updateRejectedRequests/', views.updateRejectedRequests, name='Update-Rejected-Requests'),
+ url('handleUpdateRequests/', views.handleUpdateRequests, name='Handle-Update-Requests'),
+ # url('rejectedRequests/', views.rejectedRequests, name='Rejected-Requests'),
+ url('rejectedRequestsView/',views.rejectedRequests, name='Rejected Requests view'),
+ url('requestsStatus/', views.requestsStatus, name='Requests-Status'),
+ url('fetchDesignations/', views.fetchDesignations, name='Fetch-Designations'),
+ url('fetchRequest/', views.fetchRequest, name='Fetch-Request'),
+ url('issueWorkOrder/', views.issueWorkOrder, name='Issue Work Order'),
+ url('workOrder/', views.workOrder, name='Work Order'),
+ url('inventory/', views.inventory, name='Inventory'),
+ url('addItemsView/', views.addItemsView, name='Add Items View'),
+ url('addItems/', views.addItems, name='Add Items'),
+ url('editInventoryView/', views.editInventoryView, name='Edit Inventory View'),
+ url('editInventory/', views.editInventory, name='Edit Inventory'),
+ url('requestsInProgess/', views.requestsInProgess, name='Requests In Progress'),
+ url('workCompleted/', views.workCompleted, name='Work Completed'),
+ url('requestFromInventory/', views.requestFromInventory, name='Request From Inventory'),
+ url('editInventoryAfterRequest/', views.editInventoryAfterRequest, name='Edit-Inventory-After-Request'),
+ url('generateFinalBill/', views.generateFinalBill, name='Generate-Final-Bill'),
+ url('handleBillGeneratedRequests/', views.handleBillGeneratedRequests, name='Handle-Bill-Generated-Requests'),
+ url('generatedBillsView/', views.generatedBillsView, name='Generated-Bills-View'),
+ url('handleProcessedBills/', views.handleProcessedBills, name='Handle-Processed-Bills'),
+ url('auditDocumentView/', views.auditDocumentView, name='Audit-Document-View'),
+ url('auditDocument/', views.auditDocument, name='Audit-Document'),
+ url('settleBillsView/', views.settleBillsView, name='Settle-Bills-View'),
+ url('handleSettleBillRequests/', views.handleSettleBillRequests, name='Handle-Settle-Bill-Requests'),
+ url('viewBudget/', views.viewBudget, name='View-Budget'),
+ url('budget/', views.budget, name='Budget'),
+ url('addBudget/', views.addBudget, name='Add-Budget'),
+ url('editBudgetView/', views.editBudgetView, name='Edit-Budget-View'),
+ url('editBudget/', views.editBudget, name='Edit-Budget'),
+ # url('billsView/',views.billsView, name='Bills View'),
+
]
diff --git a/FusionIIIT/applications/iwdModuleV2/views.py b/FusionIIIT/applications/iwdModuleV2/views.py
index 2b36550fc..38a7e4ee7 100644
--- a/FusionIIIT/applications/iwdModuleV2/views.py
+++ b/FusionIIIT/applications/iwdModuleV2/views.py
@@ -1,9 +1,20 @@
from django.shortcuts import render, redirect
-
+from django.urls import reverse
+from django.db.models import Q
from applications.globals.models import *
+from django.contrib.auth.decorators import login_required
from .models import *
from django.http import HttpResponseRedirect
-
+from applications.filetracking.sdk.methods import *
+from applications.globals.models import ExtraInfo, HoldsDesignation, Designation
+from datetime import datetime
+from reportlab.lib.pagesizes import letter
+from reportlab.pdfgen import canvas
+from reportlab.platypus import Table, TableStyle
+from reportlab.lib import colors
+from django.http import HttpResponse
+from io import BytesIO
+from django.core.files.base import File as DjangoFile
# Create your views here.
@@ -17,17 +28,27 @@
# owing to length and inherent extensiveness of code. Rather than, whosoever read this code is advised to do so
# in conjunction with SRS. After that, everything will become easier.
+# def dashboard(request):
+# eligible = False
+# userObj = request.user
+# userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+# for p in userDesignationObjects:
+# if p.designation.name == 'Admin IWD':
+# eligible = True
+# break
+# return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+#Junior Engineer, Electrical Engineer (Civil), Electrical_AE, Electrical_JE, EE, Civil_AE, Civil_JE
+
def dashboard(request):
- eligible = False
+ eligible = ""
userObj = request.user
userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
for p in userDesignationObjects:
- if p.designation.name == 'Admin IWD':
- eligible = True
- break
+ eligible = p.designation.name
+ print(eligible)
return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
-
def page1_1(request):
if request.method == 'POST':
formObject = PageOneDetails()
@@ -107,7 +128,8 @@ def page2_1(request):
def corrigendumInput(request):
if request.method == 'POST':
- existingObject = CorrigendumTable.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = CorrigendumTable.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = CorrigendumTable()
@@ -128,7 +150,8 @@ def corrigendumInput(request):
def addendumInput(request):
if request.method == 'POST':
- existingObject = Addendum.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = Addendum.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = Addendum()
@@ -145,7 +168,8 @@ def addendumInput(request):
def PreBidForm(request):
if request.method == 'POST':
- existingObject = PreBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = PreBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = PreBidDetails()
@@ -161,9 +185,11 @@ def PreBidForm(request):
def noOfEntriesTechnicalBid(request):
formNoTechnicalObjects = NoOfTechnicalBidTimes()
- formNoTechnicalObjects.key = Projects.objects.get(id=request.session['projectId'])
+ formNoTechnicalObjects.key = Projects.objects.get(
+ id=request.session['projectId'])
if request.method == 'POST':
- existingObject = NoOfTechnicalBidTimes.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = NoOfTechnicalBidTimes.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formNoTechnicalObjects.number = int(request.POST['number'])
@@ -174,9 +200,11 @@ def noOfEntriesTechnicalBid(request):
def TechnicalBidForm(request):
formObject = TechnicalBidDetails()
- numberOfTechnicalBidTimes = NoOfTechnicalBidTimes.objects.get(key=Projects.objects.get(id=request.session['projectId'])).number
+ numberOfTechnicalBidTimes = NoOfTechnicalBidTimes.objects.get(
+ key=Projects.objects.get(id=request.session['projectId'])).number
if request.method == 'POST':
- existingObject = TechnicalBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = TechnicalBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = TechnicalBidDetails()
@@ -184,12 +212,14 @@ def TechnicalBidForm(request):
formObject.sNo = request.POST['sNo']
formObject.requirements = request.POST['requirements']
formObject.save()
- TechnicalBidContractorDetails.objects.filter(key=formObject).all().delete()
+ TechnicalBidContractorDetails.objects.filter(
+ key=formObject).all().delete()
for w in range(numberOfTechnicalBidTimes):
formContractorObject = TechnicalBidContractorDetails()
formContractorObject.key = formObject
formContractorObject.name = request.POST[str(w) + 'name']
- formContractorObject.description = request.POST[str(w) + 'Description']
+ formContractorObject.description = request.POST[str(
+ w) + 'Description']
formContractorObject.save()
return redirect('iwdModuleV2/noOfEntriesFinancialBid')
return render(request, 'iwdModuleV2/page2_support_4_technicalbid.html',
@@ -198,12 +228,15 @@ def TechnicalBidForm(request):
def noOfEntriesFinancialBid(request):
listOfContractors = []
- objectTechnicalBid = TechnicalBidDetails.objects.get(key=Projects.objects.get(id=request.session['projectId']))
- objects = TechnicalBidContractorDetails.objects.filter(key=objectTechnicalBid)
+ objectTechnicalBid = TechnicalBidDetails.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
+ objects = TechnicalBidContractorDetails.objects.filter(
+ key=objectTechnicalBid)
for t in objects:
listOfContractors.append(t.name)
if request.method == 'POST':
- existingObject = FinancialBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = FinancialBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = FinancialBidDetails()
@@ -217,7 +250,8 @@ def noOfEntriesFinancialBid(request):
formContractorObject.name = listOfContractors[f]
formContractorObject.totalCost = request.POST[listOfContractors[f] + 'totalCost']
formContractorObject.estimatedCost = request.POST[listOfContractors[f] + 'estimatedCost']
- formContractorObject.percentageRelCost = request.POST[listOfContractors[f] + 'percentageRelCost']
+ formContractorObject.percentageRelCost = request.POST[
+ listOfContractors[f] + 'percentageRelCost']
formContractorObject.perFigures = request.POST[listOfContractors[f] + 'perFigures']
formContractorObject.save()
return redirect('iwdModuleV2/letterOfIntent')
@@ -227,7 +261,8 @@ def noOfEntriesFinancialBid(request):
def letterOfIntent(request):
if request.method == 'POST':
- existingObject = LetterOfIntentDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = LetterOfIntentDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = LetterOfIntentDetails()
@@ -244,7 +279,8 @@ def letterOfIntent(request):
def workOrderForm(request):
if request.method == 'POST':
- existingObject = WorkOrderForm.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = WorkOrderForm.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = WorkOrderForm()
@@ -267,7 +303,8 @@ def workOrderForm(request):
def AgreementInput(request):
if request.method == 'POST':
- existingObject = Agreement.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ existingObject = Agreement.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
if existingObject.count() == 1:
existingObject.delete()
formObject = Agreement()
@@ -291,7 +328,8 @@ def milestonesForm(request):
formObject.timeAllowed = request.POST['timeAllowed']
formObject.save()
return redirect('iwdModuleV2/page3_1')
- Milestones.objects.filter(key=Projects.objects.get(id=request.session['projectId'])).all().delete()
+ Milestones.objects.filter(key=Projects.objects.get(
+ id=request.session['projectId'])).all().delete()
return render(request, 'iwdModuleV2/page2_support_9_milestone.html', {})
@@ -321,35 +359,42 @@ def ExtensionOfTimeForm(request):
def page1View(request):
- request.session['projectId'] = request.POST['id']
- projectPageOne = PageOneDetails.objects.get(id=Projects.objects.get(id=request.session['projectId']))
+ if request.POST:
+ request.session['projectId'] = request.POST['id']
+ projectPageOne = PageOneDetails.objects.get(
+ id=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Page1.html', {'x': projectPageOne})
def page2View(request):
- projectPageTwo = PageTwoDetails.objects.get(id=Projects.objects.get(id=request.session['projectId']))
+ projectPageTwo = PageTwoDetails.objects.get(
+ id=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Page2.html', {'x': projectPageTwo})
def AESView(request):
- objects = AESDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ objects = AESDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/AA&ES.html', {'AES': objects})
def financialBidView(request):
elements = []
- objects = FinancialBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ objects = FinancialBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
for f in objects:
contractorObjects = FinancialContractorDetails.objects.filter(key=f)
for w in contractorObjects:
- obj = [f.sNo, f.description, w.name, w.estimatedCost, w.percentageRelCost, w.perFigures, w.totalCost]
+ obj = [f.sNo, f.description, w.name, w.estimatedCost,
+ w.percentageRelCost, w.perFigures, w.totalCost]
elements.append(obj)
return render(request, 'iwdModuleV2/Page2_financialbid.html', {'financial': elements})
def technicalBidView(request):
elements = []
- objects = TechnicalBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ objects = TechnicalBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
for f in objects:
contractorObjects = TechnicalBidContractorDetails.objects.filter(key=f)
for w in contractorObjects:
@@ -359,45 +404,976 @@ def technicalBidView(request):
def preBidDetailsView(request):
- preBidObjects = PreBidDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ preBidObjects = PreBidDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Page2_pre-bid.html', {'preBidDetails': preBidObjects})
def corrigendumView(request):
- corrigendumObject = CorrigendumTable.objects.get(key=Projects.objects.get(id=request.session['projectId']))
+ corrigendumObject = CorrigendumTable.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/corrigendum.html', {'corrigendum': corrigendumObject})
def addendumView(request):
- addendumObject = Addendum.objects.get(key=Projects.objects.get(id=request.session['projectId']))
+ addendumObject = Addendum.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Addendum.html', {'x': addendumObject})
def letterOfIntentView(request):
- letterOfIntentObject = LetterOfIntentDetails.objects.get(key=Projects.objects.get(id=request.session['projectId']))
+ letterOfIntentObject = LetterOfIntentDetails.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/letterOfIntent.html', {'x': letterOfIntentObject})
def workOrderFormView(request):
- workOrderFormObject = WorkOrderForm.objects.get(key=Projects.objects.get(id=request.session['projectId']))
+ workOrderFormObject = WorkOrderForm.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/WorkOrderForm.html', {'x': workOrderFormObject})
def agreementView(request):
- agreementObject = Agreement.objects.get(key=Projects.objects.get(id=request.session['projectId']))
+ agreementObject = Agreement.objects.get(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Agreement.html', {'agreement': agreementObject})
def milestoneView(request):
- milestoneObjects = Milestones.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ milestoneObjects = Milestones.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Page2_milestones.html', {'milestones': milestoneObjects})
def page3View(request):
- pageThreeDetails = PageThreeDetails.objects.get(id=Projects.objects.get(id=request.session['projectId']))
+ pageThreeDetails = PageThreeDetails.objects.get(
+ id=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/Page3.html', {'x': pageThreeDetails})
def extensionFormView(request):
- extensionObjects = ExtensionOfTimeDetails.objects.filter(key=Projects.objects.get(id=request.session['projectId']))
+ extensionObjects = ExtensionOfTimeDetails.objects.filter(
+ key=Projects.objects.get(id=request.session['projectId']))
return render(request, 'iwdModuleV2/ExtensionForm.html', {'extension': extensionObjects})
+
+designations_list = ["Junior Engineer", "Executive Engineer (Civil)", "Electrical_AE", "Electrical_JE", "EE", "Civil_AE", "Civil_JE", "Dean (P&D)", "Director", "Accounts Admin", "Admin IWD", "Auditor"]
+
+@login_required
+def fetchDesignations(request):
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/requestsView.html', {'holdsDesignations' : holdsDesignations})
+
+@login_required
+def requestsView(request):
+ if request.method == 'POST':
+ formObject = Requests()
+ # formObject.key = Projects.objects.get(id=request.session['projectId'])
+ formObject.name = request.POST['name']
+ formObject.description = request.POST['description']
+ formObject.area = request.POST['area']
+ formObject.engineerProcessed = 0
+ formObject.directorApproval = 0
+ formObject.deanProcessed = 0
+ formObject.requestCreatedBy = request.user.username
+ formObject.status = "Pending"
+ formObject.issuedWorkOrder = 0
+ formObject.workCompleted = 0
+ formObject.billGenerated = 0
+ formObject.billProcessed = 0
+ formObject.billSettled = 0
+ formObject.save()
+ print(request.user)
+ print(request.user.username)
+ request_object = Requests.objects.get(pk=formObject.pk)
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+ print(d)
+ print(d1)
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_object.id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible' : eligible})
+
+@login_required
+def createdRequests(request):
+ obj = []
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/createdRequests.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def handleEngineerProcessRequests(request):
+ if request.method == 'POST':
+
+ request_id = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ Requests.objects.filter(id=request_id).update(engineerProcessed=1, status="Approved by the engineer")
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+@login_required
+def engineerProcessedRequests(request):
+
+ obj = []
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/engineerProcessedRequests.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def handleDeanProcessRequests(request):
+ if request.method == 'POST':
+
+ request_id = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ Requests.objects.filter(id=request_id).update(deanProcessed=1, status="Approved by the dean")
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+@login_required
+def deanProcessedRequests(request):
+ obj = []
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/deanProcessedRequests.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def handleDirectorApprovalRequests(request):
+ if request.method == 'POST':
+ request_id = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ Requests.objects.filter(id=request_id).update(directorApproval=1, status="Approved by the director")
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+@login_required
+def handleDirectorRejectionRequests(request):
+ if request.method == 'POST':
+ request_id = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ Requests.objects.filter(id=request_id).update(directorApproval=-1, status="Rejected by the director")
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+@login_required
+def rejectedRequests(request):
+ obj = []
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object.directorApproval == -1:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/rejectedRequests.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def updateRejectedRequests(request):
+ request_id = request.POST.get("id", 0)
+
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+ obj = []
+
+ request_object = Requests.objects.get(id=request_id)
+
+ obj = [request_object.id, request_object.name, request_object.description, request_object.area]
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/updateRequests.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def handleUpdateRequests(request):
+ if request.method == 'POST':
+ request_id = request.POST.get("id", 0)
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+ Requests.objects.filter(id=request_id).update(name=request.POST['name'],
+ description=request.POST['description'],
+ area=request.POST['area'],
+ engineerProcessed=0,
+ directorApproval=0,
+ deanProcessed=0,
+ requestCreatedBy=request.user.username,
+ status="Pending",
+ issuedWorkOrder=0,
+ workCompleted=0,
+ billGenerated=0,
+ billProcessed=0,
+ billSettled=0)
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(request_id),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible' : eligible})
+
+@login_required
+def issueWorkOrder(request):
+ obj = []
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ uploader = result['sent_by_designation']
+ if uploader == 'Director':
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/issueWorkOrder.html', {'obj' : obj})
+
+@login_required
+def fetchRequest(request):
+ request_id = request.POST.get("id", 0)
+ req_request = Requests.objects.get(id=request_id)
+ return render(request, 'iwdModuleV2/workOrder.html', {'req' : req_request})
+
+@login_required
+def workOrder(request):
+ if request.method == 'POST':
+ request_instance = Requests.objects.get(pk=request.POST['id'])
+ formObject = WorkOrder()
+ formObject.request_id = request_instance
+ formObject.name = request.POST['name']
+ formObject.date = request.POST['date']
+ formObject.agency = request.POST['agency']
+ formObject.amount = request.POST['amount']
+ formObject.deposit = request.POST['deposit']
+ formObject.alloted_time = request.POST['time']
+ formObject.start_date = request.POST['startDate']
+ formObject.completion_date = request.POST['completionDate']
+ formObject.save()
+
+ Requests.objects.filter(id=request.POST['id']).update(status="Work Order issued", issuedWorkOrder=1)
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ if result['src_object_id'] == request.POST['id'] and result['sent_by_designation'] == 'Director':
+ delete_file(file_id = result['id'])
+ break
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ obj = []
+
+ for result in inbox_files:
+ uploader = result['sent_by_designation']
+ if uploader == 'Director':
+ src_object_id = result['src_object_id']
+ request_object = Requests.objects.filter(id=src_object_id).first()
+ if request_object:
+ element = [request_object.id, request_object.name, request_object.area, request_object.description, request_object.requestCreatedBy]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/issueWorkOrder.html', {'obj' : obj})
+
+@login_required
+def requestsStatus(request):
+ obj = []
+ requestsObject = Requests.objects.all()
+ for x in requestsObject:
+ element = [x.id, x.name, x.area, x.description, x.requestCreatedBy, x.status]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/requestsStatus.html', {'obj' : obj})
+
+@login_required
+def inventory(request):
+ items = Inventory.objects.filter()
+ obj = []
+ for i in items:
+ element = [i.id, i.name, i.quantity, i.cost]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/inventory.html', {'obj' : obj})
+
+@login_required
+def addItemsView(request):
+ return render(request, 'iwdModuleV2/addItemsView.html')
+
+@login_required
+def addItems(request):
+ if request.method == "POST":
+ formObject = Inventory()
+ formObject.name = request.POST['name']
+ formObject.quantity = request.POST['quantity']
+ formObject.cost = request.POST['cost']
+ formObject.save()
+ return render(request, 'iwdModuleV2/addItemsView.html')
+
+@login_required
+def editInventoryView(request):
+ items = Inventory.objects.filter()
+ obj = []
+ for i in items:
+ element = [i.id, i.name, i.quantity, i.cost]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/editInventory.html', {'obj' : obj})
+
+@login_required
+def editInventory(request):
+ if request.method == "POST":
+ itemId = request.POST['id']
+ itemName = request.POST['name']
+ itemQuantity = request.POST['quantity']
+ itemCost = request.POST['cost']
+ if itemQuantity == "0":
+ Inventory.objects.filter(id=itemId).delete()
+ else:
+ Inventory.objects.filter(id=itemId).update(name=itemName, quantity=itemQuantity, cost=itemCost)
+ items = Inventory.objects.filter()
+ obj = []
+ for i in items:
+ element = [i.id, i.name, i.quantity, i.cost]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/editInventory.html', {'obj' : obj})
+
+@login_required
+def requestsInProgess(request):
+ obj = []
+ requestsObject = Requests.objects.filter(issuedWorkOrder=1, billGenerated=0)
+ for x in requestsObject:
+ element = [x.id, x.name, x.area, x.description, x.requestCreatedBy, x.workCompleted]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/requestsInProgress.html', {'obj' : obj})
+
+@login_required
+def workCompleted(request):
+ if request.method == 'POST':
+ Requests.objects.filter(id=request.POST['id']).update(workCompleted=1, status="Work Completed")
+ obj = []
+ requestsObject = Requests.objects.filter(issuedWorkOrder=1, billGenerated=0)
+ for x in requestsObject:
+ element = [x.id, x.name, x.area, x.description, x.requestCreatedBy, x.workCompleted]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/requestsInProgress.html', {'obj' : obj})
+
+@login_required
+def requestFromInventory(request):
+ if request.method == 'POST':
+ requestId = request.POST['id']
+ Req = Requests.objects.filter(id=requestId)
+ Items = Inventory.objects.filter()
+ req = []
+ items = []
+ for x in Req:
+ element = [x.id, x.name, x.area, x.description, x.requestCreatedBy, x.workCompleted]
+ req.append(element)
+
+ for x in Items:
+ element = [x.id, x.name, x.quantity, x.cost]
+ items.append(element)
+ print(items)
+ return render(request, 'iwdModuleV2/requestFromInventory.html', {'req' : req, 'items' : items})
+
+@login_required
+def editInventoryAfterRequest(request):
+ if request.method == 'POST':
+ selectedItem = Inventory.objects.get(id=request.POST['selected_item_id'])
+ q = int(selectedItem.quantity)
+ if q == int(request.POST['quantity']):
+ Inventory.objects.filter(id=request.POST['selected_item_id']).delete()
+ else:
+ Inventory.objects.filter(id=request.POST['selected_item_id']).update(quantity=(q-int(request.POST['quantity'])))
+ formObject = UsedItems()
+ request_instance = Requests.objects.get(pk=request.POST['id'])
+ formObject.request_id = request_instance
+ formObject.itemName = selectedItem.name
+ formObject.cost = selectedItem.cost
+ formObject.quantity = request.POST['quantity']
+ formObject.date = datetime.now().date()
+ formObject.save()
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible': eligible})
+
+@login_required
+def generateFinalBill(request):
+ if request.method == 'POST':
+ requestId = request.POST.get("id", 0)
+
+ usedItems = UsedItems.objects.filter(request_id=requestId)
+ workOrder = WorkOrder.objects.get(request_id=requestId)
+
+ itemsList = []
+
+ for used in usedItems:
+ element = [used.itemName, used.quantity, used.cost, used.date]
+ itemsList.append(element)
+
+ filename = f"Request_id_{requestId}_final_bill.pdf"
+
+ buffer = BytesIO()
+
+ c = canvas.Canvas(buffer, pagesize=letter)
+
+ c.setFont("Helvetica", 12)
+
+ y_position = 750
+
+ rid = f"Request Id : {requestId}"
+ agency = f"Agency : {workOrder.agency}"
+
+ c.drawString(100, y_position, rid)
+ y_position -= 20
+
+ c.drawString(100, y_position, agency)
+ y_position -= 20
+
+ c.drawString(100, y_position - 40, "Items:")
+
+ data = [["Item Name", "Quantity", "Cost (in Rupees)", "Date of Purchase", "Total Amount"]]
+ for item in itemsList:
+ data.append([item[0], str(item[1]), "{:.2f}".format(item[2]), item[3], "{:.2f}".format(item[1] * item[2])])
+
+ total_amount_to_be_paid = sum(item[1] * item[2] for item in itemsList)
+
+ c.drawString(100, y_position - 80, f"Total Amount (in Rupees): {total_amount_to_be_paid:.2f}")
+
+ table = Table(data)
+ table.setStyle(TableStyle([('BACKGROUND', (0, 0), (-1, 0), colors.grey),
+ ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
+ ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
+ ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
+ ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
+ ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
+ ('GRID', (0, 0), (-1, -1), 1, colors.black)]))
+
+ table.wrapOn(c, 400, 600)
+ table.drawOn(c, 100, y_position - 60)
+
+ c.save()
+
+ buffer.seek(0)
+
+ response = HttpResponse(content_type='application/pdf')
+ response['Content-Disposition'] = f'attachment; filename="{filename}"'
+ response.write(buffer.getvalue())
+
+ return response
+
+@login_required
+def handleBillGeneratedRequests(request):
+ if request.method == 'POST':
+ requestId = request.POST.get("id", 0)
+ Requests.objects.filter(id=requestId).update(status="Bill Generated", billGenerated=1)
+ obj = []
+ requestsObject = Requests.objects.filter(issuedWorkOrder=1, billGenerated=0)
+ for x in requestsObject:
+ element = [x.id, x.name, x.area, x.description, x.requestCreatedBy, x.workCompleted]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/requestsInProgress.html', {'obj' : obj})
+
+@login_required
+def generatedBillsView(request):
+ request_object = Requests.objects.filter(billGenerated=1, billProcessed=0)
+ obj = []
+ for x in request_object:
+ element = [x.id, x.name, x.description, x.area, x.requestCreatedBy]
+ obj.append(element)
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ for x in designations_list:
+ if d.name == x:
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/generatedBillsRequestsView.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def handleProcessedBills(request):
+ if request.method == 'POST':
+ requestId = request.POST.get("id", 0)
+ request_instance = Requests.objects.get(pk=requestId)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(requestId),
+ file_extra_JSON= {"value": 2},
+ attached_file = request.FILES['bill'])
+
+ formObject = Bills()
+ formObject.request_id = request_instance
+ formObject.file = request.FILES['bill']
+ formObject.save()
+
+ Requests.objects.filter(id=requestId).update(status="Final Bill Processed", billProcessed=1)
+
+ request_object = Requests.objects.filter(billGenerated=1, billProcessed=0)
+ obj = []
+ for x in request_object:
+ element = [x.id, x.name, x.description, x.area, x.requestCreatedBy]
+ obj.append(element)
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+
+ return render(request, 'iwdModuleV2/dashboard.html', {'obj' : obj, 'eligible': eligible})
+
+@login_required
+def auditDocumentView(request):
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ obj = []
+
+ for x in inbox_files:
+ requestId = x['src_object_id']
+ files = Bills.objects.get(request_id=requestId)
+ element = [files.request_id.id, files.file, files.file.url]
+ obj.append(element)
+
+ designations = Designation.objects.filter()
+
+ holdsDesignations = []
+
+ for d in designations:
+ if d.name == "Engineer" or d.name == "Dean" or d.name == "Director" or d.name == "Accounts Admin" or d.name == "Admin IWD":
+ list = HoldsDesignation.objects.filter(designation=d)
+ holdsDesignations.append(list)
+
+ return render(request, 'iwdModuleV2/auditDocumentView.html', {'obj' : obj, 'holdsDesignations' : holdsDesignations})
+
+@login_required
+def auditDocument(request):
+ if request.method == 'POST':
+ requestId = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.POST['designation'])
+ d1 = HoldsDesignation.objects.get(user__username=request.user)
+
+ create_file(uploader=request.user.username,
+ uploader_designation=d1.designation,
+ receiver=request.POST['designation'],
+ receiver_designation=d.designation,
+ src_module="IWD",
+ src_object_id= str(requestId),
+ file_extra_JSON= {"value": 2},
+ attached_file = None)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d1.designation,
+ src_module="IWD"
+ )
+
+ for result in inbox_files:
+ print(result['src_object_id'])
+ if result['src_object_id'] == requestId:
+ delete_file(file_id = result['id'])
+ break
+
+ Requests.objects.filter(id=requestId).update(status="Bill Audited")
+
+ eligible = ""
+ userObj = request.user
+ userDesignationObjects = HoldsDesignation.objects.filter(user=userObj)
+ for p in userDesignationObjects:
+ eligible = p.designation.name
+
+ return render(request, 'iwdModuleV2/dashboard.html', {'eligible' : eligible})
+
+@login_required
+def settleBillsView(request):
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ obj = []
+
+ for x in inbox_files:
+ requestId = x['src_object_id']
+ bills_object = Bills.objects.filter(request_id=requestId).first()
+ element = [bills_object.request_id.id, bills_object.file, bills_object.file.url]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/settleBillsView.html', {'obj' : obj})
+
+@login_required
+def handleSettleBillRequests(request):
+ if request.method == 'POST':
+ request_id = request.POST.get("id", 0)
+
+ d = HoldsDesignation.objects.get(user__username=request.user)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ for p in inbox_files:
+ if p['src_object_id'] == request_id:
+ delete_file(file_id = p['id'])
+ break
+
+ Requests.objects.filter(id=request_id).update(status="Final Bill Settled", billSettled=1)
+
+ inbox_files = view_inbox(
+ username=request.user,
+ designation=d.designation,
+ src_module="IWD"
+ )
+
+ obj = []
+
+ for x in inbox_files:
+ request_id = x['src_object_id']
+ bills_object = Bills.objects.get(request_id=request_id)
+ element = [request_id, bills_object.file, bills_object.file.url]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/settleBillsView.html', {'obj' : obj})
+
+@login_required
+def viewBudget(request):
+
+ budget_object = Budget.objects.filter()
+
+ obj = []
+
+ for x in budget_object:
+ element = [x.id, x.name, x.budgetIssued]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/viewBudget.html', {'obj' : obj})
+
+@login_required
+def budget(request):
+ budget_object = Budget.objects.filter()
+
+ obj = []
+
+ for x in budget_object:
+ element = [x.id, x.name, x.budgetIssued]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/budget.html', {'obj' : obj})
+
+@login_required
+def addBudget(request):
+ if request.method == 'POST':
+ formObject = Budget()
+ formObject.name = request.POST['name']
+ formObject.budgetIssued = request.POST['budget']
+ formObject.save()
+ return render(request, 'iwdModuleV2/addBudget.html', {})
+
+@login_required
+def editBudgetView(request):
+ budget_object = Budget.objects.filter()
+
+ obj = []
+
+ for x in budget_object:
+ element = [x.id, x.name, x.budgetIssued]
+ obj.append(element)
+
+ return render(request, 'iwdModuleV2/editBudget.html', {'obj' : obj})
+
+@login_required
+def editBudget(request):
+ if request.method == "POST":
+ budgetId = request.POST['id']
+ budgetName = request.POST['name']
+ budgetIssued = request.POST['budget']
+ Budget.objects.filter(id=budgetId).update(name=budgetName, budgetIssued=budgetIssued)
+ items = Budget.objects.filter()
+ obj = []
+ for i in items:
+ element = [i.id, i.name, i.budgetIssued]
+ obj.append(element)
+ return render(request, 'iwdModuleV2/editBudget.html', {'obj' : obj})
+
+
diff --git a/FusionIIIT/templates/iwdModuleV2/Page1.html b/FusionIIIT/templates/iwdModuleV2/Page1.html
index 8e7eac710..bfd2d8a69 100644
--- a/FusionIIIT/templates/iwdModuleV2/Page1.html
+++ b/FusionIIIT/templates/iwdModuleV2/Page1.html
@@ -65,7 +65,7 @@
AA And AES |
@@ -111,7 +111,8 @@
- Next
+ Next
+ {% if var %}{{var}}{% endif %}
diff --git a/FusionIIIT/templates/iwdModuleV2/Page2.html b/FusionIIIT/templates/iwdModuleV2/Page2.html
index 9f933e3be..715244f82 100644
--- a/FusionIIIT/templates/iwdModuleV2/Page2.html
+++ b/FusionIIIT/templates/iwdModuleV2/Page2.html
@@ -65,7 +65,7 @@
| Corrigendum |
|
@@ -73,7 +73,8 @@
Addendum |
|
@@ -81,7 +82,8 @@
Pre-bid meeting details |
|
@@ -89,7 +91,8 @@
Technical-bid meeting details |
|
@@ -101,7 +104,8 @@
Financial-bid meeting details |
|
@@ -113,7 +117,8 @@
Letter of intent |
|
@@ -121,7 +126,8 @@
Work order |
|
@@ -129,7 +135,8 @@
Agreement Letter |
|
@@ -137,13 +144,15 @@
Milestones |
|
- Next
+ Prev
+ Next
@@ -178,4 +187,4 @@
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/Page3.html b/FusionIIIT/templates/iwdModuleV2/Page3.html
index d19ae128d..ddde765e5 100644
--- a/FusionIIIT/templates/iwdModuleV2/Page3.html
+++ b/FusionIIIT/templates/iwdModuleV2/Page3.html
@@ -65,7 +65,8 @@
Extension of time |
|
@@ -76,7 +77,8 @@
- Next
+ Prev
+ Back To Home
@@ -110,4 +112,4 @@
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/addBudget.html b/FusionIIIT/templates/iwdModuleV2/addBudget.html
new file mode 100644
index 000000000..6b12182cb
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/addBudget.html
@@ -0,0 +1,111 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/addItemsView.html b/FusionIIIT/templates/iwdModuleV2/addItemsView.html
new file mode 100644
index 000000000..b9b1f003c
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/addItemsView.html
@@ -0,0 +1,120 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/auditDocumentView.html b/FusionIIIT/templates/iwdModuleV2/auditDocumentView.html
new file mode 100644
index 000000000..afb68fc59
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/auditDocumentView.html
@@ -0,0 +1,121 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+ Id |
+ Document |
+ Send To |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/billsView.html b/FusionIIIT/templates/iwdModuleV2/billsView.html
new file mode 100644
index 000000000..89969b1b8
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/billsView.html
@@ -0,0 +1,147 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+ Academic
+{% endblock %}
+
+
+{% block body %}
+ {% block navBar %}
+ {% include 'dashboard/navbar.html' %}
+ {% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+
+
+ {% load static %}
+
+
+
+
+
+
+
+
+
+ {% comment %}the doctor appointment tab ends here {% endcomment %}
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+ {% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/budget.html b/FusionIIIT/templates/iwdModuleV2/budget.html
new file mode 100644
index 000000000..6a35af9fe
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/budget.html
@@ -0,0 +1,111 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+
+ Id |
+ Name |
+ Budget Issued |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.2}} |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/createWork.html b/FusionIIIT/templates/iwdModuleV2/createWork.html
index 04323ba15..7fa533571 100644
--- a/FusionIIIT/templates/iwdModuleV2/createWork.html
+++ b/FusionIIIT/templates/iwdModuleV2/createWork.html
@@ -4,20 +4,17 @@
Create Project Requisition:
-
-
-
-
+
-
-
+
diff --git a/FusionIIIT/templates/iwdModuleV2/createdRequests.html b/FusionIIIT/templates/iwdModuleV2/createdRequests.html
new file mode 100644
index 000000000..cce743dec
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/createdRequests.html
@@ -0,0 +1,128 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ Send to |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/dashboard.html b/FusionIIIT/templates/iwdModuleV2/dashboard.html
index 9f0e1db49..3e6a02c64 100644
--- a/FusionIIIT/templates/iwdModuleV2/dashboard.html
+++ b/FusionIIIT/templates/iwdModuleV2/dashboard.html
@@ -34,28 +34,71 @@
{% comment %}ROW #2 starts here!{% endcomment %}
- {% if eligible %}
+ {% if eligible == "Junior Engineer" or eligible == "Executive Engineer (Civil)" or eligible == "Electrical_AE" or eligible == "Electrical_JE" or eligible == "EE" or eligible == "Civil_AE" or eligible == "Civil_AE" %}
{% comment %}The Tab-Menu starts here!{% endcomment %}
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+
+ {% comment %}ROW #2 ends here!{% endcomment %}
+
+
+ {% endif %}
+ {% if eligible == "Dean (P&D)" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
{% comment %}The Tab-Menu ends here!{% endcomment %}
@@ -67,24 +110,134 @@
{% comment %}The left-rail segment ends here!{% endcomment %}
{% comment %}The central-rail segment starts here!{% endcomment %}
-
- {% comment %}The Appointments Form starts here!{% endcomment %}
-
- {% block appointment %}
- {% include 'iwdModuleV2/createWork.html' %}
- {% endblock %}
+ {% endif %}
+ {% if eligible == "Director" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
- {% comment %}The appointment Form ends here!{% endcomment %}
+ {% comment %}ROW #2 ends here!{% endcomment %}
+
+
+ {% comment %}The left-rail segment ends here!{% endcomment %}
+
+ {% comment %}The central-rail segment starts here!{% endcomment %}
+ {% endif %}
+ {% if eligible == "Admin IWD" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+
+ {% comment %}ROW #2 ends here!{% endcomment %}
+
+
+ {% comment %}The left-rail segment ends here!{% endcomment %}
+
+ {% comment %}The central-rail segment starts here!{% endcomment %}
+ {% endif %}
+ {% if eligible == "Accounts Admin" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+
+ {% comment %}ROW #2 ends here!{% endcomment %}
+
+
+ {% comment %}The left-rail segment ends here!{% endcomment %}
+
+ {% comment %}The central-rail segment starts here!{% endcomment %}
+ {% endif %}
+ {% if eligible == "Auditor" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
- {% comment %}The patient history starts here!{% endcomment %}
-
- {% block history %}
- {% include 'iwdModuleV2/viewWork.html' %}
- {% endblock %}
- {% comment %}The patient history ends here!{% endcomment %}
+ {% comment %}ROW #2 ends here!{% endcomment %}
+ {% comment %}The left-rail segment ends here!{% endcomment %}
+
+ {% comment %}The central-rail segment starts here!{% endcomment %}
+ {% endif %}
+ {% if eligible != "Auditor" and eligible != "Accounts Admin" and eligible != "Admin IWD" and eligible != "Director" and eligible != "Dean (P&D)" and eligible != "student" %}
+
+ {% comment %}The Tab-Menu starts here!{% endcomment %}
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+
+ {% comment %}ROW #2 ends here!{% endcomment %}
+
+
+ {% comment %}The left-rail segment ends here!{% endcomment %}
+
+ {% comment %}The central-rail segment starts here!{% endcomment %}
{% endif %}
{% comment %}The central-rail segment ends here!{% endcomment %}
diff --git a/FusionIIIT/templates/iwdModuleV2/deanProcessedRequests.html b/FusionIIIT/templates/iwdModuleV2/deanProcessedRequests.html
new file mode 100644
index 000000000..98f9ad72f
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/deanProcessedRequests.html
@@ -0,0 +1,110 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+{% block title %}
+ Academic
+{% endblock %}
+
+{% block body %}
+ {% block navBar %}
+ {% include 'dashboard/navbar.html' %}
+ {% endblock %}
+
+
+
+
+
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/FusionIIIT/templates/iwdModuleV2/editBudget.html b/FusionIIIT/templates/iwdModuleV2/editBudget.html
new file mode 100644
index 000000000..892ba9481
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/editBudget.html
@@ -0,0 +1,120 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/editInventory.html b/FusionIIIT/templates/iwdModuleV2/editInventory.html
new file mode 100644
index 000000000..e06876b90
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/editInventory.html
@@ -0,0 +1,124 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/engineerProcessedRequests.html b/FusionIIIT/templates/iwdModuleV2/engineerProcessedRequests.html
new file mode 100644
index 000000000..6b7386054
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/engineerProcessedRequests.html
@@ -0,0 +1,128 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+ Academic
+{% endblock %}
+
+
+{% block body %}
+ {% block navBar %}
+ {% include 'dashboard/navbar.html' %}
+ {% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+ {% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/generatedBillsRequestsView.html b/FusionIIIT/templates/iwdModuleV2/generatedBillsRequestsView.html
new file mode 100644
index 000000000..38badd860
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/generatedBillsRequestsView.html
@@ -0,0 +1,127 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/inventory.html b/FusionIIIT/templates/iwdModuleV2/inventory.html
new file mode 100644
index 000000000..4e35ce614
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/inventory.html
@@ -0,0 +1,111 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+
+ Id |
+ Name |
+ Quantity |
+ Cost (in Rupees) |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.2}} |
+ {{f.3}} |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/issueWorkOrder.html b/FusionIIIT/templates/iwdModuleV2/issueWorkOrder.html
new file mode 100644
index 000000000..7aef765b2
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/issueWorkOrder.html
@@ -0,0 +1,120 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/page1_create.html b/FusionIIIT/templates/iwdModuleV2/page1_create.html
index c549fe90f..de798b7cb 100644
--- a/FusionIIIT/templates/iwdModuleV2/page1_create.html
+++ b/FusionIIIT/templates/iwdModuleV2/page1_create.html
@@ -78,7 +78,7 @@
-
+
diff --git a/FusionIIIT/templates/iwdModuleV2/page1_support_1_aes.html b/FusionIIIT/templates/iwdModuleV2/page1_support_1_aes.html
index ed6ff8543..a5da06deb 100644
--- a/FusionIIIT/templates/iwdModuleV2/page1_support_1_aes.html
+++ b/FusionIIIT/templates/iwdModuleV2/page1_support_1_aes.html
@@ -125,7 +125,8 @@
-
+
Prev
+
diff --git a/FusionIIIT/templates/iwdModuleV2/page2_support_1_corrigendum.html b/FusionIIIT/templates/iwdModuleV2/page2_support_1_corrigendum.html
index f372125ac..31ba27cb3 100644
--- a/FusionIIIT/templates/iwdModuleV2/page2_support_1_corrigendum.html
+++ b/FusionIIIT/templates/iwdModuleV2/page2_support_1_corrigendum.html
@@ -3,93 +3,136 @@
{% block title %}
- Academic
+Academic
{% endblock %}
{% block body %}
- {% block navBar %}
- {% include 'dashboard/navbar.html' %}
- {% endblock %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
-
+
- {% comment %}The left-margin segment!{% endcomment %}
-
+ {% comment %}The left-margin segment!{% endcomment %}
+
- {% comment %}The left-rail segment starts here!{% endcomment %}
-
- {% comment %}The user image card starts here!{% endcomment %}
- {% block usercard %}
- {% include 'globals/usercard.html' %}
- {% endblock %}
- {% comment %}The user image card ends here!{% endcomment %}
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
-
-
- {% comment %}The Tab-Menu ends here!{% endcomment %}
-
- {% comment %}
- The left-rail segment ends here!
- {% endcomment %}
-
- {% comment %}
- The central-rail segment starts here!
- {% endcomment %}
-
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
- {% load static %}
-
-
-
-
+{% comment %}the doctor appointment tab ends here {% endcomment %}
-Date of opening of bid (envelop-2):
-
-
-
-
+{% comment %}The central-rail segment ends here!{% endcomment %}
@@ -100,7 +143,7 @@
-
Next
+
Prev
@@ -110,35 +153,28 @@
+{% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
- {% comment %}the doctor appointment tab ends here {% endcomment %}
-
-
-
-
- {% comment %}The central-rail segment ends here!{% endcomment %}
-
- {% comment %}The right-rail segment starts here!{% endcomment %}
-
-
- {% comment %}
- TODO: the right rail!
- {% endcomment %}
-
-
- {% comment %}The right-rail segment ends here!{% endcomment %}
+
+{% comment %}The right-rail segment ends here!{% endcomment %}
- {% comment %}The right-margin segment!{% endcomment %}
-
+{% comment %}The right-margin segment!{% endcomment %}
+
-
- {% comment %}The grid ends here!{% endcomment %}
+
+{% comment %}The grid ends here!{% endcomment %}
{% endblock %}
{% block javascript %}
-
-
-
+
+
+
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/rejectedRequests.html b/FusionIIIT/templates/iwdModuleV2/rejectedRequests.html
new file mode 100644
index 000000000..b3f95e93b
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/rejectedRequests.html
@@ -0,0 +1,118 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/requestFromInventory.html b/FusionIIIT/templates/iwdModuleV2/requestFromInventory.html
new file mode 100644
index 000000000..8a1e53a1d
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/requestFromInventory.html
@@ -0,0 +1,139 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
diff --git a/FusionIIIT/templates/iwdModuleV2/requestsInProgress.html b/FusionIIIT/templates/iwdModuleV2/requestsInProgress.html
new file mode 100644
index 000000000..bceaad0ab
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/requestsInProgress.html
@@ -0,0 +1,140 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+
+ {% if f.5 == 1 %}
+
+
+
+ {% endif %}
+ {% if f.5 == 0 %}
+
+
+
+ {% endif %}
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/requestsStatus.html b/FusionIIIT/templates/iwdModuleV2/requestsStatus.html
new file mode 100644
index 000000000..14711ab16
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/requestsStatus.html
@@ -0,0 +1,114 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+ Academic
+{% endblock %}
+
+
+{% block body %}
+ {% block navBar %}
+ {% include 'dashboard/navbar.html' %}
+ {% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+ Details:- |
+
+ Id |
+ Name |
+ Description |
+ Area |
+ Created By |
+ Status |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.3}} |
+ {{f.2}} |
+ {{f.4}} |
+ {{f.5}} |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+ {% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/requestsView.html b/FusionIIIT/templates/iwdModuleV2/requestsView.html
new file mode 100644
index 000000000..882e84274
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/requestsView.html
@@ -0,0 +1,135 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
+
+
+
+
diff --git a/FusionIIIT/templates/iwdModuleV2/settleBillsView.html b/FusionIIIT/templates/iwdModuleV2/settleBillsView.html
new file mode 100644
index 000000000..928d3a092
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/settleBillsView.html
@@ -0,0 +1,113 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+ Id |
+ Bill |
+ |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+
+
+
+ |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/updateRequests.html b/FusionIIIT/templates/iwdModuleV2/updateRequests.html
new file mode 100644
index 000000000..3a63ab253
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/updateRequests.html
@@ -0,0 +1,146 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
+
+
+
+
diff --git a/FusionIIIT/templates/iwdModuleV2/viewBudget.html b/FusionIIIT/templates/iwdModuleV2/viewBudget.html
new file mode 100644
index 000000000..bc84ae651
--- /dev/null
+++ b/FusionIIIT/templates/iwdModuleV2/viewBudget.html
@@ -0,0 +1,106 @@
+{% extends 'globals/base.html' %}
+{% load static %}
+
+
+{% block title %}
+Academic
+{% endblock %}
+
+
+{% block body %}
+{% block navBar %}
+{% include 'dashboard/navbar.html' %}
+{% endblock %}
+
+
+
+ {% comment %}The left-margin segment!{% endcomment %}
+
+
+ {% comment %}The left-rail segment starts here!{% endcomment %}
+
+ {% comment %}The user image card starts here!{% endcomment %}
+ {% block usercard %}
+ {% include 'globals/usercard.html' %}
+ {% endblock %}
+ {% comment %}The user image card ends here!{% endcomment %}
+
+
+
+ {% comment %}The Tab-Menu ends here!{% endcomment %}
+
+ {% comment %}
+ The left-rail segment ends here!
+ {% endcomment %}
+
+ {% comment %}
+ The central-rail segment starts here!
+ {% endcomment %}
+
+
+
+
+ {% load static %}
+ {% comment %}the main tab starts here {% endcomment %}
+
+
+
+
+
+
+
+
+
+ Id |
+ Name |
+ Budget Issued |
+
+
+ {% for f in obj %}
+
+
+ {{f.0}} |
+ {{f.1}} |
+ {{f.2}} |
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% comment %}The central-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-rail segment starts here!{% endcomment %}
+
+
+ {% comment %}
+ TODO: the right rail!
+ {% endcomment %}
+
+
+ {% comment %}The right-rail segment ends here!{% endcomment %}
+
+ {% comment %}The right-margin segment!{% endcomment %}
+
+
+
+{% comment %}The grid ends here!{% endcomment %}
+
+{% endblock %}
+
+{% block javascript %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/FusionIIIT/templates/iwdModuleV2/viewWork.html b/FusionIIIT/templates/iwdModuleV2/viewWork.html
index 3fb49831f..d67b8d528 100644
--- a/FusionIIIT/templates/iwdModuleV2/viewWork.html
+++ b/FusionIIIT/templates/iwdModuleV2/viewWork.html
@@ -1,6 +1,7 @@
-