about summary refs log tree commit diff
path: root/web/panettone/src/model.lisp
AgeCommit message (Collapse)AuthorFilesLines
2024-04-19 r/7963 feat(web/panettone): Create users tableAspen Smith1-2/+30
Create a (currently unused) table to store information about users. I'll be manually migrating over all the information about users into this table, then will make a subsequent CL to make the rest of the tables foreign-key into this table Change-Id: I1b1c4b50c4a61326df3382809f701947a2caf536 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11411 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7834 fix(web/panettone): Hotfixes for full text search changeAspen Smith1-1/+2
- Actually define *static-dir* at build time, to get the search.png in the search box - Better logging for migration running at startup time - Fix and-where to properly exclude nil clauses - fix looking up build-time vars in the :build package Change-Id: Ia2ef3b2715d4c2efb62bbb2c72084f0f0ad09562 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11325 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7828 feat(web/panettone): Support full-text search of issuesAspen Smith1-22/+22
Support basic full text search of issues using postgresql's built-in text search. There's a new column on the issues table called `tsv`, which contains a tsvector of the title concatenated with the description, and a new search form on both the index and closed issues page which allows searching that tsvector with a user-supplied query. Results are ranked according to that text query in the case of a search. This works fine for now, but next up I'd also like to highlight the results according to the bits that matched the user's query. Change-Id: I25170bedbbbcdc3ed29a047962e9fcfe280d763a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11258 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7826 feat(web/panettone): Add a system for database migrationsAspen Smith1-32/+191
Add a system for writing, running, and tracking database migrations (changes to the database schema) over time, inspired by but significantly simpler than postmodern-passenger-pigeon. Migrations can be generated by running (PANETTONE.MODEL:GENERATE-MIGRATION "name"), and are numerically ordered lisp files that define (at least) a function called UP, which runs the migration. The migrations that have been run against the database are tracked in the `migrations` table, and when the `(PANETTONE.MODEL:MIGRATE)` function is called (as it is on startup), all migrations that have not yet been run are run within a transaction. This includes one migration `1-init-schema.lisp`, which migrates the database (idempotently) to the current state of the schema. Change-Id: Id243a47763abea649784b12f25a6d05c2267381c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11253 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-13 r/3814 refactor(web/panettone): Use postmodern connection poolsVincent Ambo1-25/+19
Instead of managing Postgres connections on our own, use the `with-connection` postmodern function with pooling enabled as a route decorator. This should resolve at least some of the issues from b/113 with leaking connections, and an unreported issue with connections being reused while transactions are in progress. Change-Id: I1ed68667a3240900de1ae69df37d2d3018caf204 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5198 Tested-by: BuildkiteCI Reviewed-by: eta <tvl@eta.st> Autosubmit: tazjin <tazjin@tvl.su>
2021-12-16 r/3269 fix(panettone): Fix export of issue status to SQLGriffin Smith1-1/+6
Postmodern changed[0] how users customize the way lisp values get exported to SQL - now, in addition to defining methods of `cl-postgres:to-sql-string`, we have to pass `:col-export` and `:col-import` args to the field itself in the dao class. I'm not *entirely* sure why both are necessary, but without both this doesn't work. [0]: https://github.com/marijnh/Postmodern/blob/v1.33.1/CHANGELOG.md#changelog-v-1331 Change-Id: Iae8fb63c34fb6c79b9dfa350129032aab5cd2233 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4383 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: grfn <grfn@gws.fyi>
2021-04-12 r/2485 refactor(users/glittershark): Rename to grfnGriffin Smith1-1/+1
Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-04 r/2429 feat(panettone): Send emails when issues are closedGriffin Smith1-0/+14
Send notification emails to the same group of users who receive notifications on issue comments when issues are marked as closed. This also takes the opportunity to generalize issue notification emails a bit, and lay the groundwork for (but not implement) explicit issue subscriber lists. Change-Id: Ie2572ed3ad0207d415b4c362438f772925e7a2c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2807 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2428 feat(panettone): Add a settings pageGriffin Smith1-0/+18
Add a user settings page, with a single checkbox that allows disabling receiving all email notifications. Change-Id: Ibef2a497cd59f93b695ff8b9cd36047e514e00c2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2806 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2427 feat(panettone): Send email notifications for commentsGriffin Smith1-0/+24
When a user posts a comment on an issue, send email notifications (respecting the enable-email-notifications setting) to the author of that issue and all the other users who have commented on that issue. Since the oauth & gmail API stuff that the relay does is slow, this happens in a background thread. Change-Id: Ic00c265deab1030d9ba64c29c9f56314dd179141 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2805 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2425 feat(panettone): Add a user settings tableGriffin Smith1-1/+30
Add a new user-settings table and dao class, with a flag that allows an individual user to disable receiving email notifications Change-Id: I537bfca74490941934c0adc7328bcd6ed5c9c0b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2803 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2020-08-09 r/1628 fix(web/panettone): revert "implement shorthand issue URLs"glittershark1-1/+1
This reverts commit 311511385455f680aedf78aab761fcebf3ca7731. Reason for revert: this is causing all issues to return a 404 - reverting until we can get it working. Change-Id: I5f3c5ec3b24f245a1f7ef12645200d16ed0f1b35 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1721 Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu>
2020-08-08 r/1617 feat(web/panettone): implement shorthand issue URLsedef1-1/+1
Fix #32 Change-Id: I6ccec959201673850b4b56a44734a2874aad5856 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1648 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: edef <edef@edef.eu> Tested-by: BuildkiteCI
2020-08-02 r/1539 feat(web/panettone): Allow editing issuesGriffin Smith1-0/+26
Allow editing both the subject and the body of issues, recording events indicating the edit and displaying those events in the issue history. Fixes: #14 Change-Id: I9ed05271ce9bf6bda4e56f15e249c0f28c862b27 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1517 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-31 r/1510 feat(web/panettone): Display issue historyGriffin Smith1-0/+17
Display the history of an issue (which currently is just opening and closing) inline with the issue's comments on the issue show page Change-Id: Id167bceef765cb4c24e86983d1dcd6624d0e5956 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1497 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-31 r/1509 feat(web/panettone): Log when users change issue statusesGriffin Smith1-29/+97
Log in the database, in a way that will generalize to tracking edit history as well, when users change the status of an issue. To facilitate easily knowing who is currently authenticated (without introducing a circular dependency) the authentication-relaated code has also been factored out into its own package, which is nice because we want to replace that sooner rather than later anyway. Fixes: #13 Change-Id: I65a544fab660ed1c295ee8f6b293e0d4945a8203 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1496 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2020-07-28 r/1497 feat(panettone): Use postgres as the storage backendGriffin Smith1-0/+225
Switch from cl-prevalence to postgres (via postmodern) as the storage backend for panettone. The first time the application starts up after this commit, it will (idempotently) initialize the db schema and migrate over all data from the prevalence snapshot to the database - the plan is then to get rid of the prevalence classes and dependency once that's deployed. Change-Id: I4f35707efead67d8854f1c224ef67f8471620453 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1467 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: eta <eta@theta.eu.org>