Skip to content

Add todolists position to reorder to-do lists within a todoset #484

Description

@jeanschdev

Summary

There's no command to reposition a to-do list within its todoset. todos has position/move/reorder, and todolistgroups has position/move, but individual to-do lists can only be created, updated (name/description), archived, restored, trashed — never reordered.

Why it matters

When a project holds several to-do lists that represent an ordered sequence (e.g. phased implementation plans: "Phase 0", "Phase 1", … "Phase 4"), Basecamp displays them newest-created-first. A multi-phase plan therefore shows up reversed, and there's no CLI way to fix the order. todolists update only accepts --name/--description.

Current workaround (raw API)

The underlying Basecamp endpoint works via the raw api passthrough:

basecamp api put "/buckets/<bucket_id>/recordings/<todolist_id>/position.json" \
  -d '{"position":1}' --account <account_id>

Note position is relative and cascades, so to set a full deterministic order you have to move each list to position:1 in reverse order (the last one moved ends up on top):

# desired top→bottom: L0 L1 L2 L3 L4  → iterate in reverse, each to position 1
for id in L4 L3 L2 L1 L0; do
  basecamp api put "/buckets/$BUCKET/recordings/$id/position.json" -d '{"position":1}' --account $ACCT
done

(The endpoint is /buckets/{bucket}/recordings/{id}/position.json — the /buckets/{bucket}/todolists/{id}/position.json path returns 404.)

Proposed

Add basecamp todolists position <id> --to <N> (and/or move/reorder aliases), mirroring the existing todos position command, so reordering to-do lists doesn't require dropping to the raw API.

Tested on CLI 0.7.2.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions