PoliSage / src /templates /analysis /run_analysis.html
yasserrmd's picture
Upload 80 files
0a40ab8 verified
{% extends "base.html" %}
{% block title %}Run Impact Analysis - PoliSage{% endblock %}
{% block content %}
<div class="container mt-4">
<h2>Run New Impact Analysis</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" aria-label="Close"></button>
</div>
{% endfor %}
{% endif %}
{% endwith %}
<form method="POST" action="{{ url_for("analysis.run_analysis") }}">
<div class="mb-3">
<label for="document_type" class="form-label">Document Type <span class="text-danger">*</span></label>
<select class="form-select" id="document_type" name="document_type" required onchange="updateDocumentList()">
<option value="" disabled {% if not document_type %}selected{% endif %}>Select Type...</option>
<option value="Legislation" {% if document_type == "Legislation" %}selected{% endif %}>Legislation</option>
<option value="Draft" {% if document_type == "Draft" %}selected{% endif %}>Draft</option>
<option value="Amendment" {% if document_type == "Amendment" %}selected{% endif %}>Amendment</option>
</select>
</div>
<div class="mb-3">
<label for="document_id" class="form-label">Document <span class="text-danger">*</span></label>
<select class="form-select" id="document_id" name="document_id" required>
<option value="" disabled selected>Select Document Type First...</option>
<!-- Options will be populated by JavaScript -->
</select>
<div class="form-text">Choose the specific document to analyze.</div>
</div>
<div class="mb-3">
<label for="analysis_type" class="form-label">Analysis Type <span class="text-danger">*</span></label>
<select class="form-select" id="analysis_type" name="analysis_type" required>
<option value="" disabled {% if not analysis_type %}selected{% endif %}>Select Analysis Type...</option>
<option value="Societal" {% if analysis_type == "Societal" %}selected{% endif %}>Societal Impact</option>
<option value="Economic" {% if analysis_type == "Economic" %}selected{% endif %}>Economic Impact</option>
<option value="Environmental" {% if analysis_type == "Environmental" %}selected{% endif %}>Environmental Impact</option>
<option value="Overall" {% if analysis_type == "Overall" %}selected{% endif %}>Overall Impact</option>
</select>
<div class="form-text">Select the dimension of impact to analyze.</div>
</div>
<button type="submit" class="btn btn-primary">Run Analysis</button>
<a href="{{ url_for("analysis.list_analyses") }}" class="btn btn-secondary">Cancel</a>
</form>
</div>
{% endblock %}
{% block scripts_extra %}
<script>
const documents = {
Legislation: [
{% for leg in legislations %}
{ id: {{ leg.id }}, title: "{{ leg.title | escape | replace("\"", "\\\"") }}" },
{% endfor %}
],
Draft: [
{% for draft in drafts %}
{ id: {{ draft.id }}, title: "{{ draft.title | escape | replace("\"", "\\\"") }}" },
{% endfor %}
],
Amendment: [
{% for amendment in amendments %}
{ id: {{ amendment.id }}, title: "Amendment #{{ amendment.id }} for {{ (amendment.legislation.title if amendment.legislation else \"Unknown\") | escape | replace("\"", "\\\"") }}" },
{% endfor %}
]
};
const documentTypeSelect = document.getElementById("document_type");
const documentIdSelect = document.getElementById("document_id");
const selectedDocumentId = "{{ document_id or \"\" }}"; // Get pre-selected ID if form re-rendered
function updateDocumentList() {
const selectedType = documentTypeSelect.value;
documentIdSelect.innerHTML = "<option value=\"\" disabled selected>Select Document...</option>"; // Clear and add placeholder
if (selectedType && documents[selectedType]) {
documents[selectedType].forEach(doc => {
const option = document.createElement("option");
option.value = doc.id;
option.textContent = `${doc.title} (ID: ${doc.id})`;
// Re-select if it was previously selected
if (selectedDocumentId && doc.id == parseInt(selectedDocumentId)) {
option.selected = true;
}
documentIdSelect.appendChild(option);
});
} else {
documentIdSelect.innerHTML = "<option value=\"\" disabled selected>Select Document Type First...</option>";
}
}
// Initial population if a type is already selected (e.g., on form validation error)
if (documentTypeSelect.value) {
updateDocumentList();
}
</script>
{% endblock %}