diff --git a/asset/templates/request_allocation/asset_request_allocation_list.html b/asset/templates/request_allocation/asset_request_allocation_list.html index 6e80e7f84..2543939c6 100644 --- a/asset/templates/request_allocation/asset_request_allocation_list.html +++ b/asset/templates/request_allocation/asset_request_allocation_list.html @@ -1,475 +1,533 @@ -{% load i18n %} -{% include 'filter_tags.html' %} +{% load i18n %} {% include 'filter_tags.html' %} + + + + +
-
- -
-
-
-
-
{% trans "Asset" %}
-
{% trans "Status" %}
-
-
-
-
-
- {% for asset in assets %} - -
-
-
-
- -
- {{asset.asset_id.asset_name}} - -
-
-
- - - {% trans "In use" %} - -
-
- -
-
- {% endfor %} -
-
-
- +
+ +
+
+
+
+
{% trans "Asset" %}
+
{% trans "Status" %}
+
+
+
+
+
+ {% for asset in assets %} + +
+
+
+
+ +
+ {{asset.asset_id.asset_name}} + +
+
+
+ + {% trans "In use" %} +
+
+ +
+
+ {% endfor %} +
+
+
+ - -
- - -
- + +
+ + +
+ +
-
+
+ +
+
+
+
+
{% trans "Request User" %}
+
{% trans "Asset Category" %}
+
{% trans "Request Date" %}
+
{% trans "Status" %}
+
+
+
+
+
+ {% for asset_request in asset_requests %} + +
+
+
+
+ Mary Magdalene +
+ {{asset_request.requested_employee_id}} + +
+
+
+ {{asset_request.asset_category_id}} +
+
+ {{ asset_request.asset_request_date }} +
+
+
+ {% trans asset_request.asset_request_status %} +
+
+ {% if perms.asset.add_assetassignment %} + {% if asset_request.asset_request_status == 'Requested' %} +
+
+ + + {% trans "Approve" %} + +
+ {% csrf_token %} + +
+
+
+ {% endif %} + {% endif %} +
+ {% endfor %} +
+
+
+ -
- -
-
-
-
-
{% trans "Request User" %}
-
{% trans "Asset Category" %}
-
{% trans "Request Date" %}
-
{% trans "Status" %}
-
-
-
-
-
- {% for asset_request in asset_requests %} - -
-
-
-
- Mary Magdalene -
- {{asset_request.requested_employee_id}} - -
-
-
{{asset_request.asset_category_id}}
-
{{ asset_request.asset_request_date }}
-
-
- {% trans asset_request.asset_request_status %} - -
-
- {% if perms.asset.add_assetassignment %} - {% if asset_request.asset_request_status == 'Requested' %} -
-
- - - {% trans "Approve" %} - -
- {% csrf_token %} - -
- -
-
- {% endif %} - {% endif %} -
- - - +
-
-
-
- - - -
- - -
- - -
- - -
- -
-
-
-
-
{% trans "Allocated User" %}
-
{% trans "Asset" %}
-
{% trans "Assigned Date" %}
-
{% trans "Return Date" %}
-
-
-
-
- {% for asset_allocation in asset_allocations %} -
-
-
-
- -
- {{asset_allocation.assigned_to_employee_id}} -
-
-
{{asset_allocation.asset_id}}
-
{{asset_allocation.assigned_date}}
- {% if asset_allocation.return_date %} -
{{asset_allocation.return_date}}
- {% else %} -
- - - In use -
- {% endif %} - {% if not asset_allocation.return_status %} -
- -
- {% else %} -
-
- - - {% trans "Returned" %} - -
-
- {% endif %} -
- - - - - {% endfor %} - -
-
- - - - -
- - -
- -
-
- - - - \ No newline at end of file + +
diff --git a/asset/templates/request_allocation/individual allocation.html b/asset/templates/request_allocation/individual allocation.html new file mode 100644 index 000000000..1fe8d85a3 --- /dev/null +++ b/asset/templates/request_allocation/individual allocation.html @@ -0,0 +1,124 @@ +{% load static %} {% load i18n %} +
+ + + +
+ +
+
+
+ Mary Magdalene +
+
+ {{asset_allocation.assigned_to_employee_id.get_full_name}} + + {{asset_allocation.assigned_to_employee_id.employee_work_info.department_id}} / + {{asset_allocation.assigned_to_employee_id.employee_work_info.job_position_id}} +
+
+
+ +
+
+ {% trans "Returned Status" %} + + {{asset_allocation.return_status}} +
+
+ {% trans "Allocated User" %} + {{asset_allocation.assigned_by_employee_id}} +
+
+ +
+
+ {% trans "Allocated Date" %} + + {{asset_allocation.assigned_date}} +
+
+ {% trans "Returned Date" %} + + {{asset_allocation.return_date}} +
+
+
+
+ {% trans "Asset" %} + {{asset_allocation.asset_id}} +
+
+ +
+
+ {% trans "Return Description" %} +
+ {{asset_allocation.return_condition}} +
+
+
+ +
+ {% if not asset_allocation.return_status %} + + {% endif %} +
diff --git a/asset/templates/request_allocation/individual_request.html b/asset/templates/request_allocation/individual_request.html new file mode 100644 index 000000000..86a839b33 --- /dev/null +++ b/asset/templates/request_allocation/individual_request.html @@ -0,0 +1,110 @@ +{% load static %} {% load i18n %} + +
+ + + +
+ +
+
+
+ Mary Magdalene +
+
+ {{asset_request.requested_employee_id.get_full_name}} + + {{asset_request.requested_employee_id.employee_work_info.department_id}} / + {{asset_request.requested_employee_id.employee_work_info.job_position_id}} +
+
+
+ +
+
+ {% trans "Requested Date" %} + {{asset_request.asset_request_date}} +
+
+ {% trans "Category" %} + {{asset_request.asset_category_id}} +
+
+ +
+
+ {% trans "Request Description" %} +
+ {{asset_request.description}} +
+
+
+ +
+ {% if perms.asset.add_assetassignment %} + {% if asset_request.asset_request_status == 'Requested' %} +
+ + {% trans 'Approve' %} + +
+ {% csrf_token %} + +
+
+ {% endif %} + {% endif %} +
diff --git a/asset/urls.py b/asset/urls.py index ca22603af..fcdbd1356 100644 --- a/asset/urls.py +++ b/asset/urls.py @@ -45,6 +45,17 @@ urlpatterns = [ views.asset_request_alloaction_view, name="asset-request-allocation-view", ), + path( + "asset-request-individual-view/", + views.asset_request_individual_view, + name="asset-request-individual-view", + ), + + path( + "asset-allocation-individual-view/", + views.asset_allocation_individual_view, + name="asset-allocation-individual-view", + ), path( "asset-request-allocation-view-search-filter", views.asset_request_alloaction_view_search_filter, diff --git a/asset/views.py b/asset/views.py index 44333a4a5..67d7445f2 100644 --- a/asset/views.py +++ b/asset/views.py @@ -2,6 +2,7 @@ asset.py This module is used to """ +import json from urllib.parse import parse_qs import pandas as pd from django.db.models import ProtectedError @@ -10,7 +11,7 @@ from django.http import HttpResponse, HttpResponseRedirect from django.contrib import messages from django.core.paginator import Paginator from django.utils.translation import gettext_lazy as _ -from base.methods import get_key_instances +from base.methods import closest_numbers, get_key_instances from notifications.signals import notify from horilla.decorators import login_required, hx_request_required from horilla.decorators import permission_required @@ -691,6 +692,19 @@ def filter_pagination_asset_request_allocation(request): assets = asset_paginator.get_page(page_number) asset_requests = asset_request_paginator.get_page(page_number) asset_allocations = asset_allocation_paginator.get_page(page_number) + requests_ids = json.dumps( + [ + instance.id + for instance in asset_requests.object_list + ] + ) + allocations_ids = json.dumps( + [ + instance.id + for instance in asset_allocations.object_list + ] + ) + data_dict = parse_qs(previous_data) get_key_instances(AssetRequest, data_dict) get_key_instances(AssetAssignment, data_dict) @@ -708,6 +722,8 @@ def filter_pagination_asset_request_allocation(request): "gp_Allocation_fields": AssetAllocationReGroup.fields, "request_field":request_field, "allocation_field":allocation_field, + "requests_ids":requests_ids, + "allocations_ids":allocations_ids } @@ -748,6 +764,39 @@ def asset_request_alloaction_view_search_filter(request): request, template, context ) +def asset_request_individual_view(request,id): + asset_request = AssetRequest.objects.get(id=id) + context = {"asset_request":asset_request} + requests_ids_json = request.GET.get("requests_ids") + if requests_ids_json: + requests_ids = json.loads(requests_ids_json) + previous_id, next_id = closest_numbers(requests_ids, id) + context["requests_ids"] = requests_ids_json + context["previous"] = previous_id + context["next"] = next_id + return render( + request, + "request_allocation/individual_request.html", + context + ) + + +def asset_allocation_individual_view(request,id): + asset_allocation = AssetAssignment.objects.get(id=id) + context = {"asset_allocation":asset_allocation} + allocation_ids_json = request.GET.get("allocations_ids") + if allocation_ids_json: + allocation_ids = json.loads(allocation_ids_json) + previous_id, next_id = closest_numbers(allocation_ids, id) + context["allocations_ids"] = allocation_ids_json + context["previous"] = previous_id + context["next"] = next_id + return render( + request, + "request_allocation/individual allocation.html", + context + ) + def convert_nan(val): if pd.isna(val):