Experimental Person Profile View (CardView) Plugin

so as an option; they are displayed as they are in person citations tab and it’s perfect for me

1 Like

Ah glad it is working for you.

  1. Yes probably.
  2. Yes, and I see PLegoux reply and could make that optional.
  3. Yes if it is undated I could special case that at some point. It would make sense to do for burials/cremations.
  4. Right now I use the internal Gramps calculated sortval for the timeline sorting because it is simple to do. For undated events I try to figure out a nearby sortval and back off from that to try to preserve the location of the undated event in the overall list at least with respect to the events for the immediate person.
  5. I’ll have to figure out how to do that.
  6. You think additional help is needed to futher explain the options? Reset to default at some point agree would be useful.

Just pushed a commit that added attributes as an option to action menu.

2 Likes

Humm. Age computation in events don’t like calculated between/and dates as birthdate:

If I switched to the person with the red date:

198242: ERROR: person_profile.py: line 758: 'NoneType' object has no attribute 'date'
Traceback (most recent call last):
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\person_profile.py", line 753, in change_person
    return self._change_person(obj)
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\person_profile.py", line 802, in _change_person
    config=self._config,
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_groups.py", line 77, in get_parent_profiles
    relation=person,
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_couple.py", line 135, in __init__
    profile = self._get_profile(partner2)
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_couple.py", line 153, in _get_profile
    family_backlink=self.family.handle
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_person.py", line 157, in __init__
    self.living = self._load_base_facts(key_events)
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_person.py", line 220, in _load_base_facts
    show_age=self.option(self.context, "show-age"),
  File "C:\Users\1\AppData\Roaming\gramps\gramps51\plugins\profileview-master\frame_base.py", line 298, in add_event
    span = Span(reference.date, event.date)
AttributeError: 'NoneType' object has no attribute 'date'

Ah hadn’t thought of that, that’s the internal Gtk CSS parser barking. I’ll look at escaping that out.

I’m unsure on first comment, did you mean people are not rendering who should be?

Additional Help? It’s always welcome. But you don’t have to write it. Just point the Help button at a URL like:
https://gramps-project.org/wiki/index.php/Addon:Person_Profile

We can add the destination webpage at any time. And it’s also where we anchor the thumbnail image in the Add-ons list.

Although I’m not sure how you’d add a help button. They are built into the .gpr.py structure for Gramplets … but not for view modes. The only View modes that have a Help are the 2 Life Line chart view mode add-ons. And those have a completely different button which is placed within the view rather than in the Configure dialog.

1 Like

Thanks, added some validation before calling Span to calculate an age.

2 Likes

I think the & is handled better now…

2 Likes

Added the citation sorting as an option and defaulted to off.

2 Likes

Eh I’ll look at it at some point I guess.

Added add new tag, organize tags and copy to clipboard so those available now.

1 Like

You’re quick! Thanks for those features!

I’ve noticed a couple oddities in the color selection.

The current color isn’t passed through to the custom color picker. It always goes to #BF4040

And a color change doesn’t seem to be applied until a checkbox selection is changed. (I was changing the BG for Active Person color) The other changes are applied immediately.

Just checking, but border color selection & border width isn’t implemented yet, right? (Verifying that it isn’t a Windoze thing again.)

2 Likes

Oh. I didn’t mean to put you to that much work with the Add Tags… & Organize Tags… menu items. It must’ve been a real pain to add them to the view mode subpanel contextual menus.

Adding them to the main application Edit menu instead would’ve freed 2 more spots for Tags on the context menus before scrolling. (I keep my Tags to 8 or less. But some users have dozens.)

1 Like

Was not much work once I found the code Nick wrote for it. Added a todo so if >10 tags say it will break the + and - into submenus. Might help a little for users with a lot of them.

Yes the color stuff needs a bit more work, I only did enough to get a feel for how it could fit in.

Added support to add and launch urls for those objects that support it.

If you and others think of more things that would be useful to have let me know. I have an open list of about a dozen at the moment.

4 Likes

Just a question as you have some experience, how hard is it to add something to right click menu (aka add family member to a person when right clicking on a person in pedigree view for example) for someone that havent used Python before?

If its not hard, aka just copy some code from another place and adding a link and some text I might try to some stuff with that myself at some point, if not I may not.

Anyway, great work with this!

1 Like

Thanks, It’s working well now

I’ve seen you have added attributes in contextual menu, that’s cool !
For events in timeline, do you plan to add reference information too (role, notes and attributes)?

1 Like

That is hard to say as it very much depends on the individual. Some people pick up programming quickly and some people can’t, everyone is different. In the end it is like everything in life though, just practice with little projects that interest you and work your way up to larger things and keep learning something new every day.

Developing something new completely from scratch takes a lot of effort, having a mature codebase like Gramps with well developed classes and libraries makes it easier to do a lot of things once you get your bearings and learn how everything fits together. A lot of great programmers have contributed to Gramps over the years.

Python is a good language to learn because there is such a huge ecosystem around it and so many libraries and modules are available. So you don’t need for example to learn how compression and decompression algorithms work internally, or try to write one from scratch, which is a pretty high bar I think. Other people already did that and made it available for others. So you just need to learn the API for interacting with the library and objects they wrote.

2 Likes

Attributes, notes, tags, and copy to clipboard should work for people, family, event and citation. Urls work for person and should work for other things if support is added to them in Gramps.

I will do more with events, the partipants and roles, at some point.

1 Like

How about a couple Citations options?

The ability to display the Date value in addition to the Volume/Page would help for periodical sources. (Like newspapers or Census data)

An option to include Citations referenced by the Families and/or hierarchy of Objects (Events, Notes, etc.) under the Person in the list… in addition to the Citations referenced at the Person level.

Sure I will add them to the todo list.

1 Like

A minor niggling item. Could you add an ellipsis to each of the two Tag submenu items? They need that “options dialog will appear” indicator.