Hi,
I have added Calendar Chart as a Trend Chart but even before that there was already a “Calendar menu?” on the Activity but it has no effect.
What’s that for?
Thank you,
--
_______________________________________________
Golden-Cheetah-Users mailing list
golden-che...@googlegroups.com
http://groups.google.com/group/golden-cheetah-users?hl=en
---
You received this message because you are subscribed to the Google Groups "golden-cheetah-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golden-cheetah-u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golden-cheetah-users/32a54243-f590-4df4-a569-4b39a6513853n%40googlegroups.com.
Hi,
I have added Calendar Chart as a Trend Chart but even before that there was already a “Calendar menu?” on the Activity but it has no effect.
What’s that for?
I just added Trends Calendar and there might be a problem with it. Btw, nothing critical, just a bit weird behavior.
Example: I select current month (May), with navigation button at the top. Then i open some other tab (overview for example). Then when i click back on Calendar tab, it shows April. It should be showing current month by default, or am i wrong?
I tried it few times. Every time it switches to April. I have plenty of workouts in May, so i don't know why is switching to April. Even if it would work in a way to show month with latest workout.
https://github.com/GoldenCheetah/GoldenCheetah/wiki/UG_ChartTypes_Trends#calendar
On Wednesday, 14 May 2025 at 05:27:23 UTC+2 ZajtiM wrote:I just added Trends Calendar and there might be a problem with it. Btw, nothing critical, just a bit weird behavior.
Example: I select current month (May), with navigation button at the top. Then i open some other tab (overview for example). Then when i click back on Calendar tab, it shows April. It should be showing current month by default, or am i wrong?
I tried it few times. Every time it switches to April. I have plenty of workouts in May, so i don't know why is switching to April. Even if it would work in a way to show month with latest workout.
https://github.com/GoldenCheetah/GoldenCheetah/wiki/UG_ChartTypes_Trends#calendarI noticed that you don't even have to switch tabs. I select May and if i click on Calendar tab (which is already displayed) it switches to April.
The likely reason is you have an April activity selected on Activities view, that activity should appear with a different color on the calendar and when you go back to Calendar the month with the selected activity will be displayed, no matter what month you navigate before if you didn't select an activity on that month.
This behavior is kind of weird and it doesn't play nice with the new navigation model (back & forward) either, but the reality is Calendar was deprecated in v3.6 since it would be replaced for a more modern/nice/functional one in https://github.com/GoldenCheetah/GoldenCheetah/issues/3329 and I just rescued it from oblivion for lack of a better replacement.I think this should be the priority for any new development, even without the other more ambitious planning features a new calendar view is something I would like we have.Ale.
On Wednesday, 14 May 2025 at 16:27:43 UTC+2 Ale Martinez wrote:The likely reason is you have an April activity selected on Activities view, that activity should appear with a different color on the calendar and when you go back to Calendar the month with the selected activity will be displayed, no matter what month you navigate before if you didn't select an activity on that month.Hi Ale. Yep, that was it. Didn't even noticed it.
This behavior is kind of weird and it doesn't play nice with the new navigation model (back & forward) either, but the reality is Calendar was deprecated in v3.6 since it would be replaced for a more modern/nice/functional one in https://github.com/GoldenCheetah/GoldenCheetah/issues/3329 and I just rescued it from oblivion for lack of a better replacement.I think this should be the priority for any new development, even without the other more ambitious planning features a new calendar view is something I would like we have.Ale.Is it any specific calendar / planner you like (and other devs / users)?
I always had Polar products, so i always used only Polar. I do have Strava account, but i don't use calendar at all.Here is how Polar Flow calendar looks like and how it "connects" between month->week->day.Monthly view. If you click on last square (in red frame) it opens Weekly view. Add button (in yellow frame) shows option to either add "Training target" or "Training result" (manually). But as you can see there is also Add button in each Day. You could open Daily view if you click on day at the same level where number of the day is displayed.Weekly view. Same as in monthly view, if you click on square (in red frame) it opens Daily view.Daily view. Today i did Orthostatic test at 4:23am, but calendar "starts" at 8:00am.And this is Training (or Activity) Summary. It is always displayed underneath each calendar view. In this case shows current week Training Summary. So it depends on what you are looking. For Monthly view it will obviously show Monthly Training Summary and for Daily view Daily SummaryThis is just to show some options / ideas how calendar / planner could look like. I posted this, to maybe get the ball rolling. I like Polar Flow mainly because it is fairly simple and you get enough basic info / data in calendar itself. I never used Garmin connect or any other calendar planner.
WRT planned activities there is a partially implemented feature (https://github.com/search?q=repo%3AGoldenCheetah%2FGoldenCheetah+%22planned%22&type=code) intended to represent planned activities as segregated regular activities, it is incomplete and it will likely require to generalize the format but it has the advantage of filters and metrics working mostly unchanged.
I agree initially it could be a Trends chart, until we have other planning features to move it to the Plan view, For reference I reopened an Issue with some related ideas (https://github.com/GoldenCheetah/GoldenCheetah/issues/2084) and linked there Mark's blog with his view of the planning process and coaches interviews summary.
WRT planned activities there is a partially implemented feature (https://github.com/search?q=repo%3AGoldenCheetah%2FGoldenCheetah+%22planned%22&type=code) intended to represent planned activities as segregated regular activities, it is incomplete and it will likely require to generalize the format but it has the advantage of filters and metrics working mostly unchanged.
After calculating the expected load same as actual and planned, the graphs look good to me (see screenshots below). For today's stress I have made the following assumption: If there is an actual activity with stress, this stress is used otherwise the planned stress which might also be 0. Reasoning is that I don't want to use both planned and actual stress on the same day as it would pollute the prediction.The original implementation uses 0 for all load values before today, mine currently the same as the actual load. I would prefer my version but am open to the zeroed variant.Additionally I did some code deduplication for the calculation. The PR is https://github.com/GoldenCheetah/GoldenCheetah/pull/4651
I am aware that this thread is about a future calendar, but consider this as a precondition. Before starting the actual calendar implementation, I would like to take the following steps:
- Highlight planned activities in the activities list (I expect this to help me a lot when creating and deleting activities during development)
- Rework the dialog to manually create activities (planned and actual, see Activity > Manual Entry...)
- Simplify the current dialog
- Allow planned activities (when date is in the future)
- Allow to plan Train-workouts (this might include format changes to the activity-files)
El viernes, 30 de mayo de 2025 a la(s) 8:26:26 a.m. UTC-3, tiefgara...@gmail.com escribió:After calculating the expected load same as actual and planned, the graphs look good to me (see screenshots below). For today's stress I have made the following assumption: If there is an actual activity with stress, this stress is used otherwise the planned stress which might also be 0. Reasoning is that I don't want to use both planned and actual stress on the same day as it would pollute the prediction.The original implementation uses 0 for all load values before today, mine currently the same as the actual load. I would prefer my version but am open to the zeroed variant.Additionally I did some code deduplication for the calculation. The PR is https://github.com/GoldenCheetah/GoldenCheetah/pull/4651I agree with the choices, the PR is merged, thank you!
I am aware that this thread is about a future calendar, but consider this as a precondition. Before starting the actual calendar implementation, I would like to take the following steps:
- Highlight planned activities in the activities list (I expect this to help me a lot when creating and deleting activities during development)
I don't remember if we have a planned filter, but we need one. Anyway, I think displaying planned activities in Activities view by default could be confusing, an alternative at least for the moment could be to keep Activities view for realized activities and to re-enable the inactive Diary view with the full activity list including planned, so we can play with the new functionality minimizing the impact on what is currently in use.
- Rework the dialog to manually create activities (planned and actual, see Activity > Manual Entry...)
- Simplify the current dialog
- Allow planned activities (when date is in the future)
- Allow to plan Train-workouts (this might include format changes to the activity-files)
Agree.
Since I use Golden Cheetah only for cycling, it took some time understanding the details of the "Manual Entry..."-dialog. I would like to make it easier understandable by transforming it into a wizard-style dialog (2 steps) and show only the input fields applicable to the current sport. Details are in the attached sheet.Feedback is welcome, as soon as we come to an agreement I will start with the implementation.
See https://github.com/GoldenCheetah/GoldenCheetah/pull/4656 for my initial implementation. Testing is needed, especially on the estimations and imperial vs metric units. For the UI I am open to improvements, especially some explanatory texts and icons are missing. If anybody is aware of a good and free icon font (bike, run, multisports, ...), please let me know. This would also help designing the calendar.
Thank you, Joachim, it looks very nice!
Hi Joachim, I agre with all the above.
WRT existing Objective field likely it was introduced to store Goal when importing WKO+ files IIRC, afterwards it was also used to import the name when downloading activities from SportTracks and other sources. I think it is a good idea to use it for the goal of the planned activity (may be initialized to the name of the linked workout?) and it could be part of manual activities too, Notes can be used for details/instructions/recommendations, etc.
My assumption on Notes and Objective is that Notes are retrospective, Objective prospective instructions. Technically it would be no issue to add Objective to completed activities but personally I would stick to Notes only.
Existing Objective field is used mostly as a short indication of the goal -or primary benefit- of the activity, and Notes for details, at least is my interpretation and the way they are filled from different downloaders. I think that could be carried to planned activities too since they are mutually exclusive, but its your call since you are implementing this.
On 7/8/25 15:18, Ale Martinez wrote:
> Thank you, Joachim, I triggered a snapshot updated to see if that way we
> have some users feedback.
I did some quick testing and couldn't find anything buggy.
What I've noticed though:
* the planned workout wasn't reflected in the PMC chart (PMC Coggan)
* I use a custom metric as a score and custom metrics aren't calculated
for future workouts
{
relevant { Data contains "P" || Data contains "H"; }
value { BikeStress ?: TRIMP_Zonal_Points; }
}
Great work Joachim! I really like how it looks.
Nice!The key will be how uploading an activity is merged into the planned activity- i.e. if you plan a workout for Sunday and then perform it, the result should be a single activity that has the target and actuals in the same activity.So need to:* match completed activity that are added (download/import etc) to the planned activity* have some way of letting the user decide if that is right (e.g. 2 a day, change of plans)* new metrics to track compliance to plan (incl. planned activities that never got performed)Not saying its needed from the first commit- but need to think it thru before you start - the first 2 are non-trivial from a UX perspective
Linking activities introduces a different set of challenges- how to override/change that and then supporting delete and rename (change date time).But honestly, getting a calendar and planned activities up and running is way more exciting and should be the priority.
I don't have a massively strong opinion on either approach
I created a GitHub issue about the planned property and we can continue there.
For all who want to have a look at my prototype, you can find it now on github: https://github.com/thejockl/calendarAs soon as I we agree, I would start with the integration.
Thanks for the feedback, Ale and Mitja! I would probably start the integration as a new chart for trends, but as a target I see it more as part of the plan-view. But as this view will be completely new, this needs discussion. Therefore my plan is starting small.
For the multi-day-phases, this would be a major change as I decided to take the easy path and use a QTableWidget for the calendar. Combining colspans with per-day-activities is probably not easy to achieve.
Semi-off-topic: I used the new "Plan activity"-wizard today in real life and added 10 workouts. It felt horrible to always select the new date. Therefore I would like to add a kind of quick-train-mode-plan-feature to the calendar (yes, at a later point in time) that allows drag & drop from a workout-list to the calendar.As a quick workaround a small change also could help (plan only): Preselect the last planned activities date +1 day or today if none exists? That would have made it much quicker to use.
Not sure if i missed this anywhere in your posts. But ERG activities use Torch icon by default, unless you manually change sport to Bike. Since it is GC - ERG activity might be good to have bike icon (if possible). Didn't look at the code, so i'm not sure if there is a way to "detect" ERG activities in Planned Calendar.
I really like how calendar looks like. I use dark theme in GC and everything looks great. Planned text might look a bit thin, but it is visible.Here is one idea for text / row for planned activities. Text could be normal (not thin), and then use orange background for whole row only for planned activities. That might also make it even more transparent which are planned and which are completed. Some users might also have orange color which is used for planned activities (or similar) in their Data Fileds -> Colour Keywords. So they would be "forced" to change it to something else, just to distinguish the planned from the completed.
Not sure if i missed this anywhere in your posts. But ERG activities use Torch icon by default, unless you manually change sport to Bike. Since it is GC - ERG activity might be good to have bike icon (if possible). Didn't look at the code, so i'm not sure if there is a way to "detect" ERG activities in Planned Calendar.
Fully agree on the thin text, but consider a full orange row as too massive. I will play with this, my current idea is using the cell color with an orange border around the icon.
Can you please test again? The latest commit contains Ales suggestion.
Other topics I'd like to discuss are where to configure some settings:
- The first day of week is currently hardcoded to monday but should be configurable (sunday or monday)
- Chart settings
- Athlete settings
- Use system settings (QLocale::firstDayOfWeek()) without configuration in Golden Cheetah
- Global options (General / Localization) with QLocale::firstDayOfWeek as default (<- my favorite)
- Where and how to configure the entries shown fields (must be extended later by what to show in the summary)
- Chart settings
- New tab Calendar in global options under Data Fields
- New column Calendar in tab Fields under Data Fields
For 2. I am unsure as the Fields-table is the obvious choice but already quite wide and complex and we will need one more column for the weekly summary.
After work i changed all material SVG icons to light color. Here is link with all icons in .zip, to save you some time. In case you will implement planned activities with border around icons, instead of full /filled background.
https://temp.sh/UvqFD/material_light.zip
Please don't make this effort! I created methods in C++ (see Colors.h: svgAsColoredPixmap(const QString &file, const QSize &size, int margin, const QColor &color) and svgOnBackground(const QString& file, const QSize &size, int margin, const QColor &bg, int radius = 10)) that do the recoloring automatically. As soon as the background becomes dark enough, the icon turns white:
Where I could need some help though is the event-icons. Currently I use the podium-icons: Undefined Prio and Prio A use the fully filled podium with three stars, Prio B podium-gold, Prio C silver, Prio D & E bronze. Maybe you have a better idea what could be used, maybe a fully empty podium without stars for E - or something completely different. I use the material symbols taken from https://github.com/Templarian/MaterialDesign-SVG The letter-icons (A-E) were unreadable at this small size
Other topics I'd like to discuss are where to configure some settings:
- The first day of week is currently hardcoded to monday but should be configurable (sunday or monday)
- Chart settings
- Athlete settings
- Use system settings (QLocale::firstDayOfWeek()) without configuration in Golden Cheetah
- Global options (General / Localization) with QLocale::firstDayOfWeek as default (<- my favorite)
- Where and how to configure the entries shown fields (must be extended later by what to show in the summary)
- Chart settings
- New tab Calendar in global options under Data Fields
- New column Calendar in tab Fields under Data Fields
For 2. I am unsure as the Fields-table is the obvious choice but already quite wide and complex and we will need one more column for the weekly summary.
Not sure if i missed this anywhere in your posts. But ERG activities use Torch icon by default, unless you manually change sport to Bike. Since it is GC - ERG activity might be good to have bike icon (if possible). Didn't look at the code, so i'm not sure if there is a way to "detect" ERG activities in Planned Calendar.Can you please test again? The latest commit contains Ales suggestion.
I have one question regarding other sports icons. I do some jump rope workouts as well. Is there a plan for more sports (with icons) as well? I know you have a lot of work with current development, so i'm not expecting you to add every sport right now. Only asking if there are any plans or possibility in future.
Btw, i checked if Git repo with material icons contains jump rope icon. Contains jump-rope.svg, but i don't like it. I can create new one. I can also create / modify some others if needed.
Sounds very useful to me and yes, team repetition :) My first thought is to add something like "repeat plan from daterange / season / phase here", to the context-menu. I don't like multi drag-drop too much as you never know upfront what you really do and what is really selected. But let me think a little bit more on this.
What I am currently working on is the summary. It basically works but some unexpected effects drive me mad:I added a call to gather the weekly summaries to PlannedCalendarWindow::updateActivities that basically only iterates over some metrics-symbols and the weeks activities to aggregate the values. As soon as I activate this additional call, the RideNavigator shows (after a restart of Golden Cheetah) activities only in one line, because in NavigatorCellDelegate::sizeHint their QModelIndex is mapped to an invalid one. I suppose this is a timing issue but not sure yet.As of now I am hesitant pushing my changes since I don't know if this damages any persisted data. If you have an idea what could be the root causet - that would be super helpful.
The issue seems to be related to my data. It also happens when running with master - and without need to visit the calendar. Will nevertheless investigate further before pushing my latest changes
BTW, I think it is temporary but anyway, beware #warning is not available on MSVC.
Created one more PR (https://github.com/GoldenCheetah/GoldenCheetah/pull/4686) to jump from AnalysisSidebar to the planned workout:If a workout was assigned to the planned activity, the filter is updated to select the workout by filename, otherwise a filter is created from some of the added values (duration, distance, bikescore, bikestress, ...)As soon as this PR is merged, I will add the same menu entry to the calendar (didn't want to add the base functionality to the existing PR)
El domingo, 17 de agosto de 2025 a la(s) 9:46:45 a.m. UTC-3, tiefgara...@gmail.com escribió:Created one more PR (https://github.com/GoldenCheetah/GoldenCheetah/pull/4686) to jump from AnalysisSidebar to the planned workout:If a workout was assigned to the planned activity, the filter is updated to select the workout by filename, otherwise a filter is created from some of the added values (duration, distance, bikescore, bikestress, ...)As soon as this PR is merged, I will add the same menu entry to the calendar (didn't want to add the base functionality to the existing PR)Thank you, Joachim, I will merge once it pass CI checks so you can continue, afterwards we need to check how these navigations fit with the back&forth navigation model.
PS: navigation seems to ok after merge in my preliminary test.
Once you feel the calendar is ready I have the intention to merge it, replace the old calendar and generate snapshots or perhaps the 1st dev build to see if we have some more feedback than here which seems to be limited to a couple of us building from source.Cheers, Ale.
I'd just like to say the new monthly calendar is a great addition to GC, thank you Joachim.Whilst using it, I started thinking why is this chart within trends, as Trends is about multiple past activities and timeframes, whilst Activities contains information relating to a selected activity, the new chart provides a different view spanning both the past & future activities, and I expect it will get a lot of use.
Therefore maybe the new monthly chart could be in a separate planning view (there is a disabled "plan" sidebar button), with the monthly calendar as the default chart, further planning related charts could be added in the future. This would raise its profile and make it quickly accessible, maybe this was always the idea ?
Hi Ale,Thank you for the history. its very helpful, I did wonder why VIEW_DIARY existed.To provide an initial basis for the planning view, I can create the following PR if you wish:
- Enable plan button and use it to select the "DiaryView"
- Re-branded to VIEW_DIARY to VIEW_PLANNING, and update the diary view files and class names to planning
- Rename the diary-perspectives.xml to planning-perspectives.xml
- Add the new planning chart to the view
ok, I'll create a PR with the additions & testing you suggested.
Hi Ale,Almost complete with the diary to planning change, view Navigation works, I just want to give it some more testing, should be finished later today.
Just out of interest, what is the functionality enabled by GC_HAVE_ICAL, it seems to be Google calendar related and was associated with the Diary Window, is it still relevant ?
Also to prevent conflict between my other PR (https://github.com/GoldenCheetah/GoldenCheetah/pull/4688) and the new planning one, would you consider merging 4688?