New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tree metadata tool and related changes #1403
base: master
Are you sure you want to change the base?
Conversation
Need to look closer at the failing tests yet I guess. |
This looks great. Is anything missing apart from fixing the tests? |
Is the 'owner' similar to the 'Researcher' ? Where they can be associated with a Person in the Tree? Are the Address and Internet Gramps XML data structures in the Tree the only way to store Tree contact data: Phone, postal address, email, website. I suppose that Users could make such info accessible at the metadata level as a user entered comment. And it would be less likely to be accidentally included. (Although the "probably alive" export filters are likely to invalidate the Researcher handle more often than not.) |
I don't think so, but being the one who wrote it not sure if I overlooked something. I got stuck trying to track down the issue with the tests and set it aside and of course got side tracked and have not revisited.
Yes, you have Researcher in preferences and you also have a Researcher object stored in the database in the Researcher entity. The one in the database you can edit with the Database Owner Editor under Tools -> Family Tree Processing and the editor lets you sync with the one in the preferences. The one in the database is the one included in XML exports. So I added something so you can associate the database owner/researcher stored in the database with a Person in the tree as it seemed logical to do so. |
I agree completely that associating is logical. But my question is if there is a SEPARATE association for owner. Rather than OnePlace Studies, I have about four different OneSource studies. These revolve around creating Trees to transport each fact presented within a single Reference Book. (An OCR''d PDF of the Reference Book is attached as a Media Object.) The researcher for the 1924 booklet (which incidentally roped me into this obsession) died in 1948. He is in the Tree and is indisputedly the Researcher. His research only comes as close to me as a paternal great-grandmother. If I distribute the Tree, I would be the owner. Yet my existence as a 'Person' connected to that Tree is only with an pair of Associations (to my great-grandmother, and to the 6th great-grandfather who is the progenitor in the research) & there's a Note detailing my direct descendancy from the progenitor. We don't want to taint the Tree built from his original research with other sources. (Yes, there are significant errors.) And I'm talking with a 6th cousin (who built a website around the book) is connected to his closest ancestors in that book with 2 Associations and a Note. He is considering distribution of that Tree via the website. So happily, HE might become stuck as the owner soon. The problem is that discovering either of the 2 possible owners via browsing the Tree is virtually impossible ... unless there is a separate GrampsID/handle for Owner from that of the Researcher. |
Oh I am sorry I did not understand. No there is not. I think ideally you would eliminate the concept of a singleton researcher. I'd just model it as a list of contacts and the tree owners and researchers/collaborators are just different types of contacts. I use plural because with Gramps.js everyone should probably be thinking multi-user in anything done going forward. |
f43451c
to
a960caf
Compare
@DavidMStraub Nick asked that I pull out the db and tree uuids so just confirming you were not looking to use them before I refactor this. |
One question, I noticed the |
@Nick-Hall @DavidMStraub this has been refactored now. I pulled out the uuids as well as some other things to try to make it a little more focused. Please let me know if you see any other changes you think are needed. |
@cdhorn Thank you. I'll look at this soon. I've just arrived back from travelling where I had limited internet access. |
Concerning my previous comment, do I understand correctly that it's not actually |
Correct. The tree_change tracks when the Tree object with the description, copyright etc was last changed. I also added owner_change for the Researcher object. While they're not formal table objects it seems desireable to know when they were last modified. |
The OS may important for the Media path and archive restoration. Media restores fail terminally when destination paths are not compatible. (I've seen overwrite permission problems when the destination was the same machine too. And the Tree data was not imported either in that case.) Will originating OS be important for resolving (or crosswalking path structures for) such problems? |
To make the header dates and media paths be more parsable by humans, should the date format CCYY-MM-DD and OS be explicit? |
Unsure I follow this question. The media path attribute is untouched by this. The created date is already in that format. No information about the OS the export was generated on or database engine it was generated from is captured, though that could be added to the Currently this adds the following, as an example, to the
The change timestamp on the The support for adding the I just realized I need to also include an update to I also just noticed that the @Nick-Hall when you have a few cycles if you could look this over again and let me know of any further changes you would like to see here. |
I looked at the sample header posted. Notice it had an August 8th date. In that case, whether the format is CCYY-MM-DD or is CCYY-DD-MM is irrelevant since the month and day # were the same. But since this is the first occurence of DATE in the file, it would boost confidence to have the DATE format explicit. The media path had an environment variable in curly brackets and used forward-slash folder level delimiters. This reminded me that indentifying the OS may be helpful if paths have to be converted to to a different OS. I also noted that version was 5.2 ? Is this XML header element supposed to ID the version of Gramps or the version of the XML schema? |
| I looked at the sample header posted. Notice it had an August 8th date. 2017-08-08 is the date in the current Path conversion is already handled in the existing code and OS information not needed in the XML for that. The created element identifies the version of Gramps, the XML schema version is in the document type declaration itself. |
Rebased. |
This PR implements the following changes: