cdhorn / CardView

A Gramps browseable object view
GNU General Public License v2.0
23 stars 5 forks source link

CardView: Dashboard suggestions? #196

Closed cdhorn closed 1 year ago

cdhorn commented 2 years ago

I would like suggestions for what people think a "dashboard" card view page should provide.

I ask because it seems like there would be a lot of overlap with existing gramplets.

fxtmtrsine commented 2 years ago

I love that you made the Dashboard Card show Stat's on the current family tree 🥇 2022-06-14 16_15_42-Example family tree - Tag - Gramps

(separate issue with collapsed sections moved to https://github.com/cdhorn/CardView/issues/200 )

fxtmtrsine commented 2 years ago

Noticed that Pin copy of current view does not work, maybe a work in progress?

fxtmtrsine commented 2 years ago

As requested some ideas based on more stats that I'd like to see, hopefully others and yourself agree?

gen 1 - Home Persons name gen 2 - Parents 2 of 2 gen 3 - grandparents 3 of 4 gen 4 - great grandparents 5 of 8 etc... Total complete 10 of 14 ( percentage found )

(image from PQYPLZXHGF thanks )

cdhorn commented 2 years ago

Thanks for the suggestions! This view is not done, it's kind of sandbox/work in progress. It is heavy in sense it parses the full tree like the last changed gramplet so is slow to load on a big tree and you don't have the yield trick in play to help the ui. I am looking at / pondering that. The current groups grew out of Doug Blank's stats gramplet.

This probably applies to all Card views but when used on a smaller screen I find myself wishing that each of the other columns adjusted and appeared below the others columns

In the template editor, under layout tab is the layout for each object/page view the card view renders. Append next group controls if next group in the list is appended to bottom of current one or starts a new column as well as which groups to make visible and which not to. You can enable scrolling for the groups as well, or render them in tabbed notebook. I have not added the tab for the dashboard view layout yet but there will be one.

Since you can have multiple templates you can have different layouts, and then ctrl-left click to get template context menu to quickly change the active one.

emyoulation commented 2 years ago

Individual Stats - show the name of the Home Person and Active Person ( not sure it would be useful for the other objects?)

How about a People Filter option on Stats? There are Add-on Rules for Home Person Active Person. And for Degrees of Separation. (If the filter becomes too complex or multi-stage, users can run the filter in the Add/Remove Tag Tool and apply a new Tag the Filter results. Then use a faster "Tag" filter to speed up operation.)

But once applying filters becomes a possibility, perhaps it makes more sense to have a copy of the Stats view mode in the People category. So the Dashboard category Stats does the Whole Tree, the People category respects the Filter Gramplet & Search bar to limit the scope.

For Privacy, finding 'Living' would be helpful.

Haven't downloaded yet, is there an Event Roles stat panel?

cdhorn commented 2 years ago

In the template editor, under layout tab is the layout for each object/page view the card view renders. Append next group controls if next group in the list is appended to bottom of current one or starts a new column as well as which groups to make visible and which not to. You can enable scrolling for the groups as well, or render them in tabbed notebook. I have not added the tab for the dashboard view layout yet but there will be one.

@fxtmtrsine I should have also mentioned in the layout editor you can drag and drop to rearrage the group order as well.

cdhorn commented 2 years ago

How about a People Filter option on Stats?

I'd need to look closer but you can't add a filter gramplet to the Dashboard view because there is no anchoring navigation object type for the dashboard.

The cardviews for the other objects are really for a single object so I don't think filters really can apply to them, at least not with this design. Some sort of stats group may make sense. I really ought to find a way to make the groups into plugins so other devs can contribute stuff if they want like I did with the calculated fields and status indicators.

For Privacy, finding 'Living' would be helpful.

Agree. Note at moment I just provide counts, it's not like Doug's original that pulls up quick view reports for things.

is there an Event Roles stat panel?

Oh yeah, I can add one for event roles, associations and maybe some other stuff as well.

cdhorn commented 2 years ago

@fxtmtrsine pinned copies work, layout editor works for dashboard view now and the apply bug fixed, notes, tags and bookmarks panels added.

cdhorn commented 2 years ago

For Privacy, finding 'Living' would be helpful.

This done too now and I also have count for "living and not marked private"

What I wanted to try to do with this was to try to show counts for things that might give a birds eye view of potential areas in a tree with data quality and documentation issues.

Tags and bookmarks don't really fit that profile, and I'm unsure if groups breaking out role counts really do either. But then anyone can enable/disable what they want so I guess that is okay.

PQYPLZXHGF commented 2 years ago

What I wanted to try to do with this was to try to show counts for things that might give a birds eye view of potential areas in a tree with data quality and documentation issues.

I like it, thank you; made the card view into a real dashboard :)

A few more nice to have things to show optionally:

PQYPLZXHGF commented 2 years ago

Not sure what it's called but stats for the Home Person only that by generation how complete the ancestor tree is eg: gen 1 - Home Persons name

@fxtmtrsine Sounds like you are describing something similar to the little report on the bottom of the Pedigree Gramplet that provides a "Breakdown by Generation"

Pedigree-Gramplet-detached-50

cdhorn commented 2 years ago

@PQYPLZXHGF these are all good suggestions thank you.

I am unsure about spending time on some of them though... see many of these things work well enough as they are so I question is there value in just respinning them to output their data in a card or set of cards in a group to change the presentation?

With the last changed gramplet and the statistics panels I took two Gramplets with great ideas that did not seem fully developed and have tried to expand on them to provide some new way of navigating or looking at the data.

It's trying to find some new ways of looking at things, and soon hopefully new or refined ways of recording things, that I am most interested in.

emyoulation commented 2 years ago

In the future, you might want to experiment with graphing progress of some (or all) of these stats.

download.jpeg

You might want to add a (optional?) logging function to collect datapoints against future need.

It would probably need to store tuples since you will have an evolving set of data elements. Which means that any graph/analytics would need to be tolerant of missing/extra datapoint groupings.

cdhorn commented 2 years ago

In the future, you might want to experiment with graphing progress of some (or all) of these stats.

That is an interesting idea, capturing certain metrics while a tree is being developed for possible analysis. I'm not aware of any other genealogy software doing that.

Question is what makes sense to track and what does not and where do you store the data? Over time it could grow to a sizeable amount, and ideally it belongs in the database and is accounted for as part of the data model.

Value wise not sure how much it delivers in the end though, time is probably better spent on features and things we do not have at all today or that are not fully developed that could be more useful to a wider audience.

emyoulation commented 2 years ago

I would only archive the summary values that your dashboard collected for the session. And only when the Dashboard was activated and collating data anyway. Overwriting a date stamp-based name limits to 1 data point per day.

An entire year of data would probably be smaller than the average media object.

Collect only the data that your current version of the Dashboard displays. If somebody wants to analyze other stuff, they can clone your view and adapt it.

WikiTree does some metric gathering: https://www.wikitree.com/g2g/1428759/wikitree-statistics-june-2022

You might want simply save the datapoints and not worry about the metric analysis. That way, you'll have datapoints if the idea calls to you later. Or you might decide next year that it will never happen & release an update that purge the datapoints & the data gathering routine. The overhead is so negligible that you don't even need include a Configuration option... that visibility would generate unwanted user inquiries.

emyoulation commented 2 years ago

GitHub is doing some weird stuff in the comment function via my Android phone. Instead of a blank new comment, if if inserting old content along with my new comment. The last one had invisibly prefixes a previous message until the message was posted. Had to edit to prune that out.

Sorry.

patsyblefebre commented 2 years ago

Love the addon, really appreciate the effort that has gone into it Thank you 🙌✨🎶

@fxtmtrsine Individual Stats - show the name of the Home Person and Active Person ( not sure it would be useful for the other objects?)

@PQYPLZXHGF Researcher/Database Owner Information

Instead of placing these in the Individual stats section maybe create a "Family Tree Summary/Details" section (at the top of the page like on other cards)

cardview-view-person-highlight top section

that has some of the details from the Family Tree manager

Like the; Family Tree name / Database Type / Researcher info / (and then) show the name of the Home Person and Active Person ?

Hopefully sometime in the future Gramps will allow you to add a summary description to the family tree name entry like the Isotammi XML export allows you to and then it can be added to that section also?

Isotammi-XML-export-Isotammi-51

Feel free to ignore me :) happy with the addon as it already exceeds my expectation 👍

cdhorn commented 2 years ago

Oh of course! Excellent idea with the description!

cdhorn commented 2 years ago

Going forward the database description will be stored in a note with custom type "Database Description"

Should add it to the official note types really, but then I still haven't figured out why my "Proof Argument" note type blows up the tests.

fxtmtrsine commented 2 years ago

Going forward the database description will be stored in a note with custom type "Database Description"

What happens if two or more notes of custom type "Database Description"?

Note my suggestions are just that , glad it helps define what it is becoming.

Thanks for the fixes,

@patsyblefebre Instead of placing these in the Individual stats section maybe create a "Family Tree Summary/Details" section (at the top of the page like on other cards)

I like that, maybe an image or background banner could be shown using a custom media type "Database Logo"?

cdhorn commented 2 years ago

What happens if two or more notes of custom type "Database Description"?

Only the first found will be honored. There are limits to what can be done without changing core code.

cdhorn commented 2 years ago

A couple issues to sort but the header will sort of look like this if any thoughts on anything else I should try to add to it. Screenshot from 2022-06-17 00-13-15 I thought about using the person cards for the home and active people but they consume more space and I think this view should focus more on the database.

daleathan commented 2 years ago

Looks good, nice and simple.

...if any thoughts on anything else ...

Instead of "Database Information" name it "Family Tree Information" or "...Summary" in keeping with the rest of Gramps

Family Trees are what Gramps calls the database structure used to store and organize genealogical data.

cdhorn commented 2 years ago

Thank you! Family Tree Summary it is, fits better with what the view is trying to do.

emyoulation commented 2 years ago

Suggest that you set the MantisBT to monitor Gramps Feature Request 11817. And add a note in its comments that remind you to revisit the CardView Dashboard note when/if that feature is implemented.

There are 2 Note based functionalities requested: 1) define a ReadMe note that is inserted as plain text at the top of Gramps archives (backups). Those ReadMe files describe the archive & possibly has a Report with stats. 2) a Introductory Note. This Note overrides the default content of the Welcome Gramplet. It would allow the research to have a "Guided tour" or preface.

You will have to decide if you could leverage such note for your dashboard. And joining the MantisBT discussion would let you have input on the implementation to avoid double work.

wroldwiedbwe commented 2 years ago

@emyoulation Wouldn't 12546 Enhance Gramps XML to support "Description" field from Isotammi XML export(er) be more simpler & more appropriate seeing that's what @patsyblefebre is referring to above?

emyoulation commented 2 years ago

A note within the XML serves a different purpose. (Although that might be integrated with the Introductory note.)

The ReadMe.txt is outside the not-generally-known .Gramps file extension XML file inside the .gpkg zipped archive.

You don't need an XML file reader to parse it. You don't need to search through multiple megabytes looking for the Note chunk... nor drill down to find a Note of a specific type... nor decipher the markup within that note.

The ReadMe is at the top level of the archive along with 1 .Gramps file & a Media folder.

If you've explored the .gpkg files, you'll have found that they are recursively compressed too! The .gramps file withing the .gpkg is ZIP compressed and has to be expanded before it can be read into an XML reader. And since the file inside the compressed .gramps file is an uncompressed .gramps file with AN IDENTICAL NAME, it adds a layer of file management nightmare.

One last point, .gpkg files are not a file type that will be accepted as an attachment by most eMail spam filters or as an uploadable filetype. If Gramps allowed us to import a ZIP archive (after verifying it confirmed to what we currently expect in a .gpkg or a compressed .gramps file, we could just change the filetype & upload. The person importing would not be able to double-click to launch Gramps & automatically sub-launch the import. But they'd be able to use the import from within Gramps.

Basically, this whole section of Gramps needs streamlining because of all of the excessive complexity which adds no value.

PQYPLZXHGF commented 2 years ago

Going forward the database description will be stored in a note with custom type "Database Description"

Thanks for the hint, I knew you mentioned it I don't expect users will want to search to hard to find out how; so maybe hard-code a default message that only shows if the custom note type does not exist that states:

To show a Family tree description here add a note with a custom type of "Database Description"

PQYPLZXHGF commented 2 years ago

The default size of Gramps when started initially looks like this:

2022-06-18 11_18_41-Example Gramps Family tree - Tag - Gramps

A little difficult to read, can the description and owner text flow under the first block of text?

cdhorn commented 2 years ago

so maybe hard-code a default message that only shows if the custom note type does not exist that states

Oh if there is no note and you right click for the context menu it will open the note editor with a new note of custom type "Database Description" which I suppose has the constraint that it needs to be in English. I could probably put something in the [] though telling the user to do that.

emyoulation commented 2 years ago

I don't know what policy is for the sidebar & bottombar in the dashboard view. They are entirely disabled for the default Dashboard view mode.

Maybe they should be disabled for the Dashboard CardView mode too?

PQYPLZXHGF commented 2 years ago

Oh if there is no note and you right click for the context menu it will open the note editor with a new note of custom type "Database Description"

Lol some indication would be appreciated , I didn't consider/find the hidden context menu as I don't see a context menu anywhere else on the dashboard card view,

Maybe a big yellow (lol) button that shows the words "Add Description" 😁

My new favorite words are "Mystery meat navigation"!

cdhorn commented 2 years ago

can the description and owner text flow under the first block of text?

That would leave a vast tundra of empty real estate on my smaller monitor.

Maybe they should be disabled for the Dashboard CardView mode too?

Yes, I agree it would be best. I need to look at the default dashboard and see how to go about that.

cdhorn commented 2 years ago

I didn't consider/find the hidden context menu as I don't see a context menu anywhere else on the dashboard card view,

The ctrl-right and ctrl-left click contexts are active, but yeah didn't have any ideas for the normal one yet.

PQYPLZXHGF commented 2 years ago

That would leave a vast tundra of empty real estate on my smaller monitor.

sidebar & bottombar in the dashboard view. They are entirely disabled for the default Dashboard view mode.

Disabled sidebar & bottombars would work better 👍 or maybe a line seperator "|" or color difference for each block of text in the family tree summary section or both? The Dashboard card is the least colorful out of the cardviews.

The ctrl-right and ctrl-left click contexts are active, but yeah didn't have any ideas for the normal one yet.

Reading the other comment I see at least one suggestions have been given

cdhorn commented 2 years ago

Going forward the database description will be stored in a note with custom type "Database Description"

I have changed this custom note type to "Tree Description" as that seems more apt if someday we have multiple trees in a database.

is there an Event Roles stat panel?

Second iteration done, some new panels introduced and many different roles and type counts now exposed as well.

cdhorn commented 2 years ago

And yes for those who notice, some of the % calcs are not really all that accurate, that will get sorted out soon.

cdhorn commented 2 years ago

Percentage calculations should all be accurate now.

daleathan commented 2 years ago

@cdhorn If you have time, you might be interested in reading Ben Crowder's idea of using sparklines to show information overviews? Do you think something like this would be suitable for any of the Card views?

Genealogy sparklines Monday, August 14, 2006 https://bencrowder.net/blog/2006/genealogy-sparklines/

Sparkline pedigree chart Wednesday, July 23, 2014 https://bencrowder.net/blog/2014/sparkline-pedigree-chart/

Lately I’ve been playing around with implementing genealogy sparklines on the web. Friday, August 20, 2021 https://bencrowder.net/blog/2021/1259/

Family sparklines (Monday, June 20, 2022) https://bencrowder.net/blog/2022/family-sparklines/

Found recently via a Gramps feature request

cdhorn commented 2 years ago

@daleathan thanks for heads up on that, always good to see new ideas. I don't have time to consider it at the present moment but will keep it in mind, and of course would accept a PR if someone else has time to do so.

cdhorn commented 1 year ago

The last changed gramplet has been converted into a dashboard view to complement the statistics one. Closing this as I think having these two suffices for now.

At some point in the future it might make sense to add a third that would sort of combine the This Day in Family History, Birthdays, and Records Gramplets into a common dashboard view as well. The idea being the statistics service would extract the data for that as well so they're not all largely iterating over the same data set separately.

PQYPLZXHGF commented 1 year ago

The last changed gramplet has been converted into a dashboard view to complement the statistics one.

I like that it is a view, the only things I'll note are:

Maybe consider including both the gramplet version and the dashboard view?

2022-09-04 15_26_57-Example gramps - Changes - Gramps