WhatTodo-v1.4.0.zip
What's new
Changelog
All notable changes to WhatTodo are documented here.
[1.4.0]
Added
- Season task templates: a "Season templates" section in the config window imports preset to-do lists for the current season (Midnight S1, 12.0.7), grouped into four categories — World, Dungeons & Raid, Reputation, Limited-time events. The user ticks the categories to import and clicks Import; re-importing is idempotent (existing labels are skipped, no duplicates). Hovering a category checkbox shows a
GameTooltippreviewing the tasks it would add (newCore/SeasonTemplates.lua, wired intoUI/AdminPanel.lua,L.SEASON_*andL.TPL_*keys in both locales) Core/SeasonTemplates.luakeeps the curated content as pure data (ordered categories of{ labelKey, frequency, scope }) separate from the UI, reusingTasks.Add/Tasks.GetAll; template labels go throughL.TPL_*so the in-game wording can be corrected without touching logicCore/SeasonTemplates.luaadded to the.toc(afterCore/Tasks.lua) and to the MakefileADDON_FILESpackaging list
Notes
- The Season 1 activity names are a best-effort starting point and may need adjusting to match live in-game wording — they are centralized in the locale files for easy editing. No SavedVariables migration is required (templates only call
Tasks.Add)
[1.3.0]
Added
- Account-wide tasks: each task now has a
scope(charoraccount). Account-wide tasks are shared across all characters with shared completion, stored indb.global.tasks; per-character tasks live indb.profile.tasks. Scope is picked from a dropdown when adding a task and shown as a badge in the panel and on the list (Core/Tasks.lua,UI/AdminPanel.lua,UI/Display.lua, newL.SCOPE_*keys) - Copy list between characters: a "Profiles" section in the config window copies another character's task list onto the current one, using AceDB's native per-character profiles (
db:GetProfiles/db:CopyProfile) (UI/AdminPanel.lua,L.PROFILE_*keys) - SavedVariables schema migration framework: ordered, scope-aware migrations with per-scope version tracking (
db.char.dbVersionreplayed per character,db.global.dbVersionrun once per account), run at init before any module reads the DB (Core/Migrations.lua, wired inWhatTodo.lua) - Busted coverage for migrations and multi-scope tasks (
tests/Migrations_test.lua,tests/Tasks_test.lua;strtrim/GetServerTime/GetCurrentRegionstubs added totests/mock_wow_api.lua)
Changed
- The database now uses per-character profiles instead of the shared
"Default"profile (thetruedefault-profile argument was dropped fromAceDB:New). On upgrade, each character is switched to its own profile and its existingdb.char.tasksare migrated intodb.profile.tasks— existing lists are preserved. This is what makes per-character isolation and the copy-between-characters feature possible (WhatTodo.lua, migration v1 inCore/Migrations.lua)
Upgrade notes
- Your current task list is kept automatically; it simply becomes your character's own profile. From now on, lists are per-character — create Account tasks for chores you want shared across every character, and use the Profiles → Copy action to clone a list onto another character.
[1.2.1]
Fixed
- No more
[ADDON_ACTION_FORBIDDEN] ClearTarget()taint error on login after an update: the changelog popup no longer reassigns the globalStaticPopupDialogs. The dialog is now registered at file load time (writing a single key) withpreferredIndex = 3(UI/ChangelogPopup.lua)
[1.2.0]
Fixed
- Weekly reset day is now region-aware instead of being hardcoded to Wednesday: auto-detected via
GetCurrentRegion()— Tuesday on US, Wednesday on EU, Thursday on KR/TW/CN (fallback Wednesday) (Core/Reset.lua). Daily (5:00) and monthly (1st) are unchanged
Added
Reset.GetWeeklyResetWeekday(region)(pure region→weekday mapping) andReset.GetCurrentRegion();GetResetBoundary/GetNextReset/IsDonetake an optionalweeklyResetWdayargument so the reset day stays injectable and testable (Core/Reset.lua, wired inCore/Tasks.luaandUI/Display.lua)tests/Reset_test.luaBusted coverage for the region mapping and weekly boundaries;_G.datestub added totests/mock_wow_api.luadocs/ROADMAP.mddocumenting the publication roadmap and per-feature status
[1.1.0]
Added
- Changelog popup shown once per account on the first login after an update, localized FR/EN from the client locale (
Core/Changelog.lua,UI/ChangelogPopup.lua,L.CHANGELOG_*keys inLocales/enUS.luaandLocales/frFR.lua) - Account-wide
db.global.lastSeenVersion(first use of an AceDB global root) to track the last announced version; compared against theCHANGELOG_VERSIONconstant - Unit-test infrastructure: Busted suite run under Docker (
Dockerfile.test,tests/mock_wow_api.lua,tests/Changelog_test.lua) - Packaging guard
tools/check-packaging.pyensuring every script referenced in the.tocis shipped in the zip
Changed
Makefileswitched from blind directory globbing to an explicitADDON_FILESlist (with a recursiveLibs/walk), gated by the packaging guard before each build
[1.0.3]
Changed
- bump wow versikon
[1.0.2]
Changed
- Display window now resizes dynamically to fit the number of tasks instead of using a fixed height, and is capped at 80% of the screen height (
UI/Display.lua) - Beyond the cap, the task list becomes scrollable with the mouse wheel — tasks no longer overflow outside the frame when many are added
[1.0.1]
Added
- Localization (EN/FR): the UI language now follows the WoW client locale — English by default, French when
GetLocale() == "frFR"(Locales/enUS.lua,Locales/frFR.lua) ## Notes-frFRentry in the.tocfor the French addon-list description- Custom parchment icon (
Textures/icon.tga) used for the addon list and the minimap button
Changed
- All user-facing strings moved out of the UI code into the locale tables
[1.0.0] — Initial release
Added
- Per-character to-do list with three task frequencies: daily, weekly, monthly
- Automatic reset at 5:00 server time:
- daily tasks reset every day,
- weekly tasks reset every Wednesday,
- monthly tasks reset on the 1st of each month
- Completion state derived from the last completion time versus the current reset boundary — tasks re-arm by themselves when a reset passes, no cleanup needed
- Admin panel (AceGUI) to add, rename, re-categorize and delete tasks, with a real "Add" button
- Parchment-style display window: draggable, position persisted, tasks grouped by frequency with a per-section reset countdown and checkboxes
- Minimap button (LibDBIcon) — left-click toggles the display, right-click opens the admin panel, tooltip shows remaining tasks per frequency
- Slash commands:
/wt(toggle display) and/wt config(open admin panel) - Embedded libraries: Ace3 (AceAddon, AceDB, AceConsole, AceEvent, AceGUI, AceConfig), LibDataBroker-1.1, LibDBIcon-1.0
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects