git issue solved
This commit is contained in:
@@ -40,10 +40,10 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<!-- Subcontractor -->
|
||||
<!-- Subcontractor Model -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
|
||||
<i class="bi bi-people-fill me-1"></i> Subcontractor
|
||||
<i class="bi bi-people-fill me-1"></i> Subcontractor Model
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<li>
|
||||
@@ -59,10 +59,10 @@
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- File System -->
|
||||
<!-- Subcontractor File System -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
|
||||
<i class="bi bi-folder-fill me-1"></i> File System
|
||||
<i class="bi bi-folder-fill me-1"></i>Subcontractor File System
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<li>
|
||||
@@ -81,7 +81,7 @@
|
||||
<!-- Client System -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
|
||||
<i class="bi bi-building me-1"></i> Client System
|
||||
<i class="bi bi-building me-1"></i> Client File System
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
<li>
|
||||
@@ -90,11 +90,6 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item" href="/report/comparison_report">
|
||||
<i class="bi bi-arrow-left-right me-2"></i> client vs sub-cont. Comparison Report
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" href="/file/client_vs_subcont">
|
||||
<i class="bi bi-arrow-left-right me-2"></i> Comparison Report
|
||||
@@ -103,6 +98,27 @@
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- Reports -->
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
|
||||
<i class="bi bi-building me-1"></i> Reports
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-dark">
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item" href="/report/comparison_report">
|
||||
<i class="bi bi-arrow-left-right me-2"></i> client vs sub-cont. Comparison Report
|
||||
</a>
|
||||
</li>
|
||||
<!-- <li>
|
||||
<a class="dropdown-item" href="/file/client_vs_subcont">
|
||||
<i class="bi bi-arrow-left-right me-2"></i> Comparison Report
|
||||
</a>
|
||||
</li> -->
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<!-- Formats -->
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/file_format">
|
||||
|
||||
@@ -1,10 +1,87 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h2 class="mb-4">Dashboard</h2>
|
||||
|
||||
<div class="card p-4 shadow-sm">
|
||||
<h5>Welcome to Comparison Project</h5>
|
||||
<p>This is dashboard panel.</p>
|
||||
<div class="container-fluid px-2 px-md-4">
|
||||
|
||||
<h4 class="mb-3 text-center text-md-start">Comparison Software Solapur(UGD) </h4>
|
||||
|
||||
<!-- Summary Cards -->
|
||||
<div class="row g-3 mb-4">
|
||||
|
||||
<!-- Total Work -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card text-white bg-primary shadow h-100">
|
||||
<div class="card-body text-center text-md-start">
|
||||
<h6>Total Work</h6>
|
||||
<h3 class="fw-bold">410</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Completed -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card text-white bg-success shadow h-100">
|
||||
<div class="card-body text-center text-md-start">
|
||||
<h6>Completed</h6>
|
||||
<h3 class="fw-bold">265</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pending -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card text-dark bg-warning shadow h-100">
|
||||
<div class="card-body text-center text-md-start">
|
||||
<h6>Pending</h6>
|
||||
<h3 class="fw-bold">145</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Charts -->
|
||||
<div class="row g-3">
|
||||
|
||||
<!-- Bar Chart -->
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-header bg-dark text-white text-center text-md-start">
|
||||
Work Category Bar Chart
|
||||
</div>
|
||||
<div class="card-body text-center">
|
||||
<img src="data:image/png;base64,{{ bar_chart }}" class="img-fluid" style="max-height:300px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Pie Chart -->
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-header bg-dark text-white text-center text-md-start">
|
||||
Project Status Pie Chart
|
||||
</div>
|
||||
<div class="card-body text-center">
|
||||
<img src="data:image/png;base64,{{ pie_chart }}" class="img-fluid" style="max-height:300px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Histogram -->
|
||||
<div class="col-12">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header bg-dark text-white text-center text-md-start">
|
||||
Daily Work Histogram
|
||||
</div>
|
||||
<div class="card-body text-center">
|
||||
<img src="data:image/png;base64,{{ histogram }}" class="img-fluid" style="max-height:350px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,7 +1,8 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid mt-4"> <h2 class="mb-4">File Comparison</h2>
|
||||
<div class="container-fluid mt-4">
|
||||
<h2 class="mb-4">File Comparison</h2>
|
||||
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
@@ -21,10 +22,12 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<button type="submit" name="action" value="preview" class="btn btn-secondary w-100">Preview Data</button>
|
||||
<button type="submit" name="action" value="preview" class="btn btn-secondary w-100">Preview
|
||||
Data</button>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<button type="submit" name="action" value="download" class="btn btn-primary w-100">Download Excel Report</button>
|
||||
<button type="submit" name="action" value="download" class="btn btn-primary w-100">Download Excel
|
||||
Report</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -33,16 +36,19 @@
|
||||
{% if tables.tr or tables.mh or tables.dc %}
|
||||
<div class="card shadow-sm p-3">
|
||||
<h4 class="mb-3">Comparison Preview</h4>
|
||||
|
||||
|
||||
<ul class="nav nav-tabs" id="reportTabs" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active" id="tr-tab" data-bs-toggle="tab" data-bs-target="#tr" type="button">Tr.Ex Comparison</button>
|
||||
<button class="nav-link active" id="tr-tab" data-bs-toggle="tab" data-bs-target="#tr"
|
||||
type="button">Tr.Ex Comparison</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="mh-tab" data-bs-toggle="tab" data-bs-target="#mh" type="button">Mh.Ex Comparison</button>
|
||||
<button class="nav-link" id="mh-tab" data-bs-toggle="tab" data-bs-target="#mh" type="button">Mh.Ex
|
||||
Comparison</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="dc-tab" data-bs-toggle="tab" data-bs-target="#dc" type="button">MH & DC Comparison</button>
|
||||
<button class="nav-link" id="dc-tab" data-bs-toggle="tab" data-bs-target="#dc" type="button">MH & DC
|
||||
Comparison</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
Laxmi Civil Engineering Services Pvt Ltd
|
||||
</h4>
|
||||
<p class="text-muted mb-0">
|
||||
Data Comparison System
|
||||
Data Comparison Software Solapur(UGD)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
<h2 class="mb-4 text-center">Generate Subcontractor Report</h2>
|
||||
|
||||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||
{% if messages %}
|
||||
{% for category, message in messages %}
|
||||
<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
|
||||
{{ message }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if messages %}
|
||||
{% for category, message in messages %}
|
||||
<div class="alert alert-{{ category }} alert-dismissible fade show" role="alert">
|
||||
{{ message }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
<div class="card p-4 shadow-sm mx-auto" style="max-width: 600px;">
|
||||
@@ -22,7 +22,7 @@
|
||||
<select name="subcontractor_id" class="form-select" required>
|
||||
<option value="">-- Select Subcontractor --</option>
|
||||
{% for sc in subcontractors %}
|
||||
<option value="{{ sc.id }}" {% if selected_sc_id == sc.id|string %}selected{% endif %}>
|
||||
<option value="{{ sc.id }}" {% if selected_sc_id==sc.id|string %}selected{% endif %}>
|
||||
{{ sc.subcontractor_name }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
@@ -30,7 +30,8 @@
|
||||
</div>
|
||||
|
||||
<div class="form-check form-switch mb-3">
|
||||
<input class="form-check-input" type="checkbox" name="download_all" value="true" id="downloadAllSwitch" onchange="toggleRAInput(this)" {% if download_all %}checked{% endif %}>
|
||||
<input class="form-check-input" type="checkbox" name="download_all" value="true" id="downloadAllSwitch"
|
||||
onchange="toggleRAInput(this)" {% if download_all %}checked{% endif %}>
|
||||
<label class="form-check-label fw-bold text-primary" for="downloadAllSwitch">
|
||||
Download All RA Bills for this Contractor
|
||||
</label>
|
||||
@@ -38,7 +39,8 @@
|
||||
|
||||
<div class="mb-4" id="ra_bill_container">
|
||||
<label class="form-label fw-semibold">RA Bill Number</label>
|
||||
<input type="text" name="ra_bill_no" id="ra_bill_input" class="form-control" placeholder="e.g. 01" value="{{ ra_bill_no or '' }}">
|
||||
<input type="text" name="ra_bill_no" id="ra_bill_input" class="form-control" placeholder="e.g. 01"
|
||||
value="{{ ra_bill_no or '' }}">
|
||||
<small class="text-muted">Required if "Download All" is off.</small>
|
||||
</div>
|
||||
|
||||
@@ -61,18 +63,24 @@
|
||||
<div class="mt-5 mb-5">
|
||||
<hr>
|
||||
<h3 class="text-center mb-4">Report Preview</h3>
|
||||
|
||||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<ul class="nav nav-tabs card-header-tabs" id="reportTabs" role="tablist">
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active" id="tr-tab" data-bs-toggle="tab" data-bs-target="#tr" type="button">Transport (Tr.Ex.)</button>
|
||||
<button class="nav-link active" id="tr-tab" data-bs-toggle="tab" data-bs-target="#tr"
|
||||
type="button">Transport (Tr.Ex.)</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="mh-tab" data-bs-toggle="tab" data-bs-target="#mh" type="button">Manpower (MH.Ex.)</button>
|
||||
<button class="nav-link" id="mh-tab" data-bs-toggle="tab" data-bs-target="#mh"
|
||||
type="button">Manpower (MH.Ex.)</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="dc-tab" data-bs-toggle="tab" data-bs-target="#dc" type="button">MH & DC</button>
|
||||
<button class="nav-link" id="dc-tab" data-bs-toggle="tab" data-bs-target="#dc" type="button">MH
|
||||
& DC</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" id="lay-tab" data-bs-toggle="tab" data-bs-target="#lay" type="button">Laying</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -92,6 +100,10 @@
|
||||
{{ tables.dc | safe }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="lay" role="tabpanel">
|
||||
<div class="table-responsive">
|
||||
{{ tables.lay | safe }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -104,28 +116,29 @@
|
||||
font-size: 0.9rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-responsive thead {
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function toggleRAInput(checkbox) {
|
||||
const input = document.getElementById('ra_bill_input');
|
||||
const container = document.getElementById('ra_bill_container');
|
||||
if (checkbox.checked) {
|
||||
input.value = "";
|
||||
input.disabled = true;
|
||||
container.style.opacity = "0.5";
|
||||
} else {
|
||||
input.disabled = false;
|
||||
container.style.opacity = "1";
|
||||
function toggleRAInput(checkbox) {
|
||||
const input = document.getElementById('ra_bill_input');
|
||||
const container = document.getElementById('ra_bill_container');
|
||||
if (checkbox.checked) {
|
||||
input.value = "";
|
||||
input.disabled = true;
|
||||
container.style.opacity = "0.5";
|
||||
} else {
|
||||
input.disabled = false;
|
||||
container.style.opacity = "1";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check status on load to handle form persistence
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
toggleRAInput(document.getElementById('downloadAllSwitch'));
|
||||
});
|
||||
// Check status on load to handle form persistence
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
toggleRAInput(document.getElementById('downloadAllSwitch'));
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
<!-- Header -->
|
||||
<div class="row mb-3 align-items-center">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="col-12 col-md-6 ">
|
||||
<h4 class="mb-2 mb-md-0 text-center text-md-start">
|
||||
Subcontractor List
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-6 text-center text-md-end">
|
||||
<div class="col-12 col-md-3 text-center text-md-end">
|
||||
<a href="/subcontractor/add" class="btn btn-success w-100 w-md-auto">
|
||||
➕ Add Subcontractor
|
||||
</a>
|
||||
@@ -65,8 +65,8 @@
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
/tr>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
<!-- TOTAL ROW -->
|
||||
|
||||
Reference in New Issue
Block a user