All checks were successful
Build and Push Docker Image / build (push) Successful in 4m14s
Reference numbers (unified scheme PREFIX-YYYYMM-HOSP-NNNN, e.g. CMP-202606-HHN-0001): - new ReferenceSequence model + generate_reference() helper (apps/core) - Complaint/Inquiry/Observation/Appreciation/Suggestion emit unified refs via save() - prefix-based auto-routing in public track API (CMP/INQ/OBS trackable; APR/SGT internal-only) - removed legacy CMP-/INQ- generators in ui_views, integrations, px_sources - migrations: core.0003_referencesequence, appreciation.0006, feedback.0008, observations.0012 - unit tests (format, sanitization, monthly reset, 40-thread concurrency) QA audit: - isolated E2E hospital sandbox mirroring HH-N + 10 role users (create_e2e_isolated_env) - feedback-modules-audit.spec.ts + audit helper (headed, run-to-completion) - reports/feedback-modules-qa-report.md Also bundles accumulated in-progress work across complaints, observations, organizations, templates, and other modules.
65 lines
2.0 KiB
HTML
65 lines
2.0 KiB
HTML
{% load static %}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ presentation.title }} — PX360 Presentation</title>
|
|
|
|
<link rel="stylesheet" href="{% static 'vendor/fonts/inter/latin.css' %}">
|
|
<link rel="stylesheet" href="{% static 'vendor/fonts/noto-kufi-arabic/arabic.css' %}">
|
|
<link rel="stylesheet" href="{% static 'css/presentations/slide-theme.css' %}">
|
|
<script src="{% static 'vendor/apexcharts/apexcharts.min.js' %}"></script>
|
|
<script src="{% static 'vendor/lucide/lucide.min.js' %}"></script>
|
|
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: #0a0a0a;
|
|
font-family: 'Inter', 'Noto Kufi Arabic', sans-serif;
|
|
}
|
|
[dir="rtl"] body,
|
|
[dir="rtl"] input,
|
|
[dir="rtl"] textarea,
|
|
[dir="rtl"] select,
|
|
[dir="rtl"] button {
|
|
font-family: 'Noto Kufi Arabic', sans-serif;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="presentation-viewer"></div>
|
|
|
|
<script src="{% static 'js/presentations/viewer.js' %}"></script>
|
|
{{ rendered_slides|json_script:"slidesData" }}
|
|
<script>
|
|
var slidesData = JSON.parse(document.getElementById('slidesData').textContent);
|
|
var container = document.getElementById('presentation-viewer');
|
|
|
|
var slideObjects = slidesData.map(function(s) {
|
|
return {
|
|
html: s.html,
|
|
title: s.title,
|
|
layout: s.layout,
|
|
notes: s.notes
|
|
};
|
|
});
|
|
|
|
var viewer = new PXSlideViewer(container, {
|
|
slides: slideObjects,
|
|
transition: 'fade'
|
|
});
|
|
|
|
if (typeof lucide !== 'undefined') {
|
|
setTimeout(function() { lucide.createIcons(); }, 500);
|
|
}
|
|
|
|
window._pxViewerCleanup = function() {
|
|
window.close();
|
|
};
|
|
</script>
|
|
</body>
|
|
</html>
|