Jump to: navigation, search

GEPS 011: Tagging

2,302 bytes added, 16:22, 9 July 2010
Add prototype and design sections
can be tagged. The content would be a comma-separated list of the tags
of the objects.
== Prototype ==
A prototype can be downloaded from [ Feature Request #3880] as a patch. It is intended to demonstrate the functionality of an interface and to investigate some design ideas.
It has the following functionality:
* Edit->Tag menu allows the user to add a tag to a selection of people.
* A toolbar button also allows user to add a tag to a selection of people.
* A Tag selection has been added to the person sidebar filter.
* A Tags column has been added to the person views.
It has the following limitations:
* The prototype allows tagging of people only.
* Row highlighting has not been implemented.
The prototype stores tags as custom attributes with no value. Tags can be added and removed from people by using the standard functionality of the person editor.
== Proposed design ==
To === Data structure === Tags should be completedstored in a new field on the primary objects. This field should contain a list of strings. The API will need methods to get and set this list field. Storing tags as attributes, as in the prototype, has the following problems: * Only People, Families, Events and Media have attributes, so not all object types can be tagged.* Using attributes for two purposes may be confusing for users.* Custom attributes with no value will be regarded as tags.* The performance of the tags column may be slow using attributes.* The size of the attribute type list will grow when tags are used. There also needs to be a new database lookup table to store the tags together with their colors. Because the tags are dependent on the database, this needs to be within the database rather than in an xml or ini file. The tags and their definitions need to be included in the Gramps XML schema. === Interface === The functionality should be the same as that demonstrated by the prototype with the following additions: * A tag maintenance dialog to organize tag names and colors. This could be similar to the "Organize Bookmarks" dialog.* Storing tags in a new field will require new functionality to be added to the editors. === Questions === * Should the new tags replace existing marker functionality?* A tag will be lost if an object is tagged when its editor is open and then "OK" is clicked in the editor. Do we need to think about this?

Navigation menu