Skip to content

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

@jeanschdev

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions