Commit graph

118 commits

Author SHA1 Message Date
63d30ee8f2 Rename INFO to WARNING
All checks were successful
Run tests / test (pull_request) Successful in 31s
Rename INFO to WARNING, db still keeps "info" for backwards compatibility.
Add dynamic result help text and result type icons to result dropdown menu.

Fixes #118

Assisted-By: Claude Opus 4.6
2026-09-01 15:20:41 +02:00
079e52034a developer docs: Fix setting an admin user
All checks were successful
Run tests / test (pull_request) Successful in 30s
Without the envvar, it fails with:
> You need to change the app.secret_key value for production

`make` calls set the envvar automatically, in manual python calls we need to specify it.
2026-08-31 18:55:11 +02:00
b21d496957 Fix "Not Found" error on mock event results
All checks were successful
Run tests / test (pull_request) Successful in 30s
Fixes "Not Found" error when trying to submit mock event result.

Please remove old test database before running this updated `create_mock_data` for the first time:

```
make remove_db
make create_mock_data
make run_app
```

Fixes #135

Assisted-By: Claude Opus 4.6
2026-08-24 15:08:30 +02:00
d090d22847 Add screen reader support
All checks were successful
Run tests / test (pull_request) Successful in 31s
Update app HTML accessibility attributes to properly support screen readers.
Improve problematic elements' contrast for better readability.

Fixes #132

Assisted-by: Claude Opus 4.6
2026-08-19 15:59:24 +02:00
f9f1773280 Remove resultsdb references
All checks were successful
Run tests / test (pull_request) Successful in 37s
Remove stale resultsdb references. resultsdb is not used by this project anymore.

Related: #82

Assisted-by: Claude Opus 4.6
2026-08-19 13:11:31 +02:00
9aa326cb70 Update developer documentation
All checks were successful
Run tests / test (pull_request) Successful in 33s
Developer documentation is updated to reflect current recommended way to setup local development environment.
Added check for required tools in Makefile.

Fixes #123

Assisted-by: Claude Code
2026-08-06 10:47:34 +02:00
5d5cc0e6e4 Create health check endpoint
All checks were successful
Run tests / test (pull_request) Successful in 33s
Create health check endpoint to prevent Openshift livenessProbe spamming app index page

- create endpoint for OpenShift livenessProbe
- add tests verifying endpoint function

Fixes #120

Assisted-by: Claude Code
2026-08-06 08:22:09 +00:00
f1c5587abd ci.yml: Update checkout action to v7, don't check out all history
All checks were successful
Run tests / test (pull_request) Successful in 34s
We only need the last commit to run the tests.

Related: quality/tickets#928
2026-08-05 09:27:29 +02:00
0d58f275b2 Discourage long comments
All checks were successful
Run tests / test (pull_request) Successful in 35s
Show warning for comments over 500 chars when submitting test results
Prevent submitting comments longer than 2000 chars

- Add character counter to comment field in result submission form
- Add warning for long comments
- Add comment server-side hard limit of 2000 chars
- Display error when comment is over hard limit
- Add tests covering this feature

Fixes #59

Assisted-By: Claude Code
2026-07-28 14:08:37 +02:00
6554cb351b Enable public access to draft events
All checks were successful
Run tests / test (pull_request) Successful in 33s
AI Code Review / ai-review (pull_request_target) Successful in 14s
- Remove permission check for draft events
- Add test covering this usecase

Fixes #131

Assisted-by: Claude Code
2026-07-15 11:36:29 +00:00
50611a817d Make create_mock_data idempotent
All checks were successful
Run tests / test (pull_request) Successful in 34s
- Fix create_mock_data to update db regardless of previous contents
- create_mock_data updates existing mock event date relative to current date
- Fix `from ..models import *` leaking datetime - required for clean datetime imports
- Fix tests failing due to changes in 60dfa4066c

Fixes #125

Assisted-by: Claude Code
2026-07-14 13:26:39 +02:00
60dfa4066c Make warning banners easier to read
Replace a sentence with word capitalization with something shorter and easier to parse.
Also add some strong highlights.

Related: #128
2026-07-14 10:12:51 +02:00
a421f543b6 Fix AI review finding - tweak whitespace formatting
All checks were successful
Run tests / test (pull_request) Successful in 34s
2026-07-03 13:07:34 +00:00
63d71913be Update instructions link to open in new tab
All checks were successful
Run tests / test (pull_request) Successful in 32s
AI Code Review / ai-review (pull_request_target) Successful in 11s
- Add `target="_blank" rel="noopener noreferrer" ` to instruction links
- Update accessibility properties of both instruction links

Fixes #124

Assisted-by: Claude Code
2026-07-03 14:51:06 +02:00
7cbdfc7601 Add banner to draft and upcoming testdays
All checks were successful
Run tests / test (pull_request) Successful in 32s
AI Code Review / ai-review (pull_request_target) Successful in 25s
- Add banner to warn user when event is in draft state or not-yet-started
- Add tests covering this feature

Fixes #56

Assisted-by: Claude Code
2026-06-29 14:43:49 +00:00
5797f0ed5e Replace ReverseProxied with werkzeug ProxyFix
All checks were successful
Run tests / test (pull_request) Successful in 33s
- replace ReverseProxied with werkzeug ProxyFix
- trust levels are configurable via PROXYFIX_X_* config attributes
- add tests of ProxyFix configuration
- set X-Forwarded-For and X-Forwarded-Proto to 2

Fixes #112

Assisted-By: Claude Code
2026-06-26 13:15:41 +00:00
64138b0c48 reword welcome message
All checks were successful
Run tests / test (pull_request) Successful in 32s
Having "please" in two subsequent sentences felt a bit weird. So I dropped both of them :-D It's
now shorter and faster to read.
2026-06-23 14:54:48 +02:00
3f4d7f753e Separate current and upcoming events
All checks were successful
Run tests / test (pull_request) Successful in 31s
v1.2
- Separate events into 4 categories: current, recently finished, upcoming and past
- Hide empty categories
- Add top banner
- Separate header by adding background and sticky bit
- Add tests covering this feature
- Update CLI mock data generator to produce events in all categories

Fixes #57

Assisted-by: Claude Code
2026-06-10 07:51:33 +00:00
1f39e81436 Replace results export link with icon
All checks were successful
Run tests / test (pull_request) Successful in 33s
"Wiki syntax export" link visible only to creators is replaced with export icon next to the edit button. Export icon is visibe for everyone.

Fixes #64

Assisted-by: Clude Code
2026-06-03 14:11:21 +00:00
80f4c961df Implement MCP server
All checks were successful
Run tests / test (pull_request) Successful in 31s
- add simple read-only MCP server for reading testdays and test results
- add MCP server docs
- add example testdays-mcp skill
- extend tests to cover new features

Fixes #108

Assisted-by: Claude Code
2026-06-02 11:40:24 +00:00
7e6a9186b8 Add devcontainer config
All checks were successful
Run tests / test (pull_request) Successful in 32s
Add support for devcontainer tooling, enabling development in the very same
environment the app is built for.

Fixes #116

Assisted-by: Claude Code
2026-06-02 12:56:13 +02:00
989587ae3c Add ASGI support for embedded MCP server
All checks were successful
Run tests / test (pull_request) Successful in 33s
Serve the Flask app alongside an MCP streamable-HTTP endpoint under a
single Starlette ASGI router.  Gunicorn switches from sync WSGI workers
to UvicornWorker so both the native-ASGI MCP handler (/mcp) and the
WSGI-shimmed Flask app (everything else) run in the same process.

Prerequisite: OpenShift builder image must be upgraded from
ubi9/python-39 to ubi9/python-312 (mcp requires Python >=3.10).

Fixes #113

Assisted-By: Claude Code
2026-05-21 10:26:49 +02:00
b9a12b250e Refactor app to use application factory pattern
All checks were successful
Run tests / test (pull_request) Successful in 43s
Fixes #110

Assisted-By: Claude Code
2026-05-11 15:35:15 +02:00
e437e784da Fix browser native UI elements styling
All checks were successful
Run tests / test (pull_request) Successful in 47s
AI Code Review / ai-review (pull_request_target) Successful in 17s
App style was missing `color-scheme` property and browser native (built-in)
UI elements ware not aware of selected app theme. Fix adds `color-scheme`
property so that app color theme is applied to browser elements as well.

Fixes #107

Assisted-By: Claude Code
2026-04-27 13:32:40 +02:00
e3d421c33c Docs: testday metadata authority is now app README
All checks were successful
Run tests / test (pull_request) Successful in 45s
App README is now considered to be the official testday metadata source.
Metadata description on Fedora Wiki is being obsoleted.
2026-04-27 12:47:47 +02:00
1c27677e75 Implement commenting out testday markup tests
- implement using # for disabling single tests and general comments
- implement hiding sections with all tests commented out
- update documentation with comment feature description
- create tests covering markup comments

Fixes #84

Assisted-By: Claude Code
2026-04-27 12:45:46 +02:00
7d0d2f94ba Fix broken styling after jinjax upgrade
All checks were successful
Run tests / test (pull_request) Successful in 49s
AI Code Review / ai-review (pull_request_target) Has been skipped
- Update jinjax to 0.37
- Fix missing page styles
- Add tests covering this problem

Assisted-By: Claude Code
2026-04-10 12:12:07 +02:00
774af3fb84 Implement admin action auditing
All checks were successful
Run tests / test (pull_request) Successful in 45s
- Add audit_log db table and alembic migration
- Audit admin actions into db table and app log
- Add "Audit Log" admin webui page
- Streamline app logging and unify log output

Fixes #66

Assisted-By: Claude Code
2026-04-10 11:30:28 +02:00
5b4ae3fa1b Update dependency versions
All checks were successful
Run tests / test (pull_request) Successful in 41s
Update dependencies to the lates available version
Update pins to allow compatible releases
Skip updating jinjax due to 0.37 incompatibility

Fixes #73
2026-03-30 14:38:36 +02:00
cce860e257 Drop permissions block from CI workflow
It does nothing on Forgejo ATM, let's remove it for clarity.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2026-03-26 12:46:56 -07:00
615df60fea Add ai-code-review context file
All checks were successful
Run tests / test (pull_request) Successful in 41s
Assisted-by: Cursor 2.6.11 | claude-4.6-opus-high
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2026-03-25 08:53:14 -07:00
c076aac8c4 Testday wiki link styling
All checks were successful
Run tests / test (pull_request) Successful in 44s
Add testday wiki link styling so it stands out more

Fixes #71
2026-03-25 09:05:24 +01:00
693d7c82a4 Add CI and LLM PR review workflows, make tests container-agnostic
All checks were successful
Run tests / test (pull_request) Successful in 41s
This adds a CI workflow to run the tests, and another to do LLM
pull request review.

It also adjusts the tests so they can *either* launch a postgres
container via testcontainers, *or* work with a pre-existing
container. This is because in the CI environment we are already
running in a Podman container launched by Forgejo (so we don't
control its execution) and we cannot find a way to make
testcontainers work in that situation. Instead, we run a postgres
container in the CI workflow itself and have the tests use that.
This work was done by @jgroman.

The CI workflow uses an Alma 9 image to match the official
deployment environment as closely as possible. We can't use the
same UBI 9 base image because it does not include psql.

Fixes #96

Assisted-By: Claude Code
2026-03-19 15:02:50 +01:00
f63dc87d83 Fix failing code and update tests
Fixes #97
2026-03-10 11:50:49 +00:00
7b4c08bc5e Fix logging and git errors 2026-03-09 08:40:36 +00:00
db3c8345d6 Create automated tests
Create pytest scaffolding for automated tests
Create pytest fixtures enabling automated testing
Add testcase examples to be used as templates
Update Makefile targets for running tests and test cleanup
Update developer docs

Fixes #76

Assisted-By: Claude Code
2026-03-06 14:36:23 +00:00
5bb32514fa Profile handling improvements v1.1
* Make profile optional
* Set profile placeholder text from template section ProfileText
* Display profile hint above profile input field
* Display profile hint on results page in profile column
* Retrieve user's profile text for given section from DB if they already entered
  some result

Fixes #58
2026-02-04 13:37:18 +01:00
f070846c47 Add GPLv3 license
Fixes #86
2026-02-04 10:51:23 +00:00
ee37c35e6d migrated to Forge
Link to the new location in the footer, and also add Forge to the allowed list
of bug trackers.

Related to #69
2026-01-15 15:10:49 +01:00
be3d80eb09 Add app version into footer
Fixes #83
2026-01-08 12:59:46 +00:00
e9630bdef6 Fix event end date evaluation
Fixes #68
2025-12-23 15:37:09 +01:00
66e7cccf69 Fix initializing result comments and bugs
Update Testday.jinja template with comments and more descriptive variables

Fixes #78
2025-12-09 13:58:28 +01:00
d37194f827 Fix DB container creation logic in Makefile
Add RUNMODE export to MAKEFILE

Fixes #77
2025-12-09 10:42:40 +00:00
cf5bc371a0 Fixes #67
Extend allowed bug tracker list
Update logic to handle 3rd level domains
Make error messages red
2025-12-08 15:37:47 +01:00
dac4a0819e Merge #74 improve first-time developer setup 2025-12-05 13:59:24 +00:00
e6758b154b improve first-time developer setup
Settings - default to dev values
Requirements - fix Python 3.14 compatibility
Developer readme - put actions into a better order, add some notes
Add RUNMODE setup
2025-12-05 12:38:43 +01:00
f708b4023e Use single source of allowed bug TLDs 2025-12-04 15:22:19 +01:00
9a8fb8cb37 Update local dev environment to use PostgreSQL db, add developer docs 2025-12-03 16:20:42 +01:00
Lukas Brabec
f78fa1df18 allow linking bugs from freedesktop.org 2025-06-11 22:38:48 +02:00
Lukas Brabec
e1509856e8 fix edit result 2025-06-03 18:03:22 +02:00