From 9a430e798fa5f68b54a3fb8c7553ab83a1239fe5 Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Fri, 7 Nov 2025 09:33:25 -0500 Subject: [PATCH] Processing fix --- __pycache__/pdf_renamer.cpython-313.pyc | Bin 73240 -> 73600 bytes create_test_job.py | 27 +++++++++++++++ jobs.json | 10 +++--- pdf_renamer.py | 42 +++++++++++++----------- simulate_progress.py | 40 ++++++++++++++++++++++ test_progress_updates.py | 37 +++++++++++++++++++++ 6 files changed, 132 insertions(+), 24 deletions(-) create mode 100644 create_test_job.py create mode 100644 simulate_progress.py create mode 100644 test_progress_updates.py diff --git a/__pycache__/pdf_renamer.cpython-313.pyc b/__pycache__/pdf_renamer.cpython-313.pyc index 89c93b7a0df93869183fef106fbd8896319030ed..274461beb265793935cd31704ede5e8876c4877e 100644 GIT binary patch delta 1441 zcmZuwdrVVT7(eHpd)wPvsAwM+Xr(P6R(UFjyvAB(2m~Kv;)@6siYqOp-qwwYrgf5$ zxS36lrd>9tGiJ_YiJIfUWoD8{e8d^$kGZY#$2PMWM`gE4_HxN~F2g^T>?HR)-|un0 z`<;_~u}f^^GOKx#nkoRg-efeMpz^%NtSNJ@tZds5bc?~ZHLj4muD91MhS~yM-36lC z@9K3I1pEF6lYEU>2k+wJEuF;h5@C>Xbq@ZrwH@9i`5T)U{7Z`tpM6=t`!;XVw*s&W z0pOqOpXb+Z&}uvvLtraRB2d-oE9pnR|8_+{>@iQSd$E zSVFfS3iOn_&!h&lVfMaO5zw;t)2%X9<*)}9gCBF8nt%~KSn8NZ(L=VBN)K10ic0op zl}3*99ZE_~W^uH;$sEC3s+ufBw8zO3`Dc@*GkLk-vvCQi_nEnbLG~xioXpr{Pa;?F zm8ud&VV*XeC>Q)T?h$n8{bp`z#ye%^C^a?XoyrvgY1~wiLmyCc5-XRI)EuRxG+xe) zLLg5m*?8Kkv{(>XB$Yb2owX=gp`dcImZQ{TR<=G)5rT`*V}pYaW}_$BTyPO796BKp+kmzyafjdi6J>8Z?J$>6}85l2`6-jZt zRf}&+3!xqVDlLIAY)c;FVi15B8B0bO?me0wBMsAG#C<^1kMXVF;<)yxD&IzD{wUZg zkN(W^gROKV|6MI`1889?m>gh7Yjz!8Aa|*8_SeI|L};{t1I=o!GZSbO(c#mVp5a^%n+a3CrHS(a!}~j7P7rBeepwrG(GG zI6qr9XlKMqdJ&PA!wGupApL+vY@ji&>Fnzb_}n3Pm)t^7JV~`LSnA28Y6ML4AT2$z zdO~fLKs}SqOKVu5%}lOk>zNdjOmQahkX(mvZ|`+^{O#?Yi)sKyO6J27CQW{LQGRk! zer)k%R7{69_}R$ObhwXE^fRzn3XPada6dFOGSKt{0VYij3nW&?(x&LAW@v%E(Yt2o F{0E^#%(egk delta 1422 zcmZ`(YiyHM7(Va$zOViE^|rAKYj^7|Fy@x62pzH8Sig=97<7@%j?2&uaf7v6yS0EA zm$WKqL<#7bDG(KANQ}fka5N=kQ6ft~fk0)bT%x8DkzH6jAc4S)=NtOd^W!=1`@GM4 z&Xb(HC-g0UV3^n6)9EC{R`ZmuJIWu|=jcICJM{i~)!RmdUYbva51Ghx%Q9Nq7ty;bU@=+hzQ`pxV?^({0ngJh&ruGHbf2#kz(oJ- z+b>EHEkX}ND2@Xp^jZZy_S$X$JGH!?3B)v=a&9o+D4w>@eO;mid5<@?!-Q|R> zWbdw>U}w044D7xXtP}c+&>5Y{W58#MQ{C0V8C$V?i8wM(rC_PVm=UYUsv|XyBqlwp zcGUJ5@DD0k^3(|DlVuyrF6tZAZ2Nhxqlj(SsyHURRx4|JYw!(?lHAbOr?KSsA~~OJ zF(I9CF_X?$8suZ8DqkrdTbR$NKT_qAK8$WvJM=yacUzL@u*A`xK&UX+pMNW>d_`m zsDmOiJYkS}ZNh|6PVcn}le5}MtH7wqS?y$v* zuU0)}6PedImin`~xKY@6)Pv^3XDo*E7C-f6hK^}To(OR+;o)?K=j-@`68U4 zWBb13;U*0aejvaDT5@Qw0CQ;Ma0dn}&HQXw0GVF>d_IOP^vM^CM5v~g6U#78uOY!> z)%3(y%d@EC$`*-i9DSC&_>-C#ulCcB@e3vFs;Zk5%-xo`{r94=z5W)$GO;6+`iL}>E6Sk-S~mu-KXt+>yq z^Y!-ibZ+Z>#oXw7IbfFko40oF=%mp{lR#qcWs%2^4J0(9C3hoz#PYYAZkXwl{-=qQ zeODBjQNuSt>PDKvItlh96)gStg79h$n8NRCKo`C(!MmjPLUtrq3r{pbf0)@R;r%wn zT9pFZ6c8DdaQ=EFZeVa-zxh9_?QUi@!2TCxHk{+b~$-J&|2G@D^m$VaR1i;baAJ response.json()) @@ -1081,9 +1100,9 @@ def jobs(): }); // Add updated job elements - const jobs = Object.entries(data); - if (jobs.length > 0) { - jobs.forEach(([jobId, job]) => { + const jobEntries = Object.entries(data); + if (jobEntries.length > 0) { + jobEntries.forEach(([jobId, job]) => { const jobDiv = document.createElement('div'); jobDiv.className = 'job'; jobDiv.innerHTML = ` @@ -1149,21 +1168,6 @@ def jobs(): // Initialize previous job statuses updateJobs(); // Run once immediately to populate initial statuses - - // Collapsible section functions - function toggleZipDetails(element) { - const details = element.nextElementSibling; - const isVisible = details.style.display === 'block'; - details.style.display = isVisible ? 'none' : 'block'; - element.innerHTML = element.innerHTML.replace(isVisible ? ' ▼' : ' ▶', isVisible ? ' ▶' : ' ▼'); - } - - function toggleSkippedDetails(element) { - const details = element.nextElementSibling; - const isVisible = details.style.display === 'block'; - details.style.display = isVisible ? 'none' : 'block'; - element.innerHTML = element.innerHTML.replace(isVisible ? ' ▼' : ' ▶', isVisible ? ' ▶' : ' ▼'); - } diff --git a/simulate_progress.py b/simulate_progress.py new file mode 100644 index 0000000..58b21d0 --- /dev/null +++ b/simulate_progress.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +""" +Simulate progress updates for testing +""" +import time +import json +from pdf_renamer import job_queue, load_jobs, save_jobs + +# Load jobs +load_jobs() + +job_id = '2025-11-07_10-00-00' +if job_id in job_queue: + progress_messages = [ + 'Starting job processing...', + 'Found 3 files to process', + 'Processing PDF: document1.pdf', + 'Extracted data for John Doe', + 'Processing PDF: document2.pdf', + 'Extracted data for Jane Smith', + 'Processing PDF: document3.pdf', + 'Extracted data for Bob Johnson', + 'Organized 1/3 files', + 'Organized 2/3 files', + 'Organized 3/3 files', + 'Creating ZIP archive...', + 'Created ZIP archive with 3 organized files' + ] + + print(f'Starting progress simulation for job {job_id}') + for i, progress in enumerate(progress_messages): + job_queue[job_id]['progress'] = progress + save_jobs() + print(f'Updated progress: {progress}') + if i < len(progress_messages) - 1: # Don't sleep after last message + time.sleep(2) + + print('Progress simulation complete!') +else: + print(f'Job {job_id} not found') \ No newline at end of file diff --git a/test_progress_updates.py b/test_progress_updates.py new file mode 100644 index 0000000..1fefa6e --- /dev/null +++ b/test_progress_updates.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +""" +Test script to verify progress updates are working +""" +import json +from pdf_renamer import job_queue, load_jobs, save_jobs + +# Load current jobs +load_jobs() +print('Current jobs:') +for job_id, job in job_queue.items(): + status = job.get('status', 'unknown') + progress = job.get('progress', 'none') + print(f' {job_id}: status={status}, progress="{progress}"') + +# Test updating progress +if job_queue: + test_job_id = list(job_queue.keys())[0] + print(f'\nTesting progress update for job {test_job_id}') + + # Update progress + job_queue[test_job_id]['progress'] = 'Test progress update - ' + str(len(job_queue)) + save_jobs() + + # Reload and check + job_queue.clear() + load_jobs() + + updated_progress = job_queue.get(test_job_id, {}).get('progress', 'not found') + print(f'Updated progress: "{updated_progress}"') + + if 'Test progress update' in updated_progress: + print('✅ Progress updates are working!') + else: + print('❌ Progress updates not working') +else: + print('No jobs found to test with') \ No newline at end of file