NotePlan / NotePlan/plugins

Habits and Summaries: Output doesn't include total and average

Open
#614 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
JavaScript
Stars
204
Forks
82
Avg merge
22h 27m
Merged PRs (30d)
3

Description

Checks

  • I confirm I have restarted NotePlan and this problem still persists.
  • I confirm I have reinstalled the Plugin and this problem still persists.
  • Is this a repeatable problem?

System

  • Device OS: MacOS Sonoma 14.5
  • NotePlan Version: 3.15.2
  • Plugin Name & Version: Habits & Summaries v0.22.1

Describe the bug
The output doesn't include the total and average as shown in the plugins Readme. If I add a @mention to average it will only show the average. I can see the total if I add the @mention to the items to total in the settings. However, the @mention is then repeated in the output: once for the average and once for the total. This is different that than showing in the single line as displayed in the Readme.

What do you expect it to do instead?
I expect it to show the @mention with a count, total, and average as shown in Readme.

To Reproduce
Add an @mention to the plugins setting.

Screenshots
Screenshot 2025-01-06 at 9 54 22 AM

Plugin Console Log
To provide us with more clues about where the bug/error is occurring...

  1. Open the Plugin's Preferences by going to NotePlan's menu > Preferences > Plugins and clicking the settings "cog" icon next to the plugin in question. Scroll to the bottom and set the logging level to "DEBUG" and click "Save & Close"
  2. Now open the Plugin Console by going to Noteplan > Help > Plugin Console (not the macOS Console app).
  3. Run the plugin command you're reporting
  4. Copy the output from the Plugin Console and paste it below
  5. Delete any output that has personal information you don't want in there
   Executing function 'progressUpdate'
2025-01-06 09:56:39 | DEBUG | jgclark.Summaries v0.22.1 :: progressUpdate (from template or callback): Starting with params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (type: string) and source ''
2025-01-06 09:56:39 | DEBUG | jgclark.Summaries v0.22.1 :: - source determined to be 'callback'
2025-01-06 09:56:39 | DEBUG | jgclark.Summaries v0.22.1 :: makeProgressUpdate: Starting with params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (type: string) from source 'callback'
2025-01-06 09:56:39 | DEBUG | - config after overriding with params-as-JSON-string '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (from callback) :: {
  "progressHeading": "Metrics",
  "periodStatsYesNo": [
    "@health/take_vitamins"
  ],
  "progressPeriod": "wtd",
  "weeklyStatsDuration": 26,
  "statsHeading": "Period Stats",
  "periodStatsMentions": [],
  "showAsHashtagOrMention": true,
  "periodStatsMentionsTotal": [
    "@health/drink_water",
    "@health/slept",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand"
  ],
  "periodStatsShowSparklines": true,
  "progressMentionsAverage": [
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "includeHashtags": [],
  "periodStatsMentionsAverage": [
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "folderToStore": "Summaries",
  "showSparklines": true,
  "progressMentionsTotal": [
    "@health/drink_water",
    "@health/slept",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand"
  ],
  "progressHashtagsTotal": [],
  "mentionCountsHeading": "",
  "periodStatsHashtagsTotal": [],
  "progressChecklistReferenceNote": "",
  "foldersToExclude": [
    "Summaries",
    "Saved Searches"
  ],
  "progressHashtagsAverage": [],
  "hashtagCountsHeading": "",
  "progressYesNo": [
    "@health/take_vitamins"
  ],
  "progressHashtags": [],
  "headingLevel": 2,
  "todayProgressHeading": "",
  "excludeToday": false,
  "_logLevel": "DEBUG",
  "progressYesNoChars": "✓·",
  "todayProgressItems": [],
  "progressMentions": [],
  "periodStatsHashtagsAverage": [],
  "weeklyStatsItems": [
    "@health/take_vitamins",
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "progressDestination": "weekly",
  "weeklyStatsIncludeCurrentWeek": false,
  "period": "wtd"
}
2025-01-06 09:56:39 | DEBUG | makeProgressUpdate :: Starting for period 'wtd' with title 'Metrics' / params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' / source 'callback'
2025-01-06 09:56:39 | DEBUG | getPeriodStartEndDates :: starting with periodShortCode = wtd, excludeToday? false.
2025-01-06 09:56:39 | DEBUG | getPeriodStartEndDates :: wtd: currentWeekNum: 2, theYear: 2025, todaysISODayOfWeek: 1
2025-01-06 09:56:39 | DEBUG | getPeriodStartEndDates :: -> Mon Jan 06 2025 00:00:00 GMT-0600 (Central Standard Time), Sun Jan 12 2025 23:59:59 GMT-0600 (Central Standard Time), 2025-W02 / day 1, 2025-W02
2025-01-06 09:56:39 | INFO  | gatherOccurrences :: starting with 5 calendar notes (including week/month notes) for '2025-W02' (2025-01-06 - 2025-01-12)
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: GOYesNo = <@health/take_vitamins> type object
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250106.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(3' on date 20250107.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250108.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(1' on date 20250109.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(1' on date 20250109.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250109.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(2' on date 20250112.md
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: Now 1 occObjects
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: 0 sorted combinedHashtags: <>
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: Now 1 occObjects
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: sorted combinedMentions: <@actions/added,average,@actions/added,total,@actions/cancelled,average,@actions/cancelled,total,@actions/completed,average,@actions/completed,total,@actions/planned,average,@actions/planned,total,@health/activity_exercise,average,@health/activity_exercise,total,@health/activity_movement,average,@health/activity_movement,total,@health/activity_stand,average,@health/activity_stand,total,@health/blood_oxygen,average,@health/drink_water,average,@health/drink_water,total,@health/evening_energy,average,@health/evening_mood,average,@health/evening_pain,average,@health/heart_rate,average,@health/morning_energy,average,@health/morning_mood,average,@health/morning_pain,average,@health/respiratory_rate,average,@health/slept,average,@health/slept,total,@health/wrist_temperature,average>
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: Now 29 occObjects
2025-01-06 09:56:39 | DEBUG | gatherOccurrences :: Finished with 29 occObjects
2025-01-06 09:56:39 | DEBUG | generateProgressUpdate :: starting for 2025-W02 (2025-01-06 - 2025-01-12) with 29 occObjs and sparklines? true
2025-01-06 09:56:39 | DEBUG | makeProgressUpdate :: - created progress update in 256ms
2025-01-06 09:56:39 | DEBUG | makeProgressUpdate :: - about to update section 'Metrics' in weekly note '2025-W02.md' for day 1, 2025-W02
2025-01-06 09:56:39 | DEBUG | note / replaceSection :: Starting for note '2025-W02'. Will remove 'Metrics' -> 'Metrics [🔄 Refresh](noteplan://x-callback-url/runPlugin?pluginID=jgclark.Summaries&command=progressUpdate&arg0=%7B%22excludeToday%22%3Afalse%2C%22progressHeading%22%3A%22Metrics%22%2C%22showSparklines%22%3Atrue%2C%22period%22%3A%22wtd%22%7D)' level 2
2025-01-06 09:56:39 | DEBUG | note / removeSection :: Trying to remove 'Metrics' from note '2025-W02' with 88 paras
2025-01-06 09:56:39 | DEBUG | note / removeSection ::   - headingIndex 10 level 2 endOfActive 87
2025-01-06 09:56:39 | DEBUG | note / removeSection :: -> removed section 'Metrics': total  30 paragraphs. Returning line 10
2025-01-06 09:56:39 | DEBUG | note / replaceSection :: - before insertHeading() call there are 58 paras
2025-01-06 09:56:39 | DEBUG | note / replaceSection :: - after insertHeading() call there are 59 paras
2025-01-06 09:56:39 | DEBUG | note / replaceSection :: - after insertParagraph() call there are 88 paras
2025-01-06 09:56:39 | INFO  | makeProgressUpdate :: Updated section 'Metrics' in weekly note '2025-W02.md' for day 1, 2025-W02
Executing function 'progressUpdate'
2025-01-06 09:57:16 | DEBUG | jgclark.Summaries v0.22.1 :: progressUpdate (from template or callback): Starting with params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (type: string) and source ''
2025-01-06 09:57:16 | DEBUG | jgclark.Summaries v0.22.1 :: - source determined to be 'callback'
2025-01-06 09:57:16 | DEBUG | jgclark.Summaries v0.22.1 :: makeProgressUpdate: Starting with params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (type: string) from source 'callback'
2025-01-06 09:57:16 | DEBUG | - config after overriding with params-as-JSON-string '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' (from callback) :: {
  "progressHeading": "Metrics",
  "periodStatsYesNo": [
    "@health/take_vitamins"
  ],
  "progressPeriod": "wtd",
  "weeklyStatsDuration": 26,
  "statsHeading": "Period Stats",
  "periodStatsMentions": [],
  "showAsHashtagOrMention": true,
  "periodStatsMentionsTotal": [
    "@health/drink_water",
    "@health/slept",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand"
  ],
  "periodStatsShowSparklines": true,
  "progressMentionsAverage": [
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "includeHashtags": [],
  "periodStatsMentionsAverage": [
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "folderToStore": "Summaries",
  "showSparklines": true,
  "progressMentionsTotal": [
    "@health/drink_water",
    "@health/slept",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand"
  ],
  "progressHashtagsTotal": [],
  "mentionCountsHeading": "",
  "periodStatsHashtagsTotal": [],
  "progressChecklistReferenceNote": "",
  "foldersToExclude": [
    "Summaries",
    "Saved Searches"
  ],
  "progressHashtagsAverage": [],
  "hashtagCountsHeading": "",
  "progressYesNo": [
    "@health/take_vitamins"
  ],
  "progressHashtags": [],
  "headingLevel": 2,
  "todayProgressHeading": "",
  "excludeToday": false,
  "_logLevel": "DEBUG",
  "progressYesNoChars": "✓·",
  "todayProgressItems": [],
  "progressMentions": [],
  "periodStatsHashtagsAverage": [],
  "weeklyStatsItems": [
    "@health/take_vitamins",
    "@health/drink_water",
    "@health/heart_rate",
    "@health/respiratory_rate",
    "@health/wrist_temperature",
    "@health/blood_oxygen",
    "@health/slept",
    "@health/morning_energy",
    "@health/morning_mood",
    "@health/morning_pain",
    "@actions/planned",
    "@actions/added",
    "@actions/completed",
    "@actions/cancelled",
    "@health/activity_movement",
    "@health/activity_exercise",
    "@health/activity_stand",
    "@health/evening_energy",
    "@health/evening_mood",
    "@health/evening_pain"
  ],
  "progressDestination": "weekly",
  "weeklyStatsIncludeCurrentWeek": false,
  "period": "wtd"
}
2025-01-06 09:57:16 | DEBUG | makeProgressUpdate :: Starting for period 'wtd' with title 'Metrics' / params '{"excludeToday":false,"progressHeading":"Metrics","showSparklines":true,"period":"wtd"}' / source 'callback'
2025-01-06 09:57:16 | DEBUG | getPeriodStartEndDates :: starting with periodShortCode = wtd, excludeToday? false.
2025-01-06 09:57:16 | DEBUG | getPeriodStartEndDates :: wtd: currentWeekNum: 2, theYear: 2025, todaysISODayOfWeek: 1
2025-01-06 09:57:16 | DEBUG | getPeriodStartEndDates :: -> Mon Jan 06 2025 00:00:00 GMT-0600 (Central Standard Time), Sun Jan 12 2025 23:59:59 GMT-0600 (Central Standard Time), 2025-W02 / day 1, 2025-W02
2025-01-06 09:57:16 | INFO  | gatherOccurrences :: starting with 5 calendar notes (including week/month notes) for '2025-W02' (2025-01-06 - 2025-01-12)
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: GOYesNo = <@health/take_vitamins> type object
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250106.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(3' on date 20250107.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250108.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(1' on date 20250109.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(1' on date 20250109.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Found matching occurrence @health/take_vitamins on date 20250109.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: - Skipping ill-formed mention '@repeat(2' on date 20250112.md
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: Now 1 occObjects
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: 0 sorted combinedHashtags: <>
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: Now 1 occObjects
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: sorted combinedMentions: <@actions/added,average,@actions/added,total,@actions/cancelled,average,@actions/cancelled,total,@actions/completed,average,@actions/completed,total,@actions/planned,average,@actions/planned,total,@health/activity_exercise,average,@health/activity_exercise,total,@health/activity_movement,average,@health/activity_movement,total,@health/activity_stand,average,@health/activity_stand,total,@health/blood_oxygen,average,@health/drink_water,average,@health/drink_water,total,@health/evening_energy,average,@health/evening_mood,average,@health/evening_pain,average,@health/heart_rate,average,@health/morning_energy,average,@health/morning_mood,average,@health/morning_pain,average,@health/respiratory_rate,average,@health/slept,average,@health/slept,total,@health/wrist_temperature,average>
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: Now 29 occObjects
2025-01-06 09:57:16 | DEBUG | gatherOccurrences :: Finished with 29 occObjects
2025-01-06 09:57:16 | DEBUG | generateProgressUpdate :: starting for 2025-W02 (2025-01-06 - 2025-01-12) with 29 occObjs and sparklines? true
2025-01-06 09:57:16 | DEBUG | makeProgressUpdate :: - created progress update in 254ms
2025-01-06 09:57:16 | DEBUG | makeProgressUpdate :: - about to update section 'Metrics' in weekly note '2025-W02.md' for day 1, 2025-W02
2025-01-06 09:57:16 | DEBUG | note / replaceSection :: Starting for note '2025-W02'. Will remove 'Metrics' -> 'Metrics [🔄 Refresh](noteplan://x-callback-url/runPlugin?pluginID=jgclark.Summaries&command=progressUpdate&arg0=%7B%22excludeToday%22%3Afalse%2C%22progressHeading%22%3A%22Metrics%22%2C%22showSparklines%22%3Atrue%2C%22period%22%3A%22wtd%22%7D)' level 2
2025-01-06 09:57:16 | DEBUG | note / removeSection :: Trying to remove 'Metrics' from note '2025-W02' with 88 paras
2025-01-06 09:57:16 | DEBUG | note / removeSection ::   - headingIndex 10 level 2 endOfActive 87
2025-01-06 09:57:16 | DEBUG | note / removeSection :: -> removed section 'Metrics': total  30 paragraphs. Returning line 10
2025-01-06 09:57:16 | DEBUG | note / replaceSection :: - before insertHeading() call there are 58 paras
2025-01-06 09:57:16 | DEBUG | note / replaceSection :: - after insertHeading() call there are 59 paras
2025-01-06 09:57:16 | DEBUG | note / replaceSection :: - after insertParagraph() call there are 88 paras
2025-01-06 09:57:16 | INFO  | makeProgressUpdate :: Updated section 'Metrics' in weekly note '2025-W02.md' for day 1, 2025-W02

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the progressUpdate command and its handling of the periodStatsMentionsTotal and periodStatsMentionsAverage settings. Use the provided Plugin Console configuration to reproduce the weekly output, then compare it with the count, total, and average format shown in the README. Done means one @mention produces the expected combined output without repeated mentions.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.