Commit graph

98 commits

Author SHA1 Message Date
ef412b28ec
Make upload GET an API request 2026-03-25 21:46:23 -07:00
b152cf9c36
Break apart the planning columns 2026-03-22 09:58:25 +00:00
82ecf0f5d1
Add URL for sending message to the list of URLs we give out 2026-03-22 07:06:50 +00:00
821647cef1
Actually fetch communication from the store 2026-03-22 03:03:21 +00:00
46edbbae74
Add Communication API to user URLs
We don't want to build URLs anywhere but in the server.
2026-03-22 01:33:14 +00:00
21180816be
Start providing organization info and URLs is user/self
The new frontend needs it to do its work.
2026-03-22 01:22:44 +00:00
9b6cacda0e
Make signals include the object they are attached to (pool, report)
This means pushing the types into the common types module, which
required a refactor of a bunch of other libraries.
2026-03-21 01:19:36 +00:00
42d9d2372d
Add initial user selector for impersonation page 2026-03-20 05:20:37 +00:00
68e0da1133
Add log message when we can't marshal JSON
Been seeing this in prod
2026-03-20 05:01:52 +00:00
87961bac58
Move audio API to its own file
More consistent organization
2026-03-19 21:07:00 +00:00
fdab54a775
Fix saving note images and transcoding 2026-03-19 20:49:17 +00:00
2f1b612e9e
Move signal creation inside platform layer
This allows us to emit events with it.
2026-03-19 19:00:44 +00:00
908ac4faea
Make signals, not leads, from public reports. 2026-03-19 17:41:56 +00:00
ee61b6d24b
Move review actions into the platform, emit events on change
Still not seeing updates in the sidebar, however.
2026-03-19 16:55:49 +00:00
ab5840dd54
Fix references to org ID using platform org
I broke these a while ago and didn't realize because the compiler
doesn't catch them.
2026-03-19 03:57:38 +00:00
28714b06b8
Fix tracking report type through the system 2026-03-18 19:25:52 +00:00
685b7456b6
Return logs on comms public reports
...and start to display them. A bit.
2026-03-18 18:56:51 +00:00
1e071d5ce5
Overhaul publicreport storage layer, create unified tables
This is a huge change. I was getting really sick of the split between
nuisance/water tables when more than half of the data they store is
common. I finally bit off the big work of switching it all.

This creates a single unified table, publicreport.report and copies the
existing report data into it. It also ports existing data from the
original tables into the new table.

Along with all of this I also overhauled the system for handling
asynchronous work to use a LISTEN/NOTIFY connection from the database
and a single cache table to avoid ever losing work.
2026-03-18 15:36:20 +00:00
2538638c9d
Create generic backend process, fix background interdependencies
This refactor was born out of the inter-dependency cycles developing
between the "background" module and just about every other module which
was caused by the background module becoming a dependency of every
module that needed to background work and the fact that the background
module was also supposedly responsible for the logic for processing
those tasks.

Instead the "background" module is now very, very shallow and relies
entirely on the Postgres NOTIFY logic for triggering jobs. There's a new
table, `job` which holds just a type and single row ID.

All told, this means that jobs can be added to the queue as part of the
API-level or platform-level transaction, ensuring atomicity, and
processing coordination is handled by the platform module, which can
depend on anything.
2026-03-16 19:52:29 +00:00
cc95c38ab5
Initial creation of endpoint to send messages to public reporters 2026-03-16 00:20:41 +00:00
70d3aef8b3
Re-select selected communication on fetch
This makes it so the UI updates with any changes we pull down.
2026-03-14 20:03:46 +00:00
e2af49a323
Make lead creation and invalidation for public reports work
The only thing wrong at this point that I can tell is that address
aren't being correctly populated when I reverse geocode.
2026-03-14 01:14:30 +00:00
3e1b56a266
Add notification count to user, populate sidebar via alpine 2026-03-13 21:22:34 +00:00
4925fe4857
Close old SSE connections, push down type strings 2026-03-13 18:21:20 +00:00
e8d865d0ab
Wire up events for creating new public reports
This involved moving a lot of stuff to the platform layer since I don't
want event interfaces leaking out.

Also this includes a fix to the user authentication which I had
previously broken by making a platform-layer user object independent of
the database layer.
2026-03-13 17:56:24 +00:00
f29047f723
Initiate events connection on all authenticated pages 2026-03-13 00:03:23 +00:00
44c4f17f32
Massive rework of platform layer user/organization
The goal of this rework is to make it so I can pass around platform.User
instead of a pair of models.Organization and models.User. This is useful
for reason I kind of forget now, but it started with working on
notifications and ballooned massively from there into refactoring a
number of things that were bugging me.

This also includes a tiny amount of work on server-side events (SSE).

 * background stuff lives inside the platform now, which I need for
   having it push updates through SSE
 * userfile now lives in the platform, under file, so other platform
   functions can safely use it
 * oauth is broken into pieces and inside platform because other stuff
   was calling it already, but badly.
 * notifications go into the platform as well
2026-03-12 23:49:16 +00:00
6d1003dcbd
Show the actual total number of tasks pending 2026-03-12 00:30:19 +00:00
20025333fa
Make it possible to save the pool condition 2026-03-11 23:59:50 +00:00
6e9554d62d
Fix commit action on pool review page to send changes 2026-03-11 23:53:08 +00:00
d0a920b8d9
Log errors on POST, send JSON bodies back 2026-03-11 23:52:44 +00:00
ce3650bc21
Set up initial implementation of completing review tasks
Insufficiently tested at this point.
2026-03-11 22:51:02 +00:00
3ccc05d4c5
Save tiles to the database to make empty tile load faster 2026-03-11 17:01:47 +00:00
3743d63692
Add proxy for managing tiles 2026-03-11 14:28:59 +00:00
4ac7e29909
Sort messages by creation time 2026-03-10 15:46:17 +00:00
8bbe3d3cb3
Add simple history log to communications 2026-03-10 04:58:24 +00:00
ce6c6c1cc1
Initial render of standing water reports from the public 2026-03-09 22:59:21 +00:00
884634a2d7
Split apart comms logic into platform-lever funcs 2026-03-09 15:03:01 +00:00
cfe399e44f
Add address number to public reports 2026-03-08 03:16:58 +00:00
beb4b914a0
Add additional source information and property areas 2026-03-07 02:18:40 +00:00
1970ccb13e
Show images from public reports 2026-03-07 02:02:10 +00:00
f1f9c8f902
Add type to communications response 2026-03-07 01:37:48 +00:00
cb1229a8bd
fix sending too many images 2026-03-07 01:20:06 +00:00
462e12dd6e
Add location data to comms 2026-03-07 01:09:27 +00:00
636a0379aa
Early process converting communication page to use actual data. 2026-03-06 23:45:12 +00:00
401e6fc25f
Add fake API for proxying tile requests. 2026-03-06 22:08:08 +00:00
502a4d15df
Add organization to all authorized endpoints
We use it in filtering quite a bit.
2026-03-06 22:08:08 +00:00
e38465aaf3
Add beginnings of logic to create the review interface 2026-03-06 19:47:12 +00:00
de63a47c64
Add query args passing to API endpoints 2026-03-06 14:12:47 +00:00
72a4ef9fff
Actually update the pool location when we create the lead 2026-03-05 18:55:36 +00:00