188 lines
9.4 KiB
HTML
188 lines
9.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block head %}
|
|
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
|
|
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container mt-4">
|
|
<h2>New Calibration Batch</h2>
|
|
|
|
<form method="POST" action="{{ url_for('calibrations.create_calibrations') }}">
|
|
<div class="card mb-4">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Batch Information</h5>
|
|
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<label for="work_order_id" class="form-label">Work Order</label>
|
|
<select class="form-select select2" id="work_order_id" name="work_order_id" required>
|
|
<option value="">Select Work Order</option>
|
|
{% for wo in work_orders %}
|
|
<option value="{{ wo.id }}">{{ wo.order_number }} - {{ wo.customers.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label for="std_used" class="form-label">Standard Used</label>
|
|
<select class="form-select select2" id="std_used" name="std_used" required>
|
|
<option value="">Select Standard</option>
|
|
{% for std in standards %}
|
|
<option value="{{ std.id }}">{{ std.make }} {{ std.model }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label for="date" class="form-label">Calibration Date</label>
|
|
<input type="date" class="form-control" id="date" name="date" required>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label for="calibrated_by" class="form-label">Calibrated By</label>
|
|
<input type="text" class="form-control" id="calibrated_by" name="calibrated_by" required>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
<h5 class="card-title mb-0">Channels</h5>
|
|
<button type="button" class="btn btn-sm btn-outline-primary" id="addChannel">
|
|
<i class="bi bi-plus"></i> Add Channel
|
|
</button>
|
|
</div>
|
|
|
|
<div id="channelRows">
|
|
<!-- Channel rows will be added here -->
|
|
<div class="channel-row mb-3">
|
|
<div class="row g-3">
|
|
<div class="col-md-4">
|
|
<label class="form-label">Channel</label>
|
|
<select class="form-select select2" name="channel_serial[]" required>
|
|
<option value="">Select Channel</option>
|
|
{% for channel in channels %}
|
|
<option value="{{ channel.serial_number }}">{{ channel.serial_number }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Scale</label>
|
|
<input type="number" step="0.001" class="form-control" name="scale[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Offset</label>
|
|
<input type="number" step="0.001" class="form-control" name="offset[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation High</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_high[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation Mid</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_mid[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation Low</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_low[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set High</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_high[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set Mid</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_mid[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set Low</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_low[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<div class="form-check form-switch mt-4">
|
|
<input class="form-check-input" type="checkbox" name="passed[]" checked>
|
|
<label class="form-check-label">Passed</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="text-end">
|
|
<button type="submit" class="btn btn-primary">Save Calibration Batch</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Initialize Select2
|
|
$('.select2').select2();
|
|
|
|
// Add channel row
|
|
$('#addChannel').click(function() {
|
|
const newRow = `
|
|
<div class="channel-row mb-3">
|
|
<div class="row g-3">
|
|
<div class="col-md-4">
|
|
<label class="form-label">Channel</label>
|
|
<select class="form-select select2" name="channel_serial[]" required>
|
|
<option value="">Select Channel</option>
|
|
{% for channel in channels %}
|
|
<option value="{{ channel.serial_number }}">{{ channel.serial_number }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Scale</label>
|
|
<input type="number" step="0.001" class="form-control" name="scale[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Offset</label>
|
|
<input type="number" step="0.001" class="form-control" name="offset[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation High</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_high[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation Mid</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_mid[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Deviation Low</label>
|
|
<input type="number" step="0.001" class="form-control" name="deviation_low[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set High</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_high[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set Mid</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_mid[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<label class="form-label">Set Low</label>
|
|
<input type="number" step="0.001" class="form-control" name="set_low[]" required>
|
|
</div>
|
|
<div class="col-md-2">
|
|
<div class="form-check form-switch mt-4">
|
|
<input class="form-check-input" type="checkbox" name="passed[]" checked>
|
|
<label class="form-check-label">Passed</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>`;
|
|
$('#channelRows').append(newRow);
|
|
$('.select2').select2();
|
|
});
|
|
});
|
|
</script>
|
|
{% endblock %}
|