Skip to content

Commit

Permalink
Merge branch 'FusionIIIT:ac-6' into ac-6
Browse files Browse the repository at this point in the history
  • Loading branch information
rush1kesh-010 authored May 4, 2024
2 parents 573112a + 3f7771f commit 11e309c
Show file tree
Hide file tree
Showing 22 changed files with 635 additions and 450 deletions.
1 change: 1 addition & 0 deletions FusionIIIT/applications/ps1/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class IndentFile(models.Model):
purpose=models.CharField(max_length=250,blank=False )
specification=models.CharField(max_length=250)
item_type=models.CharField(max_length=250)
item_subtype = models.CharField(max_length=250,blank=False,default='computers')
nature=models.BooleanField(default = False)
indigenous= models.BooleanField(default = False)
replaced =models.BooleanField(default = False)
Expand Down
3 changes: 2 additions & 1 deletion FusionIIIT/applications/ps1/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@
url(r'^outboxview/$', views.outboxview, name='outboxview'),


url(r'^update_stock_item_inUse/$', views.updateStockItemInUse, name='outboxview'),
url(r'^update_stock_item_inUse/$', views.updateStockItemInUse, name='stockItemInUse'),
url(r'^item_detail/(?P<id>\d+)/$', views.item_detail, name='item_detail'),

# BASE API
url(r'^api/',include('applications.ps1.api.urls')),
Expand Down
120 changes: 104 additions & 16 deletions FusionIIIT/applications/ps1/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import json

from django.db.models import Q,Count
from datetime import datetime
from datetime import datetime

dept_admin_to_dept = {
"deptadmin_cse": "CSE",
Expand All @@ -29,9 +31,11 @@
"deptadmin_design": "Design",
"deptadmin_liberalarts": "Liberal Arts",
"deptadmin_ns": "Natural Science",
"Admin IWD":"IWD",
"Compounder":"Health Center"
}

dept_admin_design = ["deptadmin_cse", "deptadmin_ece", "deptadmin_me","deptadmin_sm", "deptadmin_design", "deptadmin_liberalarts","deptadmin_ns" ]
dept_admin_design = ["deptadmin_cse", "deptadmin_ece", "deptadmin_me","deptadmin_sm", "deptadmin_design", "deptadmin_liberalarts","deptadmin_ns" ,"Admin IWD","Compounder"]


@login_required(login_url = "/accounts/login/")
Expand Down Expand Up @@ -118,6 +122,8 @@ def create_proposal(request):
purpose=request.POST.get('purpose')
specification=request.POST.get('specification')
item_type=request.POST.get('item_type')
item_subtype=request.POST.get('item_subtype')

nature=request.POST.get('nature')
indigenous=request.POST.get('indigenous')
replaced =request.POST.get('replaced')
Expand Down Expand Up @@ -150,6 +156,7 @@ def create_proposal(request):
purpose=purpose,
specification=specification,
item_type=item_type,
item_subtype=item_subtype,
nature=nature,
indigenous=indigenous,
replaced = replaced ,
Expand Down Expand Up @@ -191,6 +198,8 @@ def create_proposal(request):
purpose=request.POST.get('purpose')
specification=request.POST.get('specification')
item_type=request.POST.get('item_type')
item_subtype=request.POST.get('item_subtype')

nature=request.POST.get('nature')
indigenous=request.POST.get('indigenous')
replaced =request.POST.get('replaced')
Expand Down Expand Up @@ -249,6 +258,7 @@ def create_proposal(request):
purpose=purpose,
specification=specification,
item_type=item_type,
item_subtype=item_subtype,
nature=nature,
indigenous=indigenous,
replaced = replaced ,
Expand Down Expand Up @@ -751,6 +761,7 @@ def forwardindent(request, id):
file_attachment=upload_file
)


# CREATOR -> HOD -> DIRECTOR/REGISTRAR -> DEPT_ADMIN ->
if((sender_designation_name in ["HOD (CSE)", "HOD (ECE)", "HOD (ME)", "HOD (SM)", "HOD (Design)", "HOD (Liberal Arts)", "HOD (Natural Science)"]) and (str(receive_design) in ["Director","Registrar"])):
indent.head_approval=True
Expand All @@ -768,8 +779,9 @@ def forwardindent(request, id):

indent.save()


office_module_notif(request.user, receiver_id)
messages.success(request, 'Indent File Forwarded successfully')

extrainfo = ExtraInfo.objects.select_related('user','department').all()
holdsdesignations = HoldsDesignation.objects.select_related('user','working','designation').all()
designations = HoldsDesignation.objects.select_related('user','working','designation').filter(user=request.user)
Expand Down Expand Up @@ -1104,11 +1116,12 @@ def current_stock_view(request):
StockEntryId__item_id__item_type=type
)

grouped_items = StockItems.values('StockEntryId__item_id__item_type', 'department').annotate(total_quantity=Count('id'))
grouped_items = StockItems.values('StockEntryId__item_id__item_type','StockEntryId__item_id__item_subtype', 'department').annotate(total_quantity=Count('id'))

grouped_items_list = [
{
'item_type': item['StockEntryId__item_id__item_type'],
'item_subtype': item['StockEntryId__item_id__item_subtype'],
'department': DepartmentInfo.objects.get(id=department),
'total_quantity': item['total_quantity']
}
Expand All @@ -1118,6 +1131,7 @@ def current_stock_view(request):

firstStock=StockItems.first()

print(grouped_items_list)


return render(request,'ps1/current_stock_view.html',{'stocks':grouped_items_list,'first_stock':firstStock,
Expand All @@ -1135,9 +1149,11 @@ def current_stock_view(request):
print(dept_admin_to_dept[request.session['currentDesignationSelected']]);
deptId = DepartmentInfo.objects.values('id', 'name').get(name=dept_admin_to_dept[request.session['currentDesignationSelected']])



departments=[deptId]

StockItems = StockItem.objects.filter(department=deptId)
StockItems = StockItem.objects.filter(department=deptId['id'])

elif request.session['currentDesignationSelected'] == "ps_admin":
departments=DepartmentInfo.objects.values('id','name').all()
Expand All @@ -1147,11 +1163,12 @@ def current_stock_view(request):
return redirect('/dashboard')


grouped_items = StockItems.values('StockEntryId__item_id__item_type','department').annotate(total_quantity=Count('id'))
grouped_items = StockItems.values('StockEntryId__item_id__item_type','StockEntryId__item_id__item_subtype','department').annotate(total_quantity=Count('id'))

grouped_items_list = [
{
'item_type': item['StockEntryId__item_id__item_type'],
'item_subtype': item['StockEntryId__item_id__item_subtype'],
'department': DepartmentInfo.objects.values('id','name').get(id=item['department']),
'departmentId': item['department'],
'total_quantity': item['total_quantity']
Expand All @@ -1170,14 +1187,19 @@ def stock_item_view(request):
if request.session['currentDesignationSelected'] not in dept_admin_design + ["ps_admin"]:
return redirect('/dashboard')

if request.method=="GET":
return HttpResponseRedirect('../current_stock_view')

if request.method=="POST":
departmentId = request.POST.get('departmentId')
type = request.POST.get('item_type')
subtype = request.POST.get('item_subtype')

# StockEntryId__item_id__file_info_grade
StockItems = StockItem.objects.filter(
department=departmentId,
StockEntryId__item_id__item_type=type
StockEntryId__item_id__item_type=type,
StockEntryId__item_id__item_subtype=subtype
)

return render(request,'ps1/stock_item_view.html',{'stocks':StockItems})
Expand Down Expand Up @@ -1339,16 +1361,57 @@ def generate_report(request):

if request.session['currentDesignationSelected'] not in dept_admin_design + ["ps_admin"]:
return redirect('/dashboard')


des = HoldsDesignation.objects.all().select_related().filter(user = request.user).first()
department = request.user.extrainfo.department.name
if request.method =='GET':
if request.session['currentDesignationSelected'] in dept_admin_design:

if request.session['currentDesignationSelected'] in dept_admin_design:
sto=StockEntry.objects.filter(item_id__file_info__uploader__department__name=dept_admin_to_dept[request.session['currentDesignationSelected']])
else:
sto=StockEntry.objects.all()
deptId = DepartmentInfo.objects.values('id', 'name').get(name=dept_admin_to_dept[request.session['currentDesignationSelected']])
departments=[deptId]

elif request.session['currentDesignationSelected'] == "ps_admin":
departments=DepartmentInfo.objects.values('id','name').all()

return render(request,'ps1/generate_report_filter.html',{'departments':departments})


if request.method=="POST":

return render(request,'ps1/generate_report.html',{'sto':sto})

departments = request.POST.getlist('departments')
start_date = request.POST.get('start_date');
finish_date = request.POST.get('finish_date');



start_date = datetime.strptime(start_date, '%Y-%m-%d').date()
finish_date = datetime.strptime(finish_date, '%Y-%m-%d').date()

if(departments[0]=='all'):
StockItems = StockItem.objects.filter(StockEntryId__recieved_date__range=(start_date, finish_date))
else :
StockItems = StockItem.objects.filter(department__in=departments, StockEntryId__recieved_date__range=(start_date, finish_date))


grouped_items = StockItems.values('StockEntryId__item_id__item_type','StockEntryId__item_id__item_subtype','department').annotate(total_quantity=Count('id'))

grouped_items_list = [
{
'item_type': item['StockEntryId__item_id__item_type'],
'item_subtype': item['StockEntryId__item_id__item_subtype'],
'department': DepartmentInfo.objects.values('id','name').get(id=item['department']),
'departmentId': item['department'],
'total_quantity': item['total_quantity'],
'StockItems': StockItem.objects.filter(
department=item['department'],
StockEntryId__item_id__item_type=item['StockEntryId__item_id__item_type']
)
}
for item in grouped_items
]


return render(request,'ps1/generate_report.html',{'departments':departments,'stocks':grouped_items_list})


@login_required(login_url = "/accounts/login")
Expand Down Expand Up @@ -1447,7 +1510,7 @@ def perform_transfer(request):
dest_location=dest_location
)

messages.success(request,'Stock Transfer Done Successfully.!')
messages.success(request,'Stock Transfer Done Successfully.!')
# if the quantity required for this indent file is fulfilled we should mark this indentfile as done.
if(moreStocksRequired<=0):
myIndent.purchased=True
Expand All @@ -1458,7 +1521,7 @@ def perform_transfer(request):

department = request.user.extrainfo.department.name

return HttpResponseRedirect('../view_transfer')
return JsonResponse({'success':True})

# This is to get the list of all the available stock items for transfer.
@login_required(login_url = "/accounts/login")
Expand Down Expand Up @@ -1537,8 +1600,14 @@ def outboxview(request):

@login_required(login_url="/accounts/login")
def updateStockItemInUse(request):
print("updatestockiteminuse");

if request.session['currentDesignationSelected'] not in dept_admin_design + ["ps_admin"]:
return redirect('/dashboard')

if request.method=="GET":
return redirect('../current_stock_view')


if request.method == "POST":

Expand All @@ -1557,4 +1626,23 @@ def updateStockItemInUse(request):
stock_item.inUse = checked
stock_item.save()

return redirect('/purchase-and-store/current_stock_view')
return JsonResponse({'success': True})

# return HttpResponseRedirect('../current_stock_view')


@login_required(login_url="/accounts/login")
def item_detail(request, id):
if request.session['currentDesignationSelected'] not in dept_admin_design + ["ps_admin"]:
return redirect('/dashboard')

stock_transfers = StockTransfer.objects.filter(stockItem=id).order_by('dateTime')
stock_item = StockItem.objects.filter(id=id).first();
# Do something with the stock_transfers

context = {
'transfers': stock_transfers,
'item': stock_item
}

return render(request, 'ps1/stock_item_details.html', context)
1 change: 0 additions & 1 deletion FusionIIIT/applications/scholarships/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,5 @@
url(r'^getConvocationFlag/$', views.getConvocationFlag, name='getConvocationFlag'),
url(r'^getContent/$', views.getContent, name='getContent'),
url(r'^updateEndDate/$', views.updateEndDate, name='updateEndDate'),
url(r'^deleteRelease/$', views.deleteRelease, name='deleteRelease'),

]
Loading

0 comments on commit 11e309c

Please sign in to comment.