Added update so that collected checks will show up as collected if users have items anto-collected. Minor UI changes to allow more codes/summaries to be displayed at once.

This commit is contained in:
Ada Werefox 2024-04-22 15:48:14 -05:00
parent 4d91341c1f
commit b8c4dbe022
5 changed files with 24 additions and 17 deletions

View File

@ -1,10 +1,12 @@
{ {
"collected": 0, "collected": 0,
"found": 0,
"remaining": 0, "remaining": 0,
"total": 1312, "total": 1312,
"scenes": { "scenes": {
"mystery": { "mystery": {
"collected": 0, "collected": 0,
"found": 0,
"remaining": 0, "remaining": 0,
"total": 0, "total": 0,
"checks": { "checks": {
@ -13,6 +15,7 @@
}, },
"Another One": { "Another One": {
"collected": 69, "collected": 69,
"found": 0,
"remaining": 0, "remaining": 0,
"total": 420, "total": 420,
"checks": { "checks": {

View File

@ -81,7 +81,7 @@ async function initialize_elements() {
// Initialize global state // Initialize global state
current_checks = checks.collected; current_checks = checks.collected + checks.found;
current_entrances = entrances.found; current_entrances = entrances.found;
total_checks = checks.total; total_checks = checks.total;
total_entrances = entrances.total; total_entrances = entrances.total;
@ -574,10 +574,10 @@ async function initialize_checks_list(checks_list, checks) {
// Update the check totals // Update the check totals
checks_list.querySelector( checks_list.querySelector(
".breakdown-block-checks-title" ".breakdown-block-checks-title"
).textContent = `Checks: ${checks.collected}/${checks.total} (${checks.remaining} left)`; ).textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining} left)`;
checks_list.querySelector( checks_list.querySelector(
".breakdown-block-checks-title" ".breakdown-block-checks-title"
).dataset.checksCollected = checks.collected; ).dataset.checksCollected = checks.collected + checks.found;
checks_list.querySelector( checks_list.querySelector(
".breakdown-block-checks-title" ".breakdown-block-checks-title"
).dataset.checksRemaining = checks.remaining; ).dataset.checksRemaining = checks.remaining;
@ -722,10 +722,10 @@ async function initialize_summary(summary_element, scene, checks, entrances) {
summary_element.querySelector(".summary-title").textContent = scene; summary_element.querySelector(".summary-title").textContent = scene;
const summary_checks = summary_element.querySelector(".summary-checks"); const summary_checks = summary_element.querySelector(".summary-checks");
summary_checks.dataset.checksCollected = checks.collected; summary_checks.dataset.checksCollected = checks.collected + checks.found;
summary_checks.dataset.checksRemaining = checks.remaining; summary_checks.dataset.checksRemaining = checks.remaining;
summary_checks.dataset.checksTotal = checks.total; summary_checks.dataset.checksTotal = checks.total;
summary_checks.textContent = `Checks: ${checks.collected}/${checks.total} (${checks.remaining})`; summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining})`;
const summary_entrances = summary_element.querySelector(".summary-entrances"); const summary_entrances = summary_element.querySelector(".summary-entrances");
summary_entrances.dataset.entrancesFound = entrances.found; summary_entrances.dataset.entrancesFound = entrances.found;
@ -737,7 +737,7 @@ async function initialize_summary(summary_element, scene, checks, entrances) {
summary_element.firstElementChild.replaceWith( summary_element.firstElementChild.replaceWith(
await apply_summary_colors({ await apply_summary_colors({
element: summary_element.firstElementChild, element: summary_element.firstElementChild,
checks_collected: checks.collected, checks_collected: checks.collected + checks.found,
checks_remaining: checks.remaining, checks_remaining: checks.remaining,
checks_total: checks.total, checks_total: checks.total,
entrances_found: entrances.found, entrances_found: entrances.found,
@ -778,16 +778,16 @@ async function update_summary(scene, checks, entrances) {
// Make variables for whether checks or entrances updated // Make variables for whether checks or entrances updated
const checks_changed = const checks_changed =
summary_checks.dataset.checksCollected != checks.collected; summary_checks.dataset.checksCollected != checks.collected + checks.found;
const entrances_changed = const entrances_changed =
summary_entrances.dataset.entrancesFound != entrances.found; summary_entrances.dataset.entrancesFound != entrances.found;
// Check for changes, and if so, update // Check for changes, and if so, update
if (checks_changed) { if (checks_changed) {
summary_checks.dataset.checksCollected = checks.collected; summary_checks.dataset.checksCollected = checks.collected + checks.found;
summary_checks.dataset.checksRemaining = checks.remaining; summary_checks.dataset.checksRemaining = checks.remaining;
summary_checks.dataset.checksTotal = checks.total; summary_checks.dataset.checksTotal = checks.total;
summary_checks.textContent = `Checks: ${checks.collected}/${checks.total} (${checks.remaining})`; summary_checks.textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining})`;
} }
if (entrances_changed) { if (entrances_changed) {
summary_entrances.dataset.entrancesFound = entrances.found; summary_entrances.dataset.entrancesFound = entrances.found;
@ -804,7 +804,7 @@ async function update_summary(scene, checks, entrances) {
await apply_summary_colors({ await apply_summary_colors({
element: document.querySelector(`.summary[data-scene="${scene}"]`) element: document.querySelector(`.summary[data-scene="${scene}"]`)
.firstElementChild, .firstElementChild,
checks_collected: checks.collected, checks_collected: checks.collected + checks.found,
checks_remaining: checks.remaining, checks_remaining: checks.remaining,
checks_total: checks.total, checks_total: checks.total,
entrances_found: entrances.found, entrances_found: entrances.found,
@ -856,10 +856,10 @@ async function update_breakdown_checks(scene, checks) {
// Update the check totals // Update the check totals
document.querySelector( document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title` `.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).textContent = `Checks: ${checks.collected}/${checks.total} (${checks.remaining} left)`; ).textContent = `Checks: ${checks.collected + checks.found}/${checks.total} (${checks.remaining} left)`;
document.querySelector( document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title` `.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).dataset.checksCollected = checks.collected; ).dataset.checksCollected = checks.collected + checks.found;
document.querySelector( document.querySelector(
`.breakdown[data-scene="${scene}"] .breakdown-block-checks-title` `.breakdown[data-scene="${scene}"] .breakdown-block-checks-title`
).dataset.checksRemaining = checks.remaining; ).dataset.checksRemaining = checks.remaining;
@ -925,7 +925,7 @@ async function update_breakdown(scene, checks, entrances) {
); );
// Check for changes, and if so, update // Check for changes, and if so, update
if (breakdown_checks.dataset.checksCollected != checks.collected) { if (breakdown_checks.dataset.checksCollected != checks.collected + checks.found) {
update_breakdown_checks(scene, checks); update_breakdown_checks(scene, checks);
} }
if (breakdown_entrances.dataset.entrancesFound != entrances.found) { if (breakdown_entrances.dataset.entrancesFound != entrances.found) {

View File

@ -3,14 +3,14 @@
onclick="open_breakdown(this)" onclick="open_breakdown(this)"
data-scene="{{ scene }}"> data-scene="{{ scene }}">
<div class="p-2 *:mr-auto *:justify-start *:text-left min-h-full flex flex-col rounded-lg bg-gradient-to-tl shadow-sm shadow-[#242424] {{ extra_classes }}"> <div class="p-2 *:mr-auto *:justify-start *:text-left min-h-full flex flex-col rounded-lg bg-gradient-to-tl shadow-sm shadow-[#242424] {{ extra_classes }}">
<div class="summary-title">{{ scene }}:</div> <div class="text-sm md:text-base summary-title">{{ scene }}:</div>
<div class="summary-checks" <div class="text-xs summary-checks"
data-checks-collected="{{ scene_data.checks.collected }}" data-checks-collected="{{ scene_data.checks.collected }}"
data-checks-remaining="{{ scene_data.checks.remaining }}" data-checks-remaining="{{ scene_data.checks.remaining }}"
data-checks-total="{{ scene_data.checks.total }}"> data-checks-total="{{ scene_data.checks.total }}">
Checks: {{ scene_data.checks.collected }}/{{ scene_data.checks.total }} ({{ scene_data.checks.remaining }}) Checks: {{ scene_data.checks.collected }}/{{ scene_data.checks.total }} ({{ scene_data.checks.remaining }})
</div> </div>
<div class="summary-entrances" <div class="text-xs summary-entrances"
data-entrances-found="{{ scene_data.entrances.found }}" data-entrances-found="{{ scene_data.entrances.found }}"
data-entrances-remaining="{{ scene_data.entrances.remaining }}" data-entrances-remaining="{{ scene_data.entrances.remaining }}"
data-entrances-total="{{ scene_data.entrances.total }}"> data-entrances-total="{{ scene_data.entrances.total }}">

View File

@ -4,7 +4,7 @@
<div class="p-2 rounded-xl"> <div class="p-2 rounded-xl">
<div class="p-2 rounded-md bg-gradient-to-br from-charcoal-translucent to-charcoal-translucent-light" <div class="p-2 rounded-md bg-gradient-to-br from-charcoal-translucent to-charcoal-translucent-light"
id="summary-list"> id="summary-list">
<div class="grid grid-flow-row gap-2 p-1 overflow-y-scroll md:grid-cols-3 xl:grid-cols-5 max-h-96 rounded-xl scrollbar-none"> <div class="grid grid-flow-row grid-cols-2 gap-2 p-1 overflow-y-scroll md:grid-cols-3 xl:grid-cols-5 rounded-xl scrollbar-none">
{% include "tracker/summary/block.html" with extra_classes="" is_hidden="hidden" %} {% include "tracker/summary/block.html" with extra_classes="" is_hidden="hidden" %}
{% for scene, scene_data in scenes.items %} {% for scene, scene_data in scenes.items %}
{% if scene != "Posterity" and scene != "Resurrection" and scene != "Loading" %} {% if scene != "Posterity" and scene != "Resurrection" and scene != "Loading" %}

View File

@ -115,6 +115,10 @@ def index(request):
"entrances": tracker_doors_data["scenes"][scene], "entrances": tracker_doors_data["scenes"][scene],
"checks": tracker_items_data["scenes"][scene], "checks": tracker_items_data["scenes"][scene],
} }
scene_data[scene]["checks"]["collected"] = (
scene_data[scene]["checks"]["collected"]
+ scene_data[scene]["checks"]["found"]
)
template = loader.get_template("tracker/index.html") template = loader.get_template("tracker/index.html")
server_address_form = ServerAddressForm() server_address_form = ServerAddressForm()