Tracks is a GTD™ web application, built with Ruby on Rails https://www.getontracks.org/
Find a file
Claude 51c4b6d3c3
Add full CRUD functionality for Contexts and Todos with RSS feeds
Implemented complete CRUD (Create, Read, Update, Delete) operations for the web UI:

## Context CRUD:
- Added HandleCreateContext and HandleDeleteContext handlers
- Created modal form for context creation in contexts.html
- Added delete buttons with confirmation dialogs
- Added POST /contexts and POST /contexts/:id/delete routes
- Contexts now support proper position-based ordering

## Todo CRUD:
- Added HandleCreateTodo and HandleDeleteTodo handlers
- Created modal form for todo creation with context selection in todos.html
- Context selection is required (aligned with GTD methodology)
- Added delete buttons for todos with confirmation dialogs
- Added POST /todos and POST /todos/:id/delete routes
- Updated ShowTodos to pass available contexts to template

## RSS Feed:
- Implemented HandleContextFeed handler with RSS 2.0 XML generation
- Added GET /contexts/:id/feed.rss route
- Feed includes all todos for a specific context
- Feed contains todo description, notes, project, and due date info

## Testing:
- Created comprehensive Playwright test suite (test-tracks-crud.js)
- Tests cover: login, context creation, todo creation with context assignment,
  todo deletion, context deletion, and RSS feed validation

All code compiles successfully. Ready for end-to-end testing.
2025-11-05 13:12:03 +00:00
.github Dependabot Ruby version 2025-06-29 14:51:18 +03:00
app Add Traditional Chinese (Taiwan) localization support 2025-09-05 16:19:23 +08:00
bin Change to a new JS preprocessor, change from MySQL to MariaDB and fix polling 2025-06-29 21:27:27 +03:00
cmd/tracks Add full CRUD functionality for Contexts and Todos with RSS feeds 2025-11-05 13:12:03 +00:00
config Add Traditional Chinese (Taiwan) localization support 2025-09-05 16:19:23 +08:00
db Update schema.rb for Postgres support 2024-07-19 14:00:19 +03:00
doc Release 2.7.1 2024-07-25 23:54:52 +03:00
internal Add full CRUD functionality for Contexts and Todos with RSS feeds 2025-11-05 13:12:03 +00:00
lib Upgrade to RoR 7.0 2025-06-28 16:25:52 +03:00
log update gitignore rules to match rails 3.2.8 defaults 2012-09-27 10:37:36 -04:00
node_modules Add form submission debugging to login page 2025-11-05 12:36:32 +00:00
public Error message fixes for CSV import. Add the necessary directory to Docker image. 2022-02-09 11:28:05 +02:00
script Change to a new JS preprocessor, change from MySQL to MariaDB and fix polling 2025-06-29 21:27:27 +03:00
test Update the date formatting syntax 2025-06-29 13:25:14 +03:00
test-envs Use MariaDB instead of MySQL also in tests 2025-06-30 00:49:34 +03:00
vendor/assets Drop vendored SWFObject. Included in swf_fu. 2017-02-12 15:16:05 -05:00
.codeclimate.yml Rubocop still doesn't support Ruby > 2.5, so let's disable that. 2024-06-06 00:31:07 +03:00
.dockerignore Replace the version-specific Dockerfiles with one staged Dockerfile 2024-07-18 21:09:04 +03:00
.env.example Simplify database support to SQLite only 2025-11-05 11:23:40 +00:00
.gitignore Rewrite Tracks application in Golang 2025-11-05 10:46:59 +00:00
.rubocop.yml Relax the Rubocop limits a bit to make CodeClimate more useful 2022-02-22 23:23:14 +02:00
.ruby-version Dependabot Ruby version 2025-06-29 14:51:18 +03:00
.yardopts Yardoc - show private and protected methods in api doc 2011-10-24 21:40:18 +02:00
config.ru Revert to stock config.ru 2015-03-08 20:50:27 -04:00
CONTRIBUTING.md Document coding style and adding tests 2022-09-07 15:09:41 +03:00
COPYING Add GPLv2 license text 2013-01-26 12:59:25 -05:00
docker-compose.yml Rewrite Tracks application in Golang 2025-11-05 10:46:59 +00:00
docker-entrypoint.sh Hopefully the final fixes based on fresh installs with both Docker install methods 2020-07-20 00:58:45 +03:00
Dockerfile Rewrite Tracks application in Golang 2025-11-05 10:46:59 +00:00
Gemfile Bump rubocop from 1.78.0 to 1.81.1 2025-09-29 00:01:45 +00:00
Gemfile.lock Bump rubocop from 1.81.6 to 1.81.7 2025-11-03 00:01:34 +00:00
go.mod Simplify database support to SQLite only 2025-11-05 11:23:40 +00:00
go.sum Simplify database support to SQLite only 2025-11-05 11:23:40 +00:00
mkdocs.yml Specify pages for MkDocs 2014-10-02 11:15:13 -04:00
package-lock.json Add form submission debugging to login page 2025-11-05 12:36:32 +00:00
package.json Add form submission debugging to login page 2025-11-05 12:36:32 +00:00
Rakefile Bring a few details in line with Rails 4.1 2014-06-19 12:33:38 -04:00
README.md Remove the IRC channel for now 2024-07-25 23:59:05 +03:00
README_GOLANG.md Add default admin user and admin-only user creation 2025-11-05 11:35:36 +00:00
SECURITY.md Merge pull request #2491 from TracksApp/release_2.5.1 2020-09-24 13:03:55 +03:00
test-login.js Add form submission debugging to login page 2025-11-05 12:36:32 +00:00
test-tracks-crud.js Add full CRUD functionality for Contexts and Todos with RSS feeds 2025-11-05 13:12:03 +00:00
test_api.sh Fix polymorphic tagging and add test script 2025-11-05 10:59:26 +00:00

Tracks: a GTD™ compatible web application built with Ruby on Rails

Build Status Code Climate Translation status CII Best Practices

About

Full instructions for both new installations and upgrades from older installations of Tracks can be found in the wiki.

As always, make sure that you take sensible precautions and back up all your data frequently, taking particular care when you are upgrading.

Enjoy being productive!

Contributors and consulting

If you are thinking about contributing towards the development of Tracks, please read /CONTRIBUTING.md for general information. Also you can find some information on development, testing and contributing on the wiki.