Commit graph

52 commits

Author SHA1 Message Date
725945d95c
WIP: creating contact resource
Some checks failed
/ golint (push) Has been cancelled
2026-05-15 20:10:14 +00:00
f1fe8b4d2b
Add contacts, rework comms schema
This in a pretty huge change. At a high level we're adding the concept
of a 'contact' which is a person or organization that has zero or more
contact methods (email, phone). This ended up cascading a number of
changes, including critically to the publicreprt schema. In the end it
seemed safer to get to the point where I'm confident we aren't using any
of the old fields for storing reporter information (though I haven't
deleted the columns yet) so I removed the code for defining those
columns.

At this point I think it's not possible for me to regenerate the bob
schema due to the interdependencies between my various schemas, so the
migration is well-and-truly happening.
2026-05-15 16:58:28 +00:00
53a3f9816a lint: remove unused code across api, comms, h3utils, html, middleware, minio, platform, rmo
Deleted files: api/compliance.go, api/debug.go, rmo/compliance.go, rmo/email.go,
rmo/mock.go, platform/publicreport/address.go

Removed unused functions/types from: api/api.go, api/configuration.go, api/district.go,
api/publicreport.go, api/sudo.go, api/types.go, comms/text/twilio.go,
comms/text/voipms.go, h3utils/h3.go, html/embed.go, html/form.go,
middleware/terminal.go, minio/client.go, platform/csv/csv.go,
platform/csv/flyover.go, platform/file/base.go, platform/file/upload.go,
platform/geocode/address.go, platform/types/service_request.go
2026-05-09 14:47:56 +00:00
28cf7683a7
Pass-through an address shim with whatever data we have 2026-05-08 22:45:26 +00:00
61ad3fbe45
Remove string-based queries for public report data
Use the new jet hotness
2026-05-07 23:22:50 +00:00
fcd95f1a25
Get back to compiling, but using new jet for publicreport
This was an epically long change, and a terrible idea, but it compiles.
This was essentially a cascade that came about because I can't blend jet
and bob in the same transaction. In for a penny, I guess...
2026-05-07 10:39:17 +00:00
67c99436d1
Properly set submitted on PUT, return new status properties on comms 2026-05-02 00:41:31 +00:00
a82732a49c
Return communication database rows from communication API
This is a pretty big refactor of how communication works to start moving
us in the direction we want to go long-term. This adds the new
communication row and migrates existing reports to add rows for
communication.

There's also a bunch of automatic fixes from the new linter. I should
have added them separately, but whatever.
2026-05-01 21:00:23 +00:00
89eca2ddf9
One more attempt to handle report null-ness 2026-04-29 20:58:47 +00:00
c6cb645453
Don't error out on missing report 2026-04-29 20:24:41 +00:00
7e79308868
Don't return an error when report doesn't exist 2026-04-29 20:18:36 +00:00
af39a73e8f
Add address raw content to report
This populates the address in the compliance flow UI
2026-04-29 19:30:38 +00:00
8bdd18649d
Separate out a public and non-public halves to publicreport APIs
This prevents us from leaking text messaging details on public
endpoints.
2026-04-28 06:36:55 +00:00
82b313f62f
Add text message log to report display 2026-04-28 05:15:01 +00:00
4ce91d77d4
Add text message history to acitivity log 2026-04-28 01:12:18 +00:00
b0170b20d5
Update fetching address number to match new types.Address pattern
This matches what we get by using the models column definition directly.
2026-04-22 22:20:42 +00:00
b5923137a7
Set organization (district) for compliance reports from mailer 2026-04-22 19:54:06 +00:00
bcd51cf5cf
Fix compliance query again.
Blarg.
2026-04-22 00:22:51 +00:00
8d37e8fab5
Fix compliance query
I can't use this until I fix some bugs in bob :(
2026-04-21 23:36:29 +00:00
fe2041f22b
Add an evidence field to compliance reports
This allows us to show a page with information about what the district
is concerned about when asking the user to fill a report.
2026-04-21 21:35:40 +00:00
59e58840c9
Fix address lat/lng location names, populate in report response 2026-04-14 15:43:49 +00:00
c0389fa4b1
Stop overwriting the address by ID
We can pull this in the single query we do to the database instead
2026-04-13 22:34:36 +00:00
9c557a0391
Make it possible to save SMS support status on phone record 2026-04-13 22:23:29 +00:00
083c4ddae9
Save access information to database 2026-04-13 20:42:03 +00:00
dcab2e1f8f
Fix failing to find matching address with publicreport 2026-04-13 17:19:20 +00:00
5011f4c137
Add raw address value to public report response 2026-04-13 16:59:20 +00:00
dddeafe6cd
Fix query for address IDs 2026-04-13 15:13:59 +00:00
5306f8ba62
Populate nuisance and water public reports by ID 2026-04-12 18:02:42 +00:00
ae10e4fee8
Initial pattern for populating different report types 2026-04-12 17:53:25 +00:00
a3c340f787
Split public report URIs by type
This allows us to have different signatures for the different types
2026-04-12 17:01:30 +00:00
12aedaf543
Update the address when provided on a report 2026-04-10 20:30:22 +00:00
b2c24a0438
Show nuisance report status 2026-04-08 23:37:00 +00:00
0289bf5756
Fix retrieval of reports by ID 2026-03-24 09:06:42 -07:00
9eb7022336
Provide the raw address value for public reports 2026-03-24 05:53:05 +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
2c4e7c4f96
Handle nuisance reports without location data 2026-03-19 19:16:39 +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
1d2570c912
Add DB model for publicreport logs
It's just way easier to track that deriving the data every time an API
request is made.
2026-03-18 17:32:06 +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
70ebfa8ee0
Avoid making the images list null if there are no images 2026-03-14 16:13:08 +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
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
e09c412139
Make it possible to handle null reporter_contact_consent 2026-03-11 23:00:06 +00:00
741b60485c
Add some files I missed in earlier commits 2026-03-09 23:26:44 +00:00
ce6c6c1cc1
Initial render of standing water reports from the public 2026-03-09 22:59:21 +00:00
f6ce5f91a2
Match up distance from reporter in UI and API 2026-03-09 22:18:24 +00:00
4cd0e05996
Add distance from report to image data 2026-03-09 22:09:35 +00:00
7c98a52133
Provide time-of-day as fully expanded in JSON 2026-03-09 19:23:34 +00:00
d1f542efe9
Fix image entities getting passed to frontend 2026-03-09 19:09:59 +00:00