Compare commits

..

727 Commits

Author SHA1 Message Date
romjerome 96e715df2b fix trailing whitespace
https://github.com/gramps-project/gramps/pull/966#issuecomment-569182132
thanks!
2019-12-29 14:59:57 +01:00
romjerome 0120572a7a Wrong continued indentation 2019-12-14 18:48:56 +01:00
romjerome ea58544530 Trailing whitespace 2019-12-14 18:47:46 +01:00
romjerome c36b6c20c1 options for including occupation data 2019-12-10 16:18:01 +01:00
Paulo Henrique Moraes fc9e5c2a4a Updated translation. (#952) 2019-11-27 11:51:50 -06:00
prculley e3eedb2219 Merge branch 'gramps51' 2019-11-08 11:46:40 -06:00
Paul Culley b7487330a7 Fix up Event Editors Place display for bidi text with Gramps ID (#924)
Fixes #10124

Fix up Event Editors Place display for bidi text with Gramps ID (PR 924)

Some versions of Gtk/Pango have trouble with text containing both LTR and RTL characters. The bug notes this shows up in our Event Editor on the 'Place" field, where we have the place displayer title and the Gramps ID concatenated into the same string.

In older versions of Gtk (3.18.9 tested) the bracket around the Gramps ID would get mangled to the beginning of the string:
<images>

In newer versions of Gtk (3.24.3 tested) it was better to start with:
<images>

The older version of Gtk/Pango doesn't seem to properly interpret all of the potential Unicode bidi control characters, so the fix shown is the best I can do. The fixed version of the newer Gtk version is what is desired.

I note that the Place displayer should be fixed up to use more appropriate separators than just commas for RTL text, but that is another issue.
2019-11-05 13:00:48 +11:00
Paul Culley 1025a38caa Fix issues with RTL languages and LAT/LONG (#922)
* Fix display of GPS coordinates in Places view for RTL languages

Issue #11335

* Fix place editor lat/long entry for RTL languages

Fixes #11335
2019-11-05 12:42:09 +11:00
Paul Culley 2054c467db Fix GEDCOM export to avoid translated GrampsType strings (#947)
Fixes #11410

The bug submitter noticed that the GEDCOM export contained translated strings in the MEDI lines of his export. GEDCOM should contain English values for most such cases where 'types' are exported.

I scanned the export code for other potential cases, and found:

* Certain unexpected event types on individuals (Marriage)
* Certain unexpected event types on families (Immigration, Residence, etc.)
* Pedigree types that were not standardized on PEDI,_FREL,_MREL (Sponsored, Unknown)
* Family Attributes other than Number if children (Caste, Description, National etc.)
* Personal Attributes other than Caste, Description, ID, National, number of children, SSN (Occupation etc.)
* The MEDI types of this bug report...
2019-11-05 12:22:26 +11:00
Serge Noiraud 789b72289c Narrativeweb: Referenced regions problems (#946)
When image width > 800, the referenced regions are incorrectly placed

Fixes #11414
2019-11-05 12:06:06 +11:00
Paul Culley 2e1132bec0 Allow Tools with Notbook tabs to expand to fill the window (#944)
Fixes #10762

User "petpil" (Gramps Bugtracker) noted that the Calculate Estimated Dates addon would not expand the size of its window content when the window was stretched. That addon used the ToolManagedWindowBatch which uses a Gtk Notebook to support several tabs. He also submitted a patch which fixes the problem.

The Gtk.Container.add method originally used apparently did not have expand/fill settings to allow the expansion. The Gtk.Box.pack_start used instead does.

I tested this with all the users of ToolManagedWindowBatch and ToolManagedWindow which inherit from ToolManagedWindowBase, and did not see any bad/unexpected side effects. The Calculate Estimated Dates addon was the only one that really could use this, as it was the only one which I spotted using a potentially large widget in the notebook tab.
2019-11-05 11:44:23 +11:00
Fedik 8ccfa43e56 Ukrainian translation update 2019-11-02 16:51:02 +02:00
Fedik 40140859af Ukrainian translation update 2019-11-02 16:05:15 +02:00
Nick Hall e69e6ca338 Limit Age Stats gramplet settings to appropriate values (#936)
* Max ages should be divisible by 5 to avoid out of range
  errors.
* The chart width should be greater than 45 to look right and
  avoid division by zero errors.
2019-10-30 09:35:32 +11:00
Paul Culley fb29a77f83 Fix the Preferences 'Age display precision' value getting lost (#940)
Fixes #11384

It turns out the changes was actually changing the wrong config setting...

I had to look this one up. Using a lambda like this is called a 'closure' by some; what is happening is that the value 'constant' is being evaluated at the time the lambda is called, not when it is assigned. So in this particular bit of code the preference setting was actually changing 'preferences.family-relation-type' (the value of the variable 'constant' set a bit after the lambda definition.

I reverted this particular bit of code, as I think this kind of Python knowledge is pretty obscure (I could have just used a different unique name for the 'constant' variable).
2019-10-30 09:17:06 +11:00
Paul Culley 06cca96ad0 Fix Spanish translation for dates (#943)
Fixes #10836
2019-10-26 10:14:15 +11:00
avma 2c49461529 Hebrew translation-current version 5.12 (#939)
...I've completed all strings (using the recent .POT)...
2019-10-24 10:41:40 +11:00
Paul Culley 73d19851ef Fix Window family tree title for non-ASCII chars on Windows (#932)
Fixes #11390

As it says, if Family Tree name contained non-ASCII characters, the titlebar on Windows would display it wrong. Turned out to be reading of a utf8 file without the 'encoding' set. On Windows this results in using the default encoding which is one of the code pages, NOT utf8.
2019-10-24 10:24:04 +11:00
Paul Culley 16c8e61944 Fix Preferences/Genealogical Symbols when only one font is present (#930)
that passes

If user has only a single font available that passes check for the Genealogical Symbols being all present, the original code crashed. Apparently never tested... #598 

Fixes #11395
2019-10-24 10:07:52 +11:00
niememat 2fbf945309 Fix translation in Finnish 2019-10-21 18:13:08 +03:00
Milo Ivir cf184e72e8 Update Croatian translation 2019-10-20 16:13:08 +01:00
Leonhaeuser 1c27b785f4 update German translation 2019-10-19 16:52:40 +02:00
Zdeněk Hataš da7e4cc763 Update Czech translation 2019-10-18 09:49:43 +02:00
niememat 5d2fd8cbda Fix translation in Finnish 2019-10-18 05:49:49 +03:00
pehlm 005beac33f Update Swedish translation 2019-10-17 12:10:17 +02:00
niememat ae53b401ce Update finnish translation 2019-10-17 13:00:21 +03:00
Paul Culley 79c54aaedc Fix various Entry fields so Undo/Redo works (#920)
Fixes #11380, #11339

In prior versions of Gramps you could use the undo/redo keys to edit items in the text entries. This no longer works.

This is related to the changes to suppress odd characters and leading/trailing spaces. The Gtk.Entry.set_text() call is effectively clearing the undo/redo list at every keystroke or when you leave the field.

In this PR I move the odd characters cleanup into UndoableEntry.do_insert_text instead of MonitoredEntry.

I scanned the users of MonitoredEntry and they all appeared to use Glade files, I scanned the glade files for anyone using just plain Entry (none found), they all appeared to use UndoableEntry or ValidatableMaskedEntry, so this should cover everyone.
2019-10-17 13:15:39 +11:00
Sam Manzi 4360976d73 Update translation template due to pr #918 (#933) 2019-10-17 12:06:38 +11:00
romjerome 5e9d79ac6f Update POTFILES.in/skip for missing translations (#918)
* Update POTFILES.in

* Update POTFILES.skip

* Update POTFILES.in

add missing 'removespaces.glade' reference
2019-10-17 11:42:22 +11:00
Serge Noiraud ee1d9be898 Narrative web: Ancestor's tree Fix display looks weird (#929)
* Narrative web: Ancestor's tree display looks weird

Solves the following:
- Person boxes overlap
- Some person boxes partially visible or hidden

Fixes #11382

* Narrative web: some cleanup in ancestortree.css

* Narrative web : ancestor tree and long names.

* Adapt ancestor tree css file for all themes
2019-10-17 11:17:31 +11:00
romjerome 75b0b66269 Fix tag colors on PedigreeView (#915)
Fixes #11363

* Handle long and short hex format black color

* Fix hex_to_rgb_float utility function
2019-10-17 10:57:36 +11:00
Paul Culley c54f381737 Fix Gramps -v error when Gtk is not present (#923)
Via email a user noted a bug when "Gramps -v" was used with Gtk not installed (and gi was).
When the "gi.require_version('Gtk', '3.0')" was added during Gramps 5.0.0 timeframe, a corresponding exception was not.
2019-10-17 10:23:21 +11:00
Serge Noiraud 2aa6b54de4 NarrativeWeb: dates not localised in place pages (#916)
* NarrativeWeb: dates not localised in place pages

Fixes #11357

* WEBCAL: home link translated to lowercase

Fixes #11358
2019-10-17 10:07:59 +11:00
Baizley 49bad564ae Patch for PedigreeView not reflecting changes to birthday or death (#921)
Fixes #11366

* Make PedigreeView listen on event update signals.

The PedigreeView was not listening for updates on events, so changes to a birthday or death would not be reflected in the view.

* Remove comment about signal side-effects.
2019-10-17 09:23:02 +11:00
Paul Culley 03ab64c4d5 Fix improper escaping in odt output for TOC/Bookmark etc. (#928)
Fixes #11378

For the index, toc, bookmark etc. normal XML escape is correct, the original code also added sub-tags for line break and tab which was NOT correct.
2019-10-17 09:03:29 +11:00
Paul Culley f7bd062bdb Fix CLI parser to accept negative integers as valid (#927)
Fixes #11381
2019-10-17 08:47:55 +11:00
Paul Culley c312c96987 Fix Descendant Tree report for HandleError when no parents on family (#925)
Fixes #11365
2019-10-17 08:33:39 +11:00
niememat 6b2066c797 Fix translation in Finnish 2019-10-10 07:26:04 +03:00
Nick Hall 5d15ccb2a2 Merge pull request #910 from prculley:reorder 2019-10-08 18:44:43 +01:00
prculley 0095a07f12 Fix Reorder ID tool to avoid scrambling the order IDs are assigned
Fixes #10641
2019-10-08 18:43:42 +01:00
prculley bb5b03dd78 Fix Reorder ID tool so subsequent db additions used next possible ID
Fixes #11346
2019-10-08 18:43:42 +01:00
niememat 26351c18c9 Fix translation in Finnish 2019-10-08 12:43:03 +03:00
Nick Hall f5861169fe Merge pull request #908 from SNoiraud:FR11336
New narrative web and web calendar features:

* Allow urls in the user's css files
* Allow alternate stylesheets in pages for narrative web and webcal
* Webcal: incorrect results when divorce event.
* Some pylint improvements

Resolves #11336.
2019-10-05 18:10:45 +01:00
SNoiraud 4e2f98da02 Better score for pylint 2019-10-05 18:05:21 +01:00
SNoiraud 95a0216287 Duplicate marriage 2019-10-05 18:05:21 +01:00
SNoiraud 03fb2ff1c2 Incorrect results when divorce event 2019-10-05 18:05:15 +01:00
SNoiraud 17141a0536 Add alternate stylesheets 2019-10-05 18:03:03 +01:00
SNoiraud 528852b9b3 Allow alternate stylesheets in pages
Useful when you create a site web, you don't need to create a new
web when you are testing the stylesheets. The final user can change
the stylesheet for the current page.

i.e. on Firefox: View -> Page style -> The stylesheet
2019-10-05 18:02:51 +01:00
SNoiraud 0de286e7a8 Allow urls for images in user css files 2019-10-05 17:59:17 +01:00
SNoiraud 7979bf79fd Better code quality for within area rule 2019-10-05 17:28:21 +01:00
Nick Hall 7100c51a31 Merge pull request #903 from prculley:deprecations 2019-10-05 17:22:19 +01:00
prculley 57f7502105 Fix deprecation of Gtk positional arguments 2019-10-05 17:17:54 +01:00
prculley 0f925a86f5 Fix Gtk deprecation Menu.set_title 2019-10-05 17:17:54 +01:00
prculley 17f4d93363 Fix Gtk deprecatioon ScrolledWindow.add_with_viewport 2019-10-05 17:17:54 +01:00
prculley cea48b618f Fix GObject.PARAM_READWRITE deprecation 2019-10-05 17:17:54 +01:00
prculley 290d6f7287 Fix deprecation GObject.GError -> GLib.GError 2019-10-05 17:17:54 +01:00
prculley 4d0e86a2e8 Fix Gtk deprecation Widget.reparent 2019-10-05 17:17:54 +01:00
prculley 831c7f9c66 Fix Gtk deprecation Widget.set_padding 2019-10-05 17:17:54 +01:00
prculley 702e51dd47 Fix deprecation on Gtk.Widget.override_font and modify_font 2019-10-05 17:17:54 +01:00
Jonas Hahnfeld f3555d0168 Add new graph output format to the tree document generator
The "graph" is the data part for genealogytree without the boilerplate
code around it that makes up a full LaTeX file. This format is useful
for people who have their own (more sophisticated) LaTeX file with
custom styles and so on.
The implementation is pretty straight-forward: Just don't output the
LaTeX code.
2019-10-05 17:05:38 +01:00
niememat ecd6da40dd Fix translation in Finnish 2019-10-05 12:30:46 +03:00
Matthias Kemmer bedc4b8e74 Add a new person filter rule 'HasAddressText' 2019-10-04 21:07:52 +01:00
Matthias Kemmer 8a8a21f85d Add date format option for 'numeric date with leading zeros' 2019-10-04 19:59:54 +01:00
Nick Hall c7350c53e2 Remove irrelevant comment 2019-10-04 19:54:00 +01:00
Fredrik Lindseth 52e76b506a Add descriptions to decendant tree report styles 2019-10-04 19:18:16 +01:00
Matthias Kemmer ab52d0988e Remove tag from selected rows 2019-10-03 21:28:33 +01:00
Matthias Kemmer 5935a315b2 Add 'HasAttribute' filter rule to repositories, sources and citations
Fixes #9845
2019-10-03 21:05:14 +01:00
SNoiraud 793b13be67 Narrativeweb: Mainz problem with short text in one note
Issue occurs on the homepage and introduction page.

Fixes #11349
2019-10-03 20:33:17 +01:00
Nick Hall 48dfca57e2 Merge pull request #913 from prculley:bug11316 2019-10-03 19:58:49 +01:00
prculley a07aae2e30 Fix export tests to actually test most files, and run for both dbs 2019-10-03 19:56:27 +01:00
prculley 8f5daac4a7 Fix exports to have consistent results 2019-10-03 19:56:27 +01:00
prculley 0cd6394b72 Upgrade export VCalendar to v2.0, so can export utf8
Fixes #11316
2019-10-03 19:56:27 +01:00
SNoiraud 57d8dcd574 WEBCAL: Wrong web calendar title on home page
Fixes #11354

This PR solves the possibility to have ">", "<" in the title
2019-10-03 19:50:04 +01:00
prculley d5bb4da5a1 Fix Preferences so <ctrl>PageUp/PageDn doesn't stick on Dates tab
Fixes #11351
2019-10-03 19:41:05 +01:00
ailintom 5c44d925e1 Escape for name, dates and places in graph reports
Currently dates and places contain XML special characters (example: birth date
= "1867 <?>"), the item is rendered incorrectly in the report, when images are
included. Escaping special characters with html.escape solves the problem.

Also fixes the & sign in the name, which earlier caused the report to fail.
2019-10-03 19:08:57 +01:00
Paul Culley c7e2e09b42 Fix 'Go' menu direct object selection, goes to wrong place (#907)
Fixes #11341

Fixes up the scrambled 'Go' menu, got messed up in the UIManager upgrade.
2019-09-25 11:39:58 +10:00
Zdeněk Hataš 669e4af0b7 Update Czech translation 2019-09-20 13:17:28 +02:00
pehlm 88f7a701a3 Swedish translation, some changes 2019-09-18 12:37:07 +02:00
RossGammon 52c087154f [Debian ( .deb file)]Release511 updates (#909)
* Add python3-fontconfig to recommends

* Finalise Debian changelog for 5.1.1-1 release
2019-09-18 11:41:30 +10:00
prculley 1eaa609058 Get BetaWarning correct for master 2019-09-16 11:13:08 -05:00
prculley 5f0c2c1c54 Set Beta warning to True 2019-09-16 11:02:03 -05:00
prculley 6d39920e6f Merge branch 'gramps51' 2019-09-16 10:54:55 -05:00
John Ralls 2b62729f52 Release Gramps 5.1.1 on MacOS. 2019-09-14 16:58:34 -07:00
John Ralls 1c856bb93b Assorted fixes for building Gramps 5.0. 2019-09-14 16:56:23 -07:00
Nick Hall 710e40425f Bump to 5.1.2 2019-09-14 23:40:42 +01:00
Nick Hall bb3eecb365 Release Gramps 5.1.1 2019-09-14 23:32:29 +01:00
Nick Hall 8de8c69686 Update Changelog and NEWS files 2019-09-14 23:28:27 +01:00
SNoiraud 4379a09fd3 Fix deprecation warning in withinarea rule 2019-09-14 22:36:06 +01:00
Nick Hall 0dc2be6dd5 Disable development warning message 2019-09-14 19:25:22 +01:00
Jonas Hahnfeld daa845492d Add options to sandclock in tree document generator
This works and is actually needed to style the root node.
2019-09-14 19:03:18 +01:00
SNoiraud cc28935b15 Using regex in the sidebar gives different result
from previous gramps release.

Fixes #11321
2019-09-14 18:45:09 +01:00
Nick Hall 3d1ef5e595 Merge pull request #898 from Nick-Hall:fr 2019-09-14 18:42:14 +01:00
Jérôme Rapinat 44bdd14609 Add missing French translation strings 2019-09-14 18:41:04 +01:00
Gil da Costa bec5a41829 Update French translation 2019-09-14 18:41:04 +01:00
prculley c3206121df Fix odt output when db owner has XML unfriendly chars ('&')
Fixes #11327
2019-09-14 18:37:30 +01:00
John Bickmore 1e52204d94 Bump required Python version to 3.3 on Readme
As mentioned on the release announcement
https://gramps-project.org/introduction-WP/2019/08/gramps-5-1-0-released/
2019-09-13 15:55:09 +01:00
SNoiraud 82cd211d29 Remove reload_custom_filters to conform to PR894 2019-09-13 15:48:50 +01:00
prculley 4244d70312 Fix CLI crash when generating reports
Fixes #11318, #11213
2019-09-13 15:45:12 +01:00
prculley 98cc9b3740 Fix Statusbar HandleError on merge families
Fixes #11320, #11294, #11279
2019-09-13 15:43:26 +01:00
Avi Markovitz efcf0d1b83 Update Hebrew translation 2019-09-12 19:41:11 +01:00
niememat c1024aa61d Fix translation in Finnish 2019-09-12 21:21:53 +03:00
niememat fe3efc57ab Update finnish translation 2019-09-12 08:00:20 +03:00
vantu5z 52f2d7b4ba update Russian translation 2019-09-11 08:22:05 +03:00
pehlm 9e0e256fd2 Update Swedish translation 2019-09-10 20:16:12 +02:00
Leonhaeuser 50625c654b Update German translation 2019-09-10 19:51:34 +02:00
Nick Hall 1e10eabb15 Merge po files and new template 2019-09-10 18:21:52 +01:00
Nick Hall a7b934003b Update translation template for new release 2019-09-10 17:23:29 +01:00
Avi Markovitz 1b2e91d365 Update Hebrew translation 2019-09-09 21:09:46 +01:00
Pedro Albuquerque ff17f57ba3 Update Portuguese (Europe) translation 2019-09-09 20:54:23 +01:00
Milo Ivir a206503a9b Update croatian translation
- update with newest/current .pot file
- translation is complete
- corrections in wording and some missing accelerators
2019-09-09 19:45:52 +01:00
prculley 846a4d1a32 Fix missing tooltip translations in the Note editor toolbar
Fixes #11289
2019-09-09 19:23:07 +01:00
Nick Hall d75d9797c0 Merge pull request #874 from SNoiraud:B11269 2019-09-09 19:15:34 +01:00
SNoiraud 5767b9c3c8 Avoid bad coordinates in the ref place 2019-09-09 19:12:35 +01:00
SNoiraud d397b83dc8 Avoid alphabetic characters in filter rules 2019-09-09 19:12:23 +01:00
SNoiraud 7617891faf Could not convert string to float
by using withinarea filter rule
+ difference between sidebar filter and filter rule
+ some pylint improvements
2019-09-09 19:11:59 +01:00
prculley d096d269c7 Fix Graph outputs for multiple page PDF Postscript
Fixes #11305
2019-09-07 19:49:57 +01:00
prculley e983578fff Fix to make Gtk 'action names' always valid
Fixes #11291
2019-09-07 19:40:45 +01:00
prculley e10df9eb6d Fix missing menus/buttons when operating in non-English languages
Fixes #11292
2019-09-07 19:33:01 +01:00
SNoiraud 14acaca0b5 Cursor position error in lat and long fields
Fixes #11310
2019-09-07 19:16:00 +01:00
SNoiraud 6ba958cc41 Avoid all characters looking like a dash
hyphen
  non breaking hyphen
  figure dash
  em dash
  horizontal bar

Fixes #11308
2019-09-07 18:55:36 +01:00
SNoiraud efbec440fd Narrative web: Mainz Style sheet weird looking
Fixes #11282
2019-09-06 17:32:41 +01:00
Nick Hall 578daa825d Merge pull request #884 from SNoiraud:B11295 2019-09-06 17:27:59 +01:00
SNoiraud 29994242c7 Set symbols for the active person 2019-09-06 17:23:11 +01:00
SNoiraud 69261509ee Set good symbols for marriage, baptism, cremation and burial 2019-09-06 17:22:59 +01:00
SNoiraud d3d51677f9 Reduce the size of the sexuality symbol in relview
Fixes #11295
2019-09-06 17:20:21 +01:00
prculley 6602843f5a Fix exception when editing Note with italics/bold etc. in non English
Fixes #11284
2019-09-05 14:26:31 +01:00
Nick Hall 7ec4a429a4 Restore keybindings for gramplet bars
Resolves #11297.
2019-09-04 22:18:12 +01:00
Nick Hall 16d40189c6 Fix bug in web connection menu launching incorrect web site
Resolves #11280.
2019-09-04 22:15:10 +01:00
SNoiraud 4b9dba0c53 Translation problem when creating event filter
If you create a filter with the rule name:
    "Events with a particular type"
or
    "Events with <data>"
The menu "Travel", "Academic"... are not translated

Fixes #11293
2019-09-04 22:05:57 +01:00
SNoiraud dd80e4b80e Error when checking option to add Quit to Taskbar
Fixes #11290
2019-09-04 22:03:09 +01:00
SNoiraud e39e59c795 Make the narratives notes placement an option
From 5.1 the narrative notes are placed just after the name, gender and
age at death. This follow the feature request #6772.
Some people want to have this placement an option to have the same
functionality as before

Fixes #11283
2019-09-04 22:00:04 +01:00
Nick Hall 590a5cf59a Merge pull request #876 from RossGammon:release-510 2019-09-04 21:45:34 +01:00
Ross Gammon f5b6389042 Finalise Debian changelog for 5.1.0 release 2019-09-04 21:44:31 +01:00
Ross Gammon a06478f8ed Bump gtk+ version to 3.12 & add gir1.2-geocodeglib-1.0 dependency 2019-09-04 21:44:31 +01:00
Ross Gammon a88ae843e3 Update copyrights 2019-09-04 21:44:31 +01:00
Ross Gammon 71931e2e2e Merge last 5.0.2 debian release information into 51 maintenance branch 2019-09-04 21:44:31 +01:00
Nick Hall e817b3cc4e Merge pull request #873 from sebschub:maintenance/gramps51 2019-09-04 21:35:03 +01:00
Sebastian Schubert 7519561027 Add optional fontconfig package to README.md 2019-09-04 21:31:55 +01:00
Sebastian Schubert 54944968cc Fix typo in NEWS 2019-09-04 21:31:55 +01:00
Zdeněk Hataš 6689ebd133 Update Czech translation 2019-08-30 12:52:25 +02:00
Zdeněk Hataš e92a89e90f Update Czech translation 2019-08-29 12:23:16 +02:00
Leonhaeuser 9d167aa0e4 German translation updated 2019-08-25 11:47:42 +02:00
John Ralls 3e54390047 Release Gramps-5.1.0 on Mac. 2019-08-24 16:20:14 -07:00
John Ralls 40a81ae8eb An entitlements plist for codesigning Gramps.
Python is an interpreter and therefore needs to create executable
memory. Since it doesn't know how to sign that memory it requires
the allow-unsigned-executable-memory entitlement to run in a hardened
runtime. One must apply this entitlement to both Gramps.app and
Gramps.app/Contents/MacOS/dot when codesigning them.
2019-08-24 16:20:14 -07:00
John Ralls ff6d9a0936 Fix graphviz and exiv2 download URLs. 2019-08-24 16:20:14 -07:00
John Ralls 6d4e4bd12d Update dependency versions and download paths. 2019-08-24 16:20:14 -07:00
vantu5z 77d533f930 update Russian translation 2019-08-22 14:06:13 +03:00
pehlm 90dcc9b9ea Update Swedish translation with the new gramps.pot 2019-08-22 12:20:56 +02:00
prculley f823e4f126 Bump to 5.1.1 2019-08-21 13:55:22 -05:00
prculley a833dfb3ac Prepare for 5.1.0 release 2019-08-21 13:46:45 -05:00
prculley f6a5c9166e Update translation template for new release 2019-08-21 12:07:16 -05:00
Paul Culley ee5f2fa600 Fix CSV import for multiple place enclosed by on multiple imports (#869)
Fixes #11259
2019-08-21 12:06:44 -05:00
Paul Culley ba6254ca3f Fix exception when merging with active sidebar filter (#870)
Fixes #11262
2019-08-21 12:05:59 -05:00
Paul Culley 7258bd9fd6 Fix GEDCOM importer for SOUR/REFN combinations (#871)
Fixes #11251
2019-08-21 12:03:56 -05:00
Paul Culley 49632d8789 Add support for GEDCOM import _FREL/_MREL tags in INDI/FAMC (#866)
Improve support for GEDCOM export of _FREL/_MREL in INDI/FAMC

Fixes #10750
2019-08-18 10:09:29 -05:00
niememat 5f101300af Fix translation in Finnish 2019-08-13 20:23:37 +03:00
prculley 4859c14aaa Fix typo in merge 2019-08-12 16:58:55 -05:00
Serge Noiraud d89557acf4 Narrative web: some strings not translated (#838)
* Narrative web: some strings not translated

The confidence and the date are not translated in the family map page.
The date doesn't use the specified date format.

Fixes #11207

* Narrative web: another string to translate
2019-08-11 22:05:18 +02:00
Serge Noiraud cdd3177b19 Narrative web: markers incorrectly placed. (#839)
* Narrative web: markers incorrectly placed.

In the map pages, the markers are not placed where it should be.
reproducible when zoom in/zoom out.

Fixes #11208

* Narrative web: background not correctly set.

If you use the Web_Basic-Cypress.css, the foreground and background
use the same color, so you see nothing.
you must hover the fields to see the text
2019-08-11 21:57:01 +02:00
Serge Noiraud bb8ce0cce6 Narrative web: Sort problem with places. (#856)
* Narrative web: Sort problem with places.

Fixes #10868.

Places list is not sorted depending on the selected language.

If you start gramps in english or another language then try to generated
a narrative web report in another language, the navigation alphabet is
incorrect. This is true for the place list and the person list.
The problem was related to pyICU.

* Narrative web: some pylint improvement.
2019-08-11 21:50:50 +02:00
prculley f4a8f21032 Merge from gramps51 2019-08-09 09:06:42 -05:00
prculley e894c4478f Some pylint cleanups 2019-08-09 08:55:05 -05:00
prculley bb255c8529 Merge with Gramps50 2019-08-09 08:53:17 -05:00
prculley fe87150c14 Bump to v5.0.3 2019-08-08 12:09:55 -05:00
prculley f6b81c9da8 Prepare for Release 5.0.2 2019-08-08 12:01:46 -05:00
Paul Culley e59aa58c63 Fix some Gramplets not updating during tree changes after db change. (#865)
Fixes #11234
2019-08-08 11:50:47 -05:00
Paul Culley 3e2e8a837f Fix Events Grampslet for bad sort order on dates/ages (#867)
Fixes #7616
2019-08-08 11:49:55 -05:00
Paul Culley c0ff650748 Fix References Tab to update on Deletes of items when editor is open (#864)
Fixes #11231
2019-08-08 10:00:14 -05:00
Paul Culley 44104671b9 Fix GEDCOM import for better support of TMG (#861)
Fixes #11224
2019-08-08 09:59:14 -05:00
Paul Culley afa8e73486 Fix Edit Link 'New' button to work (#863)
Fixes #11225
2019-08-07 13:49:31 -05:00
Paul Culley 27c38018fa Fix GEDCOM importer to properly handle multiple surnames per 5.5.1 (#862)
Fixes #11228
2019-08-07 13:48:49 -05:00
romjerome 56afb5bca9 Add missing 'get_number_of_citations' method (#859)
* Add missing 'get_number_of_citations' method

* update db test for bsddb

* fix trailing whitespace

* typo
2019-08-07 13:47:09 -05:00
Serge Noiraud 96fcef2a84 Narrative web: Sort problem with places. (#854)
* Narrative web: Sort problem with places.

Fixes #10868.

Places list is not sorted depending on the selected language.

If you start gramps in english or another language then try to generated
a narrative web report in another language, the navigation alphabet is
incorrect. This is true for the place list and the person list.
The problem was related to pyICU.

* Narrative web: some pylint improvement.
2019-08-01 08:31:39 -05:00
Paul Culley 7e7dd68b58 Fix Navigator sidebar so can change view type with proper resize (#853)
Fixes #6422, #11164
2019-08-01 08:27:38 -05:00
Paul Culley ab5a810990 fix crash when using sidebar filter and merging in another view (#858)
Fixes #11089, #11064, #11134
2019-07-31 16:50:22 -05:00
Paul Culley f7d58f4c28 Fix AncestorTree so add siblings to center person works (#852)
Fixes #11215
2019-07-31 16:48:55 -05:00
Paul Culley 17dc7f7d23 Fix Preferences dialog so General tab appears first, not Symbols (#844)
Fixes #11210
2019-07-31 16:47:18 -05:00
Paul Culley 5c6a0ebff3 Fix graphs on Windows for font selection not working (#850)
Fixes #11212
2019-07-31 16:46:09 -05:00
Paul Culley 949296a801 Fix graphs on Windows for font selection not working (#849)
Fixes #11212
2019-07-31 16:45:15 -05:00
Paul Culley 15e033c02c Fix dbapi reindex_reference_maps tool to properly close transaction (#847)
Fixes #11195
2019-07-31 16:35:05 -05:00
niememat ede3707b51 Update finnish translation 2019-07-20 22:01:22 +03:00
vantu5z 0b6911f0da update Russian translation 2019-07-18 08:40:50 +03:00
Paul Culley 3fccf5a9cb Fix crash when addon/plugin contains an id with space (#836)
The updated uimanager and managedwindow uses the plugin id to create actions for plugins that make a window to support the menus. If the plugin id contains a space, Gramps crashes.

Fixes #11202
2019-07-11 11:01:47 +10:00
Paul Culley 80749afd09 Fix zoom via mouse wheel in media event editor selectionwidget (#835)
also fixes zooming with scroll bars always present

Fixes #11198
2019-07-11 10:52:36 +10:00
Lajos Nemeséri cce5a26a9b Update Hungarian (hu) translation (#845) 2019-07-11 10:42:04 +10:00
Leonhaeuser 83957ecdf0 update German translation 2019-07-09 20:20:37 +02:00
SNoiraud 9da8f705f6 Narrative web: Add popup to manage markers
If you click on a marker in the family map page, you get a popup.
In this popup associated with a place, if you have several events,
for each event you see the person and the event type.
If you click on the person, you go to the related page for this person.
If you click on the event type, you go to the related page for this event.

Fixes #11150
2019-07-07 19:25:42 +02:00
SNoiraud ce4cd33139 Narrative web: Add Stamen map
Fixes #05984
2019-07-07 19:24:44 +02:00
Serge Noiraud 804c03b286 Geography: pins very big when related to 2 places (#830)
Fixes #10644
2019-07-05 13:13:24 +10:00
Serge Noiraud bb3a1d3609 OSM forward all http resquest to https. (#829)
After asking the OSM support, I was told OSM forward all http request to
https when we use .org url.
So it should work in all cases.

This has an energy cost, so it would be good for the planet to change
http to https.
2019-07-05 12:55:18 +10:00
Paul Culley a9b4e22fb0 Fix duplicated accelerators (#831)
Fixes #11186
2019-07-05 12:11:30 +10:00
vantu5z 72d8d2d3cf update Russian translation 2019-06-21 11:09:19 +03:00
vantu5z b039a199d7 update Russian translation 2019-06-21 10:53:46 +03:00
Leonhaeuser dda257bcd6 Update German translation 2019-06-20 22:09:15 +02:00
prculley ce30c874d1 Merge with Gramps50 2019-06-16 13:35:35 -05:00
pehlm 2f97ec7acd Update Swedish translation with the new gramps.pot 2019-06-16 19:44:00 +02:00
prculley d2bad63603 Fix typo in 'Fix some XML fragments to aboid double translations' commit 2019-06-16 09:14:42 -05:00
niememat 9a699aef81 Fix translation in Finnish 2019-06-16 11:44:04 +03:00
Nick Hall 3a505745f3 Change default database backend to SQLite 2019-06-15 17:59:43 +01:00
Nick Hall 2da2166004 Merge pull request #826 from prculley:bug11151 2019-06-15 17:36:26 +01:00
prculley 6d67dff94c Fix some XML fragments to aboid double translations 2019-06-15 17:32:40 +01:00
prculley 1f778e8ce1 Fix Language updoate_po.py to scan for XML fragments in Python files
Fixes #11151
2019-06-15 17:32:29 +01:00
prculley 81a1b675af Fix CLI import so that different db types can be used
Fixes #11171
2019-06-15 17:21:34 +01:00
Mattkmmr 1b7b20756f Fix metadataviewer.py (#823)
Fix so that metadata is actually detected and displayed (signal was not getting detected).
2019-06-14 10:57:15 +10:00
Mattkmmr f24e29998d Fix metadataviewer.py (#823)
Fix so that metadata is actually detected and displayed (signal was not getting detected).
2019-06-14 10:55:13 +10:00
niememat eff15c1ce3 Update finnish translation 2019-06-12 11:55:03 +03:00
SNoiraud 2c15e382bd Problem during merge: One line disappeared. 2019-06-12 10:11:40 +02:00
John Ralls b3715efea9 Fix graphviz and exiv2 download URLs. 2019-06-11 14:59:54 -07:00
John Ralls cfe8c42d28 Update dependency versions and download paths. 2019-06-11 12:08:32 -07:00
SNoiraud 1ef467c9e3 Solves several problems following merge of PRs 2019-06-11 14:29:32 +02:00
prculley 7b3c86a4f5 Fix _Manage Family Trees... string to add ... back in 2019-06-10 14:02:49 -05:00
Serge Noiraud 7dc532c743 Avoid comma in a lat/lon entry field. (#812)
* Avoid comma in a lat/lon entry field.

* Be more precise on the tooltip text.

* conv_lat_lon should not accept comma in lat/lon

* Tests failed with comma in lat/lon

* geoplaces fails to center if bad lat/lon
2019-06-10 17:27:03 +10:00
Serge Noiraud 2951a0acf0 Avoid invalid characters in the entry field (#811)
In this patch:
 1 - If you copy/paste strings from another application,
     you can add CR, LF, TAB and other special characters. I remove them.
 2 - suppress all leading and trailing spaces for these entry field.
2019-06-10 17:12:48 +10:00
milotype 6d53c3a91c Update Croatian translation (#824) 2019-06-10 11:57:46 +10:00
Mattkmmr 73705b08cd Fix '_hasattributebase.py' (#820)
Check all values of an attribute type and not only the first one.

Check all values of an attribute type. If a person has several attributes with the same type/key the current behaviour is that only the first value is checked.

Example Person X Atrributes:

    (Key=occupation: Value=farmer)
    (Key=occupation: Value=soldier)
    (Key=occupation: Value=smith)

=> Currently: Filter 'persons with attribut' (Key=occupation, Value=farmer) returns Person X, but no return of Perrson X for (Key=occupation, Value=soldier) or (Key=occupation: Value=smith).

=> After fix: Person X is returned for all three filter searches.
2019-06-10 11:47:37 +10:00
Paul Culley 7ca19214d6 Fix crash for multiple deletes in one transaction (#814)
Fixes #11117
2019-06-10 11:39:54 +10:00
Paul Culley f123cac308 Fix uimanager, menu translations (#816)
Fixes #11151
2019-06-10 11:25:34 +10:00
Ed Bennett 87955ed2e9 Adjust translation strings for unmarried partners to give correct text in English (#818)
Fixes #11109
2019-06-10 11:07:22 +10:00
Mattkmmr c61e79be76 Fix '_havechildren.py' person filter (#819)
* Fix '_havechildren.py' person filter

Check all families of a person for children and not only the first family

* Update 'person_rule_test.py' and '_havechildren.py'

Correct number for persons who have children is 905
2019-06-10 10:43:26 +10:00
niememat 135acff4e8 Update finnish translation 2019-06-04 11:33:13 +03:00
Leonhaeuser 0910bebe56 update German translation 2019-05-26 21:19:52 +02:00
Ed Bennett 805e07d09a Allow an option to not use hexagons for those of unknown gender
Fixes #11112
2019-05-20 10:23:33 +01:00
SNoiraud e6324fe3d8 Add a mailto choice to Internet Address
Fixes #11149
2019-05-20 10:17:30 +01:00
Serge Noiraud 75d2f3dd00 Add option to show the Gramps ID in parenthesis in the fan chart
Add option to show gramps id.
Improve pylint score for the modified files.

Fixes #11045
2019-05-20 10:16:10 +01:00
John Ralls 9d3f17e377 Disable vala for gexiv2, it breaks introspection. 2019-05-19 21:01:55 -07:00
Leonhaeuser aefa262cd1 update German translation 2019-05-19 21:24:23 +02:00
niememat a6ef08d4d3 Update finnish translation 2019-05-18 11:17:18 +03:00
vantu5z 9eb04593f5 update Russian translation 2019-05-16 16:22:53 +03:00
pehlm 45c06cac54 Update Swedish translation 2019-05-15 14:39:07 +02:00
SNoiraud 77124496e8 New tool to suppress leading and trailing spaces.
This tool is looking for place names with leading or/and trailing spaces.
It also looks for in the first name and surname.

For each entry which contains leading or trailing spaces,
a row is added in a treeview.
You can see where the spaces are for each row as the name is underlined.

If you double click on the row, you can edit the Place or the Person.

Fixes #10824
2019-05-14 19:06:19 +01:00
matt 6bca4083cb Add occupation and residence events and attributes in the import
User can now add the following columns in the csv import file for a person:
- Occupation description
- Occupation date
- Occupation place
- Occupation source
- Residence date
- Residence place
- Residence source
- Attribute type
- Attribute value
- Attribute source
the corresponding events will be added to the person.
The user can put several lines for the same person if two occupations are known, one event per line will be created.
2019-05-14 10:38:11 +01:00
prculley 3ba2253ac0 New feature to allow added rules to define their own GUI elements 2019-05-13 19:30:03 +01:00
prculley eb36980715 New feature to allow new rules in their own catagory in addons 2019-05-13 19:30:03 +01:00
prculley 8366ceb896 Allow filters/rules via plugin without fail on restart 2019-05-13 19:30:03 +01:00
prculley 5311cc7744 Fix Python time.clock deprecation 2019-05-13 18:47:13 +01:00
prculley 0213e65ff0 Fix PythonDeprecationWarning for collections.abc 2019-05-13 18:46:39 +01:00
prculley c82ec4c65b Bump required Python version to 3.3 2019-05-13 18:45:38 +01:00
Keepun 63cd18ebfb Relationship Graph: Father and Mother are connected by an invisible line. 2019-05-13 12:37:27 +01:00
SNoiraud 52b9fe8276 Have a better narrative web site
10341:
When we are on a mobile phone or a small device, we suppress the navigation tab.
In place, we have a new icon on the upper left which is used to show the dropdown menu.
Thanks to Theo van Rijn for showing me the way to do that.

10962:
For Home, Introduction and Contact, If we have an image and this image contains regions,
show the regions. We can go directly to the person page associated to this region.
If we click on the image, we go directly to the associated media page. This will be true only if we selected "include images and media objects" and "create and only use thumbnail" is unselected

11018:
The first line identifying a family will be more legible.
The link is not useful in the parents and pedigree section for the current person.
Adapt some css files.

11029:
sort the place references either by date or by name.

Resolves #10341, #10962, #11018, #11029
2019-05-13 11:44:12 +01:00
SNoiraud cd092897bc GEPS 039: Genealogical symbols in gramps
Gramps should be able to use genealogy symbols everywhere.

Several kinds of use for the genealogical symbols :

    The graphical interface (GUI, editors, graphical views, ...)
    The Web reports (webcal, narrativeweb, ...)
    The Text reports (odf, rtf, pdf, ...)
    The graphical reports (odf, rtf, svg, ...)

Resolves #9098
2019-05-13 11:17:12 +01:00
vantu5z 735e17a8cb Enhance layout of the preferences dialog 2019-05-12 19:31:13 +01:00
khrys63 08a4aeff7b Add Ahnentafel option on hourglass 2019-05-12 18:23:37 +01:00
Nick Hall 0fb1742362 Merge pull request #802 from SNoiraud:webcal 2019-05-12 16:13:15 +01:00
SNoiraud e4564ec86e Webcal: better help msg for the after year option. 2019-05-12 16:09:36 +01:00
SNoiraud 76961fd675 Webcal: Include only events after year 2019-05-12 16:09:36 +01:00
SNoiraud 2f9704c680 Better quality code for codacy and pylint 2019-05-12 16:09:36 +01:00
SNoiraud 98a38cde57 Webcal: add death event
Fixes #5025

add some cleanup
use html_escape instead of _escape
2019-05-12 16:09:36 +01:00
jose1711 b5e9795ccf Fix typo in Slovak translation 2019-05-12 15:22:43 +01:00
prculley 4f14cbc12c Add buttons for arrangement of GalleryTab media order 2019-05-12 15:15:38 +01:00
prculley b765d7eae0 On restart after crash, offer to run Check & Repair 2019-05-12 15:14:58 +01:00
Sam Manzi 3f28b5fcb5 Add tooltip for Gramplet Bar
To improve discoverability of the Gramplet Bar Menu (Currently a nameless down arrow at end of each Gramplet bar title tab) add a tooltip.

Issue #9042
2019-05-12 13:44:13 +01:00
caigner 903069fd34 changed 'Edit ->Set Home Person' to 'Edit -> Set Home Person' 2019-05-12 13:38:03 +01:00
SNoiraud 03d0baa2bf extrapage can now point to joomla, drupal, ... 2019-05-12 13:29:03 +01:00
Nick Hall 3096c2b09a Remove extraneous whitespace after assignment 2019-05-12 11:41:11 +01:00
Nick Hall 976edfbf1d Remove extraneous whitespace before assignment 2019-05-12 10:21:16 +01:00
Nick Hall 2a5fee85c5 Use theme settings for the error state of entry widgets
Use the current Gtk theme settings for the appearance of the
ValidatableMaskedEntry widget in its error state.  This avoids
problems with dark themes.

Fixes #11046.
2019-05-12 07:22:24 +01:00
Nick Hall 1b1452c7b7 Remove extraneous whitespace before colon 2019-05-12 07:00:44 +01:00
Nick Hall 021ea6baab Allow _T_ as a valid function name
This is used for deferred translations.
2019-05-12 06:59:48 +01:00
Nick Hall 50ed9268f9 Replace _2BUTTON_PRESS by DOUBLE_BUTTON_PRESS 2019-05-12 06:59:10 +01:00
Piotr Kasprzyk f4832dd785 Adjust - Polish translation 2019-05-12 06:58:30 +01:00
Balló György a94fc04890 Fix AppStream metadata validation 2019-05-12 06:51:44 +01:00
Keepun 488eaced8c vCalendar: Convenient display on mobile devices. 2019-05-12 06:50:16 +01:00
Jonas Hahnfeld 9442c1ef7e Add first class support for Occupation attribute
This was already used in PersonDetails and (incorrectly) in TreeDoc.
Add it to the list in AttributeType, provide translations and fix
usage in TreeDoc in case the user is not running with English translation.
2019-05-12 06:48:56 +01:00
prculley 67c8fd18cb Merge with Gramps50 branch 2019-04-23 11:01:07 -05:00
système 1a0390f623 typo on french translation 2019-04-14 19:30:04 +02:00
Paul Culley e9412a2479 Fix failure after Gedcom import if missing objects were found (#807)
Fixes #11082
2019-04-14 10:42:05 +10:00
John Ralls c615b4dc32 [maclocale] Fix none type has no len().
Fixes #11075
2019-03-26 08:52:29 -07:00
Paul Culley 450217a636 Fix Gedcom import so it doesn't create completely empty Birth events (#799)
Fixes #10145

Note: a completely empty birth event is removed by Check and Repair; this is wrong in that sometimes we know a person is born, but not date/place. In Gedcom this is indicated by "1 BIRT Y" lines.

So this PR adds a description to the birth event. This is not an issue for other event types, the C&R tool sees the non-default type and leaves it alone, but birth is the default type.
2019-03-17 16:51:15 +11:00
milotype 9a398cbcfd Update Croatian translation (#803)
update with current maint50 pot file
2019-03-17 16:10:15 +11:00
Paul Culley aff888a0b5 Fix Relationship view so ages are according to Preferences (#798)
Fixes #11040
2019-03-17 15:18:00 +11:00
Paul Culley 71ad5ffb04 Fix Person Editor Events to properly update during external changes (#797)
like Event delete or update.

Fixes #11051

Looks like someone simply forgot to register the handles with the callman...

I checked other similar cases and did not see any other issues.
2019-03-17 15:02:29 +11:00
Paul Culley 100d6d0672 Gedcom fixes for mime and finding media (#795)
* Fix Gedcom import/export for more comprehensive mime types

Fixes #11041

* Fix Gedcom import to better find media files

Issue #11041

* Fix Gedcom test files for media mime and error location message
2019-03-17 14:44:42 +11:00
Serge Noiraud d96b6d19b8 Unhandled exception in Geography editor (#793)
Fixes #11048

better pylint score
remove unused code
2019-03-17 14:26:11 +11:00
Paul Culley bf4b3962bc Fix relationshippathbetween filter rule when parent is missing (#792)
Fixes #11049

Another HandleError issue, this one hidden by the raw except. Filter rule just did not work if a family in the path had a missing parent.
2019-03-17 14:12:11 +11:00
Paul Culley 51f44c2fd7 Fix Graphs that use graphdoc pdf via Ghostscript with multi-page (#791)
for poor font rendering of some characters (thanks to Ken Sharp)

Fixes #11047
2019-03-17 13:55:54 +11:00
Paul Culley 00c74d139a Fix example gramps files so media is found (#785)
Fixes #11015

On Windows the location of the example files is "c:\program files\grampsaio64-5.0.1\share\doc\gramps\example\gramps".

On my Ubuntu install from the .deb file these files are in "/usr/share/doc/gramps/example/gramps"

Since the default GRAMPS_RESOURCES value for each system is the 'share', to find the media files we need to append "/doc/gramps/example/gramps" to have the example files work properly.
2019-03-17 13:41:35 +11:00
Paul Culley 54c3b29793 fix finddupes tool when run from Match Threshold screen again (#790)
after merge.  Avoids HandleError because potentials dict is not
cleared.

Fixes #11044
2019-03-17 13:26:06 +11:00
vantu5z d1ee70a0d2 update Russian translation 2019-03-12 14:38:06 -03:00
Bernard Banko c4f89c4034 Slovenian translation correction 2019-02-27 19:00:02 +01:00
système 8615021d37 update french translation 2019-02-16 09:54:45 +01:00
système c3c006c465 update (partial) french translation 2019-02-14 12:21:22 +01:00
système b389842af1 merge with last template 2019-02-14 11:43:03 +01:00
système aba0303260 bug 10841: Typos in the French translation 2019-02-14 11:06:16 +01:00
système 3bba6f57e4 fix a typo 2019-02-14 10:42:29 +01:00
Paul Culley f84c2ecf11 Fix Gedcom import for multiple notes on OBJE (MULTIMEDIA_LINK) (#782)
Fixes #10277
2019-02-14 15:32:16 +11:00
Paul Culley 7a82b78ff9 Deal with SQLite db corrupted by None name mapping (#784)
Fixes #11011
2019-02-14 15:05:01 +11:00
Paul Culley 39a0d8c648 Fix XML import to add tags to Events, Sources, Places, Repos, Cits (#780)
Fixes #11004
2019-02-14 14:45:28 +11:00
Paul Culley 62f8049d6a Fix for delete of a ref'd primary obj while editing an added obj. (#779)
Also fixed to update the ref'd obj on changes from outside the
editor.

Fixes #10999, #11000, #11001, #11002
2019-02-14 14:31:21 +11:00
Paul Culley d65ad470d6 Fix Place Tree view when using enclosed by sidebar filter (#764)
the filter was incorrectly using a standard place cursor instead of
the tree cursor.

Fixes #10948
2019-02-14 14:08:53 +11:00
Bernard Banko be98b673df Slovenian language update 2019-02-10 18:26:31 +01:00
Luigi Toscano f088d940a6 Italian translation updates
- restore few strings from the welcome Gramplet that got lost
  after the split of a messages in smaller messages;
- fix few errors.
2019-02-10 16:09:33 +01:00
Luigi Toscano 92328d4332 Refresh the Italian po file 2019-02-10 16:01:18 +01:00
Paul Culley b4e4dbbcf2 Fix EditFamily for adding a child to single parent family with (#777)
Surname guessing set to combination.

Fixes #10997
2019-02-03 09:30:45 +11:00
Paul Culley 4c6c052729 Fix Descendent Tree report for crash when person has multiple (#773)
families and one of them doesn't have a spouse.

Fixes #10983, #10971, #10661
2019-01-23 08:44:40 +11:00
Leonhaeuser 257b091cac Update German translation 2019-01-22 18:39:12 +01:00
Paul Culley abcf304ea7 Fix Name editor crash after clearing a group_as name on dbapi dbs (#771)
Fixes #10981
2019-01-22 14:19:25 +11:00
Serge Noiraud dba752c328 We should stay on the selected item in list views: (#770)
Fixes #10966

When we try to merge two objects, we should stay on the selected row
in list views.
This problem occurs for persons, families, events, places, sources,
citations, repositories, media and notes.

Another problem:
In case we select the first family and select the gramps_id of the
second family, the new gramps_id is ignored: problem in MergeFamilyQuery
2019-01-22 13:45:04 +11:00
Paul Culley 0dd2b9d0fd Fix Relationship Graph; extra people when using filters & subgraphs (#769)
subgraph option wasn't checking parents against filtered results

Fixes #10947
2019-01-22 13:31:22 +11:00
Christian Aigner 520c81a355 [German] Change Text on Settings -> Colour (#767)
* Unified the labels.
     The overall appearance looks now a bit cleaner.

   * Fixed a grammatical bug (das -> dass)
2019-01-22 13:16:40 +11:00
Paul Culley 807eab7cd9 fix Place Format Editor file save/load for difficult names (#766)
Fixes #10949
2019-01-22 13:00:16 +11:00
Serge Noiraud 2bc5f63406 Not all place types appears on family lines Graph (#763) 2019-01-22 12:45:54 +11:00
Christian Aigner 344dd69a9d Corrections in 'Tip of Day'; changed 'Schlussnotizen' to 'Quellennachweis' (#753) 2019-01-22 12:03:45 +11:00
Richard Clay 29b0e824a2 Some pylint improvements 2019-01-14 19:57:36 +00:00
Richard Clay fb886c5954 Add option to hide empty information on statistics chart 2019-01-14 19:55:12 +00:00
Nick Hall 06aa83e263 Merge pull request #704 from prculley/safe 2019-01-14 19:39:25 +00:00
prculley 051311bbbd New CLI commands; 'safe' mode and 'default' 2019-01-14 19:38:43 +00:00
prculley f4c94c48b4 Fix config file load for bad/old style Python syntax 2019-01-14 19:38:43 +00:00
prculley c04b6f6fdf Filter Rule editor, save pane position 2019-01-14 19:29:25 +00:00
Nick Hall 455cd151b7 Merge pull request #696 from prculley/dnd2 2019-01-14 19:23:11 +00:00
prculley 4dd6abfe85 Remove old Gtk drag/drop bug fix, no longer needed 2019-01-14 19:20:37 +00:00
prculley 73402dfb05 Drag/drop only one type of source 2019-01-14 19:20:36 +00:00
prculley a1c02bda9b Filters optimization; Use cache proxy with filters in views 2019-01-14 19:10:21 +00:00
prculley 67cf51bbf3 Filter fixes to prevent MatchesFilter types from running multiple times 2019-01-14 19:07:00 +00:00
Nick Hall 77cc12a42e Replace eval with getattr when loading plugin classes 2019-01-12 19:10:40 +00:00
SNoiraud 290815cba8 Geography places: add color for custom places name
Fixes #10785
2019-01-12 19:07:42 +00:00
SNoiraud 979a477773 NarrativeWeb: add enclosed by and encloses (place)
Fixes #10743

includes the problem with private places (see PR 679)
2019-01-12 19:04:28 +00:00
prculley 2e17c65a2c Fix Delete dialogs to all canceling multiple deletes more easily
Fixes #10796
2019-01-12 18:58:34 +00:00
vantu5z 757854e566 update Russian translation 2019-01-12 19:58:46 +03:00
Alois Poettker a592f7b2fd Show death/burial information only if person is proabably dead 2019-01-12 16:17:59 +00:00
Paul D.Smith 03a89c73e3 Add compact Ancestry trees using Buchheim/Walker algorithm
This enhancement adds a new 'compact' field to the Narrated
Web Report. A compact tree is one that is not a simple binary
layout but uses the algorithm of Buchheim/Walker to create a
layout that is sensible but also compact.

Creating a compact layout is slower than a simple binary
tree but the results are significantly improved and do not leave
large areas of whitespace where there are no nodes to be shown.
2019-01-12 14:39:56 +00:00
Sam Manzi 45d3c43680 Remember location of Sort Events Tool (#750)
Issue #9795
2019-01-12 14:04:30 +11:00
Zdeněk Hataš 732f9fae16 Update Czech translation 2019-01-11 18:01:58 +01:00
Paul Culley c7f2b19784 Fix Media editor when using double click the preview of added media (#752)
Fixes #10923
2019-01-06 12:11:12 +11:00
Leonhaeuser 30628cf6c7 update German translation 2019-01-05 11:26:38 +01:00
niememat 36e43562e7 Fix and updated translation in Finnish 2019-01-05 07:39:31 +02:00
P Ekholm 80b99925bd Update Swedish translation 2019-01-04 17:08:55 +01:00
prculley d78aa8cd8d Update gramps.pot 2019-01-02 12:13:11 -06:00
prculley 4087ae800c Revert "update gramps.pot", the update_po.py doesn't work with glade files
on Windows

This reverts commit fcfecef459.
2019-01-01 15:58:05 -06:00
prculley fcfecef459 update gramps.pot 2019-01-01 11:35:47 -06:00
prculley 7131eec356 Fix update_po.py to run on Windows 2019-01-01 11:33:52 -06:00
caigner 3ada5081b5 German translation corrections 2018-12-31 18:38:40 +00:00
Leonhaeuser e4450cb34b update German translation 2018-12-30 12:44:00 +01:00
Serge Noiraud 97aedaae99 Avoid leading and trailing spaces when copy/paste (#747)
coordinates from a map provider.

Fixes #10937
2018-12-29 16:41:24 +11:00
John Ralls 285fbf2c97 Set correct font resolution for Mac when drawing text directly to cairo. (#745)
Fixes #0010924
2018-12-29 16:01:14 +11:00
Pär Ekholm 6e7e233155 Add some untranslated strings in po/sv.po 2018-12-28 21:47:44 +01:00
Pär Ekholm 436ca0df98 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-12-28 21:42:55 +01:00
vantu5z b17c230f56 update Russian translation 2018-12-28 05:37:19 +03:00
prculley 3cb57426b1 remove crlf line endings on da.po 2018-12-26 09:44:03 -06:00
prculley acfbb0a763 fixup some merge issues in po files 2018-12-26 09:41:03 -06:00
John Ralls 255caf1ab7 Remove extraneous setting of GTK_IM_MODULE_FILE.
Fixes #10929
2018-12-24 10:15:11 -08:00
prculley 1b824c410b Merge with gramps50 2018-12-23 09:57:37 -06:00
Zdeněk Hataš 7b8666e454 Update Czech translation 2018-12-22 16:24:28 +01:00
RossGammon 9e9d4e6369 Update debian files after 5.0.1 release (#744) 2018-12-21 10:09:29 +11:00
prculley 508df3048d Bump to 5.0.2 2018-12-20 11:20:59 -06:00
prculley cb8bf0d00a Release Gramps 5.0.1 2018-12-20 11:16:55 -06:00
Paul Culley 44180b45e2 Help issues for bug 9042 (#738)
* Media Manager: add help button and remove '...'

Issue #9042

* Edit/Preferences: add Help button

Issue #9042

* Style Editor, Document Styles dialog: add help buttons

Issue #9042

* Fix Select Person dialog Help button URL

Issue #9042

* Fix Select Repository dialog Help button URL

Issue #9042

* Relationship Calculator: Add help button

Issue #9042

* Reorder Relationships dialog; add Help button

Issue #9042

* Generate Book Dialog; Fix Help URL

Issue #9042

* Manage Book dialog; add help button

Issue #9042

* Fix Detached Gramplets Help button URL when 'help_url' not in .gpr

Issue #9042

* Fix help URLs when they contain illegal characters and to match wiki
section targetID algorithm

Issue #9042
2018-12-20 09:10:58 -06:00
prculley 03b151b472 Updated Hungarian translation 2018-12-20 08:43:24 -06:00
milotype ec075e360b Croatian localisation updates (#741)
* Update/Completion Croatian translation

This is a big update. The croatian translation is now 100% complete.
Translated all missing strings, made lots of corrections, improved
consistency in the wording, tested thoroughly.  Also, it will work
with the updated datehandler file "_date_hr.py", which i'll be
updating simultaneously.

* Croatian Datehandler update

Made changes to fit croatian specific date handling. Also because i've
updated the hr.po file. I've tested it with the present
"_datedisplay.py" of the maintainance/gramps50 branch.

Basically it would be great, if next to the obligatory "display_iso"
format, only two more formats would show up in the croatian drop-down
menus: "dd_dformat01" (numerical) and "dd_dformat04". Other formats
are unneeded.

9. 5. 2018.  => ordinal numbers, all separated by spaces
9. svibnja 2018.  => ordinal numbers and genitiv month's form,
all separated by spaces
2018-12-20 08:35:33 -06:00
Nick Hall e4cbca4b73 Fix contents of enclosed_by secondary dbapi column (#742)
The enclosed_by column should contain the first value in the list
instead of the last.

Resolves #10907.
2018-12-19 18:10:00 -06:00
Leonhaeuser 4eda6d1afa update German translation 2018-12-18 21:04:03 +01:00
SNoiraud 496d4e1703 Google maps URL problem
Fixes #10772
2018-12-18 14:31:47 +00:00
prculley 8d5f2bd050 Fix ODT reports with links when run in non-English languages
Fixes #10911
2018-12-18 14:24:51 +00:00
prculley 96e4707c89 Allow addon Reports to specify a help button URL for options dialog
Fixes #10910
2018-12-18 14:21:30 +00:00
Nick Hall 8fc03f85a1 Fix Rebuild Secondary Indexes tool for dbapi backends
For dbapi backends, this tool will update the secondary columns
that are used for indexing.

Resolves #10757.
2018-12-18 14:18:03 +00:00
prculley b4b7911405 Fix dbapi set_name_group_mapping to properly close transaction
Fixes #10730
2018-12-18 14:14:59 +00:00
prculley 88373c0eb6 Fix Russian date handler crash when Russian .po isn't present
Fixes #10855
2018-12-18 14:10:56 +00:00
Leonhaeuser e8679a1eed update German translation 2018-12-04 18:35:30 +01:00
vantu5z b77378d2a1 update Russian translation 2018-12-04 15:58:07 +03:00
Pär Ekholm f921bba612 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-29 10:25:48 +01:00
niememat 58ffea1537 Update finnish translation 2018-11-29 06:51:45 +02:00
Paul Culley 1ae319ef2a Fix Quickview for missing table data on some Gtk Versions (#593)
Issue #10448

Issue #7867
2018-11-29 10:55:12 +11:00
Paul Culley 0340337107 Fix startup messages with bad filename (#720)
Fixes #10885
2018-11-29 10:37:49 +11:00
Paul Culley bb1d59a29d Restrict Place view Name col to the primary name (#673)
while allowing searchbar to find alt and primary names

related to
Issue #9276

while allowing searchbar to find alt and primary names.

Currently, the Place View and Place Selector name column shows a comma separated list of the primary and alt names for a place. With the advent of GeoNames and Gov data, the alt names lists are getting populated with (sometimes long) lists of (sometimes duplicated) names. This doesn't look very good in the view. I've gotten a couple of email complaints about this.

The Name column was originally extended (for Gramps50) to include alt names to allow the use of the top search bar (enabled when sidebar is turned off via 'View/Sidebar'), to perform a search through all the alt names as well as primary name. https://gramps-project.org/bugs/view.php?id=9276

This PR creates a new (hidden) column in the place model containing the full name list, and reverts the 'Name' column to the primary name. It also modifies the PlaceSelector and PlaceView classes to cause the search bar to use the new (hidden) column.
2018-11-29 10:23:11 +11:00
Paul Culley d01afb3000 Fix Person Sidebarfilter when using 'Event' and Reg expressions (#729)
Fixes #10659
2018-11-29 09:56:39 +11:00
Paul Culley a99c02d9a7 Fix Find Duplicate People; exception when deleting someone shown (#728)
outside of the tool
Fixes #10875
2018-11-29 09:42:03 +11:00
Paul Culley dd43cde20e Gedcom export, upgrade OBJE handling to Gedcom 5.5.1 style (#702)
Fixes #10797
2018-11-29 09:28:56 +11:00
Paul Culley e356573605 Fix CSV import to set marriage event role to family (#725)
Fixes #9952
2018-11-29 09:15:01 +11:00
Paul Culley 6f7699480d Update gramps bugtracker URL in all po files (#710)
Fixes #10543
2018-11-29 09:01:56 +11:00
Serge Noiraud 3798175b50 Narrative Web : thumbnails bad alignment. (#691)
* Narrative Web : thumbnails bad alignment.

Fixes #10854

also solves the following problems in the Nebraska style sheet :
 1 - float parameter has no value "center"
 2 - "[" instead of ";" at end of line 1100

* overlapping with long titles
2018-11-29 08:48:27 +11:00
Paul Culley 6672230f23 Fix typo in CitationListModel for sort change (#730) 2018-11-28 19:27:47 +01:00
Serge Noiraud 8c35277267 Fix Adding "ToDo" note crash when no active object (#685)
* Fix Adding "ToDo" note crash when no active object

Fixes #10795

* Better message when no active object.

* resolve conflict: Fixes #10795
2018-11-28 12:58:46 +01:00
Paul Culley 38bfb760a3 Fix Citation List view Source Last Changed Column to sort properly (#723)
Fixes #10893
2018-11-28 19:04:45 +11:00
pmraps df48f37a46 some pt_PT.po translation changes (#703)
* some header changes

* more changes
2018-11-28 18:47:16 +11:00
Paul Culley a02d7d0176 Fix for re-entrant main window close when user hits 'x' again (#724)
Fixes #10897
2018-11-28 18:33:06 +11:00
Paul Culley 999a3937d1 Fix exception when closing early editor in tree of editors (#706)
Fixes #10876
2018-11-28 18:05:14 +11:00
Serge Noiraud a7e683d909 Narrative Web: thumbnails problems in some cases. (#722)
Fixes #10890
2018-11-28 16:28:41 +11:00
Paul Culley 8e09235351 Fix 'Generate Book' dialog for crash on 'x' close (#726)
Fixes #10901
2018-11-28 16:14:42 +11:00
Paul Culley b934b0d424 Fix ToDo Gramplet for multiple attempts to edit a note (#719)
Fixes #10645
2018-11-28 15:34:12 +11:00
Paul Culley 9cc6e3a05e Fix Dashboard for multiple copies of a Gramplet (#718)
* Fix Dashboard for multiple copies of a Gramplet

Fixes #10650

* Fix Dashboard to recall minimized or undocked Gramplets
2018-11-28 15:17:19 +11:00
Paul Culley 6cdc88e6f8 Fix Person Sidebarfilter when using 'Event' and Reg expressions (#717)
Fixes #10659
2018-11-28 15:10:30 +11:00
Paul Culley d6dd1dc221 Fix Statusbar update to avoid intermittent exception on closed db (#716)
Fixes #10882
2018-11-28 14:56:36 +11:00
Paul Culley 21206af12b Fix FilterParser for much older 3.x custom_filters.xml files (#715)
Fixes #8075

Fixes #10669

Fixes #10516
2018-11-28 14:36:41 +11:00
Paul Culley 6506e85ea9 Fix IsDuplicatedAncestorOf filter rule to avoid crash on tree loop (#714)
Fixes #10685
2018-11-28 14:06:43 +11:00
Serge Noiraud 1d3202710a Narrative web : use latest version from openlayers. (#713)
Fixes #10884
2018-11-28 13:43:40 +11:00
Paul Culley 7078ca18ee Fix StyledTextEditor EditLink for root text changed to zero length (#709)
in the background

Fixes #9750
2018-11-28 13:26:47 +11:00
Paul Culley b1fc676a55 Fix AgeOnDate and some reports using SimpleAccess for missing surname (#708)
Fixes #9958

Fixes #9800
2018-11-28 13:13:30 +11:00
Paul Culley 5ef7739c60 Fix crash when a filter with loop in definition is defined (#707)
Fixes #10621
2018-11-28 12:59:27 +11:00
Paul Culley a9748571f3 Fix Find Duplicate People; exception when deleting someone shown (#705)
outside of the tool
Fixes #10875
2018-11-28 12:07:23 +11:00
Paul Culley b4e5bd9eb2 Fix HandleErrors related to LDS (#697)
* Fix ReferencedBySelection proxy for 'None' LDS Parents

Fixes #10865

* Fix HandleError in Citations Gramplet for lds place missing
2018-11-28 11:47:49 +11:00
Paul Culley e0e19492cd Change PlaceView drag from whole row to just icon during drag (#695)
Fixes #10863
2018-11-28 11:25:44 +11:00
Paul Culley 817f4b7205 Add drag Icon to drags from DisplayTabs Gramplet lists (#694)
Fixes #10859
2018-11-28 11:08:30 +11:00
Paul Culley 4c7b24ba30 Fix dialogs for 'Help' button closes the dialog, and non-functional 'Help' (#727)
* Fix Family Tree manager for 'Help' button closes dialog

Fixes #10589

* Fix selectors for 'Help' button closes dialog

Fixes #10589

* Fix 'Generate Book' dialog for 'Help' button closes dialog

Fixes #10589

* Fix TestcaseGenerator for 'Help' button closes dialog

Fixes #10589

* Fix Selectors to enable the 'Help' buttons to actually work

Fixes #10589
2018-11-28 08:30:06 +11:00
Pär Ekholm c7d552c238 Merge branch 'maintenance/gramps50' of https://github.com/gramps-project/gramps into maintenance/gramps50 2018-11-24 18:20:06 +01:00
prculley b32e9d812e Avoid HandleError when dragging an Added Family from EditFamily
Fixes #10858
2018-11-24 11:35:01 +00:00
prculley 8da22fcbbf Avoid HandleError when dragging an Added Person from EditPerson
Fixes #10857
2018-11-24 11:34:27 +00:00
prculley 582d61e67e Fix Clipboard rows cannot be sorted via drag/drop
Fixes #10849
2018-11-24 11:23:44 +00:00
prculley c110d9bc23 Better default directory choices for import/export
Use recent-export-dir as default for Export View
instead of the console default directory, which can be where
program resides (on Windows), or other inappropriate place.

Use USER_HOME for default directory on 'Export' (recent-export-dir)
if first run (default settings) rather than default directory, which
can be where program resides (on Windows), or other inappropriate
place.

Use USER_HOME for default directory on 'Import' (recent-import-dir)
if first run (default settings) rather than recent file which is
generally set to the grampsdb path.

Fixes #10802
2018-11-24 11:20:45 +00:00
SNoiraud f4966ca793 Records Report: call name not underlined in HTML
Fixes #10816
2018-11-20 20:38:37 +00:00
Christophe 2d0a5ed03c Fix French translation 2018-11-20 19:28:50 +00:00
prculley 79074587f3 Fix InteractiveSearch for find before model is populated
Fixes #10844
2018-11-20 18:18:12 +00:00
prculley c660ed1728 Fix Gedcom export for incorrect escaping with @#DFRENCH R@
Fixes #10833
2018-11-20 18:17:05 +00:00
prculley e926934a49 Fix reports for shared event attribute and note errors
Fixes #10720
2018-11-20 18:14:08 +00:00
prculley b175b5cb60 Fix Fan and Descendant Fan charts in Quadrant and Half Circle modes
The Descendant Fan chart had several bugs:
1) a bug that affected the centering of the chart for these modes
2) the chart was drawn in the wrong quadrant
3) the centering of the chart for printing was incorrect
   (the legend was off the page some of the time).
4) the sizing of the chart for printing was incorrect
   (for very small charts of one generation, the legend would
    overwrite the chart).
The Fan Chart for the quadrant view:
1) the centering of the chart for printing was incorrect
   (the legend was off the page some of the time).

Fixes #10817
2018-11-20 17:57:59 +00:00
Robin van der Vliet 8fe9069cbb Fixed issues in the Dutch relationship calculator
Fixed some issues in the Dutch relationship calculator and also
extended the ordinal and removed lists till 50, just like the
English lists.

* Replaced huge lists by reusable lists.

* Fixed bug in which uncles/aunts, nephews/nieces (niblings),
  siblings and cousins with an unknown gender show up as female.

* Fixed some misspellings:
    drieëntwingste > drieëntwinTIgste
    vierentwingste > vierentwinTIgste
    edelovergrootOUD > edelovergroot
    edeloudvergroot > edeloudOvergroot
2018-11-20 17:32:24 +00:00
Pär Ekholm 63610d0651 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-20 10:16:19 +01:00
Pär Ekholm 754ac7966c Update Swedish translation 2018-11-19 21:07:15 +00:00
niememat 51810ca973 Fix translation in Finnish 2018-11-18 20:10:56 +02:00
Pär Ekholm b43b0fa77f Update po/sv.po - all strings complete 2018-11-15 18:14:50 +01:00
Pär Ekholm f20dce51e8 Update po/sv.po 2018-11-14 20:14:59 +01:00
Pär Ekholm 254e196b2b Update po/sv.po 2018-11-14 19:41:46 +01:00
Pär Ekholm edc214221e Update po/sv.po 2018-11-13 18:37:02 +01:00
Pär Ekholm adfc1b8aee Update po/sv.po 2018-11-12 17:49:09 +01:00
Pär Ekholm 49f56bcc46 Update po/sv.po 2018-11-11 17:15:45 +01:00
Pär Ekholm 01efa725ce Update po/sv.po 2018-11-10 17:51:55 +01:00
Pär Ekholm 22b7f28edc Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-10 10:41:51 +01:00
niememat 780d83518d Update finnish translation 2018-11-10 04:43:12 +02:00
Pär Ekholm 7247073a03 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-09 19:42:17 +01:00
Pär Ekholm e5fedef66a Update po/sv.po 2018-11-09 19:28:52 +01:00
vantu5z 8be3a475d1 update Russian translation 2018-11-09 17:40:54 +03:00
Pär Ekholm c167cfa921 Update po/sv.po 2018-11-08 19:22:33 +01:00
Pär Ekholm 9eec554d4a Update po/sv.po 2018-11-08 18:30:57 +01:00
Pär Ekholm c81b3596ec Update po/sv.po 2018-11-08 14:31:35 +01:00
Pär Ekholm 6c2179dc2e Update po/sv.po 2018-11-08 12:25:02 +01:00
Pär Ekholm de1a4fec22 Update po/sv.po 2018-11-07 19:08:51 +01:00
Pär Ekholm f0ebaa3bc1 Update po/sv.po 2018-11-07 16:17:55 +01:00
prculley 263a082afe Merge in changes from Gramps50 2018-10-29 09:32:35 -05:00
SNoiraud f2bc982c3d NarrativeWeb fixes
Space between place, description and the event note when there are
many sources.
Change the css order between print and screen.
The chosen theme can erase prior values.
Add a width for the source column in all themes.

Fixes #10810
2018-10-21 18:43:11 +01:00
Richard Clay dd9ddab849 In personsidebarfilter, search on each part of name
Instead of requiring that the entire search string matches a single one of the Person's names, the function will require that each word in the search string matches any of the Person's name fields.

Fixes #7950
2018-10-20 21:30:20 +01:00
niememat 3046b0586c Fix translation in Finnish 2018-10-17 11:31:54 +03:00
Malte Renken cfa278886b RelGraphReport: Add an option to omit "irrelevant" family nodes 2018-10-12 20:58:04 +01:00
MJBMZ 1c430a6b91 Replace rounded corners checkbox by dropdown
It now allows rounded corners to be set more explicitly for
different genders (None/Male/Female/Both).
2018-10-12 20:25:51 +01:00
jose1711 b0eb712933 Do not use hyphen for living persons in hourglass graph 2018-10-12 19:36:42 +01:00
Jgon6 51a7ad9483 Include death anniversaries as an option in the birthdays report
Added the optional ability to list the anniversry of peoples deaths in
the birthday and anniversary report

Resolves #3540
2018-10-12 19:19:59 +01:00
Jgon6 d6e9d62fad Add an option to show years in the birthday report
Added an option to the birthday report that allows for the year of birth
(or in the case of a wedding it's year) to be printed in the report.

Resolves #5948
2018-10-12 19:19:59 +01:00
Jgon6 3bac4a1036 Added symbols to the birthdays report showing the type of event
Issue #3540
2018-10-12 19:19:59 +01:00
Jgon6 1995a7068c Birthday report dead indicator now user defineable
Fixed the birthday report so the dead icon is able to be set within the
options window
2018-10-12 19:19:59 +01:00
Jgon6 5dc06d023d Indicate if a person is dead in the birthdays report
Added a text option to have a string that will show after a persons name
in the birthday and anniversary report. This works for both birthdays
and anniversaries.

Issue #3540
2018-10-12 19:19:43 +01:00
SNoiraud d98a1857dc Make relationships optional in narrative web
Fixes #10454
2018-10-12 18:46:39 +01:00
Paul Franklin 7da8811327 Setting the year as an ordinal number in Croatian
With this commit, the "master" version of the Statistics Chart
report will show a year as an ordinal number in Croatian.

So our translators will have until 5.1.0 is released to translate
the two new strings, in all the supported gramps languages.

Issue #10822
2018-10-07 23:45:40 -07:00
Paul Franklin 375773d657 Setting the year as an ordinal number in Croatian
With this commit, two more reports now show a year as an
ordinal number in Croatian, and a year I missed before in
webcal.py is now fixed.

This commit also reverts the Croatian ordinal year fix in
the gramps50 statisticschart.py since upon reflection I
feel it would be better done in master, since then our
translators will have until 5.1.0 is released to do the
two new strings the fix requires.

Issue #10822
2018-10-07 23:43:36 -07:00
Paul Franklin 01060f0b0d name-note is not being cleared in Complete Individual report
I ran gramps with a fresh copy of the example.gramps tree,
then ran the Complete Individual report.  The options which
matter are "Entire Database" and "Include Notes" but I also
included the gramps-ID since that speeds up my work.

Then I noticed that hundreds of names at the end of the
output file all had the same note (N0001), whose text said
it referred to a specific person.

So I looked higher and the note inclusion started with I0044,
the default person.  It was real for him but not for the next
person after him, or all the people after her.

I introduced the problem when I fixed 10033, in d6a97cf90e.

Note that this bug is independent of the CIR fix in p.r. 676
and still happens even after that pull request is applied.
2018-10-07 23:36:32 -07:00
prculley 36779c1229 Fix View Column sizing so last column size setting is maintained
Fixes #10800
2018-10-07 18:14:01 +01:00
prculley 5b7f5164db Fix view so column widths are preserved when using filters
Fixes #10725
2018-10-07 18:13:51 +01:00
prculley 15db2dd603 Disable OSX specific menu items, added in 'Gramps' menu 2018-10-07 16:49:12 +01:00
prculley 97b15322d4 Add config option to use Toolbar Text 2018-10-07 16:49:12 +01:00
prculley 824bf7e40f Geps044 - Replace deprecated Gtk.UIManager, Gtk.Actions etc. 2018-10-07 16:49:12 +01:00
milotype 56fa261ef2 Better typography in graph reports
Replace hyphen with en-dash.
2018-10-07 16:16:19 +01:00
vantu5z 1e9a3841cd update Russian translation 2018-10-05 14:10:57 +03:00
Paul Franklin e6ddedf6c6 fix typo
in cbac98894b
2018-10-04 17:49:35 -07:00
Paul Franklin 325c3f22cc fix the place-format option in DDR and DAR
The place-format option was added to the Detailed Descendant
and Detailed Ancestor text reports in cbac98894b

But those two reports use the Narrator class to show many of
their places (and dates), and that class was not modified to
use the user's custom place format.

So if a user had created a custom place format and ran
either of those two reports, their places would be shown
inconsistently.  This commit fixes that.

(The non-detailed ancestor text report also uses Narrator to
show its places but that report has not had the place-format
option added to it, so this commit doesn't touch it.)
2018-10-04 09:23:38 -07:00
Paul Franklin 54be8d62f3 Setting the year as an ordinal number in Croatian
With this commit, three more reports now show a year as an
ordinal number in Croatian.

Issue #10822
2018-10-04 09:21:29 -07:00
prculley a40eca36d9 Fix bsddb for person sort with empty Surname list
Fixes #10078, #10577
2018-10-03 19:32:36 +01:00
Paul Franklin 4b17ca4724 Setting the year as an ordinal number in Croatian
When I started investigating 10822, I saw some Croatian dates
didn't seem to be working in 5.0.0, to my surprise.  I believe
I fixed that in the previous commit.

With this commit, the three reports now show a year as an
ordinal number in Croatian, so I consider 10822 fixed.

If there are any additional problems displaying Croatian,
please file additional bug reports ("one bug, one report").

Fixes #10822
2018-10-01 11:01:18 -07:00
Paul Franklin 69aaec11a5 Setting the year as an ordinal number in Croatian
When I started investigating 10822 I saw some Croatian dates
didn't seem to be working in 5.0.0, to my surprise.  There
seems to have been some kind of regression from 4.2.8.

But the Croatian translation for gramps hasn't been updated
in about three years -- except by non-Croatians.  So I don't
know why some "translated" strings which control how dates
are displayed were disabled (marked as "fuzzy") in this:
6c67053e1f

Also, I saw some code in the 4.2.8 Croatian date handler
which was not in the 5.0.0 Croatian date handler -- somehow.

So I believe this commit fixes the Croatian date handler.

Issue #10822
2018-10-01 10:59:51 -07:00
Serge Noiraud 896b77a165 Webcal: link problems in some cases (#661)
* Webcal: link problems in some cases

Year 2016 is highlighted by default instead of current year.

Fixes #10801

* Webcal: Missing links when muliyear unselected
2018-09-30 10:20:09 +02:00
Serge Noiraud 1b60193f77 Geoclose: exception when a family has no father (#662) 2018-09-29 19:20:50 +02:00
Robin van der Vliet 1efab19f1e Esperanto Translation Update eo.po (#660)
Made a lot of corrections and other stylistic improvements to the Esperanto file.
2018-09-27 11:21:15 +10:00
Paul Franklin e667431dd5 Report plugin krasch
Load data.gramps, start with the default person (I0037,
Edwin Michael Smith), run Family Descendant Tree, choose
"Start with the parent(s) of the selected first", hit OK:

.../descendtree.py", line 881, in start
    family2 = self.database.get_family_from_handle(family2_h)
...

Or start with I0057 (Anna Louise Smith), run Family Descendant
Tree, choose "Start with the parent(s) ...", hit OK:

.../descendtree.py", line 773, in start
    family2 = self.database.get_family_from_handle(family2_h)
...

Fixes #10811
2018-09-26 17:11:42 -07:00
Paul Franklin cc7e4fda85 [unhandled exception parsing "future dates" in some locales]
There is already a check in the MonitoredDate class for years
which are more than one year in the future, so such a date is
already going to be shown in red.

But some locales use the "datetime" library to parse typed-in
dates and that has a maximum year of datetime.MAXYEAR, 9999
currently, so dates greater than that produce a ValueError.

Besides adding checks for that, I have also made it so that
locales which don't need that library don't use it.

Fixes #10815
2018-09-26 14:04:52 -07:00
Paul Franklin 2490e2d07d Julian/Gregorian calendar issue when entering only year as date
when running gramps in Norwegian

Fixes #10687
2018-09-24 10:13:48 -07:00
Serge Noiraud e5c5a210b4 Events difficult to read (screen and mobile) (#658) 2018-09-23 12:27:55 +02:00
Paul Franklin 04a40c7a50 fix typo
in cf42e5a4b8 and cbac98894b

Fixes #10782
2018-09-17 21:33:44 -07:00
Leonhaeuser 44c8e3c0f0 update German translation 2018-09-08 17:03:48 +02:00
niememat 6f7242a773 New update for Finnish translation 2018-09-06 22:11:47 +03:00
niememat 358c3fc967 Update finnish translation 2018-09-06 21:58:36 +03:00
Paul Culley f1ca280441 Fix and restore Statistics Gramplet to 4.2.x status (#653)
Fixes #10754

A bit of history. bug 2060 was filed a long time ago (2008), and a patch was added to close it in 2016. I believe that the bug had already been patched by then, although I cannot be sure. The patch caused the Gramplet to update anytime the active-changed signal occurred on a person view. I suspect that this caused a fair amount of overhead on very large dbs as the entire person list was rescanned.

In any event, Doug Blank recently removed the original scan code, as well as some useful functionality. And left behind a bug where a value was always zero. The users email list had some complaints about the lost functionality, and I also saw some recent complaints that the gender statistics were incorrect. Turns out that the db's genderstats data was incorrect, probably due to crashes after db updates. The Genderstats don't get saved until db closes normally. In addition, running the Genderstats rebuild tool, did not immediately appear to correct the situation, Gramps had to be restarted to show the updated results.

I added the original statistics code back into the Gramplet, suitably updated for 5.0.x. So the Gramplet no longer depends on dbs genderstats, it scans for it now on its own.

I removed the update on active-changed function, so overhead is only present on actual db updates (which have their own signals). I tested that the add, edit, and delete person changes do properly cause the statistics to update now. So the active-changed signal is not necessary.
2018-09-06 08:59:41 +10:00
Paul Culley 482cecaa7e Fix Check and Repair to deal with bad references empty handle string (#657)
Fixes #10783

Check and Repair tool doesn't fix bad references when the reference handle is an empty string.
Found when rewriting the backlinks scan on same tool. I assumed that the prior checks had already corrected any bad forward references, and did not put in a test for them in my new code. The Travis test failed and when I debugged, I found that the tool had an exception on a handle that consisted of an empty string.

Its interesting to note that when I changed the code, a lot more citation and source references were fixed in the test.
2018-09-05 12:07:03 +10:00
Paul Culley b6c57ab3c3 Speed up Check and Repair, backlinks check stage. (#656)
Fixes #10618

* Speed up Check and Repair, backlinks check stage.

* Fix Check and repair; backlinks scan to deal with bad references
which should have been fixed in earlier checks!
2018-09-05 11:40:57 +10:00
Paul Culley f3b5f75e37 Fix strings containing deprecated illegal escape sequences (#648)
Python 3.6 and above has deprecated illegal string escape sequences. Escape sequences are preceded by a '\' and valid ones are "\n\t\r" etc. Illegal ones are not in the list https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals.

Previous to Python 3.6 these illegal sequences were ignored and the '\' was left in place. Pylint has been noting these for a while now.

This PR corrects these sequences in Gramps. I used

find . -name "*.py" | xargs -t -n 1 python3 -Wd -m py_compile 2>&1 | grep Depre

to locate the failing strings.
2018-09-04 12:03:17 +10:00
Ivan 7d9f4dcc80 [Whatsnext] check if db is open (#651)
Fixes #10732
2018-09-04 11:38:42 +10:00
Paul Culley 224748eb96 Fix usage of posixpath; should be os.path for os independence (#650)
Fixes #10740
2018-09-04 11:20:34 +10:00
Paul Culley 2aec83f057 Fix generate_checksum routine to avoid MemoryError crash (#649)
with very large files and 32-bit OS

Issue #10690
2018-09-04 10:41:27 +10:00
Paul Culley fd399323a6 Fix corrupted Bookmarks that can happen after Gramps crash (#655)
Fixes #10759
2018-09-04 10:16:21 +10:00
Paul Culley bb6b3edee2 Fix Merge Family when same parent is missing from both families (#654)
Fixes #10760
2018-09-04 10:02:39 +10:00
Paul Culley 3f7ea4418c Fix <ctrl>c in view to get selected item to clipboard (#652)
Fixes #10682
2018-09-04 09:43:49 +10:00
Paul Culley efcc115aa7 Fix Quickview Gramplet so updates work when changing active (#642)
Fixes #10713
2018-09-04 09:22:27 +10:00
Paul Culley 893c715a61 Fix place reference editor for bad cut/paste on set_latlongitude (#644)
Fixes #10719
2018-09-04 09:08:50 +10:00
Paul Culley 6bab78df21 Fix Find Database Loop Tool (bad import of _collections) (#643)
Fixes #10722
2018-09-04 08:53:22 +10:00
niememat 29019eed98 Fix translation in Finnish 2018-09-03 22:09:37 +03:00
Bernard Banko d8c006e0f7 Slovenian translation fixed to allow building mo 2018-08-25 22:27:31 +02:00
Bernard Banko b8438dddeb Slovenian translation updated 2018-08-25 22:14:42 +02:00
niememat 4ba28c637e Fix translation in Finnish 2018-08-18 12:29:06 +03:00
niememat ae84040bc7 Fix translation in Finnish 2018-08-11 18:25:28 +03:00
prculley 51e294f748 Fix up bad translation files after merge 2018-08-09 10:54:12 -05:00
Leonhaeuser cb65fd93ca Reviewed German translation Thanks to bmendl 2018-08-09 10:35:49 -05:00
niememat 5b9600d835 Fix translation in Finnish 2018-08-09 10:35:15 -05:00
John Ralls cf80d17040 File copy doesn't work if the glob can match directories. 2018-08-09 10:35:14 -05:00
John Ralls d4f906f22d Install the docs/gramps directory in the bundle.
Fixes bug #10705.
2018-08-09 10:35:14 -05:00
niememat d189e334d8 Fix and updated translation in Finnish 2018-08-09 10:35:14 -05:00
Ross Gammon a48a94d872 Update the Debian changelog after the 5.0.0 release 2018-08-09 10:35:13 -05:00
John Ralls 8e5dc220dc Release Gramps-5.0.0 on Mac. 2018-08-09 10:35:13 -05:00
Nick Hall dca2f610dc Bump to 5.0.1 2018-08-09 10:34:31 -05:00
Nick Hall 3d1833e307 Release Gramps 5.0.0 2018-08-09 10:33:57 -05:00
Nick Hall aa221cc3c7 Update Changelog and NEWS files 2018-08-09 10:33:19 -05:00
Nick Hall 51b7d1c420 Update translation template for new release 2018-08-09 10:30:58 -05:00
niememat 674d286f87 Fix translation in Finnish 2018-08-09 10:30:58 -05:00
John Ralls 0161c4b917 Correct binary test logic for primary mask.
state & get_primary_mask(another) tested (state & (primary | other)),
which will be true if state matches *either* primary *or* other, but
what is wanted in a not-negated test is state matching all bits of
(primary | other). match_primary_mask does that.

On the other hand there are also cases of "not state & (primary | other)".
no_match_primary_mask handles that, returning true if state matches none
 of the bits in (primary | other).

Fixes #10646.
2018-08-09 10:30:57 -05:00
prculley de31a42fc8 Fix BaseSelector to avoid long delay before display on large trees
Fixes #10634
2018-08-09 10:30:57 -05:00
SNoiraud 9c508de5fd Export options > Gui alignment issue
Fixes #10576
2018-08-09 10:30:57 -05:00
niememat 1b00d95ce4 New fix translation in Finnish 2018-08-09 10:30:57 -05:00
Espen Berg 78870decb8 Revised Norwegian bokmål 2018-08-09 10:30:56 -05:00
Espen Berg 1a5696eb2c Revised Norwegian bokmål 2018-08-09 10:30:24 -05:00
niememat 269d38da2c Fix translation in Finnish 2018-08-09 10:27:26 -05:00
Nick Hall 99f77b0a88 Fix dialog button order on non-Mac systems
Resolves #10585.
2018-08-09 10:27:25 -05:00
De Tran 264fdda4d0 Fix and update Vietnamese translation
Resolves #10681.
2018-08-09 10:27:24 -05:00
Sveinn í Felli 8092b88ad4 Update Icelandic translation 2018-08-09 10:12:17 -05:00
jose1711 3251e2ae88 Fix and update Slovak translation 2018-08-09 10:09:53 -05:00
jose1711 f718c5f8b4 Fix typo in translation 2018-08-09 10:09:53 -05:00
niememat a96a446b47 Fix translation in Finnish 2018-08-09 10:09:53 -05:00
niememat 5658411acf Fix translation in Finnish 2018-08-09 10:09:53 -05:00
niememat a4403d719e Fix translation in Finnish 2018-08-09 10:09:52 -05:00
Luigi Toscano 8597a10c40 Update Italian translation 2018-08-09 10:09:52 -05:00
Nick Hall d0c0045dc1 Update English (British) translation 2018-08-09 10:09:52 -05:00
De Tran 868abdc0d9 Update Vietnamese translation 2018-08-09 10:08:37 -05:00
Kaj Mikkelsen ebf88bf5c5 Update Danish translation 2018-08-09 10:08:35 -05:00
Lajos Nemeséri c3814a4e42 Update Hungarian translation 2018-08-09 10:07:53 -05:00
John Ralls 2a0b3afa4b Switch included moduleset to gitlab.gnome.org.
Fixes bug #10733.
2018-08-09 07:24:39 -07:00
John Ralls 52fe365919 Switch included moduleset to gitlab.gnome.org.
Fixes bug #10733.
2018-08-09 07:21:18 -07:00
Leonhaeuser 414aac4c7e Reviewed German translation Thanks to bmendl 2018-08-08 23:33:21 +02:00
niememat 037e26a5a3 Fix translation in Finnish 2018-08-08 14:43:17 +03:00
John Ralls 158d3a993b File copy doesn't work if the glob can match directories. 2018-08-05 13:18:01 -07:00
John Ralls 2ef35174d1 Install the docs/gramps directory in the bundle.
Fixes bug #10705.
2018-08-05 10:03:26 -07:00
niememat 3249938b88 Fix and updated translation in Finnish 2018-08-05 16:45:06 +03:00
Ross Gammon 9b18083e48 Update the Debian changelog after the 5.0.0 release 2018-07-25 21:56:42 +02:00
John Ralls 04bdeb8321 Release Gramps-5.0.0 on Mac. 2018-07-25 07:53:42 -07:00
Nick Hall 67061d58e2 Bump to 5.0.1 2018-07-24 15:11:18 +01:00
Nick Hall 0a66bad41a Release Gramps 5.0.0 2018-07-24 15:07:47 +01:00
Nick Hall e79535fe23 Update Changelog and NEWS files 2018-07-24 15:03:19 +01:00
Nick Hall 3c5c34d0c5 Update development status for new release 2018-07-24 14:20:41 +01:00
Nick Hall c9abe49d1e Update translation template for new release 2018-07-24 14:19:54 +01:00
niememat ca20641cb9 Fix translation in Finnish 2018-07-22 21:09:26 +03:00
John Ralls c558b8530b Correct binary test logic for primary mask.
state & get_primary_mask(another) tested (state & (primary | other)),
which will be true if state matches *either* primary *or* other, but
what is wanted in a not-negated test is state matching all bits of
(primary | other). match_primary_mask does that.

On the other hand there are also cases of "not state & (primary | other)".
no_match_primary_mask handles that, returning true if state matches none
 of the bits in (primary | other).

Fixes #10646.
2018-07-22 18:50:06 +01:00
prculley efb2a63492 Fix BaseSelector to avoid long delay before display on large trees
Fixes #10634
2018-07-22 18:46:07 +01:00
SNoiraud 1642757eb8 Export options > Gui alignment issue
Fixes #10576
2018-07-22 18:40:12 +01:00
niememat b0ee4684a1 New fix translation in Finnish 2018-07-22 13:53:17 +03:00
Espen Berg 4a561f44c7 Revised Norwegian bokmål 2018-07-22 11:19:51 +02:00
Espen Berg 4211dbf9f5 Merge branch 'maintenance/gramps50' of github.com:gramps-project/gramps into gramps50 2018-07-22 10:29:23 +02:00
Espen Berg 23c62de0d0 Revised Norwegian bokmål 2018-07-22 10:28:02 +02:00
niememat 4179cf4792 Fix translation in Finnish 2018-07-22 09:30:41 +03:00
Nick Hall 4c20cbd48a Fix dialog button order on non-Mac systems
Resolves #10585.
2018-07-21 23:28:05 +01:00
De Tran 5a98236239 Fix and update Vietnamese translation
Resolves #10681.
2018-07-21 23:16:29 +01:00
Sveinn í Felli 792caf73b7 Update Icelandic translation 2018-07-21 19:59:26 +01:00
jose1711 cfb9a4f664 Fix and update Slovak translation 2018-07-21 19:33:45 +01:00
jose1711 59021550e2 Fix typo in translation 2018-07-21 19:11:06 +01:00
niememat acf775ea90 Fix translation in Finnish 2018-07-20 23:01:59 +03:00
niememat f4199b494c Fix translation in Finnish 2018-07-20 14:33:01 +03:00
niememat 6fc7f4e0af Fix translation in Finnish 2018-07-18 17:34:24 +03:00
Luigi Toscano d508ce7fb9 Update Italian translation 2018-07-15 16:41:10 +02:00
Nick Hall a4aa8f90c3 Update English (British) translation 2018-07-13 18:36:28 +01:00
De Tran b33d7af284 Update Vietnamese translation 2018-07-13 14:53:02 +01:00
Kaj Mikkelsen e4e1f4ca05 Update Danish translation 2018-07-13 14:35:15 +01:00
Lajos Nemeséri 72bedf0af7 Update Hungarian translation 2018-07-13 14:29:26 +01:00
prculley bc39dda9e7 Use msgcat merged po files instead of git merge versions 2018-07-13 07:35:36 -05:00
prculley 257275f169 Merge from gramps50 2018-07-12 11:10:22 -05:00
Fedik 60ba912100 Update Ukrainian translation for Gramps 2018-07-07 17:54:52 +03:00
RossGammon 2a8240b26d Update Debian directory after Gramps 5.0.0-rc1 release. (#634) 2018-07-06 07:58:39 +10:00
Leonhaeuser c33fc7b240 Fix not matching translation csv import/export 2018-07-02 20:33:10 +02:00
Zdeněk Hataš 404647be05 Update Czech translation 2018-07-02 19:09:06 +02:00
Pier Luigi Cinquantini 0af818b0c1 Update Esperanto translation 2018-07-02 15:14:46 +01:00
niememat 8da84aaf23 Fix translation in Finnish 2018-07-01 12:14:58 +03:00
Paulo Henrique Paiva de Moraes d15a1376d3 Update Brazilian Portuguese translation 2018-06-30 17:04:42 +01:00
vantu5z 57bbe542b5 update Russian translation
substantially just merge with latest template
2018-06-30 18:44:23 +03:00
Nick Hall cbdb0d5431 Merge translation files with the latest template 2018-06-29 16:46:10 +01:00
Paul Culley ff129e2f64 Fix Custom filter update when created via sidebar (#630)
Fixes #10620

Adding a filter via the sidebar editor originally only updated the current view, other associated views did not see the new filter. First noticed in People views. This causes the 'filters-changed' to be emitted which updates all associated view.
2018-06-22 11:19:00 +10:00
Paul Culley 663745c7e8 Fix Gramplet configure (View/Configure) for large options (#629)
When a Gramplet uses a BooleanListOption with a lot of entries, along with other options, all the options take on the size of the large BooleanListOption, which doesn't work well at all.
2018-06-22 11:04:30 +10:00
Serge Noiraud 5df6ad564b Statistics Charts crashes with IndexError (#627)
Fixes #010626

In statistics charts, get_month is only localized and the calendar is unused.
If we have an Extra (Sansculottides) month in the french republican calendar
(index 13), we have this IndexError because the gregorian calendar is always
used and contains only 12 values.
2018-06-22 10:48:02 +10:00
John Ralls 1f3e516780 [Mac] Change accel for Undo History.
So that it doesn't conflict with a system binding for hiding the window.
Fixes #10619.
2018-06-10 20:09:41 -07:00
Paul Culley 25841f9540 Fix Family Lines/Family Colors picker for bad transient parent (#625)
Fixes #10623
2018-06-10 14:48:51 +10:00
Paul Culley 94bd8470d7 Fix import_as_dict to utilize user gramps_id prefixes (#626)
Issue #10622

Found when comparing dbs with large prefixes 'I%05d'; using database differences or import_merge addons.
2018-06-10 14:27:56 +10:00
Paul Culley 21408ab9d2 Fix error when opening bsddb db in read-only mode (#624)
Fixes #10615

BSDDB had errors when trying to open in read-only mode.
2018-06-10 14:11:33 +10:00
Paul Culley 31eecac590 Fix dbapi dbs for closeing read-only db crash (#623)
Fixes #10613

The sqlite (and other dbapi dbs) tried to save their metadata on a close operation, which doesn't work for read-only dbs.
2018-06-10 13:55:07 +10:00
Paul Culley 58c6da3fb5 Fix menus when operating with read-only db (#622)
Fixes #10614

An earlier attempt to deal with closed dbs messed up the read-only ActionGroup settings. This corrects that situation.
2018-06-10 13:40:36 +10:00
Sam Manzi 9c21b98601 Fix Name formats to show all parts (#608)
Fixes #10420

Allows reports to use the name format specified by the user.
2018-06-02 10:26:23 +10:00
Paul Culley 8735f8a014 Fix dialogs for crash when canceling via 'x' (#620)
* Fix import dialog for crash when canceling via 'x'

Fixes #10607

* Fix 'Make Backup' dialog for crash on 'x' close

Issue #10607

* Fix Family Lines/Family Colors/add dialog crash on close with 'x'

Issue #10607
2018-06-02 09:58:06 +10:00
niememat 9acf512663 Fix translation in Finnish 2018-05-28 14:43:08 +03:00
John Ralls 50e8161984 Release 5.0.0-rc1 on Mac. 2018-05-22 18:11:13 -07:00
John Ralls 69be94843c Remove obsolete omeat-python-modules dependencies. 2018-05-20 14:28:45 -07:00
prculley ac5ed9fde0 Bump to v5.0.0-rc2 2018-05-20 15:49:27 -05:00
prculley 2869e4d8a3 Release Gramps v5.0.0-rc1 2018-05-20 15:44:15 -05:00
Paul Culley f2392f910d Fix merge persons when removed person was the Home (default) person (#619)
Fixes #10597

If a person merge removes the default (Home) person, the previous code started having HandleError crashes.
This checks for and corrects this issue.
Did not see the issue with 4.2.x because there were no HandleErrors.
2018-05-20 13:31:41 +10:00
Espen Berg 9e61809b17 Received revised Norsk Nynorsk from Sigmund Lorentsen 2018-05-01 2018-05-17 21:30:15 +02:00
Espen Berg 9e2b935db1 revised Norwegian bokmål 2018-05-17 21:28:34 +02:00
niememat aa47410902 Update finnish translation 2018-05-15 11:39:16 +03:00
vantu5z c72af598b1 Update Russian translation 2018-05-15 09:40:06 +03:00
Nick Hall 9a386574d8 Revert "Clone event w/o references (2nd pass, part B)"
This reverts commit 208feceb03.

Changes requested in the PR not made.  Such a change requires
discussion on the list first.
2018-05-12 23:09:27 +01:00
Nick Hall 90bdb0a840 Revert "Embedded Clone Event w. references (2nd pass, part A)"
This reverts commit ae322dbdc8.

Changes requested in the PR not made.  Such a change requires
discussion on the list first.
2018-05-12 22:59:52 +01:00
Paul Culley 4daf7a9c29 Fix FanChartDesc for typo (copy/paste error). (#611)
Fixes #10565

- Bug occurs when selected person has more than 4 parents.
2018-05-09 13:21:37 +10:00
Paul Culley 0452848f57 Fix Tag editor for multiple tag removes (#601)
Fixes #10552
2018-05-02 14:29:40 +10:00
Serge Noiraud db92ab7d5a In Narweb, Relationship to Center person reversed (#606)
Fixes #10553
2018-05-01 10:46:29 +10:00
Paul Culley 4dc67910fd Fix Citation Tree view for crash after plugin reload (#602)
Fixes #10541
2018-05-01 10:31:29 +10:00
Paul Culley ebc0f25bc7 Fix 'References' Gramplet for issue when activated during an import (#584)
* Fix 'References' Gramplet for issue when activated during an import

Fixes #10507

* disable Application Menu during import
2018-05-01 09:36:23 +10:00
Paul Culley 67dcffee20 Fix Person/Family/Event view updates on various associated changes (#603)
* Fix Person/Family/Event view updates on various associated changes

Fixes #10532

* Fix Event view for changes in Main Participants

* Fix Person/Event/Place views for update to a Place or enclosing place
2018-05-01 09:09:49 +10:00
Alois Poettker ae322dbdc8 Embedded Clone Event w. references (2nd pass, part A) 2018-04-23 11:00:26 +02:00
Alois Poettker 208feceb03 Clone event w/o references (2nd pass, part B)
Feature request #9604

This functionality in the Event list doubles an event with all the tags, citations, media, attributes and notes, but without the references. Its like an event addition, but with default values.
2018-04-23 11:00:26 +02:00
Paul Culley b4946dee9c Fix Person views to update on changes in birth/death event/place (#597)
Fixes #10532
2018-04-18 07:58:51 +10:00
vantu5z 8f33163510 update Russian translation 2018-04-13 09:11:17 +03:00
niememat a3d43fdc32 Update finnish translation 2018-04-12 10:09:07 +03:00
Leonhaeuser befebe8b0c update German translation 2018-04-11 19:27:52 +02:00
Nick Hall 9ee777274c Allow unicode characters in json export 2018-04-10 18:36:46 +01:00
SNoiraud d3892c0e82 Filtering problems in the geography view 2018-04-10 18:31:32 +01:00
SNoiraud 17ffc5460c Crash when looking for a place within an area
Fixes #10531
2018-04-10 18:31:11 +01:00
Joachim Kuebart 09ca223f1b Bugfix: use same box margin for SVG and PDF
When drawing text boxes in SVG, the text is often placed too far to the right and touches the right frame. For an example, generate a »Descendent tree« in SVG format. In the PDF version, the text does not touch the frame of any boxes.

This PR fixes the problem by using the same text displacement (margin) inside the box as the PDF driver. The code is taken from gramps/plugins/lib/libcairodoc.py.
2018-04-10 17:31:43 +01:00
SNoiraud 1223cbda1f Webcal crashes after Narrative Web site exists
+ multiyear select option problem

Fixes #10524
2018-04-10 17:15:29 +01:00
Nick Hall 01ce73fc04 Catch exceptions when loading recent files 2018-04-10 17:11:07 +01:00
Nick Hall e53603a1fc Check that backend exists before loading database 2018-04-10 17:11:07 +01:00
Nick Hall 04d6ca3a49 Disable family tree manager features when a backend is unavailable
If the default backend is unavailable, then reset it to bsddb.
2018-04-10 17:11:07 +01:00
vantu5z 9e668a528d update Russian translation 2018-04-03 08:28:32 +03:00
niememat 96a903c57f Update finnish translation 2018-04-01 11:41:24 +03:00
Nick Hall 75921ceaf4 Enclose tree report image path and file name in braces
Fixes #10495.
2018-03-31 16:34:36 +01:00
Leonhaeuser 310bece2bc fix syntax error in German translation file 2018-03-30 21:21:40 +02:00
Leonhaeuser 565e570a71 update German translation 2018-03-30 21:13:25 +02:00
SNoiraud 29735eef7d Crash when selecting an old note, event, media, ...
Try to sort on another column.

Fixes #10519
2018-03-29 15:56:49 +01:00
Nick Hall cb0bd32aa3 Merge pull request #589 from sam-m888/fixhelplinks50. 2018-03-29 15:46:32 +01:00
Sam Manzi 469739633c [NewRepositoryEditor]Fix help link 2018-03-28 12:59:09 +11:00
Sam Manzi 495c7f310a [ReorderGrampsID]Fix broken help link 2018-03-28 12:52:23 +11:00
Paul Culley 353fc50770 Fix FTM for delete tree, followed by close; Title etc. shows old tree (#587)
Fixes #10513
2018-03-27 13:43:56 +11:00
Paul Culley ca9df38b11 Fix Relationship path between filter for silent fail (#586)
Fixes #10509
2018-03-27 13:18:56 +11:00
Herb Miller Jr fd55f0abff Add configuration flag --no-compress-manpages. 2018-03-26 19:50:32 +01:00
vantu5z e1ca8303e5 update Russian translation 2018-03-26 11:29:55 +03:00
niememat a2879f1717 Update finnish translation 2018-03-25 19:39:59 +03:00
John Ralls 89ad092ac1 Don't strip newlines from builder files.
Fixes #10514.
2018-03-25 08:59:51 -07:00
Leonhaeuser 6c8de19fc5 update German translation 2018-03-25 08:33:37 +02:00
vantu5z dcf3caf946 update Russian translation 2018-03-24 09:37:34 +03:00
Sam Manzi f1e28c1e28 List sort by number for citation confidence level (#583)
* Fix confidence level sort in list views

-based on the date-sort code.

Fixes #10506

* Fix confidence level tooltip

-Stop run on text.

Resolves #10506
2018-03-22 15:40:53 +11:00
Nick Hall 0d1aef889e Fix error in place displayer when offset is outside valid range
Resolves #10493.
2018-03-21 20:43:13 +00:00
vantu5z cec9f55769 update Russian translation 2018-03-15 09:28:08 -03:00
Paulo Henrique Moraes 32dd3a2e14 [pt_BR]Translation updates and corrections (#582)
- Portuguese (Brazil)
2018-03-15 11:26:59 +11:00
Sam Manzi 23f69f5bc2 Fix places in example.gramps (#578)
- Moved Greek places into top level Greece entry & added English names.

- Removed Puerto Rico as a country as part of USA
2018-03-14 10:53:38 +11:00
Sam Manzi ec6e9d7ef8 Use sgettext for Name Format dialog (#580)
Fixes #10484
2018-03-14 10:20:23 +11:00
Sam Manzi 6f52d7371e Enable copying the birth & death fields for relationship view (#579)
...I did something similar(as in #575) for the relationship view...

Resolves #7874
2018-03-11 10:51:51 +11:00
Sam Manzi e5a5f212bc Allow Copying of text fields for Details tabs (#575)
Allow selection of text fields from details tab in selected views with Details gramplets.

-  Person Details
-  Place Details
-  Repository Details

Resolves #7874
2018-03-11 10:32:19 +11:00
Serge Noiraud 2a297623f2 Geography: KML media objects not shown on map. (#577)
Geography doesn't conform to the relative paths
If a place has no coordinates, KML files are not displayed.

Fixes #10487
2018-03-10 13:25:25 +11:00
Paul Culley ae11eceef7 Fix Fan charts for scrolling/resizing of window; bad rendering (#572)
Fixes #10381
2018-03-10 12:53:34 +11:00
Paul Culley babe13f811 Fix up Clipboard for various issues (#569)
* Fix Clipboard for HandleErrors during db changes

Fixes #10475

* Clipboard pylint

* Fix Clipboard for Drop/Edit of Surname group in People Tree view
2018-03-10 11:39:18 +11:00
Paul Culley a668f0d04f Fix Relationship Graph for extraneous families when using filter (#576)
Fixes #10492
2018-03-09 09:26:00 +11:00
prculley 8c1a244b1e Fix export gpkg when media files have fractional timestamps.
Fixes #10424
2018-03-07 23:03:28 +00:00
Nick Hall 7aa4258046 Remove reference to postgresql in core code 2018-03-07 16:50:01 +00:00
Nick Hall 1c5ae89d86 Move dbapi-specific code out of DbGeneric 2018-03-07 16:11:45 +00:00
Nick Hall 75bf103429 Create _schema_exists method 2018-03-07 15:52:12 +00:00
Nick Hall cf42e5a4b8 Fix place format option in place report (#561)
* Fix place format option in place report

Resolves #10467.

* Use -1 instead of None for default place format

* adds New [Place format:] option on the [Report Options (2)] tab
2018-03-07 09:53:21 +11:00
Serge Noiraud 433677c905 [Narrative Web Report]Incorrect heading for stepmother or stepfather (#567)
Fixes #10478
2018-03-07 09:33:27 +11:00
Paul Culley 6cbd6ed8d3 Fix Book TOC and Index numbering and placement (#565)
Fixes #10452
2018-03-07 09:12:28 +11:00
Paul Culley 51df2c188d Fix Fan Chart(s) so they don't crash when opened as last view (#571)
Fixes #10440
2018-03-05 14:34:55 +11:00
Paul Culley 7180806afd Fix Organize Tag editor for exception on 'x' close (#570)
Fix Organize Tags editor for exception on 'x' close
2018-03-05 14:18:51 +11:00
niememat 8fc8668921 Fix and updated translation in Finnish 2018-03-03 21:04:55 +02:00
prculley 5dfcf2266f Change BaseSelector so that selection is kept during Find/Clear
Fixes #10421
2018-03-03 18:41:54 +00:00
Jgon6 0ae51c9522 Changed behavior of "Look up with Map Services"
Removed the section that looked up by city, and country from the Map
Services lookup for Google and Open Street Map.

Resolves #9486
2018-03-03 17:35:51 +00:00
Nick Hall 59bd9f040d Merge branch 'gramps50' 2018-03-03 17:29:32 +00:00
Paul Culley 1687616519 Fix multi-page Graph output to pdf with filenames containg spaces (#560)
Fixes #10470
2018-03-03 09:00:00 +11:00
Paul Culley 6bf33ab899 Fix Clipboard for right-click on empty clipboard (#566)
Issues #10473
2018-03-01 09:18:36 +11:00
Sam Manzi 41a2a46713 Fix ImportError & update API docs year 2018 (#564)
- Fixes ImportError: No module named 'gramps.plugins.db.dummydb'

-  Update Copyright to 2018
2018-02-28 16:53:37 +11:00
Zdeněk Hataš fd4344bc07 Update Czech translation 2018-02-26 15:08:44 +01:00
vantu5z ef395f49fe update Russian translation 2018-02-24 10:48:54 -03:00
Serge Noiraud f0719c9eff Privacy problem with the relation to the center person. (#555)
Bug #12345
2018-02-24 08:34:58 +01:00
Paul Culley 9c5951a9e9 Fix Report Options when used with empty db (#554)
Fixes #10457
2018-02-24 09:37:36 +11:00
arnaullv 05dd44cfe2 Updated Catalan translation 2018-02-23 18:08:11 +00:00
Paulo Henrique Moraes df00dd1f32 Brazilian portuguese update 2018-02-23 14:58:38 -03:00
Nick Hall 7b6f46d595 Merge pull request #552 from RossGammon/update_deb_dir. 2018-02-23 17:57:04 +00:00
Ross Gammon fbcbdfa991 Finalise debian/changelog for beta1 release.
Also fix old syntax & trailing whitespace issues
2018-02-23 17:54:22 +00:00
Ross Gammon 8335bbf20f Enable extra tests that were failing for alpha3 2018-02-23 17:54:22 +00:00
Ross Gammon 2084bb5d0e Patch person_rules_test.py
To remove hard coded build path from import. Fixes FTBFS due to test failure.
2018-02-23 17:54:22 +00:00
Ross Gammon dfe530fdd1 Delete debian/NEWS file, only really applies in Debian 2018-02-23 17:54:22 +00:00
Ross Gammon 910d7199a2 First beta release of gramps 5.0
* First beta release of gramps 5.0
* Sync debian directory with Debian experimental branch on salsa
* Point Vcs URLs at the Gramps Project on Github
* Correct spelling in debian/rules, node > nose
* Delete gbp.conf, not required as gbp not used to build package
2018-02-23 17:54:22 +00:00
Ross Gammon b208b7a240 Remove gbp.conf, will not be using gbp to build deb package
Avoids updating it for every branch used to build it
2018-02-23 17:54:22 +00:00
Ross Gammon ee470deaca Fix spelling in d/rules node > nose 2018-02-23 17:54:21 +00:00
Ross Gammon c149c5f2fa Update Vcs URLs to point at Gramps Github repo 2018-02-23 17:54:21 +00:00
Ross Gammon fd5433363e Resync debian dir from Debian 5.0 experimental branch 2018-02-23 17:54:21 +00:00
Ross Gammon 1ca875a2be Update debian/changelog with releases since 4.0.3 2018-02-23 17:54:21 +00:00
Ross Gammon 43646e592b Fix testsuite failure when build happens out of the source tree.
Build path was hardcoded in an import in:
gramps/gen/filters/rules/test/person_rules_test.py

Fixes #10450.
2018-02-20 18:02:00 +00:00
niememat ca49b56774 Update finnish translation 2018-02-20 18:22:28 +02:00
prculley c4bc2d6823 Some POTFILES fixes 2018-02-20 09:56:07 -06:00
Leonhaeuser 854ff911a3 update German translation 2018-02-19 19:34:54 +01:00
John Ralls 965f7f7554 Release Gramps 5.0.0-beta1 on MacOS. 2018-02-18 22:13:48 -08:00
prculley 6c279945e0 Bump to 5.0.0-beta2 2018-02-18 08:24:13 -06:00
Nick Hall 19f8c3561c Merge branch 'gramps50' 2018-02-09 00:13:43 +00:00
Serge Noiraud 79ff9bc216 Geocoding: associate a lat/lon to a place name (#515)
* Geocoding: associate a lat/lon to a place name

Fixes #09642

* Some cleanup

* update README.md

* Remove url from message dialog
2018-01-18 09:11:51 +01:00
prculley b54672d28d Leak (Uncollected Objects); allow user to cancel long screen update 2018-01-08 19:22:27 +00:00
mb06cs 6b42d71158 endoflinereport.py: sort generation during output 2018-01-06 13:32:43 +01:00
Paweł Tomkiel ac593d814d fixing polish places translations 2018-01-04 23:07:42 +00:00
Nick Hall 617e2212c8 new gramps.pot translation template 2018-01-04 22:59:31 +00:00
Nick Hall ad15ef7961 Merge branch 'gramps50' 2018-01-03 21:32:14 +00:00
niememat 406faa5603 Update finnish translation 2017-11-25 10:44:45 +02:00
Serge Noiraud 4e0d562208 Various Feature Requests in Narrative Web (#468)
Issue #06772
2017-11-23 09:40:52 +01:00
Serge Noiraud 43ef686622 Narrative Web Feature requests : (#466)
Sort "Surname" web page by given name and birth date.
Surname list doesn't use default name format

Fixes #05315, #08067
2017-11-23 09:39:12 +01:00
Serge Noiraud d59fe6b2af Display Lat/Lon optionally on places list page (#467)
Fixes #05382
2017-11-23 09:37:47 +01:00
Serge Noiraud d677a1a785 Add extra page to narrativeweb. (#465)
Fixes #02630
2017-11-23 09:36:13 +01:00
Leonhaeuser be776d6a31 updated German date handler: added some missing Latin month names and some old German month names 2017-10-05 21:34:23 +02:00
Nick Hall 1482fedb9c Merge branch 'gramps50' 2017-09-23 17:08:52 +01:00
Sam Manzi 00f8df60ce Revert "Tidy up mocking code (#438)[First commit]"
This reverts commit 8ebb4d35fa.
2017-09-23 07:50:48 +10:00
Jonathan Biegert f31caf1ea4 enable Graphviz node port selection, optionable (p.r. 456)
This enables the headport and tailport attributes for all edges in
the Graphviz file. The default (off) value makes the arrows between
persons and/or family nodes attach their ends to the respective node
at any position. When this option is selected, the position facing
the node on the other side of the arrow is always chosen.
2017-09-17 17:20:23 -07:00
Nick Hall 8ebb4d35fa Tidy up mocking code (#438)[First commit] 2017-09-17 11:03:39 +10:00
Serge Noiraud c5f2717623 Gramps 'Views' are not named in the window header (#448)
Resolves #001675
2017-09-12 10:05:46 +10:00
Serge Noiraud e5d5cfbd3a Allow Home person to be set in Relationship and Pedigree view (#446)
Resolves #0001970
2017-09-01 10:41:24 +10:00
Sebastian Schubert bd5f6e4711 example.gramps: add some non-primary participants to events
The following additional participants were added:
Death of Garner, Anderson:
* Page, Elizabeth (Witness)
* Farmer, Miranda Keziah (Witness)
* Page, David (Informant)

Birth of Thornton, James Arthur:
* Jankowski, Margaret Jane "Maggie" (Witness)
* Garner, Raymond E. (Informant)

Marriage of Garner, Lewis Anderson and Martel, Luella Jacques:
* Garner, Robert W. (Witness)
* Martel, Henry (Witness)
* Page, Robert (Clergy)
* Blanco, L. J. (Clergy)
2017-08-08 12:41:54 +01:00
Leonhaeuser e15deff4ed synced with gramps 50 2017-08-03 20:46:41 +02:00
romjerome 9d906c29a2 update french translation 2017-08-01 12:20:05 +02:00
romjerome 6577d43e4e merge forward (working release steps on gramps42) 2017-08-01 12:03:46 +02:00
Alois Poettker 1a065485e3 Extend Pro-Gen importer II
Adapted to Pro-Gen test fix, expanded functionality and fixed
minor bugs.
2017-07-27 19:05:52 +01:00
schoonc 009783a59a Add pycharm dir to .gitignore 2017-07-27 18:23:55 +01:00
Nick Hall 1b4f70c808 Fix permissions on leak gramplet 2017-07-27 18:18:53 +01:00
niememat dd4a727521 Update finnish translation 2017-07-27 09:48:08 +03:00
Paul Culley ebb7111f25 An improved Leak (Uncollected Objects) Gramplet (#345)
* Improved leak detector (debugging tool)

* Fix DummyDb so it garbage collector can reclaim it after close

* Fix leak gramplet so pop-ups use correct transient parent
2017-07-27 12:15:38 +10:00
Nick Hall 86fd14613e Merge branch 'gramps50' 2017-07-25 21:45:37 +01:00
Alois Poettker 5276461239 Tidy up code 2017-07-18 18:25:29 +01:00
Alois Poettker 40f47bc22d Delete multiple events 2017-07-18 18:20:55 +01:00
Nick Hall 8150403ccb Revert "Simplify import plugin unit tests"
This works with python 3.6 but not with 3.4.

This reverts commit b43d94ab16.
2017-07-18 16:57:55 +01:00
Nick Hall b43d94ab16 Simplify import plugin unit tests 2017-07-18 16:15:01 +01:00
Nick Hall 849290a3b7 Fix Pro-Gen unit test 2017-07-18 00:06:30 +01:00
Leonhaeuser 0b617e9fd6 update German translation
Fix #0010131
2017-07-15 00:23:00 +02:00
Lajos Nemeséri 6eb435142e Update Hungarian translation 2017-07-08 13:34:34 +02:00
Alois Poettker e14ea777d5 Extend Pro-Gen importer functionality 2017-07-02 23:16:10 +01:00
Paul Franklin 46d73a16a0 add verify.py rules: match same birth or death date as marriage date
Issue #2583
2017-07-02 13:37:17 -07:00
Fedik 4d2b918d39 Update Ukrainian translation 2017-07-02 17:23:56 +03:00
romjerome 4acfdcce52 update french translation 2017-06-30 09:20:12 +02:00
arnaullv f3b3eec211 Updated catalan translation to latest template 2017-06-26 22:06:29 +01:00
niememat a840566e02 Update fix finnish translation 2017-06-24 19:33:00 +03:00
Nick Hall f6a2199f68 Merge branch 'gramps50' 2017-06-22 17:47:33 +01:00
Nick Hall dfc9dde32d Merge branch 'gramps50' 2017-06-15 16:44:15 +01:00
Zdeněk Hataš 50f93f54ec czech translation update 2017-06-05 11:49:50 +02:00
Nick Hall 9cb1d96725 Merge branch 'gramps50' 2017-06-03 22:20:03 +01:00
Nick Hall 40013dccc3 Merge branch 'gramps50' 2017-06-02 23:53:56 +01:00
Serge Noiraud 24af1b8420 8200: Person Relatives Tab should use the type from the relationship (#396)
* 8200: Person Relatives Tab should use the type from the relationship

* 8200: Flag variables as there are now two variables.
2017-06-02 20:07:31 +02:00
Serge Noiraud 213d656df4 10049: tabs reorganization in narrative web. (#406) 2017-06-02 13:20:21 +02:00
Nick Hall c09b4e96d2 Remove trailing whitespace 2017-05-23 19:52:19 +01:00
Nick Hall a80875e00c Update Travis for gramps51 2017-05-23 19:51:24 +01:00
Nick Hall bbdedb5097 Update a few missed version numbers 2017-05-23 19:49:23 +01:00
Nick Hall dd0671b111 Bump all version numbers to 5.1 2017-05-23 18:30:29 +01:00
801 changed files with 428824 additions and 341395 deletions
+3
View File
@@ -23,5 +23,8 @@ test/data
Thumbs.db
ehthumbs.db
# IDE
.idea/
# Glade temp files
*~
+2 -2
View File
@@ -126,10 +126,10 @@ class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# Regular expression matching correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$
function-rgx=(([a-z_][a-z0-9_]{2,30})|(_T_))$
# Naming hint for function names
function-name-hint=[a-z_][a-z0-9_]{2,30}$
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
+6 -6
View File
@@ -72,7 +72,7 @@ install:
# by the automatic git checkout.
# Download Sean Ross-Ross's Pure Python module containing a framework to
# manipulate and analyze python asts and bytecode. This is loaded to
# manipulate and analyze python asts and bytecode. This is loaded to
# /home/travis/build/gramps-project/gramps/meta
# FIXME: This should be loaded from the release directory at
# https://pypi.python.org/pypi/meta
@@ -95,11 +95,11 @@ before_script:
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps50/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps50/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps50/plugins -xzf ExportRaw.addon.tgz
- mkdir -p ~/.gramps/gramps51/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
+2
View File
@@ -64,6 +64,8 @@ Martin Hawlisch martin.hawlisch@gmx.de
Nick Hall nick__hall@hotmail.com
Paul Culley paulr2787@gmail.com
Peter Landgren peter.talken@telia.com
Raphael Ackermann raphael.ackermann@gmail.com
+168 -1140
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -133,7 +133,7 @@ Gramps is a [http://en.wikipedia.org/wiki/Gtk GTK] application. Gramps needs to
The Linux Genealogy CD can function as a live CD that you boot directly from. You can then run Linux and Gramps off the CD, even if your computer is entirely Windows.
An experimental Windows installer is available, however we do not have the manpower to offer support for Windows. A windows mailing list is available however and we do do our best to solve windows related problems.
An Windows installer is available for 32 and 64 bit versions of windows from Windows versions 7 through 10. As with all other support, we do do our best to solve windows related problems.
8. Does it work with the Mac?
@@ -145,7 +145,7 @@ This present version of Gramps (2.2.x) does not appear to have been ported by th
9. What are the Minimum Specs to run Gramps?
We would recommend at least an 800x600 video display. For Gramps 2.0, the memory requirements have been reduced, and Gramps can run quite efficiently on a 256MB system, holding considerably more people. A system with 512MB should be able to hold around 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
We would recommend at least an 800x600 video display. For Gramps 5.x, Gramps can run quite efficiently on a 3GB memory system. A system with that much RAM should be able to hold more than 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
==Preferences==
@@ -181,7 +181,7 @@ The nice thing about standards is that there never is a shortage of them. Gramps
15. How do I import data from another genealogy program into Gramps?
The best way is to create a new gramps database file (.grdb), and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
The best way is to create a new gramps database file, and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
16. Can I install Gramps on a Linux Web Server and use it via a web browser? This would enable my relations worldwide to access and update it.
@@ -315,7 +315,7 @@ gramps-devel@lists.sf.net :-)
The next best thing would be to submit a good bug report. This can be done in
one of the two ways: (1) send your report to gramps-bugs@lists.sf.net
or (2) file your report with the bug tracker system at
http://bugs.gramps-project.org (this function is also
https://gramps-project.org/bugs/ (this function is also
available by selecting "Help->Report a bug" from gramps main menu).
A good bug report would include:
+1 -3
View File
@@ -1,5 +1,5 @@
include ChangeLog
include AUTHORS
include ChangeLog
include COPYING
include FAQ
include Gramps.py
@@ -10,11 +10,9 @@ include RELEASE_NOTES
include TODO
include CONTRIBUTING
include TestPlan.txt
recursive-include bash *
recursive-include data *
recursive-include debian *
recursive-include docs *
recursive-include example *
recursive-include gramps *
recursive-include help *
recursive-include images *
+528 -1533
View File
File diff suppressed because it is too large Load Diff
+19 -2
View File
@@ -10,8 +10,8 @@ Requirements
============
The following packages **MUST** be installed in order for Gramps to work:
* **Python** 3.2 or greater - The programming language used by Gramps. https://www.python.org/
* **GTK** 3.10 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
* **Python** 3.3 or greater - The programming language used by Gramps. https://www.python.org/
* **GTK** 3.12 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
* **pygobject** 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+ https://wiki.gnome.org/Projects/PyGObject
The following three packages with GObject Introspection bindings (the gi packages)
@@ -103,6 +103,23 @@ The following packages are optional:
More font support in the reports
* **geocodeglib**
A library use to associate a geographical position (latitude, longitude)
to a place name. This is used if you already have osmgpsmap installed.
If installed, when you add or link a place from the map, you have a red line
at the end of the table for selection.
Debian, Ubuntu, ... : gir1.2-geocodeglib-1.0
Fedora, Redhat, ... : geocode-glib
openSUSE : geocode-glib
ArchLinux : geocode-glib
...
* **fontconfig**
Python bindings of fontconfig are required for displaying
genealogical symbols
Optional packages required by Third-party Addons
------------------------------------------------
+201 -12
View File
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #EEE;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #999;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -109,6 +128,7 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
text-decoration: underline;
@@ -204,6 +224,93 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -330,6 +437,10 @@ table.IndividualList td.ColumnSurname {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#GalleryNav {
@@ -362,7 +473,15 @@ table.IndividualList td.ColumnSurname {
margin: 0px auto;
display: block;
border: solid 1px #999;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -379,13 +498,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 50em;
margin: 2em auto;
padding: 3em;
background-color: #EEE;
border: solid 1px #999;
}
#Contact img {
#Contact #GalleryDisplay img {
float: right;
border: solid 1px #999;
}
@@ -399,6 +515,12 @@ div#SourceDetail {
#Contact #city:after {
content: ",";
}
@media only screen and (max-width: 1080px) {
#Contact,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
/* Download
----------------------------------------------------- */
@@ -408,20 +530,29 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
float: right;
margin: 1em;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -444,13 +575,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -458,6 +609,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #999;
}
@@ -465,6 +650,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -528,6 +716,7 @@ a.familymap {
}
#footer > * {
background-color: #EEE;
font-size: 80%;
}
#footer p#createdate {
float: left;
+304 -23
View File
@@ -3,6 +3,8 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
# Copyright (C) 2018 Theo van Rijn
# Copyright (C) 2019 Serge Noiraud
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -72,6 +74,13 @@ img {
.thumbnail a:hover {
background: none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
color: #000;
@@ -94,6 +103,10 @@ img {
width: 96px;
margin: 0 auto;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
width: 100%;
height: 1px;
@@ -101,6 +114,12 @@ img {
padding: 0;
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -221,6 +240,55 @@ p#user_header {
margin-right: 10px;
}
/* Navigation
----------------------------------------------------- */
div#nav, #subnavigation {
border: solid 1px #EEE; /* needed by IE7 */
background-color: #13A926;
}
#subnavigation ul {
overflow: hidden;
}
div#nav ul, #subnavigation ul {
list-style: none;
margin: 0px;
padding-left: 15px;
}
#subnavigation ul {
border-bottom: solid 1px #999;
}
div#nav ul li, #subnavigation ul li {
float: left;
}
div#nav ul li a, #subnavigation ul li a {
display: block;
font-size: smaller;
font-weight: bold;
padding: 5px;
border-bottom: solid 1px #EEE;
}
div#nav ul li a:hover, #subnavigation ul li a:hover {
text-decoration: none;
background-color: #CCC;
border-bottom: solid 1px black;
}
div#nav ul li.CurrentSection a {
position: relative;
top: 1px;
border: solid 1px #999;
border-bottom-style: none;
background-color: white;
}
#nav ul li.CurrentSection a:hover {
background-color: #903;
}
/* Webcal
----------------------------------------------------- */
#subnavigation ul li.CurrentSection a {
background-color: white;
}
/* Footer
----------------------------------------------------- */
div#footer {
@@ -270,6 +338,129 @@ div#footer p#copyright img {
padding: 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
/* Alphabet Navigation
----------------------------------------------------- */
div#alphanav {
background-color: #EEE;
}
div#alphanav ul {
list-style: none;
border-width: 2px 0px 4px 0px;
border-style: solid;
border-color: black;
margin: 0px;
padding-left: 15px;
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
}
div#alphanav ul li {
float: left;
font-size: larger;
font-weight: bold;
}
div#alphanav ul li:after {
content: " |";
}
div#alphanav ul li a {
display: block;
padding: 4px 8px;
line-height: 100%;
float: left;
}
div#alphanav ul li a:hover {
text-decoration: none;
background-color: black;
color: white;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
/* position: absolute; */
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #13A926;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -489,7 +680,7 @@ table.eventlist tbody tr td.ColumnNotes {
width: 20%;
}
table.eventlist tbody tr td.ColumnSources {
width: 17%;
width: 5%;
}
table.eventlist tbody tr td.ColumnPerson {
width: 35%;
@@ -578,6 +769,26 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
margin: 0;
padding: 0;
}
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#Gallery table.infolist tbody tr td {
border-bottom: dashed 1px #000;
}
@@ -627,7 +838,15 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDisplay img {
margin: 0 auto;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin: 0;
padding: 2em 0 0 0;
@@ -679,48 +898,51 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
------------------------------------------------- */
#Contact #summaryarea {
width: 500px;
margin: 0 auto;
padding: 3em;
border: double 4px #000;
background-color: #BCEAF6;
}
#Contact #summaryarea img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
margin: 0;
}
#researcher {
@media only screen and (max-width: 1080px) {
#Contact, #Contact #summaryarea #researcher,
#Contact #summaryarea #GalleryDisplay img {
max-width: 100%;
}
}
#Contact #summaryarea #researcher {
font: normal 1.5em/1.4em serif;
margin-top: .3em;
}
#researcher h3 {
#Contact #summaryarea #researcher h3 {
font: normal 1.2em/1.4em serif;
padding: 0;
text-align: left;
}
#researcher span {
float: left;
#Contact #summaryarea #researcher span {
display: block;
font: normal .9em/1.4em serif;
margin-right: .4em;
}
#streetaddress {
#Contact #summaryarea #streetaddress {
width: 100%;
}
#locality, .locality {
#Contact #summaryarea #locality, .locality {
display: block;
width: 100%;
}
#city:after {
#Contact #summaryarea #city:after {
content: ",";
}
#country {
#Contact #summaryarea #country {
clear: left;
}
#email {
#Contact #summaryarea #email {
clear: left;
}
#email a {
#Contact #summaryarea #email a {
text-decoration: none;
}
@@ -813,17 +1035,29 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
/* Subsections
----------------------------------------------------- */
#Home, #Introduction, #Contact {
padding: 2em 0 3em 0;
#Home #GalleryDisplay, #Introduction #GalleryDisplay,
#Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
margin: 0 20px 1em 20px;
}
#Home img, #Introduction img {
float: right;
margin: 0;
padding: 0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
@@ -927,6 +1161,15 @@ div#families {
margin: 0;
padding: 0;
}
div#families .infolist h4 {
font: bold 1.2em sans-serif;
color: #FFF;
padding: 0px 0px 0px 20px;
border-width: 4px 0px 4px 0px;
border-style: solid;
border-color: #00029D;
background-color: #13A926;
}
div#families table.infolist tbody tr.BeginFamily {
border-top: solid 1px #000;
}
@@ -1093,8 +1336,8 @@ div.Residence table.infolist tr td {
margin: 0;
float: left;
width: 130px;
height: 150px;
text-align: center;
background-color: white;
}
#indivgallery div.thumbnail a {
display: block;
@@ -1102,6 +1345,7 @@ div.Residence table.infolist tr td {
padding: 0;
text-decoration: none;
cursor: pointer;
word-wrap: break-word;
}
#indivgallery div.thumbnail a img {
padding: 0;
@@ -1117,6 +1361,43 @@ div.Residence table.infolist tr td {
margin: 0 auto;
padding: 0;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */
+204 -14
View File
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #454;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #7C8F7C;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -109,6 +128,7 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #9DBF9D;
@@ -208,6 +228,98 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
color: #454;
background-color: #E0E6E0;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
.nav.responsive li#CurrentSection a {
color: #454;
background-color: white;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -373,6 +485,10 @@ table.IndividualList td.ColumnSurname {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#GalleryNav {
@@ -408,7 +524,15 @@ table.IndividualList td.ColumnSurname {
margin: 0px auto;
display: block;
border: solid 1px #7C8F7C;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -425,13 +549,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E6E0;
border: solid 1px #7C8F7C;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #7C8F7C;
}
@@ -458,20 +579,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -494,13 +626,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -508,6 +660,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7C8F7C;
}
@@ -515,6 +701,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -573,6 +762,7 @@ a.familymap {
#footer {
clear: both;
color: #E0E6E0;
font-size: 80%;
padding-top: 1em;
background-color: #9DBF9D;
border-top: solid 1px #454;
@@ -600,7 +790,7 @@ a.familymap {
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #E0E6E0 ! important;
background-color: #454 ! important;
}
/* Calendar Styles
+197 -12
View File
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FAFAFF;
border-top: solid 1px #669;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -110,6 +129,7 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #E0E0E9
@@ -206,6 +226,93 @@ div#alphanav ul li a:hover {
color: #FAFAFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #669;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -366,6 +473,10 @@ table.IndividualList td.ColumnSurname {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#GalleryNav {
@@ -401,7 +512,15 @@ table.IndividualList td.ColumnSurname {
margin: 0px auto;
display: block;
border: solid 1px #669;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -418,13 +537,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E0E9;
border: solid 1px #669;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #669;
}
@@ -451,20 +567,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -487,13 +614,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -501,6 +648,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #669;
}
@@ -508,6 +689,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -571,6 +755,7 @@ a.familymap {
}
#footer > * {
background-color: #E0E0E9;
font-size: 80%;
}
#footer p#createdate {
float: left;
+196 -12
View File
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: #36220B;
margin: 0px;
background-color: #FFE09F;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFFBE7;
border-top: solid 1px #8C581C;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -110,6 +129,7 @@ p#description {
a {
color: #36220B;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #FFE09F
@@ -206,6 +226,93 @@ div#alphanav ul li a:hover {
color: #FFFBE7;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #FFC35E;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -366,6 +473,10 @@ table.IndividualList td.ColumnSurname {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#GalleryNav {
@@ -401,6 +512,13 @@ table.IndividualList td.ColumnSurname {
margin: 0px auto;
display: block;
border: solid 1px #EA8414;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -418,13 +536,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #FFE09F;
border: solid 1px #EA8414;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #EA8414;
}
@@ -451,13 +566,24 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
@@ -487,13 +613,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -501,6 +647,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #8C581C;
}
@@ -508,6 +688,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -571,6 +754,7 @@ a.familymap {
}
#footer > * {
background-color: #FFE09F;
font-size: 80%;
}
#footer p#createdate {
float: left;
+198 -13
View File
@@ -21,6 +21,9 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +62,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #EAEEF4;
@@ -67,6 +70,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
border-top: solid 1px #7CA3DD;
@@ -75,9 +85,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -110,6 +130,7 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #EAEEF4
@@ -206,6 +227,93 @@ div#alphanav ul li a:hover {
color: #FFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -366,6 +474,10 @@ table.IndividualList td.ColumnSurname {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#GalleryNav {
@@ -401,6 +513,13 @@ table.IndividualList td.ColumnSurname {
margin: 0px auto;
display: block;
border: solid 1px #7CA3DD;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -418,13 +537,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #EAEEF4;
border: solid 1px #7CA3DD;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #7CA3DD;
}
@@ -451,20 +567,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -487,13 +614,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -501,6 +648,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7CA3DD;
}
@@ -508,6 +689,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -571,6 +755,7 @@ a.familymap {
}
#footer > * {
background-color: #EAEEF4;
font-size: 80%;
}
#footer p#createdate {
float: left;
-1
View File
@@ -32,7 +32,6 @@ body {
background-color: #00029D;
color: #00029D;
width: 100%;
padding: 0px 14px;
}
/* Navigation Menus
+215 -10
View File
@@ -19,6 +19,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -62,19 +64,30 @@ General Elements
-----------------------------------------------------------------*/
body {
font-family: Georgia, serif;
font-size: 90%;
font-size: 100%;
color: #7D5925;
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
body > div {
width: 85%;
margin: 0px auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
overflow: hidden;
padding: 0px 1.5em;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding: 1.5em 1.5em;
overflow: auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
div.snapshot div.thumbnail {
text-align: center;
@@ -82,6 +95,13 @@ div.snapshot div.thumbnail {
div.snapshot a {
display: inline;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
-----------------------------------------------------------------*/
@@ -119,6 +139,7 @@ h4 {
a {
color: #7D5925;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #FFFFE7;
@@ -203,6 +224,93 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #D8C19F;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
-----------------------------------------------------------------*/
table {
@@ -312,6 +420,10 @@ table#SortByCount thead th.ColumnQuantity a:after {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
-----------------------------------------------------------------*/
#GalleryNav {
@@ -356,6 +468,13 @@ table#SortByCount thead th.ColumnQuantity a:after {
margin: 0px auto;
display:block;
border: solid 1px #7D5925;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
/* Sources
@@ -371,7 +490,7 @@ div#SourceDetail {
padding-bottom: 0px;
margin: 0px;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
display: block;
margin: 0px auto 1em auto;
border: solid 1px #7D5925;
@@ -397,16 +516,31 @@ div#SourceDetail {
/* SubSection
-----------------------------------------------------------------*/
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
display: block;
margin: 1em auto;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
margin: 0 auto;
max-width: 100%;
}
}
#Home a, #Introduction a, #Contact a {
color: black;
}
.subsection {
clear: both;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -423,20 +557,43 @@ div#families table.fixed_subtables table.eventlist th:first-child {
div#families table.fixed_subtables table.eventlist th:last-child {
width: 5em;
}
div#families .infolist h4 {
text-align: left;
}
/* SubSection : Gallery
-----------------------------------------------------------------*/
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery {
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
}
#indivgallery .thumbnail {
float: left;
max-width: 130px;
max-height: 150px;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.5em;
background-color: white;
}
#indivgallery img {
border: solid 1px #7D5925;
@@ -445,6 +602,43 @@ div#families table.fixed_subtables table.eventlist th:last-child {
/* ## remove this line and the comment markers from the line below to hide the description in Individual Gallery
display: none; */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* SubSection : Narrative
-----------------------------------------------------------------*/
@@ -497,20 +691,32 @@ div.grampsstylednote p {
-----------------------------------------------------------------*/
#footer {
clear: both;
overflow: hidden;
width: 100%;
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
border-top: dashed 1px #7D5925;
font-family: sans-serif;
}
#footer p#createdate {
float: left;
width: 50%;
text-align: left;
margin-left: 10px;
}
#footer p#copyright {
float: right;
width: 40%;
text-align: right;
}
#footer p#copyright img {
float: right;
margin-right: 10px;
margin-bottom: 10px;
vertical-align: middle;
}
#footer > * {
font-size: 80%;
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
}
/* Overwritten
-----------------------------------------------------------------*/
@@ -529,7 +735,6 @@ div#map_canvas {
table.calendar {
table-layout: fixed;
empty-cells: show;
width: 950px;
margin: 0px auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
+207 -12
View File
@@ -19,6 +19,8 @@ Go to <http://gramps-project.org/> to learn more!
Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -82,10 +84,21 @@ img {
.thumbnail a:hover {
background:none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding-top: 1cm;
background-color:#FFF;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.content div.snapshot {
float:right;
margin:1.6em;
@@ -100,6 +113,12 @@ img {
.content div.snapshot div.thumbnail span {
display:none;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
.fullclear {
width:100%;
height:1px;
@@ -254,6 +273,100 @@ div#subnavigation ul li.CurrentSection a {
border-width: 0 0 1px 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
color: #FFF;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
color: #FFF;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive ::after {
/* need to remove the "|" when we are in the dropdown menu. */
color: #A97;
background-color: #A97;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #A97;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -576,6 +689,10 @@ table.relationships tbody tr td.ColumnPartner a:hover {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
/* Gallery
----------------------------------------------------- */
#Gallery { }
@@ -630,6 +747,13 @@ table.relationships tbody tr td.ColumnPartner a:hover {
}
#GalleryDisplay img {
margin:0 auto;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin:0;
@@ -675,7 +799,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
----------------------------------------------------- */
#Contact #summaryarea {
width:500px;
margin:0 auto;
padding:3em;
background-color:#F1ECE2;
@@ -693,7 +816,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
padding:0;
}
#researcher span {
float:left;
display:block;
font:normal .9em/1.4em serif;
margin-right:.4em;
@@ -732,7 +854,7 @@ table.download {
width:100%;
}
table.download img {
float:center;
float:none;
}
table.download thead tr th {
text-align:center;
@@ -775,20 +897,32 @@ table.download td.Modified {
/* Subsections
----------------------------------------------------- */
#Home, #Introduction, #Contact {
padding:2em 0 3em 0;
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
#Home p, #Introduction p {
margin:0 20px 1em 20px;
}
#Home img, #Introduction img {
float:right;
margin:0;
padding:0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
overflow: hidden;
}
div.subsection{
padding-bottom:.5em;
@@ -922,6 +1056,26 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
/* Subsections : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery h4 {
margin-bottom:1em;
}
@@ -929,14 +1083,49 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
margin:0;
float:left;
width:130px;
height:150px;
text-align:center;
background-color: white;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery .thumbnail a {
display:block;
margin:0;
padding:0;
background:none;
word-wrap: break-word;
}
#indivgallery .thumbnail a img {
margin:0;
@@ -953,6 +1142,9 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
margin:0 auto;
padding:0;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */
@@ -1066,6 +1258,9 @@ div#pedigree {
background-color: #542;
border-top: solid 8px #A97;
}
#footer > * {
font-size: 80%;
}
#footer a, #footer a:visited {
text-decoration: none;
color: #C1B398;
@@ -1093,7 +1288,7 @@ div#pedigree {
margin-right: 10px;
}
#footer p#copyright img {
margin-right: 10px[
margin-right: 10px;
}
#user_footer {
width: 70%;
+66 -41
View File
@@ -9,7 +9,7 @@
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
@@ -20,10 +20,10 @@
#
# $Id: $
#
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Combined Ancestor Tree Style Sheet
***************************************************************************************************
*******************************************************************************
#
===== Ancestor Graph Color Scheme =====
Males #BCEAF6
@@ -33,10 +33,8 @@ Unknown #000
===== Web Graphics =====
Males Web_Gender_Male.png
Females Web_Gender_Female.png
# ------------------------------------------------------------------------------------------------- */
/* Subsections : Ancestors Tree
----------------------------------------------------- */
# -------------------------------------------------------------------------- #
/* Subsections : Ancestors Tree -------------------------------------------- */
#tree {
page-break-before:always;
margin:0;
@@ -52,8 +50,8 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg {
position:absolute;
margin:0;
padding:0;
margin:0px;
padding:0px;
background:none;
}
#treeContainer div.boxbg a,
@@ -61,41 +59,43 @@ Females Web_Gender_Female.png
position:relative;
z-index:10;
display:block;
font:normal .7em/1.4em sans-serif;
font:normal 1.1em/1.4em sans-serif;
text-align:center;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:118px;
padding:5px 20px 7px 20px;
width:280px;
min-height: 70px;
margin-left:16px;
background-color: #FFF;
border: solid 1px #000;
border: solid 2px #000;
border-radius: 10px;
}
#treeContainer div.boxbg a.noThumb,
#treeContainer div.AncCol3 a,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol3 span.unlinked,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol4 span.unlinked {
margin-top:10px;
float: right;
}
#treeContainer div.boxbg a:hover {
position:relative;
z-index:999;
font-size:1em;
font-size:1.3em;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:190px;
width:400px;
margin-left:-20px;
padding:10px 25px 12px 25px;
border: solid 2px #000;
padding: 0px 0px 0px 40px;
}
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol3 a:hover,
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol4 a:hover {
margin-top:-44px;
}
#treeContainer div.boxbg a.noThumb:hover {
margin-top:0;
padding-left: 10px;
}
#treeContainer div.AncCol0 a:hover {
margin-left:12px;
@@ -105,48 +105,73 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg span.thumbnail {
display:block;
max-width:80px;
max-height:65px;
margin:0 auto;
padding:4px 0;
position: absolute;
max-width:85px;
max-height:75px;
left: 3px;
top: 3px;
}
#treeContainer div.boxbg span.thumbnail img {
max-width:80px;
max-height:65px;
margin:0 auto;
#treeContainer div.boxbg a.thumbnail table td.img {
padding-right: 5px;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {
height:80px;
#treeContainer div.boxbg a.thumbnail:hover table td.img {
padding-right: 9px;
}
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {
#treeContainer div.boxbg a.thumbnail table td.name {
padding-top:3px;
padding-left: 2px;
padding-right: 23px;
width: 90%;
}
#treeContainer div.boxbg a.thumbnail img {
margin-left:0px;
padding-left: 0px;
border-radius: 5px;
}
#treeContainer div.boxbg a.thumbnail:hover img {
max-height:90%;
margin-left:5px;
position: absolute;
left: 0px;
top: 4px;
border-radius: 5px;
}
#treeContainer div.boxbg table td:first-child, table th:first-child {
padding-left: 5px;
padding-top: 5px;
}
#IndividualDetail div.subsection table tr td:first-child {
padding-left: 5px;
padding-top: 5px;
}
#treeContainer #treeContainer div.AncCol4 span.thumbnail {
display:none;
}
#treeContainer div.boxbg a:hover span.thumbnail {
display:block;
}
#treeContainer div.boxbg span.fullname {
display: none;
}
#treeContainer div.boxbg span.shortname {
display: inline;
}
#treeContainer div.boxbg a:hover span.fullname {
display: inline;
}
#treeContainer div.boxbg a:hover span.shortname {
display: none;
}
#treeContainer div.boxbg a:hover {
float: right;
margin-top: 10px;
border: solid 4px #000;
}
#treeContainer div.male a,
#treeContainer div.male span.unlinked {
background:url(../images/Web_Gender_Male.png) #BCEAF6 no-repeat top right;
}
#treeContainer div.female a,
#treeContainer div.female a,
#treeContainer div.female span.unlinked {
background:url(../images/Web_Gender_Female.png) #FFC0CB no-repeat top right;
}
+45
View File
@@ -66,3 +66,48 @@ div#FamilyMapDetail div#references table.infolist {
div#FamilyMapDetail div#references table.infolist tbody tr td.ColumnPlace {
width: 40%;
}
/* Subsection: popup
------------------------------------------------------ */
.ol-popup {
position: absolute;
background-color: white;
-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
padding: 15px;
border-radius: 10px;
border: 2px solid #111111;
bottom: 12px;
left: -50px;
min-width: 450px;
}
.ol-popup:after, .ol-popup:before {
top: 100%;
border: solid transparent;
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup:after {
border-top-color: white;
border-width: 10px;
left: 48px;
margin-left: -10px;
}
.ol-popup:before {
border-top-color: #cccccc;
border-width: 11px;
left: 48px;
margin-left: -11px;
}
.ol-popup-closer {
text-decoration: none;
position: absolute;
top: 2px;
right: 8px;
}
.ol-popup-closer:after {
content: "✖";
}
+19 -8
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>gramps.desktop</id>
<metadata_license>CC0</metadata_license>
<component type="desktop-application">
<id>org.gramps.gramps</id>
<metadata_license>CC0-1.0</metadata_license>
<name>Gramps</name>
<summary>Genealogical research program</summary>
@@ -11,6 +11,7 @@
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
</description>
<launchable type="desktop-id">gramps.desktop</launchable>
<url type="homepage">https://gramps-project.org/</url>
<url type="bugtracker">https://gramps-project.org/bugs/</url>
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
@@ -18,11 +19,21 @@
<developer_name>Gramps Development Team</developer_name>
<screenshots>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/5f/AppData1.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData2.png</image>
</screenshot>
<screenshot type="default">
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/e/e9/AppData3.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData4.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/50/AppData5.png</image>
</screenshot>
</screenshots>
<provides>
+722 -501
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1278,7 +1278,7 @@
<rel type="Unknown"/>
<father hlink="_0000000b0000000b"/>
<mother hlink="_0000002600000026"/>
<childref hlink="_0000006f0000006f"/>
<childref hlink="_0000006f0000006f" frel="Adopted" mrel="Foster"/>
</family>
<family handle="_0000001000000010" change="1198222526" id="F0014">
<rel type="Unknown"/>
+14 -3
View File
@@ -9,6 +9,12 @@ beg
- h Hans_Peter.8 17/4/1904 #bp Rønne,_Bornholm,_Denmark 29/1/1977 #dp San_Francisco,_San_Francisco_Co.,_CA
end
notes Hansdotter Anna.1
beg
******************************************************************890123456789
******************************************************************89 123456789
end notes
notes Smith Hjalmar.5
beg
BIOGRAPHY
@@ -61,7 +67,7 @@ Some Bold Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691
Some Italic Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691;&#22299;&#22665;&#24181;&#32863;&#32870;&#65865;&#128694;&#128712;
end notes
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897 0
fam Smith Hjalmar.5 +31/10/1927 #mp Reno,_Washoe_Co.,_NV Ohman Marjorie.26 3/6/1903 #bp Denver,_Denver_Co.,_CO,_Denver_Co.,_Colorado,_USA 22/6/1980 #dp Reno,_Washoe_Co.,_NV
beg
@@ -98,13 +104,18 @@ beg
- h Martin.17 1794..1796 #bp Tommarp,_Kristianstad_Län,_Sweden #dp Sweden
end
fam Willard Edwin.42 ~1886 +~1910 Smith Kirsti_Marie.2
fam Willard Edwin.42 ~1886 0 +~1910 Smith Kirsti_Marie.2
fam Smith Magnes.38 +24/8/1884 #mp Rønne,_Bornholm,_Denmark Streiffert Anna.43 23/9/1860 #bp Hoya/Jona/Hoia,_Sweden 2/2/1927 #dp Rønne,_Bornholm,_Denmark
fam Tester The.14 + Tester Mrs.44 0
beg
- h Tom.45 0
- h Tom.45 Von_Tester_y_tested 0
- Fake.46 von_Person 1954 #bp Fremont,_Alameda_Co.,_CA
- f Mary.47 0
- f Martha.48 0
- h John.49 0
- h Mark.50 0
end
notes Tester Mrs.44
+315 -655
View File
File diff suppressed because it is too large Load Diff
+52 -47
View File
@@ -1,47 +1,52 @@
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
ピーター リチミシキスイミ;;;;;
Tom Tester;The Tester;Mrs Tester;;;
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
ピーター リチミシキスイミ;;;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
Tom Von Tester y tested;The Tester;Mrs Tester;;;
Fake von Person, I;The Tester;Mrs Tester;;;1954-
Mary Tester;The Tester;Mrs Tester;;;
Martha Tester;The Tester;Mrs Tester;;;
John Tester;The Tester;Mrs Tester;;;
Mark Tester;The Tester;Mrs Tester;;;
+50 -51
View File
@@ -30,66 +30,65 @@
[P0014],"Denver, Denver Co., CO","Denver, Denver Co., CO",City,39.7392,104.9903 W,,[P0024],
Person,Surname,Given,Call,Suffix,Prefix,Title,Gender,Birth date,Birth place,Birth source,Baptism date,Baptism place,Baptism source,Death date,Death place,Death source,Burial date,Burial place,Burial source,Note
[I0030],Adams,Janice Ann,,,,,female,26 Aug 1965,"Fremont, Alameda Co., CA",,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,5 Nov 1907,"Rønne, Bornholm, Denmark",,,,,29 May 1985,"San Francisco, San Francisco Co., CA",,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,Sweden,,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,2 Dec 1935,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,2 Oct 1864,"Löderup, Malmöhus Län, Sweden",,,,,29 Sep 1945,"Sparks, Washoe Co., NV",,,,,
[I0038],Hansdotter,Kerstina,,,,,female,29 Nov 1832,"Smestorp, Kristianstad Län, Sweden",,,,,before 1908,Sweden,,,,,
[I0032],Horne,Darcy,,,,,female,2 Jul 1966,"Sacramento, Sacramento Co., CA",,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,14 Sep 1800,"Gladsax, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0017],Jones,Lillie Harriet,,,,,female,2 May 1910,"Rønne, Bornholm, Denmark",,,,,26 Jun 1990,,,,,,
[I0030],Adams,Janice Ann,,,,,female,1965-08-26,[P0013],,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,1907-11-05,[P0003],,,,,1985-05-29,[P0002],,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,[P0008],,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,1935-12-02,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,1864-10-02,[P0000],,,,,1945-09-29,[P0001],,,,,
[I0038],Hansdotter,Kerstina,,,,,female,1832-11-29,[P0019],,,,,before 1908,[P0008],,,,,
[I0032],Horne,Darcy,,,,,female,1966-07-02,[P0015],,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,1800-09-14,[P0004],,,,,,[P0008],,,,,
[I0017],Jones,Lillie Harriet,,,,,female,1910-05-02,[P0003],,,,,1990-06-26,,,,,,
[I0042],Ke 柯,,,,,,male,,,,,,,,,,,,,
[I0013],Michaels,Evelyn,,,,,female,about 1897,,,,,,,,,,,,
[I0012],Nielsen,Herman Julius,,,,,male,31 Aug 1889,"Rønne, Bornholm, Denmark",,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,3 Jun 1903,"Denver, Denver Co., CO, Denver Co., Colorado, USA",,,,,22 Jun 1980,"Reno, Washoe Co., NV",,,,,
[I0034],Perkins,Alice Paula,,,,,female,22 Nov 1933,"Sparks, Washoe Co., NV",,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,12 Apr 1998,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,31 Jan 1889,"Rønne, Bornholm, Denmark",,,,,21 Dec 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0020],Smith,Carl Emil,,,,,male,20 Dec 1899,"Rønne, Bornholm, Denmark",,,,,28 Jan 1959,"Reno, Washoe Co., NV",,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,24 May 1961,"San Jose, Santa Clara Co., CA","Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,27 Sep 1860,"Simrishamn, Kristianstad Län, Sweden",,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,28 Aug 1963,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,11 Sep 1897,"Rønne, Bornholm, Denmark",,,,,21 Oct 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,28 Nov 1862,"Grostorp, Kristianstad Län, Sweden",,,,,before 23 Jul 1930,"Sparks, Washoe Co., NV",,,,,
[I0011],Smith,Hanna,,,,,female,29 Jan 1821,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,17 Apr 1904,"Rønne, Bornholm, Denmark",Birth Records,,,,29 Jan 1977,"San Francisco, San Francisco Co., CA",,5 Feb 1977,"San Francisco, San Francisco Co., CA",findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,31 Jan 1893,"Rønne, Bornholm, Denmark",,,,,25 Sep 1894,"Rønne, Bornholm, Denmark",,,,,
[I0008],Smith,Hjalmar,,,,,male,7 Apr 1895,"Rønne, Bornholm, Denmark",,3 Jun 1895,"Rønne Bornholm, Denmark",,26 Jun 1975,"Reno, Washoe Co., NV",,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,Sweden,,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,29 Jan 1826,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,30 Jan 1932,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,11 Aug 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,15 Dec 1886,"Rønne, Bornholm, Denmark",,,,,18 Jul 1966,"San Francisco, San Francisco Co., CA",,,,,
[I0035],Smith,Lars Peter,,,,,male,16 Sep 1991,"Santa Rosa, Sonoma Co., CA",,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,13 Mar 1935,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,6 Oct 1858,"Simrishamn, Kristianstad Län, Sweden",,,,,20 Feb 1910,"Rønne, Bornholm, Denmark",,,,,
[I0040],Smith,Marjorie Alice,,,,,female,5 Feb 1960,"San Jose, Santa Clara Co., CA",,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,4 Nov 1934,"Reno, Washoe Co., NV",,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,19 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,23 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,between 1899 and 1905,Sweden,,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,"Tommarp, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0005],Smith,Mason Michael,,,,,male,26 Jun 1996,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,23 Sep 1860,"Hoya/Jona/Hoia, Sweden",,,,,2 Feb 1927,"Rønne, Bornholm, Denmark",,,,,
[I0012],Nielsen,Herman Julius,,,,,male,1889-08-31,[P0003],,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,1903-06-03,[P0014],,,,,1980-06-22,[P0005],,,,,
[I0034],Perkins,Alice Paula,,,,,female,1933-11-22,[P0001],,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,1998-04-12,[P0006],,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,1889-01-31,[P0003],,,,,1963-12-21,[P0002],,,,,
[I0020],Smith,Carl Emil,,,,,male,1899-12-20,[P0003],,,,,1959-01-28,[P0005],,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,[P0002],,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,1961-05-24,[P0017],"Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,1860-09-27,[P0012],,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,1963-08-28,[P0002],,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,1897-09-11,[P0003],,,,,1963-10-21,[P0002],,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,1862-11-28,[P0009],,,,,before 1930-07-23,[P0001],,,,,
[I0011],Smith,Hanna,,,,,female,1821-01-29,[P0004],,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,1904-04-17,[P0003],Birth Records,,,,1977-01-29,[P0002],,1977-02-05,[P0002],findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,1893-01-31,[P0003],,,,,1894-09-25,[P0003],,,,,
[I0008],Smith,Hjalmar,,,,,male,1895-04-07,[P0003],,1895-06-03,[P0021],,1975-06-26,[P0005],,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,[P0004],,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,[P0008],,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,1826-01-29,[P0004],,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,1932-01-30,[P0002],,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,1966-08-11,[P0002],,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,1886-12-15,[P0003],,,,,1966-07-18,[P0002],,,,,
[I0035],Smith,Lars Peter,,,,,male,1991-09-16,[P0016],,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,1935-03-13,[P0002],,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,1858-10-06,[P0012],,,,,1910-02-20,[P0003],,,,,
[I0040],Smith,Marjorie Alice,,,,,female,1960-02-05,[P0017],,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,1934-11-04,[P0005],,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,1830-11-19,[P0004],,1830-11-23,[P0004],,between 1899 and 1905,[P0008],,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,[P0020],,,,,,[P0008],,,,,
[I0005],Smith,Mason Michael,,,,,male,1996-06-26,[P0006],,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,1860-09-23,[P0011],,,,,1927-02-02,[P0003],,,,,
[I0006],Willard,Edwin,,,,,male,about 1886,,,,,,,,,,,,
[I0043],リチミシキスイミ,ピーター,,,,,male,,,,,,,,,,,,,
Marriage,Husband,Wife,Date,Place,Source,Note
[F0000],[I0039],[I0036],about 1816,"Gladsax, Kristianstad Län, Sweden",,
[F0001],[I0027],[I0025],about 1790,Sweden,,
[F0000],[I0039],[I0036],about 1816,[P0004],,
[F0001],[I0027],[I0025],about 1790,[P0008],,
[F0002],[I0022],[I0038],about 1856,,,
[F0003],[I0024],[I0000],27 Nov 1885,"Rønne, Bornholm, Denmark",,
[F0003],[I0024],[I0000],1885-11-27,[P0003],,
[F0004],[I0006],[I0026],about 1910,,,
[F0005],[I0012],[I0023],30 Nov 1912,"Rønne, Bornholm, Denmark",,
[F0006],[I0008],[I0031],31 Oct 1927,"Reno, Washoe Co., NV",,
[F0005],[I0012],[I0023],1912-11-30,[P0003],,
[F0006],[I0008],[I0031],1927-10-31,[P0005],,
[F0007],[I0015],[I0013],about 1920,,,
[F0008],[I0033],[I0041],10 Aug 1958,"San Francisco, San Francisco Co., CA",,
[F0008],[I0033],[I0041],1958-08-10,[P0002],,
[F0009],[I0010],[I0017],,,,
[F0010],[I0019],[I0032],12 Jul 1986,"Woodland, Yolo Co., CA",,
[F0011],[I0003],[I0028],24 Aug 1884,"Rønne, Bornholm, Denmark",,
[F0012],[I0018],[I0034],4 Jun 1954,"Sparks, Washoe Co., NV",Marriage Certificae,
[F0013],[I0037],[I0030],27 May 1995,"San Ramon, Conta Costa Co., CA",,
[F0010],[I0019],[I0032],1986-07-12,[P0022],,
[F0011],[I0003],[I0028],1884-08-24,[P0003],,
[F0012],[I0018],[I0034],1954-06-04,[P0001],Marriage Certificae,
[F0013],[I0037],[I0030],1995-05-27,[P0023],,
[F0014],[I0010],[I0016],,,,
Family,Child
1 Place Title Name Type Latitude Longitude Code Enclosed_by Date
30 [P0014] Denver, Denver Co., CO Denver, Denver Co., CO City 39.7392 104.9903 W [P0024]
31 Person Surname Given Call Suffix Prefix Title Gender Birth date
32 [I0030] Adams Janice Ann female 26 Aug 1965 1965-08-26
33 [I0016] Anderson Jennifer female 5 Nov 1907 1907-11-05
34 [I0025] Ericsdotter Marta female about 1775
35 [I0041] Green Janis Elaine female 2 Dec 1935 1935-12-02
36 [I0000] Hansdotter Anna female 2 Oct 1864 1864-10-02
37 [I0038] Hansdotter Kerstina female 29 Nov 1832 1832-11-29
38 [I0032] Horne Darcy female 2 Jul 1966 1966-07-02
39 [I0036] Jefferson Elna female 14 Sep 1800 1800-09-14
40 [I0017] Jones Lillie Harriet female 2 May 1910 1910-05-02
41 [I0042] Ke 柯 male
42 [I0013] Michaels Evelyn female about 1897
43 [I0012] Nielsen Herman Julius male 31 Aug 1889 1889-08-31
44 [I0031] Ohman Marjorie female 3 Jun 1903 1903-06-03
45 [I0034] Perkins Alice Paula female 22 Nov 1933 1933-11-22
46 [I0002] Smith Amber Marie female 12 Apr 1998 1998-04-12
47 [I0023] Smith Astrid Shermanna Augusta female 31 Jan 1889 1889-01-31
48 [I0020] Smith Carl Emil male 20 Dec 1899 1899-12-20
49 [I0029] Smith Craig Peter male after 1966
50 [I0037] Smith Edwin Michael male 24 May 1961 1961-05-24
51 [I0009] Smith Emil male 27 Sep 1860 1860-09-27
52 [I0019] Smith Eric Lloyd Dr. male 28 Aug 1963 1963-08-28
53 [I0015] Smith Gus male 11 Sep 1897 1897-09-11
54 [I0024] Smith Gustaf Sr. male 28 Nov 1862 1862-11-28
55 [I0011] Smith Hanna female 29 Jan 1821 1821-01-29
56 [I0010] Smith Hans Peter male 17 Apr 1904 1904-04-17
57 [I0021] Smith Hjalmar male 31 Jan 1893 1893-01-31
58 [I0008] Smith Hjalmar male 7 Apr 1895 1895-04-07
59 [I0007] Smith Ingar female after 1823
60 [I0027] Smith Ingeman male about 1770
61 [I0004] Smith Ingeman male 29 Jan 1826 1826-01-29
62 [I0018] Smith John Hjalmar male 30 Jan 1932 1932-01-30
63 [I0001] Smith Keith Lloyd male 11 Aug 1966 1966-08-11
64 [I0026] Smith Kirsti Marie female 15 Dec 1886 1886-12-15
65 [I0035] Smith Lars Peter male 16 Sep 1991 1991-09-16
66 [I0033] Smith Lloyd male 13 Mar 1935 1935-03-13
67 [I0003] Smith Magnes male 6 Oct 1858 1858-10-06
68 [I0040] Smith Marjorie Alice female 5 Feb 1960 1960-02-05
69 [I0014] Smith Marjorie Lee female 4 Nov 1934 1934-11-04
70 [I0022] Smith Martin male 19 Nov 1830 1830-11-19
71 [I0039] Smith Martin male between 1794 and 1796
72 [I0005] Smith Mason Michael male 26 Jun 1996 1996-06-26
73 [I0028] Streiffert Anna female 23 Sep 1860 1860-09-23
74 [I0006] Willard Edwin male about 1886
75 [I0043] Marriage リチミシキスイミ Husband ピーター Wife Date Place Source Note
Marriage Husband Wife Date Place Source Note
76 [F0000] [I0039] [I0036] about 1816 Gladsax, Kristianstad Län, Sweden [P0004]
77 [F0001] [I0027] [I0025] about 1790 Sweden [P0008]
78 [F0002] [I0022] [I0038] about 1856
79 [F0003] [I0024] [I0000] 27 Nov 1885 1885-11-27 Rønne, Bornholm, Denmark [P0003]
80 [F0004] [I0006] [I0026] about 1910
81 [F0005] [I0012] [I0023] 30 Nov 1912 1912-11-30 Rønne, Bornholm, Denmark [P0003]
82 [F0006] [I0008] [I0031] 31 Oct 1927 1927-10-31 Reno, Washoe Co., NV [P0005]
83 [F0007] [I0015] [I0013] about 1920
84 [F0008] [I0033] [I0041] 10 Aug 1958 1958-08-10 San Francisco, San Francisco Co., CA [P0002]
85 [F0009] [I0010] [I0017]
86 [F0010] [I0019] [I0032] 12 Jul 1986 1986-07-12 Woodland, Yolo Co., CA [P0022]
87 [F0011] [I0003] [I0028] 24 Aug 1884 1884-08-24 Rønne, Bornholm, Denmark [P0003]
88 [F0012] [I0018] [I0034] 4 Jun 1954 1954-06-04 Sparks, Washoe Co., NV [P0001] Marriage Certificae
89 [F0013] [I0037] [I0030] 27 May 1995 1995-05-27 San Ramon, Conta Costa Co., CA [P0023]
90 [F0014] [I0010] [I0016]
91 Family Child
92 [F0000] [I0011]
93 [F0000] [I0007]
94 [F0000] [I0004]
+20 -12
View File
@@ -1,12 +1,12 @@
0 HEAD
1 SOUR Gramps
2 VERS 5.0.0-alpha2
2 VERS 5.0.2
2 NAME Gramps
1 DATE 1 SEP 2017
2 TIME 12:10:38
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 SUBM @SUBM@
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
1 COPR Copyright (c) 2017 Alex Roitman,,,.
1 COPR Copyright (c) 2019 Alex Roitman,,,.
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
@@ -629,8 +629,12 @@
2 TYPE Birth of Lloyd Smith
2 DATE 13 MAR 1935
2 PLAC San Francisco, San Francisco Co., CA
1 ADOP Y
2 FAMC @F0009@
3 ADOP HUSB
1 FAMC @F0009@
2 PEDI birth
2 _FREL Adopted
2 _MREL Foster
1 FAMS @F0008@
1 CHAN
2 DATE 4 SEP 2016
@@ -786,11 +790,7 @@
3 ADOP BOTH
1 FAMC @F0005@
2 PEDI adopted
1 OBJE
2 FORM jpeg
2 TITL Michael O'Toole 2015-11
2 FILE c:\grampsaio64-5.0.0\share\gramps\tests\O0.jpg
2 NOTE @N0019@
1 OBJE @O0000@
1 NOTE @N0007@
1 CHAN
2 DATE 18 JUN 2016
@@ -889,7 +889,7 @@
0 @I0046@ INDI
1 NAME Tom /Von Tester y tested/
2 GIVN Tom
2 SPFX Von,
2 SPFX Von
2 SURN Tester y, tested
2 NICK TesterNickname
1 SEX M
@@ -1044,7 +1044,7 @@
2 SURN Tester
1 SEX M
1 FAMC @F0016@
2 PEDI Unknown
2 PEDI Sponsored
1 CHAN
2 DATE 29 OCT 2016
3 TIME 16:27:59
@@ -1423,4 +1423,12 @@
0 @N0017@ NOTE A citation Note Source text
0 @N0018@ NOTE Another Citation Note
0 @N0019@ NOTE A bad photo for sure
0 @O0000@ OBJE
1 FILE c:\users\prc\workspace\grampsm\main\data\tests\O0.jpg
2 FORM jpg
2 TITL Michael O'Toole 2015-11
1 NOTE @N0019@
1 CHAN
2 DATE 29 OCT 2016
3 TIME 15:23:37
0 TRLR
+38 -27
View File
@@ -3,41 +3,41 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-08-29" version="5.0.0-alpha1"/>
<created date="2019-03-13" version="5.0.2"/>
<researcher>
</researcher>
</header>
<events>
<event handle="_0000000500000005" change="1472500305" id="E0000">
<event handle="_0000000500000005" change="1" id="E0000">
<type>Birth</type>
<dateval val="1816"/>
<place hlink="_0000000700000007"/>
<citationref hlink="_0000000600000006"/>
</event>
<event handle="_0000000800000008" change="1472500305" id="E0001">
<event handle="_0000000800000008" change="1" id="E0001">
<type>Residence</type>
<dateval val="1850"/>
<place hlink="_0000000a0000000a"/>
<citationref hlink="_0000000900000009"/>
</event>
<event handle="_0000000b0000000b" change="1472500305" id="E0002">
<event handle="_0000000b0000000b" change="1" id="E0002">
<type>Death</type>
<datestr val="1850/1860"/>
<place hlink="_0000000c0000000c"/>
</event>
<event handle="_0000000f0000000f" change="1472500305" id="E0003">
<event handle="_0000000f0000000f" change="1" id="E0003">
<type>Marriage</type>
<dateval val="1841" type="about"/>
<place hlink="_0000001000000010"/>
</event>
<event handle="_0000001100000011" change="1472500305" id="E0004">
<event handle="_0000001100000011" change="1" id="E0004">
<type>Marriage</type>
<dateval val="1847-08"/>
<place hlink="_0000001200000012"/>
</event>
</events>
<people>
<person handle="_0000000100000001" change="1472500305" id="I0278">
<person handle="_0000000100000001" change="1" id="I0278">
<gender>M</gender>
<name type="Birth Name">
<first>Andrew</first>
@@ -54,13 +54,13 @@
</person>
</people>
<families>
<family handle="_0000000d0000000d" change="1472500305" id="F0073">
<family handle="_0000000d0000000d" change="1" id="F0073">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000000f0000000f" role="Family"/>
<childref hlink="_0000000100000001"/>
</family>
<family handle="_0000000e0000000e" change="1472500305" id="F0074">
<family handle="_0000000e0000000e" change="1" id="F0074">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000001100000011" role="Family"/>
@@ -68,19 +68,19 @@
</family>
</families>
<citations>
<citation handle="_0000000400000004" change="1472500305" id="C0000">
<citation handle="_0000000400000004" change="1" id="C0000">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000600000006" change="1472500305" id="C0001">
<citation handle="_0000000600000006" change="1" id="C0001">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000900000009" change="1472500305" id="C0002">
<citation handle="_0000000900000009" change="1" id="C0002">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
@@ -88,7 +88,7 @@
</citation>
</citations>
<sources>
<source handle="_0000000200000002" change="1472500305" id="S0029">
<source handle="_0000000200000002" change="1" id="S0029">
<stitle>1850 United States Federal Census</stitle>
<sauthor>Ancestry.com</sauthor>
<spubinfo>Name: Ancestry.com Operations, Inc.; Location: Provo, UT, USA; Date: 2009;</spubinfo>
@@ -96,42 +96,43 @@
</source>
</sources>
<places>
<placeobj handle="_0000000700000007" change="1472500305" id="P0000" type="Unknown">
<placeobj handle="_0000000700000007" change="1" id="P0000" type="Unknown">
<ptitle>Tennessee, USA</ptitle>
<pname value="Tennessee, USA"/>
</placeobj>
<placeobj handle="_0000000a0000000a" change="1472500305" id="P0001" type="Unknown">
<placeobj handle="_0000000a0000000a" change="1" id="P0001" type="Unknown">
<ptitle>District 14, Cape Girardeau, Missouri, USA</ptitle>
<pname value="District 14, Cape Girardeau, Missouri, USA"/>
</placeobj>
<placeobj handle="_0000000c0000000c" change="1472500305" id="P0002" type="Unknown">
<placeobj handle="_0000000c0000000c" change="1" id="P0002" type="Unknown">
<ptitle>Bollinger Co. MO</ptitle>
<pname value="Bollinger Co. MO"/>
</placeobj>
<placeobj handle="_0000001000000010" change="1472500305" id="P0003" type="Unknown">
<placeobj handle="_0000001000000010" change="1" id="P0003" type="Unknown">
<ptitle>Union Co.?, IL</ptitle>
<pname value="Union Co.?, IL"/>
</placeobj>
<placeobj handle="_0000001200000012" change="1472500305" id="P0004" type="Unknown">
<placeobj handle="_0000001200000012" change="1" id="P0004" type="Unknown">
<ptitle>Wayne, Missouri, United States</ptitle>
<pname value="Wayne, Missouri, United States"/>
</placeobj>
</places>
<objects>
<object handle="_0000000300000003" change="1472500305" id="M159">
<object handle="_0000000300000003" change="1" id="M159">
<file src="1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="1850 United States Federal Census"/>
<noteref hlink="_0000001400000014"/>
<noteref hlink="_0000001500000015"/>
</object>
<object handle="_0000001600000016" change="1472500305" id="M158">
<file src="D:/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg"/>
<object handle="_0000001600000016" change="1" id="M158">
<file src="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg"/>
<noteref hlink="_0000001700000017"/>
</object>
<object handle="_0000001700000017" change="1472500305" id="M157">
<object handle="_0000001800000018" change="1" id="M157">
<file src="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg" mime="unknown" description="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg"/>
</object>
</objects>
<repositories>
<repository handle="_0000001300000013" change="1472500305" id="R0001">
<repository handle="_0000001300000013" change="1" id="R0001">
<rname>Ancestry.com</rname>
<type>Library</type>
<address>
@@ -140,16 +141,26 @@
</repository>
</repositories>
<notes>
<note handle="_0000001400000014" change="1472500305" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</text>
<note handle="_0000001400000014" change="1" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248 </text>
</note>
<note handle="_0000001500000015" change="1472500305" id="N0001" type="GEDCOM import">
<note handle="_0000001500000015" change="1" id="N0001" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M159:
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg</text>
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="200"/>
</style>
</note>
<note handle="_0000001700000017" change="1" id="N0002" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M158:
Could not import D:\Users\PRC\Downloads\1850 United States Federa Line 75: 1 FILE D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="223"/>
</style>
</note>
</notes>
</database>
+5 -4
View File
@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2017-05-30" version="5.0.0-alpha1"/>
<created date="2019-03-05" version="5.0.2"/>
<researcher>
</researcher>
</header>
@@ -66,9 +66,10 @@
<object handle="_0000000300000003" change="1" id="O0000">
<file src="test_emb_55.jpg" mime="image/jpeg" description="Multimedia link embedded form v5.5"/>
<noteref hlink="_0000000200000002"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000400000004" change="548708291" id="M1">
<file src="" mime="" description="Multimedia link to linked form v5.5 blob"/>
<file src="" mime="image/jpeg" description="Multimedia link to linked form v5.5 blob"/>
<attribute type="REFN" value="Ref12345M1">
<noteref hlink="_0000001200000012"/>
</attribute>
@@ -117,7 +118,7 @@
<citationref hlink="_0000002700000027"/>
</object>
<object handle="_0000000c0000000c" change="1" id="O0002">
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="unknown" description="Multimedia link embedded form v5.5 URL"/>
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="text/html" description="Multimedia link embedded form v5.5 URL"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000d0000000d" change="1" id="M7">
@@ -129,7 +130,7 @@
<noteref hlink="_0000002900000029"/>
</object>
<object handle="_0000001500000015" change="1" id="M2">
<file src="" mime="" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<file src="" mime="image/jpeg" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<noteref hlink="_0000001600000016"/>
</object>
</objects>
+61 -48
View File
@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-10-23" version="5.0.0-alpha1"/>
<created date="2019-07-30" version="5.0.2"/>
<researcher>
<resname>John A. Tester</resname>
</researcher>
@@ -26,27 +26,23 @@
<type>Death</type>
<noteref hlink="_0000001600000016"/>
</event>
<event handle="_0000001e0000001e" change="1" id="E0003">
<type>Who knows OBJE REFN TYPE</type>
<description>REFN</description>
</event>
<event handle="_0000002700000027" change="1" id="E0004">
<event handle="_0000002700000027" change="1" id="E0003">
<type>Birth</type>
<dateval val="1901-06-15"/>
</event>
<event handle="_0000002800000028" change="1" id="E0005">
<event handle="_0000002800000028" change="1" id="E0004">
<type>Death</type>
<dateval val="1975-07-05"/>
</event>
<event handle="_0000002e0000002e" change="1" id="E0006">
<event handle="_0000002e0000002e" change="1" id="E0005">
<type>Birth</type>
<dateval val="1922-06-15"/>
</event>
<event handle="_0000002f0000002f" change="1" id="E0007">
<event handle="_0000002f0000002f" change="1" id="E0006">
<type>Death</type>
<dateval val="1994-07-05"/>
</event>
<event handle="_0000003b0000003b" change="1" id="E0008">
<event handle="_0000003b0000003b" change="1" id="E0007">
<type>TEST</type>
<description>family</description>
</event>
@@ -61,10 +57,11 @@
<eventref hlink="_0000000f0000000f" role="Primary"/>
<eventref hlink="_0000001000000010" role="Primary"/>
<eventref hlink="_0000001500000015" role="Primary"/>
<eventref hlink="_0000001e0000001e" role="Primary"/>
<objref hlink="_0000001f0000001f"/>
<attribute type="RIN" value="123456 Person"/>
<attribute type="REFN" value="98765 for PERSON"/>
<attribute type="REFN" value="98765 for PERSON">
<noteref hlink="_0000001e0000001e"/>
</attribute>
<url href="http://homepages.rootsweb.com/~pmcbride/gedcom/55gctoc.htm" type="Web Home" description="GEDCOM 5.5 documentation web site"/>
<parentin hlink="_0000001700000017"/>
<noteref hlink="_0000001800000018"/>
@@ -270,7 +267,8 @@
Line ignored as not understood Line 18: 2 TEST Header Note
Empty note ignored Line 19: 1 NOTE
Skipped subordinate line Line 20: 2 TEST Empty Note</text>
Skipped subordinate line Line 20: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="327"/>
</style>
@@ -288,7 +286,8 @@ Skipped subordinate line Line 20:
Line ignored as not understood Line 26: 2 TEST Submission Note
Empty note ignored Line 27: 1 NOTE
Skipped subordinate line Line 28: 2 TEST Empty Note
Line ignored as not understood Line 29: 1 TEST submission</text>
Line ignored as not understood Line 29: 1 TEST submission
</text>
<style name="fontface" value="Monospace">
<range start="0" end="425"/>
</style>
@@ -300,7 +299,8 @@ Tag recognized but not supported Line 32:
Tag recognized but not supported Line 33: 1 REFN Submission Note REFN
Skipped subordinate line Line 34: 2 TYPE Submission Note REFN TYPE
Tag recognized but not supported Line 35: 1 SOUR Submission note source
Line ignored as not understood Line 39: 1 TEST on XREF Note</text>
Line ignored as not understood Line 39: 1 TEST on XREF Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="586"/>
</style>
@@ -318,7 +318,8 @@ Line ignored as not understood Line 39:
Line ignored as not understood Line 43: 2 TEST Submitter Note
Empty note ignored Line 44: 1 NOTE
Skipped subordinate line Line 45: 2 TEST Empty Note
Line ignored as not understood Line 46: 1 TEST Submitter</text>
Line ignored as not understood Line 46: 1 TEST Submitter
</text>
<style name="fontface" value="Monospace">
<range start="0" end="460"/>
</style>
@@ -360,7 +361,10 @@ Line ignored as not understood Line 46:
<note handle="_0000001d0000001d" change="979250406" id="N0018" type="Media Note">
<text>Media xref note</text>
</note>
<note handle="_0000002100000021" change="1" id="N0019" type="GEDCOM import">
<note handle="_0000001e0000001e" change="1" id="N0019" type="REFN-TYPE">
<text>Who knows OBJE REFN TYPE</text>
</note>
<note handle="_0000002100000021" change="1" id="N0020" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0001:
Empty note ignored Line 54: 2 NOTE
@@ -382,12 +386,14 @@ Empty note ignored Line 85:
Skipped subordinate line Line 86: 3 TEST Empty Note
Line ignored as not understood Line 88: 3 TEST 123456 Note
Empty note ignored Line 90: 2 NOTE
Skipped subordinate line Line 91: 3 TEST Empty Note</text>
Skipped subordinate line Line 91: 3 TEST Empty Note
Line ignored as not understood Line 94: 2 TEST REFN
</text>
<style name="fontface" value="Monospace">
<range start="0" end="2009"/>
<range start="0" end="2101"/>
</style>
</note>
<note handle="_0000002200000022" change="1" id="N0020" type="GEDCOM import">
<note handle="_0000002200000022" change="1" id="N0021" type="GEDCOM import">
<text>Records not imported into NOTE Gramps ID N0018:
Tag recognized but not supported Line 103: 1 RIN 123456
@@ -396,85 +402,89 @@ Skipped subordinate line Line 105:
Tag recognized but not supported Line 109: 2 NOTE Note on a change on a note!!!
Skipped subordinate line Line 110: 3 CHAN
Skipped subordinate line Line 111: 4 DATE 2001-01-11
Skipped subordinate line Line 112: 5 TIME 16:00:06</text>
Skipped subordinate line Line 112: 5 TIME 16:00:06
</text>
<style name="fontface" value="Monospace">
<range start="0" end="741"/>
</style>
</note>
<note handle="_0000002300000023" change="1" id="N0021" type="REFN-TYPE">
<note handle="_0000002300000023" change="1" id="N0022" type="REFN-TYPE">
<text>Who knows REFN TYPE</text>
</note>
<note handle="_0000002500000025" change="1" id="N0022" type="GEDCOM import">
<note handle="_0000002500000025" change="1" id="N0023" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M1:
Could not import photo.jpg Line 114: 1 FILE photo.jpg</text>
Could not import photo.jpg Line 114: 1 FILE photo.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="164"/>
</style>
</note>
<note handle="_0000002900000029" change="979250406" id="N0023" type="Person Note">
<note handle="_0000002900000029" change="979250406" id="N0024" type="Person Note">
<text>Family Spouse reference Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000002b0000002b" change="1" id="N0024" type="GEDCOM import">
<note handle="_0000002b0000002b" change="1" id="N0025" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0002:
Empty note ignored Line 132: 2 NOTE
Skipped subordinate line Line 133: 3 TEST Empty Note</text>
Skipped subordinate line Line 133: 3 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="248"/>
</style>
</note>
<note handle="_0000002d0000002d" change="979250406" id="N0025" type="General">
<note handle="_0000002d0000002d" change="979250406" id="N0026" type="General">
<text>Name note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003100000031" change="1" id="N0026" type="LDS Note">
<note handle="_0000003100000031" change="1" id="N0027" type="LDS Note">
<text>Place note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003400000034" change="1" id="N0027" type="LDS Note">
<note handle="_0000003400000034" change="1" id="N0028" type="LDS Note">
<text>LDS xref note</text>
</note>
<note handle="_0000003600000036" change="979250406" id="N0028" type="Association Note">
<note handle="_0000003600000036" change="979250406" id="N0029" type="Association Note">
<text>Association link note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003800000038" change="1" id="N0029" type="GEDCOM import">
<note handle="_0000003800000038" change="1" id="N0030" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0003:
Empty note ignored Line 141: 2 NOTE
Skipped subordinate line Line 142: 3 TEST Empty Note
Line ignored as not understood Line 163: 3 TEST Accociation note
Empty note ignored Line 167: 2 NOTE
Skipped subordinate line Line 168: 3 TEST Empty Note</text>
Skipped subordinate line Line 168: 3 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="538"/>
</style>
</note>
<note handle="_0000003900000039" change="979250406" id="N0030" type="General">
<note handle="_0000003900000039" change="979250406" id="N0031" type="General">
<text>Just for association</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003e0000003e" change="1" id="N0031" type="Family Note">
<note handle="_0000003e0000003e" change="1" id="N0032" type="Family Note">
<text>Family xref note</text>
</note>
<note handle="_0000003f0000003f" change="979250406" id="N0032" type="Family Note">
<note handle="_0000003f0000003f" change="979250406" id="N0033" type="Family Note">
<text>Family note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004000000040" change="1" id="N0033" type="Citation">
<note handle="_0000004000000040" change="1" id="N0034" type="Citation">
<text>Citation Data Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004100000041" change="1" id="N0034" type="Source text">
<note handle="_0000004100000041" change="1" id="N0035" type="Source text">
<text>A sample text from a source of this family</text>
</note>
<note handle="_0000004200000042" change="979250406" id="N0035" type="Citation">
<note handle="_0000004200000042" change="979250406" id="N0036" type="Citation">
<text>A note this citation is on the FAMILY record.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004400000044" change="1" id="N0036" type="GEDCOM import">
<note handle="_0000004400000044" change="1" id="N0037" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0001:
Line ignored as not understood Line 183: 2 TEST Family Note
@@ -482,41 +492,44 @@ Empty note ignored Line 187:
Skipped subordinate line Line 188: 2 TEST Empty Note
Line ignored as not understood Line 190: 2 TEST citation
Line ignored as not understood Line 194: 3 TEST Citation Data
Line ignored as not understood Line 196: 4 TEST Citation Data Note</text>
Line ignored as not understood Line 196: 4 TEST Citation Data Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="645"/>
</style>
</note>
<note handle="_0000004600000046" change="979250406" id="N0037" type="Repository Reference Note">
<note handle="_0000004600000046" change="979250406" id="N0038" type="Repository Reference Note">
<text>A short note about the repository link.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004700000047" change="979250406" id="N0038" type="Source Note">
<note handle="_0000004700000047" change="979250406" id="N0039" type="Source Note">
<text>note embedded in the SOURCE Record</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004800000048" change="1" id="N0039" type="GEDCOM import">
<note handle="_0000004800000048" change="1" id="N0040" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0001:
Line ignored as not understood Line 206: 1 TEST source
Empty note ignored Line 208: 2 NOTE
Skipped subordinate line Line 209: 3 TEST Empty Note
Empty note ignored Line 214: 1 NOTE
Skipped subordinate line Line 215: 2 TEST Empty Note</text>
Skipped subordinate line Line 215: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="524"/>
</style>
</note>
<note handle="_0000004900000049" change="1" id="N0040" type="Repository Note">
<note handle="_0000004900000049" change="1" id="N0041" type="Repository Note">
<text>Repository Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004a0000004a" change="1" id="N0041" type="GEDCOM import">
<note handle="_0000004a0000004a" change="1" id="N0042" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0002:
Line ignored as not understood Line 223: 1 TEST Repo
Empty note ignored Line 224: 1 NOTE
Skipped subordinate line Line 225: 2 TEST Empty Note</text>
Skipped subordinate line Line 225: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="340"/>
</style>
+4 -2
View File
@@ -50,9 +50,9 @@
0 @I0@ INDI
1 NAME Anna /Hansdotter/
2 GIVN Anna
2 SURN Hansdotter, Smith
2 SPFX Vrow, huh
2 SURN Hansdotter
2 SPFX Vrow
2 SURN Smith
2 _AKA Anna Smith
2 _AKA Hanna
2 NOTE Hans daughter? N0000
@@ -83,6 +83,8 @@
2 DATE 11 AUG 1966
2 PLAC San Francisco, San Francisco Co., CA
1 FAMC @F8@
2 _FREL Adopted
2 _MREL Foster
1 CHAN
2 DATE 21 DEC 2007
3 TIME 01:35:26
+40 -25
View File
@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-10-24" version="5.0.0-alpha1"/>
<created date="2019-08-04" version="5.0.2"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -163,6 +163,7 @@
</event>
<event handle="_0000005500000055" change="1" id="E0026">
<type>Birth</type>
<description>No Date Information</description>
</event>
<event handle="_0000005600000056" change="1" id="E0027">
<type>Death</type>
@@ -616,7 +617,8 @@
<gender>F</gender>
<name type="Birth Name">
<first>Anna</first>
<surname prefix="Vrow">Smith</surname>
<surname prefix="Vrow">Hansdotter</surname>
<surname prim="0">Smith</surname>
<noteref hlink="_0000001100000011"/>
</name>
<name alt="1" type="Also Known As">
@@ -1132,7 +1134,7 @@
<mother hlink="_000000b6000000b6"/>
<eventref hlink="_000000e3000000e3" role="Family"/>
<childref hlink="_0000004800000048" mrel="Adopted" frel="Adopted"/>
<childref hlink="_0000001900000019"/>
<childref hlink="_0000001900000019" mrel="Foster" frel="Adopted"/>
<childref hlink="_0000007b0000007b" mrel="Adopted" frel="Adopted"/>
<noteref hlink="_000000e4000000e4"/>
</family>
@@ -1456,13 +1458,13 @@
<noteref hlink="_000000f9000000f9"/>
</object>
<object handle="_000000d1000000d1" change="1" id="O0001">
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="unknown" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="image/jpeg" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000d8000000d8" change="1" id="O0002">
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="unknown" description="John&amp;Alice_smiths_marr_cert.jpg"/>
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="image/jpeg" description="John&amp;Alice_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000f1000000f1" change="1" id="O0003">
<file src="Attic_photo.jpg" mime="unknown" description="Attic_photo.jpg"/>
<file src="Attic_photo.jpg" mime="image/jpeg" description="Attic_photo.jpg"/>
</object>
</objects>
<repositories>
@@ -1506,7 +1508,8 @@
<note handle="_0000000100000001" change="1" id="N0000" type="GEDCOM import">
<text>Records not imported into HEAD (header):
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED</text>
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED
</text>
<style name="fontface" value="Monospace">
<range start="0" end="148"/>
</style>
@@ -1514,7 +1517,8 @@ GEDCOM FORM not supported Line 14:
<note handle="_0000000200000002" change="1" id="N0001" type="GEDCOM import">
<text>Records not imported into SUBM (Submitter): (@SUBM@) Alex Roitman,,,:
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)</text>
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)
</text>
<style name="fontface" value="Monospace">
<range start="0" end="199"/>
</style>
@@ -1523,7 +1527,8 @@ Line ignored as not understood Line 23:
<text>Records not imported into FAM (family) Gramps ID F0003:
Line ignored as not understood Line 46: 2 SOUR Not really allowed here
Filename omitted Line 48: 1 OBJE</text>
Filename omitted Line 48: 1 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="256"/>
</style>
@@ -1561,8 +1566,9 @@ Filename omitted Line 48:
<note handle="_0000003d0000003d" change="1" id="N0012" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0016:
Warn: ADDR overwritten Line 204: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 202: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA</text>
Warn: ADDR overwritten Line 206: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 204: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA
</text>
<style name="fontface" value="Monospace">
<range start="0" end="304"/>
</style>
@@ -1573,7 +1579,8 @@ ADDR element ignored '459 Main St.' Line 202:
<note handle="_0000004700000047" change="1" id="N0014" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0018:
Tag recognized but not supported Line 245: 2 TYPE first generaton</text>
Tag recognized but not supported Line 247: 2 TYPE first generaton
</text>
<style name="fontface" value="Monospace">
<range start="0" end="165"/>
</style>
@@ -1604,7 +1611,8 @@ Company. He enlisted in the army at Sparks 7 December 1917 and served as a Corpo
<note handle="_000000cf000000cf" change="1" id="N0021" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0010:
Tag recognized but not supported Line 863: 2 _STAT</text>
Tag recognized but not supported Line 865: 2 _STAT
</text>
<style name="fontface" value="Monospace">
<range start="0" end="146"/>
</style>
@@ -1612,8 +1620,9 @@ Tag recognized but not supported Line 863:
<note handle="_000000d4000000d4" change="1" id="N0022" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0011:
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 878: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 881: 2 OBJE</text>
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 880: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 883: 2 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="233"/>
</style>
@@ -1621,7 +1630,8 @@ Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 8
<note handle="_000000d9000000d9" change="1" id="N0023" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0012:
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 905: 1 OBJE</text>
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 907: 1 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="145"/>
</style>
@@ -1629,7 +1639,8 @@ Could not import John&amp;Alice_smiths_marr_cert.jpg Line 9
<note handle="_000000e4000000e4" change="1" id="N0024" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0008:
Tag recognized but not supported Line 1005: 1 ADDR 123 Main st, Grantville, Virginia, USA</text>
Tag recognized but not supported Line 1007: 1 ADDR 123 Main st, Grantville, Virginia, USA
</text>
<style name="fontface" value="Monospace">
<range start="0" end="183"/>
</style>
@@ -1652,8 +1663,9 @@ Tag recognized but not supported Line 1005:
<note handle="_000000ee000000ee" change="1" id="N0030" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0003:
Tag recognized but not supported Line 1045: 1 DATA
Skipped subordinate line Line 1046: 2 AGNC NYC Public Library</text>
Tag recognized but not supported Line 1047: 1 DATA
Skipped subordinate line Line 1048: 2 AGNC NYC Public Library
</text>
<style name="fontface" value="Monospace">
<range start="0" end="252"/>
</style>
@@ -1667,9 +1679,10 @@ Skipped subordinate line Line 1046:
<note handle="_000000f5000000f5" change="1" id="N0033" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0003:
REFN ignored Line 1075: 3 REFN blah blah
Skipped subordinate line Line 1076: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1079: 3 OBJE</text>
REFN ignored Line 1077: 3 REFN blah blah
Skipped subordinate line Line 1078: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1081: 3 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="344"/>
</style>
@@ -1677,7 +1690,8 @@ Could not import Attic_photo.jpg Line 1079:
<note handle="_000000f6000000f6" change="1" id="N0034" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1106: 0 XXX an unknown token at level 0</text>
Unknown tag Line 1108: 0 XXX an unknown token at level 0
</text>
<style name="fontface" value="Monospace">
<range start="0" end="152"/>
</style>
@@ -1685,12 +1699,13 @@ Unknown tag Line 1106:
<note handle="_000000f8000000f8" change="1" id="N0035" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1109: 1 @X1@ XXX and unknown token xref definition</text>
Unknown tag Line 1111: 1 @X1@ XXX and unknown token xref definition
</text>
<style name="fontface" value="Monospace">
<range start="0" end="163"/>
</style>
</note>
<note handle="_000000f9000000f9" change="1477325896" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1564950708" id="N0036" type="General">
<text>Objects referenced by this note were missing in a file imported on 12/25/1999 12:00:00 AM.</text>
</note>
</notes>
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -57,7 +57,7 @@
<_tip number="29"><b>Show All Checkbutton</b><br/>When adding an existing person as a spouse, the list of people shown is filtered to display only people who could realistically fit the role (based on dates in the database). In case Gramps is wrong in making this choice, you can override the filter by checking the Show All checkbutton.</_tip>
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to http://bugs.gramps-project.org and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to https://gramps-project.org/bugs/ and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
<_tip number="32"><b>Gramps Mailing Lists</b><br/>Want answers to your questions about Gramps? Check out the gramps-users email list. Many helpful people are on the list, so you're likely to get an answer quickly. If you have questions related to the development of Gramps, try the gramps-devel list. You can see the lists by selecting &quot;Help &gt; Gramps Mailing Lists&quot;.</_tip>
@@ -91,7 +91,7 @@
<_tip number="49"><b>Making a Genealogy Website</b><br/>You can easily export your family tree to a web page. Select the entire database, family lines or selected individuals to a collection of web pages ready for upload to the World Wide Web.</_tip>
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at http://bugs.gramps-project.org</_tip>
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at https://gramps-project.org/bugs/</_tip>
<_tip number="51"><b>The Gramps Homepage</b><br/>The Gramps homepage is at http://gramps-project.org/</_tip>
+12 -12
View File
@@ -1,18 +1,18 @@
Gramps for Debian
----------------------
-----------------
This is the Debian package of the 4.0 series of GRAMPS.
Version 5.0 of gramps adds the option of using a new database backend called
DB_API, as an alternative to the default BSDDB (Berkeley).
It is a major update of Gramps to upgrade to GTK 3. A switch was also made to distutils from autotools.
Two DB-API SQL engines have been developed, sqlite3 and postgresql. Compared
to BSDDB, the alternative backends have beend designed allow some flexibility
with respect to using the database with multiple users, or in multiple
locations (different computers).
The 4.0 series of Gramps is being packaged for the experimental distribution until all dependencies are available
and it proves stable.
For more details, please read the Gramps wiki:
https://gramps-project.org/wiki/index.php?title=DB-API_Database_Backend
Webkit - gir1.2-webkit-3.0 crashes. Gramps has been patched disable the hidden
HTML view instead until a solution is found.
Please note, this particular version is a pre-release version for testing.
Please do not use it on your only copy of important genealogical data.
Goocanvas2 - The latest Goocanvas is not available in Debian yet. If you miss
the Graphview plugin, you could try installing the gir1.2-goocanvas-2.0-9 which
is available in Ubuntu.
-- Ross Gammon <rossgammon@mail.dk> Sat, 25 Jan 2014 18:00:00 +0100
-- Ross Gammon <rossgammon@debian.org> Mon, 19 Feb 2018 00:04:00 +0100
+157
View File
@@ -0,0 +1,157 @@
Run gramps -v from the commandline and check dependencies:
- From the commandline type $ gramps -v
- The gramps version and versions of library dependencies are output
- Check that all dependencies have been installed, show their versions, and that there are no error messages
- If required, install the dependencies that have not been found (typically icu, osmgpsmap & gexiv)
- Type $ gramps -v again
- Check that all dependencies have been installed, show their versions, and that there are no error messages
Open Gramps, create an empty Family Tree, and check the Gramps version, credits & license:
- Run gramps
- Family Trees window opens
- Click "New" to create an empty Family Tree
- Type a name for your family tree (e.g. Sample), and press "Enter"
- Click "Load Family Tree"
- Gramps displays the "Welcome to Gramps!" start screen
- Choose Help > About from the menu
- The "About gramps" window is displayed with Version information
- Click on "Credits"
- A list of Authors and Contributors to Gramps is displayed
- Click on "License"
- The GNU General Public License is displayed
- Click on the "X" to close the "About gramps" window
- Gramps closes the "About gramps" window and returns to the "Welcome to Gramps!" start screen
Import a GEDCOM file into Gramps
If you do not have one to hand, the provided example can be extracted to your home directory and imported from there.
/usr/share/doc/gramps/example/gedcom/sample.ged.gz
- From your open and empty Family Tree, choose Family Trees > Import from the menu
- The Gramps: Import Family Tree window opens
- Locate your GEDCOM file, select it and click on "Import"
- The Import Statistics window displays "Results: done"
- Click on "Close"
- The GEDCOM import report window displays "No errors detected"
- CLick on "Close"
- The Top Surnames gramplet displays the surnames of the people imported into the Tree
Test aspects of the People View
- Click on the People View
- A list of people in "Group View" mode are shown
- Click on the arrow for a surname (e.g. Hansdotter)
- The people with this surname are revealed
- Select a person and click in the "Edit selcted person" icon (or just double click on the person)
- The "Person" window opens showing the details of this person
- Click on Cancel
- The "Person" window closes
- Choose the person list view (not grouped) by clicking on the "People" icon
- The people are now listed without any grouping by surname
- Click on the "+" icon to create a new person
- An empty "Person" window opens
- Enter some details about the person (e.g. given name, surname, and gender)
- Click on the "+" button to create a new event for this person
- The "Event Reference Editor" window opens
- Create an event (e.g. birth) by entering a date
- Click on the "+" button to add a new place
- The "New Place" window opens
- Type in some details about the place (Name, Type, Latitude & Longitude)
- Click on OK
- The "New Place" window closes
- In the "Event Reference Editor" click OK
- In the "Person" window click OK
- The "Person" window closes and you can find the person just created in the list of people
Test aspects of the Relationships View
- Click on Anna Hansdotter to select her
- Click on the Relationships View
- Details of Anna and her family are displayed
- Click on one of her children, Hjalmar Smith
- Details of Hjalmar and his family are displayed
- Click on the "Add existing Child to family" icon just above Halmar's children
- The "Select Child" window opens
- Find the person you entered previously and select it
- Click OK
- The "Select Child" window closes and you can see the new person listed as a child in Hjalmar's family
Test aspects of the Charts View
- Click on the Charts View
- The Pedigree View is shown
- Click somewhere in the Pedigree View and drag the chart around
- The mouse pointer changes to a hand and the chart can be move around
- Click on the left and right arrows (when going left you need to choose the child to move to)
- The chart will move to reveal the next generation in the family
- Make sure there are several families in view, then Click on the "Fan Chart" icon
- A fan chart showing the ancesters of the main person is shown
- Click on the Descendant Fan icon
- A fan chart showing the descendants of the same person is shown
Test aspects of the Geography View
- Click on the Geography View
- The map may take some time to load, then a pin for the person you entered early should be shown on the map at the coordinates you entered
- Click on the pin
- A choice of the place, or the person will be offered
- Hover over the place name, and choose "Edit Place"
- The "Place Selection in a region" opens
- Double click on the place
- The "Place:" editor opens
- Click on Cancel
- Click on the pin
- A choice of the place, or the person will be offered
- Hover over the persons name, and choose "Edit Event"
- The "Event:" window opens
- Click on Cancel
Import a Gramps Xml file (*.gramps) into Gramps
An existing Gramps *.gramps file with links to media will be needed for this and the next test. If you do not have one to hand, the provided example can be extracted to your home directory and imported from there.
/usr/share/doc/gramps/example/gramps/example.gramps.gz
- From the "Family Trees" menu, choose "Manage Family Trees"
- The Family Trees window opens
- Click "New" to create an empty Family Tree
- Type a name for your family tree (e.g. Example), and press "Enter"
- Click "Load Family Tree"
- Gramps opens an empty database
- From your open and empty Family Tree, choose Family Trees > Import from the menu
- The Gramps: Import Family Tree window opens
- Locate your *.gramps file, select it and click on "Import"
- The import may take some minutes, then the Import Statistics window displays the number of objects imported.
- Click on "Close"
- The Import Statistics window closes.
View Media for a person, and add new media
The media for the example file you may have used in the previous test can be found in /usr/share/doc/gramps/example/gramps/. Create a folder in your home directory to store Gramps media, and then copy the media there.
You will also need a photo to add to Gramps. Any photo will do (e.g. *.jpg file - but you can use the ones provided with Gramps).
You also need to set the base media patch for Gramps.
- In the "Edit" menu, choose "Preferences".
- The Preferences window opens on the "General" tab.
- Click the "Folder" icon to set the "Base path for relative media paths".
- The "Select media directory" window opens
- Choose the directory where your media is stored and then click "Apply"
- The "Select media directory" window closes
- Click Close
- The "Preferences" window closes
- In the "People" View, find a person with media associated (e.g. Eugene Stanley Garner, Jr. in the example database) and select him/her.
- Below the Detials tab, a thumbnail image of the person should appear (in the case of Eugene Stanley Garner, Jr. you should see him yawning). It may be necessary to restart Gramps to see the Thumbnail.
- Double click on the person's name in the People View.
- The "Person:" window opens, and the image is dispayed for the person in the Image square in the top left corner of the "Person:" window.
- Double click on the image.
- The Media Reference Editor opens showing details about the image.
- Double click in the bottom image Preview.
- An external viewer opens giving details of the image metadata and allowing some basic manipulation of the image.
- Click on the "X" to close the external viewer
- Click "Cancel" on the Media Reference Editor
- Click "Cancel" on the "Person:" window.
- All three windows close.
- Click on the "Media View".
- A list of available media is shown.
- Click on the "+" icon.
- The "Select a media object" window opens.
- Move to the folder where the media is and select the new photo (if you are using the examples provided with Gramps, I can recommend choosing O3.jpg).
- Click on "OK".
- The "New Media" window opens.
- Click on "OK".
- The media is added to the list of media.
- Select the new media.
- A preview (thumbnail) image is shown.
- Close Gramps by choosing "Quit" from the "Family Trees" menu.
- Gramps closes.
TODO: Tagging & Filtering
+149 -7
View File
@@ -1,16 +1,158 @@
Old Changelog:
gramps (5.1.1-1) unstable; urgency=medium
* New release
* Add python3-fontconfig to recommends
-- Ross Gammon <rossgammon@debian.org> Tue, 17 Sep 2019 15:21:43 +0200
gramps (5.1.0-1) unstable; urgency=medium
* New release
* Update copyrights
* Bump gtk+ version to 3.12
* Add new geocode-glib dependency
-- Ross Gammon <rossgammon@debian.org> Sat, 24 Aug 2019 19:49:27 +0200
gramps (5.0.2-1) unstable; urgency=medium
* New release
* Remove ancient python version field from debian/control
* Bump standards version, no changes required
-- Ross Gammon <rossgammon@debian.org> Sun, 11 Aug 2019 14:11:35 +0200
gramps (5.0.1-1) unstable; urgency=medium
* New release
* Update copyright file
-- Ross Gammon <rossgammon@debian.org> Thu, 20 Dec 2018 20:41:23 +0100
gramps (5.0.0-1) unstable; urgency=medium
* New Gramps release
-- Ross Gammon <rossgammon@debian.org> Wed, 25 Jul 2018 21:19:00 +0200
gramps (5.0.0~rc1-1) unstable; urgency=medium
* First release candidate for Gramps 5.0
* Drop patch applied upstream
* Update copyrights
-- Ross Gammon <rossgammon@debian.org> Sun, 01 Jul 2018 21:57:10 +0200
gramps (5.0.0~beta1-1) unstable; urgency=medium
* First beta release of gramps 5.0
* Sync debian directory with Debian experimental branch on salsa
* Point Vcs URLs at the Gramps Project on Github
* Correct spelling in debian/rules, node > nose
* Delete gbp.conf, not required as gbp not used to build package
* Delete NEWS file, only really applicable in Debian
* Fix syntax errors in d/changelog and remove trailing whitespace
* Patch person_rules_test.py to remove hard coded build path from
import. Fixes FTBFS due to test failure.
* Enable extra tests that were failing for alpha3
-- Ross Gammon <rossgammon@debian.org> Mon, 19 Feb 2018 19:25:25 +0100
gramps (4.2.8) unstable; urgency=medium
* Quick bug fix release
-- Ross Gammon <rossgammon@debian.org> Sat, 10 Feb 2018 08:30:33 +0100
gramps (5.0.0-alpha3) experimental; urgency=medium
* New alpha release for Gramps 5.0.0
-- Ross Gammon <rossgammon@debian.org> Mon, 04 Sep 2017 16:55:41 +0200
gramps (4.2.6) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.6
-- Jérôme Rapinat <romjerome@yahoo.fr> Tue, 01 Aug 2017 14:10:19 +0200
gramps (5.0.0-alpha2) experimental; urgency=medium
* 2nd Alpha release for testing
-- Ross Gammon <rosco2@ubuntu.com> Mon, 12 Jun 2017 19:42:39 +0200
gramps (4.2.5) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.5
-- Jérôme Rapinat <romjerome@yahoo.fr> Thu, 15 Dec 2016 18:52:08 +0100
gramps (4.2.4) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.4
-- Jérôme Rapinat <romjerome@yahoo.fr> Sun, 04 Sep 2016 18:34:49 +0200
gramps (5.0.0-alpha1) UNRELEASED; urgency=medium
* Alpha stream for Gramps 5.0.0
-- système <romjerome@yahoo.fr> Sat, 04 Jun 2016 20:07:14 +0200
gramps (4.2.3) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.3
-- Jérôme Rapinat <romjerome@yahoo.fr> Sun, 10 Apr 2016 21:09:19 +0200
gramps (4.2.2) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.2
-- Jérôme Rapinat <romjerome@yahoo.fr> Wed, 06 Jan 2016 19:38:25 +0100
gramps (4.2.1) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.1
-- Jérôme Rapinat <romjerome@yahoo.fr> Tue, 13 Oct 2015 05:08:30 +0200
gramps (4.2.0) UNRELEASED; urgency=medium
* New upstream for Gramps 4.2.0
-- Jérôme Rapinat <romjerome@yahoo.fr> Sun, 02 Aug 2015 17:03:37 +0200
gramps (4.1.3) precise; urgency=low
* New upstream for Gramps 4.1 branch (4.1.3)
-- Jérôme Rapinat <romjerome@yahoo.fr> Thu, 30 Apr 2015 18:42:34 +0200
gramps (3.4.9-1) precise; urgency=low
* New upstream release for 3.4.x branch
-- Jérôme Rapinat <romjerome@yahoo.fr> Thu, 30 Apr 2015 16:02:44 +0200
gramps (4.0.4) precise; urgency=low
* New upsteam for Gramps 4.0.4
-- Jérôme Rapinat <romjerome@yahoo.fr> Fri, 23 May 2014 17:07:41 +0200
gramps (4.0.3) precise; urgency=low
* - 4.0.4-git.f08e40 Experimental stream gramps.git
-- Jérôme Rapinat <romjerome@yahoo.fr> Tue, 04 Feb 2014 19:49:32 +0100
gramps (4.0.2) precise; urgency=low
* experimental .deb for gramps 4.0.2
-- Jérôme Rapinat <romjerome@yahoo.fr> Wed, 04 Dec 2013 10:23:36 +0100
-- Jérôme Rapinat <romjerome@yahoo.fr> Wed, 04 Dec 2013 10:23:36 +0100
gramps (4.0.1-2) precise; urgency=low
@@ -705,7 +847,7 @@ gramps (0.7.3-1) unstable; urgency=low
* Added new entry to the upstream NEWS file - it was missing.
* Added '#! usr/bin/python -O' line to src/AddMedia.py to make lintian happy.
Also removed this line from src/DbPrompter.py for the same reason.
* Edited debian/rules to call '$(MAKE) clean' instead of
* Edited debian/rules to call '$(MAKE) clean' instead of
'$(MAKE) distclean' which did not exist.
* Edited src/Makefile.in - 'clean' target should also remove *.so files.
* Pre-built static HTMLs since the on-the-fly generation from SGML is buggy.
@@ -840,7 +982,7 @@ gramps (0.3.1-2) unstable; urgency=low
* The author has finally addressed the issue of a missing help file. Though
as of now none have been created the error produced before is gone and the
author is working on better documentation.
Closes: #99617
Closes: #99617
-- Brandon L. Griffith <brandon@debian.org> Thu, 28 Jun 2001 20:27:30 -0500
@@ -917,7 +1059,7 @@ gramps (0.1.4-3) unstable; urgency=low
This should take care of the startup problem some people have had.
Bug Fixed. Closes: #98646
* Silly me named the menu file wrong so it never got included into the
* Silly me named the menu file wrong so it never got included into the
Debian Menu system. Gramps should now show up under Apps->Tools. Have
no idea how I overlooked this.
+1 -1
View File
@@ -1 +1 @@
9
11
+34 -18
View File
@@ -1,29 +1,37 @@
Source: gramps
Section: python
Section: gnome
Priority: optional
Maintainer: Ross Gammon <rossgammon@mail.dk>
Maintainer: Ross Gammon <rossgammon@debian.org>
Build-Depends-Indep:
dh-linktree,
dh-python,
gettext,
intltool,
libxml-parser-perl,
python3-all,
python3-setuptools
python3-setuptools,
python3-nose,
gir1.2-gtk-3.0 (>= 3.12.0),
python3-gi (>= 3.12.0),
python3-gi-cairo,
python3-bsddb3,
python3-lxml,
python3-jsonschema,
python3-mock,
python3-icu,
python3-nose-exclude
Build-Depends:
dh-python,
debhelper (>= 9.0.0)
Standards-Version: 3.9.5
Vcs-Git: git://anonscm.debian.org/collab-maint/gramps.git
Vcs-browser: http://anonscm.debian.org/gitweb/?p=collab-maint/gramps.git
Homepage: http://www.gramps-project.org/
X-Python-Version: >= 3.2
debhelper (>= 11)
Standards-Version: 4.4.0
Vcs-Git: https://github.com/gramps-project/gramps.git
Vcs-browser: https://github.com/gramps-project/gramps/tree/maintenance/gramps50
Homepage: https://www.gramps-project.org/
Package: python3-gramps
Package: gramps
Architecture: all
Depends:
gir1.2-gtk-3.0 (>= 3.10.0),
librsvg2-2,
python3-gi,
python3-gi (>= 3.12.0),
python3-gi-cairo,
python3-bsddb3,
xdg-utils,
@@ -31,16 +39,24 @@ Depends:
${python3:Depends}
Recommends:
graphviz,
gir1.2-goocanvas-2.0,
libosmgpsmap-1.0-0,
gir1.2-gexiv2-0.10,
gir1.2-osmgpsmap-1.0,
python3-pyicu
python3-icu,
gir1.2-geocodeglib-1.0,
python3-fontconfig
Suggests:
fonts-freefont-ttf,
gir1.2-gexiv2-0.10,
gir1.2-goocanvas-2.0,
gir1.2-gtkspell3-3.0,
python3-pil,
rcs
rcs,
python3-numpy
Conflicts:
python-gramps,
python3-gramps
Replaces:
python-gramps,
python3-gramps
Description: Genealogical research program
Gramps is an Open Source genealogy program written in Python, using
the GTK/GNOME interface. It is an extremely flexible program fitting
+44 -238
View File
@@ -1,37 +1,37 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Gramps
Source: http://gramps-project.org
Source: https://gramps-project.org
Files: *
Copyright: 2000-2007, Alex Roitman
2000-2002, Bruce J. DeGrasse
2000-2008, Donald N. Allingham
2000-2007, Martin Hawlisch
2001, Andrés Sepúlveda
2001, Andrés Sepúlveda
2001, David R. Hampton
2001-2013, Free Software Foundation, Inc.
2001-2017, Free Software Foundation, Inc.
2001, Graham J. Williams
2001, Jesper Zedlitz
2001-2013, The Gramps Project
2001-2019, The Gramps Project
2002, Gary Shao
2003-2006, Josiah Carlson
2004-2006, Eero Tamminen
2004-2013, Julio Sánchez
2004, Toshio Kuratomi
2005-2011, Serge Noiraud
2006-2011, Brian G. Matherly
2004-2013, Julio Sánchez
2005-2019, Serge Noiraud
2006-2012, Brian G. Matherly
2006, 2008-2011, Kees Bakker
2006-2008, Steve Hall
2007-2012, Benny Malengier
2007-2012, Douglas S. Blank
2007-2013, Benny Malengier
2007-2013, 2015-2016, Douglas S. Blank
2007-2012, Gary Burton
2007-2011, Jerome Rapinat
2007, Johan Gronqvist
2007, Robert Cawley
2007-2009, Stephane Charette
2007-2016, The Gramps Developers
2007, Thom Sturgill
2007-2008, Zsolt Foldvari
2008-2010, 2012, Craig J. Anderson
2008-2010, 2012-2015, Craig J. Anderson
2008-2009, James Friedmann
2008-2009, Jason Simanek
2008, Lukasz Rymarczyk
@@ -43,133 +43,64 @@ Copyright: 2000-2007, Alex Roitman
2008, Stefan Siegel
2008-2010, Stephen George
2009-2010, Andrew I Baznikin
2009, 2011, The Dojo Foundation
2009, Florian Heinle
2009, Gerald W. Britton
2009, Igal Shapira
2009, 2011, John Resig
2009-2013, Nick Hall
2009-2018, Nick Hall
2009, Pander Musubi
2009, Robert Ham
2009, Swoon on bug tracker
2009, Yevgeny Zegzda
2010, Gramps
2010, 2015 Gramps
2010, Jakim Friant
2010, Josip
2010, lcc & Robert Jerome
2010-2012, Michiel D. Nauta
2010-2013, Tim G L Lyons
2010-2011, Vlada Perić
2010-2016, Tim G L Lyons
2010-2011, 2014, Vlada Perić
2011, Adam Stein
2011-2012, Harald Rosemann
2011, 2013, Heinz Brinker
2011, Helge Herz
2011, 2013 John Ralls
2011, Matt Keenan
2011-2013, Paul Franklin
2012, Mathieu MD
2011, 2016 Matt Keenan
2011-2018, Paul Franklin
2012, lcc
2012, 2014, Mathieu MD
2012, Nicolas Adenis-Lamarre
2013, Fedir Zinchuk
2013, Oleh Petrivk
2013, Vassilii Khachaturov
2013, Artem Glebov
2011-2016, Fedir Zinchuk
2013-2017, Alois Poettker
2013-2014, Vassilii Khachaturov
2013, Zissis Papadopoulos
2015, Icelandic translators of Gramps
2014, Bastien Jacquet
2014, Gerald Kunzmann
2015, Fabrice
2015, Lajos Nemeséri
2015, Detlef Wolz
2016, Allen Crider
2016, DaAwesomeP
2016-2018, Paul Culley
2016, QuLogic
2016, Tom Samstag
2017, Jonathan Biegert
2017, Mindaugas Baranauskas
2017, Robert Carnell
2018, Christophe aka khrys63
2018, Paul D.Smith
2018, Robin van der Vliet
2018, Theo van Rijn
2019, Matthias Kemmer
License: GPL-2+
Files: data/javascript/jquery-1.3.2.min.js
Copyright: 2009, John Resig
License: MIT and GPL
Files: data/javascript/jquery-1.7.1.js
Copyright: 2011, John Resig
2011, The Dojo Foundation
License: BSD and MIT and GPL-2
Files: data/javascript/jquery-ui-1.7.2.custom.min.js
Copyright: 2009, jQuery UI Team (http://jqueryui.com/about/)
License: MIT and GPL-2
Files: data/javascript/jquery.flexbox*
Copyright: 2008-2010, Noah Heldman and Fairway Technologies
License: Ms-PL
Files: data/jhtmlarea/Readme.txt
Copyright: 2009, Chris Pietschmann
License: Ms-RL
Files: data/jhtmlarea/scripts/jHtmlArea*
Copyright: 2009, Chris Pietschmann
License: Ms-RL
Files: data/jhtmlarea/scripts/jquery-1.3.2*
Copyright: 2009, John Resig
2009, The Dojo Foundation
License: MIT
Files: data/jhtmlarea/scripts/jquery-ui-*
Copyright: 2009, jQuery UI Team (http://jqueryui.com/about)
License: MIT and GPL
Files: debian/*
Copyright: 2001-2002, Brandon L. Griffith
2002, Alex Roitman
2002-2012, James A. Treacy
2013, Ross Gammon
2013-2018, Ross Gammon
License: GPL-2+
Files: gramps/webapp/grampsdb/view/png.py
Copyright: 2006, Johann C. Rocholl
2009, David Jones
2006, Nicko van Someren
License: MIT
License: BSD
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY John Resig ''AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: GPL
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 1 only of the License.
.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
License: GPL-2
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 only of the License.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -187,128 +118,3 @@ License: GPL-2+
.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
License: Ms-PL
This license governs use of the accompanying software. If you use the
software, you accept this license. If you do not accept the license, do not
use the software.
.
1. Definitions
.
The terms "reproduce," "reproduction," "derivative works," and "distribution"
have the same meaning here as under U.S. copyright law.
.
A "contribution" is the original software, or any additions or changes to the
software.
.
A "contributor" is any person that distributes its contribution under this
license.
.
"Licensed patents" are a contributor's patent claims that read directly on its
contribution.
.
2. Grant of Rights
.
(A) Copyright Grant- Subject to the terms of this license, including the
license conditions and limitations in section 3, each contributor grants you a
non-exclusive, worldwide, royalty-free copyright license to reproduce its
contribution, prepare derivative works of its contribution, and distribute its
contribution or any derivative works that you create.
.
(B) Patent Grant- Subject to the terms of this license, including the license
conditions and limitations in section 3, each contributor grants you a
non-exclusive, worldwide, royalty-free license under its licensed patents to
make, have made, use, sell, offer for sale, import, and/or otherwise dispose of
its contribution in the software or derivative works of the contribution in the
software.
.
3. Conditions and Limitations
.
(A) No Trademark License- This license does not grant you rights to use any
contributors' name, logo, or trademarks.
.
(B) If you bring a patent claim against any contributor over patents that you
claim are infringed by the software, your patent license from such contributor
to the software ends automatically.
.
(C) If you distribute any portion of the software, you must retain all copyright,
patent, trademark, and attribution notices that are present in the software.
.
(D) If you distribute any portion of the software in source code form, you may do
so only under this license by including a complete copy of this license with your
distribution. If you distribute any portion of the software in compiled or object
code form, you may only do so under a license that complies with this license.
.
(E) The software is licensed "as-is." You bear the risk of using it. The
contributors give no express warranties, guarantees or conditions. You may have
additional consumer rights under your local laws which this license cannot change.
To the extent permitted under your local laws, the contributors exclude the
implied warranties of merchantability, fitness for a particular purpose and
non-infringement.
License: Ms-RL
This license governs use of the accompanying software. If you use the software,
you accept this license. If you do not accept the license, do not use the software.
.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have
the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the
software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its
contribution.
.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license
conditions and limitations in section 3, each contributor grants you a
non-exclusive, worldwide, royalty-free copyright license to reproduce its
contribution, prepare derivative works of its contribution, and distribute its
contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license
conditions and limitations in section 3, each contributor grants you a
non-exclusive, worldwide, royalty-free license under its licensed patents to make,
have made, use, sell, offer for sale, import, and/or otherwise dispose of its
contribution in the software or derivative works of the contribution in the software.
.
3. Conditions and Limitations
(A) Reciprocal Grants- For any file you distribute that contains code from the
software (in source code or binary format), you must provide recipients the source
code to that file along with a copy of this license, which license will govern that
file. You may license other files that are entirely your own work and do not contain
code from the software under any terms you choose.
(B) No Trademark License- This license does not grant you rights to use any
contributors' name, logo, or trademarks.
(C) If you bring a patent claim against any contributor over patents that you claim
are infringed by the software, your patent license from such contributor to the
software ends automatically.
(D) If you distribute any portion of the software, you must retain all copyright,
patent, trademark, and attribution notices that are present in the software.
(E) If you distribute any portion of the software in source code form, you may do so
only under this license by including a complete copy of this license with your
distribution. If you distribute any portion of the software in compiled or object code
form, you may only do so under a license that complies with this license.
(F) The software is licensed "as-is." You bear the risk of using it. The contributors
give no express warranties, guarantees or conditions. You may have additional consumer
rights under your local laws which this license cannot change. To the extent permitted
under your local laws, the contributors exclude the implied warranties of
merchantability, fitness for a particular purpose and non-infringement.
+1
View File
@@ -0,0 +1 @@
RELEASE_NOTES
+25 -22
View File
@@ -1,35 +1,38 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
export DH_OPTIONS=-v
#export DH_VERBOSE=1
#export DH_OPTIONS=-v
export PYBUILD_NAME=gramps
export PYBUILD_INSTALL_ARGS_python3=--resourcepath=/usr/share --force
%:
dh $@ --with python3 --buildsystem=pybuild
# Override auto test because upstream do not use the standard unittest discover
# Override auto test to enable nose tests
override_dh_auto_test:
# Override of auto_build
override_dh_auto_build:
python3 setup.py build
HOME=$(CURDIR)/build \
nosetests3 -vv \
--exclude=TestcaseGenerator \
--exclude=test4_arbitrary_uncode_path \
--exclude-dir=gramps/plugins/test/ \
gramps
# Override of auto_install to remove information from package
override_dh_auto_install:
#dh_auto_install
python3 setup.py install --resourcepath=/usr/share --root=debian/python3-gramps --install-layout=deb
# Remove duplicate license/copyright information
rm $(CURDIR)/debian/python3-gramps/usr/share/doc/gramps/COPYING
dh_installchangelogs NEWS
dh_auto_install
# Remove install file as it is not needed by package users
rm $(CURDIR)/debian/python3-gramps/usr/share/doc/gramps/INSTALL
# Link license/copyright information to debians
ln -s /usr/share/common-licenses/GPL-2 $(CURDIR)/debian/python3-gramps/usr/share/doc/gramps/COPYING
rm $(CURDIR)/debian/gramps/usr/share/doc/gramps/INSTALL
# Remove NEWS file as it is now installed as the changelog
rm $(CURDIR)/debian/gramps/usr/share/doc/gramps/NEWS
#Remove license information in COPYING file & link to system license
rm $(CURDIR)/debian/gramps/usr/share/doc/gramps/COPYING
ln -s /usr/share/common-licenses/GPL-2 $(CURDIR)/debian/gramps/usr/share/doc/gramps/COPYING
# Make css style sheets and png icons non-executable
override_dh_fixperms:
dh_fixperms
chmod a-x $(CURDIR)/debian/python3-gramps/usr/share/gramps/css/Web_*.css
# Avoid compressing COPYING file so that it can appear in the "About" dialog
override_dh_compress:
dh_compress -X COPYING
# Fix clean target
override_dh_clean:
rm -rf data/tips.xml
rm -rf gramps/plugins/lib/holidays.xml
rm -rf po/.intltool-merge-cache
dh_clean
+1 -1
View File
@@ -1 +1 @@
1.8
3.0 (quilt)
+1
View File
@@ -0,0 +1 @@
unapply-patches
+3
View File
@@ -0,0 +1,3 @@
Tests: gramps-import-export
Depends: gramps, gzip
Restrictions: allow-stderr
+38
View File
@@ -0,0 +1,38 @@
#!/bin/sh
# Author: Ross Gammon <rossgammon@mail.dk>
#
# autopkgtest check: Tests that gramps can import the sample gedcom file and
# export it in the .gpkg format, and then import the example gramps database
# and export it in gedcom format.
set -e
echo "--------------------------------"
echo "GEDCOM to Gramps conversion test"
echo "--------------------------------"
echo "Retrieving sample gedcom"
cp /usr/share/doc/gramps/example/gedcom/sample.ged.gz .
echo "Unzipping sample gedcom"
gunzip sample.ged.gz
echo "Importing gedcom into gramps and exporting a gramps .gpkg file"
gramps -i sample.ged -e sample.gpkg
echo "-----------------------------------"
echo "GEDCOM to Gramps conversion SUCCESS"
echo "-----------------------------------"
echo
echo "--------------------------------"
echo "Gramps to GEDCOM conversion test"
echo "--------------------------------"
echo "Retrieving example gramps file"
cp /usr/share/doc/gramps/example/gramps/example.gramps.gz .
echo "Unzipping example gramps file"
gunzip example.gramps.gz
echo "Importing gramps file into gramps and exporting a gedcom"
gramps -i example.gramps -e example.ged
echo "-----------------------------------"
echo "Gramps to GEDCOM conversion SUCCESS"
echo "-----------------------------------"
echo
echo "gramps-import-export: TEST PASSED"
+7
View File
@@ -0,0 +1,7 @@
Bug-Database: https://gramps-project.org/bugs/my_view_page.php
Contact: https://lists.sourceforge.net/lists/listinfo/gramps-users
Donation: https://sourceforge.net/project/project_donations.php?group_id=25770
Name: Gramps
Homepage: https://gramps-project.org/
Repository: https://github.com/gramps-project/gramps.git
Repository-Browse: https://github.com/gramps-project/gramps
+8
View File
@@ -0,0 +1,8 @@
version=3
opts=\
dversionmangle=s/(\~|\+)(debian|dfsg|ds|deb)(\.\d+)?$//,\
filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/$1\.tar\.gz/,\
repacksuffix=~dfsg \
https://github.com/gramps-project/gramps/tags \
.*/archive/v?([\d\.]+).tar.gz
+3 -3
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2017, The Gramps Project'
copyright = '2001-2019, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
@@ -65,9 +65,9 @@ author = 'Donald N. Allingham'
# built documents.
#
# The short X.Y version.
version = '5.0.0'
version = '5.1.0'
# The full version, including alpha/beta/rc tags.
release = '5.0.0-master'
release = '5.1.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+1 -1
View File
@@ -46,7 +46,7 @@ Generic
DummyDb
====================================
.. automodule:: gramps.plugins.db.dummydb
.. automodule:: gramps.gen.db.dummydb
:members:
:undoc-members:
:show-inheritance:
+1 -1
View File
@@ -15,7 +15,7 @@
<resphone>(555)123-4567</resphone>
<resemail>anyone@someplace.com</resemail>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
</header>
<tags>
<tag handle="_c7642d9389b54417e8b" change="1370206720" name="tag1" color="#000000000000" priority="0"/>
+68 -32
View File
@@ -3,11 +3,11 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-08-31" version="5.0.0"/>
<created date="2017-08-08" version="5.1.0"/>
<researcher>
<resname>Alex Roitman,,,</resname>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
</header>
<name-formats>
<format number="-1" name="SURNAME, Given (Common)" fmt_str="SURNAME, given (common)" active="1"/>
@@ -951,7 +951,7 @@
<place hlink="_L3WJQCD3US67V2CNZT"/>
<description>Birth of Garner, Anderson</description>
</event>
<event handle="_a5af0eb7dfb557da07e" change="1284030599" id="E0179">
<event handle="_a5af0eb7dfb557da07e" change="1502187535" id="E0179">
<type>Death</type>
<dateval val="1887-04-07"/>
<place hlink="_AKFKQC2N4SM243HCTN"/>
@@ -6262,7 +6262,7 @@
<dateval val="1842-06-28"/>
<description>Death of Moreno, Joseph McDowell</description>
</event>
<event handle="_a5af0ec45b25c630e03" change="1284030608" id="E1179">
<event handle="_a5af0ec45b25c630e03" change="1502187451" id="E1179">
<type>Birth</type>
<dateval val="1911-07-12"/>
<description>Birth of Thornton, James Arthur</description>
@@ -13946,10 +13946,10 @@
<place hlink="_VDCKQCZX3MEHKVDR8S"/>
<description>Death of Schultz, Rev.Isaac</description>
</event>
<event handle="_a5af0ed3f64432fb742" change="1284030595" id="E2618">
<event handle="_a5af0ed3f64432fb742" change="1520536150" id="E2618">
<type>Burial</type>
<dateval val="1818" type="about"/>
<place hlink="_4ECKQCWCLO5YIHXEXZ"/>
<place hlink="_c965872633b600e8b5ca4d5e6db"/>
<description>Burial of Schultz, Rev.Isaac</description>
</event>
<event handle="_a5af0ed3f9b07f938fb" change="1284030602" id="E2619">
@@ -15003,7 +15003,7 @@
<type>Marriage</type>
<description>Marriage of Johnson, Henry and Sparks, Catherine</description>
</event>
<event handle="_a5af0ed5df832ee65c1" change="1328026859" id="E2815">
<event handle="_a5af0ed5df832ee65c1" change="1502187371" id="E2815">
<type>Marriage</type>
<dateval val="1875-04-01"/>
<place hlink="_RF5KQCNJRQY8OGTX2H"/>
@@ -18649,7 +18649,7 @@
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
<citationref hlink="_c140d2472c91aad494f"/>
</person>
<person handle="_14LKQCYZJEAXTS3XX" change="1185438865" id="I1376">
<person handle="_14LKQCYZJEAXTS3XX" change="1502187492" id="I1376">
<gender>F</gender>
<name type="Birth Name">
<first>Elizabeth</first>
@@ -18657,6 +18657,7 @@
</name>
<eventref hlink="_a5af0ebb003796f79a0" role="Primary"/>
<eventref hlink="_a5af0ebb0143dab99ff" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_I4LKQCOAGPFH4R90A7"/>
<citationref hlink="_c140d24731407d57b3c"/>
@@ -19904,7 +19905,7 @@
<childof hlink="_IO5KQC6H0Q6Y517LR9"/>
<citationref hlink="_c140d24a1fd2319b703"/>
</person>
<person handle="_35WJQC1B7T7NPV8OLV" change="1284030051" id="I0106">
<person handle="_35WJQC1B7T7NPV8OLV" change="1502187260" id="I0106">
<gender>M</gender>
<name type="Birth Name">
<first>Robert W.</first>
@@ -19913,6 +19914,11 @@
<eventref hlink="_a5af0eb74ac73f86aa7" role="Primary"/>
<eventref hlink="_a5af0eb74ba358391ae" role="Primary"/>
<eventref hlink="_a5af0eb74c852f7c633" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_X3WJQCSF48F6809142"/>
<parentin hlink="_8OUJQCUVZ0XML7BQLF"/>
<citationref hlink="_c140d24a27e19bb381a"/>
@@ -21991,13 +21997,14 @@
<childof hlink="_GCDKQCHI74ZPMI5GDJ"/>
<citationref hlink="_c140d24f3f8704aa41b"/>
</person>
<person handle="_6G0KQC2UXYC66XDDC2" change="1185438865" id="I0363">
<person handle="_6G0KQC2UXYC66XDDC2" change="1502187537" id="I0363">
<gender>F</gender>
<name type="Birth Name">
<first>Miranda Keziah</first>
<surname>Farmer</surname>
</name>
<eventref hlink="_a5af0ec7a76244d962d" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
<childof hlink="_8NVJQCGMJTCL7E6ZDV"/>
<citationref hlink="_c140d24f439709d3118"/>
</person>
@@ -22989,7 +22996,7 @@
<parentin hlink="_FBVJQCFBI50TW78O49"/>
<citationref hlink="_c140d2522702664ec52"/>
</person>
<person handle="_8CLKQCT97PJOGREJ7W" change="1185438865" id="I1387">
<person handle="_8CLKQCT97PJOGREJ7W" change="1502187387" id="I1387">
<gender>M</gender>
<name type="Birth Name">
<first>Robert</first>
@@ -22997,6 +23004,11 @@
</name>
<eventref hlink="_a5af0ebb3737a6ad088" role="Primary"/>
<eventref hlink="_a5af0ebb39b441e9607" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_H6LKQCWVIFNRNGHFVH"/>
<citationref hlink="_c140d2522d804491375"/>
@@ -23803,7 +23815,7 @@
<childof hlink="_5DBKQCVAB0XMBEW8R9"/>
<citationref hlink="_c140d25425874b0b827"/>
</person>
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1185438865" id="I0038">
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1502187526" id="I0038">
<gender>M</gender>
<name type="Birth Name">
<first>David</first>
@@ -23812,6 +23824,7 @@
<eventref hlink="_a5af0ec7eb514c52fbf" role="Primary"/>
<eventref hlink="_a5af0ec7ec844213b55" role="Primary"/>
<eventref hlink="_a5af0ec7ed61c743fc8" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Informant"/>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_3HUJQCK4DH582YUTZG"/>
<citationref hlink="_c140d2542c764516f13"/>
@@ -24506,7 +24519,7 @@
<parentin hlink="_8NVJQCGMJTCL7E6ZDV"/>
<citationref hlink="_c140d2560004fad8df6"/>
</person>
<person handle="_ANLKQCQSQNE5LDZMRC" change="1185438865" id="I1402">
<person handle="_ANLKQCQSQNE5LDZMRC" change="1502187434" id="I1402">
<gender>F</gender>
<name type="Birth Name">
<first>Margaret Jane &quot;Maggie&quot;</first>
@@ -24514,6 +24527,7 @@
</name>
<eventref hlink="_a5af0ebb7d47a006ee2" role="Primary"/>
<eventref hlink="_a5af0ebb7e54e14970f" role="Primary"/>
<eventref hlink="_a5af0ec45b25c630e03" role="Witness"/>
<childof hlink="_VDLKQCQQ1ADTJG1D1F"/>
<parentin hlink="_SNLKQCD0VNJ627062Y"/>
<citationref hlink="_c140d25607213be35da"/>
@@ -24882,13 +24896,18 @@
<parentin hlink="_JFYJQCG2KLRQN835JD"/>
<citationref hlink="_c140d256e3403ba129d"/>
</person>
<person handle="_B3BKQCSV0G3NKSKWDX" change="1185438865" id="I0880">
<person handle="_B3BKQCSV0G3NKSKWDX" change="1502187344" id="I0880">
<gender>F</gender>
<name type="Birth Name">
<first>L. J.</first>
<surname>Blanco</surname>
</name>
<eventref hlink="_a5af0ed2cf617169903" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_1BVJQCNTFAGS8273LJ"/>
<citationref hlink="_c140d256ec4306a51ca"/>
</person>
@@ -31930,7 +31949,7 @@
<childof hlink="_UDMKQC5D3A2PXPUGNC"/>
<citationref hlink="_c140d266ec93334f40f"/>
</person>
<person handle="_MG5KQC6ZKSVO4A63G2" change="1328026883" id="I0624">
<person handle="_MG5KQC6ZKSVO4A63G2" change="1502187451" id="I0624">
<gender>M</gender>
<name type="Birth Name">
<first>Raymond E.</first>
@@ -31938,6 +31957,7 @@
</name>
<eventref hlink="_a5af0ece8bd1125a1a9" role="Primary"/>
<eventref hlink="_a5af0ece8d15511ddf9" role="Primary"/>
<eventref hlink="_a5af0ec45b25c630e03" role="Informant"/>
<childof hlink="_9OUJQCBOHW9UEK9CNV"/>
<citationref hlink="_c140d266f0d5d178784"/>
</person>
@@ -32336,7 +32356,7 @@
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
<citationref hlink="_c140d267ccb7aef0cd0"/>
</person>
<person handle="_N4DKQCPEMZ7OO62O7J" change="1185438865" id="I0975">
<person handle="_N4DKQCPEMZ7OO62O7J" change="1502187308" id="I0975">
<gender>M</gender>
<name type="Birth Name">
<first>Henry</first>
@@ -32345,6 +32365,11 @@
<eventref hlink="_a5af0ed483738d4ed1e" role="Primary"/>
<eventref hlink="_a5af0ed484a144d229b" role="Primary"/>
<eventref hlink="_a5af0ed48605fb6b9eb" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<parentin hlink="_7PUJQC4PPS4EDIVMYE"/>
<citationref hlink="_c140d267d2128356d8e"/>
</person>
@@ -59379,10 +59404,6 @@
<ptitle>USA</ptitle>
<pname value="USA"/>
</placeobj>
<placeobj handle="_4ECKQCWCLO5YIHXEXZ" change="1234373374" id="P1704" type="Country">
<ptitle>Puerto Rico</ptitle>
<pname value="Puerto Rico"/>
</placeobj>
<placeobj handle="_4FUJQCDFTJJJNKKJMH" change="1234390522" id="P0958" type="City">
<ptitle>Boone, IA</ptitle>
<pname value="Boone"/>
@@ -65622,29 +65643,44 @@
<pname value="St. Lawrence"/>
<placeref hlink="_c96587263cc11e217c35cc9003f"/>
</placeobj>
<placeobj handle="_d583a5b7ab21971300a" change="1467134436" id="P0435" type="Unknown">
<placeobj handle="_d583a5b7ab21971300a" change="1520535854" id="P0435" type="City">
<ptitle>Δράμα</ptitle>
<pname value="Δράμα"/>
<pname value="Δράμα" lang="el"/>
<pname value="Drama" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_d583a5b8614206a939d" change="1467134581" id="P0436" type="Unknown">
<placeobj handle="_d583a5b8614206a939d" change="1520535887" id="P0436" type="City">
<ptitle>Θεσσαλονίκη</ptitle>
<pname value="Θεσσαλονίκη"/>
<pname value="Θεσσαλονίκη" lang="el"/>
<pname value="Thessaloniki" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_d583a5b8a8c1474357d" change="1467135440" id="P0437" type="Unknown">
<placeobj handle="_d583a5b8a8c1474357d" change="1520535915" id="P0437" type="City">
<ptitle>Ιωάννινα</ptitle>
<pname value="Ιωάννινα"/>
<pname value="Ιωάννινα" lang="el"/>
<pname value="Ioannina" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_d583a5b8b586fb992c8" change="1467135553" id="P0438" type="Unknown">
<placeobj handle="_d583a5b8b586fb992c8" change="1520535978" id="P0438" type="City">
<ptitle>Σιάτιστα</ptitle>
<pname value="Σιάτιστα"/>
<pname value="Σιάτιστα" lang="el"/>
<pname value="Siatista" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_d583a5b8c380fb024c9" change="1467136002" id="P0439" type="Unknown">
<placeobj handle="_d583a5b8c380fb024c9" change="1520535800" id="P0439" type="City">
<ptitle>Άργος</ptitle>
<pname value="Άργος"/>
<pname value="Άργος" lang="el"/>
<pname value="Argos" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_d583a5b8d1106cda712" change="1467136077" id="P0440" type="Unknown">
<placeobj handle="_d583a5b8d1106cda712" change="1520535947" id="P0440" type="City">
<ptitle>Μεσολόγγι</ptitle>
<pname value="Μεσολόγγι"/>
<pname value="Μεσολόγγι" lang="el"/>
<pname value="Missolonghi" lang="en"/>
<placeref hlink="_dd445e5bfcc17bd1838"/>
</placeobj>
<placeobj handle="_dd445e5bfcc17bd1838" change="1520535973" id="P0441" type="Country">
<pname value="Greece" lang="en"/>
</placeobj>
</places>
<objects>
+12 -5
View File
@@ -47,6 +47,7 @@ from gramps.gen.recentfiles import recent_files
from gramps.gen.utils.file import rm_tempdir, get_empty_tempdir
from .clidbman import CLIDbManager, NAME_FILE, find_locker_name
from gramps.gen.db.utils import make_database
from gramps.gen.db.dbconst import DBBACKEND
from gramps.gen.plug import BasePluginManager
from gramps.gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE, BookList
from .plug import cl_report, cl_book
@@ -382,7 +383,7 @@ class ArgHandler:
self.open = db_path
self.__open_action()
else:
sys.exit(1)
sys.exit(_("Error: cannot open '%s'") % self.open_gui)
return db_path
# if not open_gui, parse any command line args. We can only have one
@@ -504,6 +505,9 @@ class ArgHandler:
self.imp_db_path = get_empty_tempdir("import_dbdir")
dbid = config.get('database.backend')
newdb = make_database(dbid)
versionpath = os.path.join(self.imp_db_path, str(DBBACKEND))
with open(versionpath, "w") as version_file:
version_file.write(dbid)
try:
self.smgr.open_activate(self.imp_db_path, self.username, self.password)
@@ -554,6 +558,9 @@ class ArgHandler:
if self.dbman.needs_recovery(dbpath):
self.__error(_("Database needs recovery, cannot open it!"))
return False
if self.dbman.backend_unavailable(dbpath):
self.__error(_("Database backend unavailable, cannot open it!"))
return False
return True
#-------------------------------------------------------------------------
@@ -616,8 +623,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
report_class = eval('mod.' + pdata.reportclass)
options_class = eval('mod.' + pdata.optionclass)
report_class = getattr(mod, pdata.reportclass)
options_class = getattr(mod, pdata.optionclass)
if category in (CATEGORY_BOOK, CATEGORY_CODE):
options_class(self.dbstate.db, name, category,
options_str_dict)
@@ -665,8 +672,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
tool_class = eval('mod.' + pdata.toolclass)
options_class = eval('mod.' + pdata.optionclass)
tool_class = getattr(mod, pdata.toolclass)
options_class = getattr(mod, pdata.optionclass)
tool.cli_tool(dbstate=self.dbstate,
name=name,
category=category,
+52 -3
View File
@@ -39,15 +39,16 @@ import sys
import os
import getopt
import logging
import shutil
from glob import glob
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.const import LONGOPTS, SHORTOPTS, PLUGINS_DIR, USER_PLUGINS
from gramps.gen.plug import BasePluginManager
from gramps.gen.config import config
from gramps.gen.const import (LONGOPTS, SHORTOPTS, USER_PLUGINS, VERSION_DIR,
HOME_DIR, TEMP_DIR, THUMB_DIR, ENV_DIR, USER_CSS)
from gramps.gen.utils.cast import get_type_converter
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@@ -81,6 +82,14 @@ Application options
-y, --yes Don't ask to confirm dangerous actions (non-GUI mode only)
-q, --quiet Suppress progress indication output (non-GUI mode only)
-v, --version Show versions
-S, --safe Start Gramps in 'Safe mode'
(temporarily use default settings)
-D, --default=[APXFE] Reset settings to default;
A - addons are cleared
P - Preferences to default
X - Books are cleared, reports and tool settings to default
F - filters are cleared
E - Everything is set to default or cleared
""")
_USAGE = _("""
@@ -342,6 +351,7 @@ class ArgParser:
elif option in ['-t']:
self.list_table = True
elif option in ['-s', '--show']:
from gramps.gen.config import config
print(_("Gramps config settings from %s:"
) % config.filename)
for sect in config.data:
@@ -351,6 +361,7 @@ class ArgParser:
print()
sys.exit(0)
elif option in ['-c', '--config']:
from gramps.gen.config import config
cfg_name = value
set_value = False
if cfg_name:
@@ -396,6 +407,44 @@ class ArgParser:
self.auto_accept = True
elif option in ['-q', '--quiet']:
self.quiet = True
elif option in ['-S', '--safe']:
cleandbg += [opt_ix]
elif option in ['-D', '--default']:
def rmtree(path):
if os.path.isdir(path):
shutil.rmtree(path, ignore_errors=True)
if 'E' in value or 'A' in value: # clear addons
rmtree(USER_PLUGINS)
if 'E' in value or 'P' in value: # clear ini preferences
for fil in glob(os.path.join(VERSION_DIR, "*.*")):
if "custom_filters.xml" in fil:
continue
os.remove(fil)
# create gramps.ini so config won't load the one from an
# older version of Gramps.
with open(os.path.join(VERSION_DIR, 'gramps.ini'), 'w'):
pass
if 'E' in value or 'F' in value: # clear filters
fil = os.path.join(VERSION_DIR, "custom_filters.xml")
if os.path.isfile(fil):
os.remove(fil)
if 'E' in value or 'X' in value: # clear xml reports/tools
for fil in glob(os.path.join(HOME_DIR, "*.xml")):
os.remove(fil)
if 'E' in value or 'Z' in value: # clear upgrade zips
for fil in glob(os.path.join(HOME_DIR, "*.zip")):
os.remove(fil)
if 'E' in value: # Everything else
rmtree(TEMP_DIR)
rmtree(THUMB_DIR)
rmtree(USER_CSS)
rmtree(ENV_DIR)
rmtree(os.path.join(HOME_DIR, "maps"))
for fil in glob(os.path.join(HOME_DIR, "*")):
if os.path.isfile(fil):
os.remove(fil)
sys.exit(0) # Done with Default
#clean options list
cleandbg.reverse()
+14 -15
View File
@@ -48,8 +48,8 @@ import logging
from gramps.gen.plug import BasePluginManager
from gramps.gen.config import config
from gramps.gen.constfunc import win
from gramps.gen.db.dbconst import DBLOGNAME
from gramps.gen.db.utils import make_database
from gramps.gen.db.dbconst import DBLOGNAME, DBBACKEND
from gramps.gen.db.utils import make_database, get_dbid_from_path
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@@ -68,8 +68,8 @@ _LOG = logging.getLogger(DBLOGNAME)
#-------------------------------------------------------------------------
DEFAULT_TITLE = _("Family Tree")
NAME_FILE = "name.txt"
BACKEND_FILE = "database.txt"
META_NAME = "meta_data.db"
UNAVAILABLE = _('Unavailable')
#-------------------------------------------------------------------------
#
@@ -155,11 +155,7 @@ class CLIDbManager:
_("Version")
_("Schema version")
"""
dbid = "bsddb"
dbid_path = os.path.join(dirpath, "database.txt")
if os.path.isfile(dbid_path):
with open(dbid_path) as file:
dbid = file.read().strip()
dbid = get_dbid_from_path(dirpath)
if not self.is_locked(dirpath):
try:
database = make_database(dbid)
@@ -183,7 +179,7 @@ class CLIDbManager:
for plugin in pmgr.get_reg_databases():
if plugin.id == dbid:
return plugin._name
return _("Unknown")
return UNAVAILABLE
def print_family_tree_summaries(self, database_names=None):
"""
@@ -236,11 +232,7 @@ class CLIDbManager:
for dpath in os.listdir(dbdir):
dirpath = os.path.join(dbdir, dpath)
path_name = os.path.join(dirpath, NAME_FILE)
try:
with open(os.path.join(dirpath, "database.txt")) as file:
backend_type = file.read()
except:
backend_type = "bsddb"
backend_type = get_dbid_from_path(dirpath)
if os.path.isfile(path_name):
with open(path_name, 'r', encoding='utf8') as file:
name = file.readline().strip()
@@ -308,7 +300,7 @@ class CLIDbManager:
dbid = config.get('database.backend')
newdb = make_database(dbid)
backend_path = os.path.join(new_path, BACKEND_FILE)
backend_path = os.path.join(new_path, DBBACKEND)
with open(backend_path, "w", encoding='utf8') as backend_file:
backend_file.write(dbid)
@@ -402,6 +394,13 @@ class CLIDbManager:
return True
return False
def backend_unavailable(self, dbpath):
"""
Returns True if the database in dirpath has an unavailable backend
"""
dbid = get_dbid_from_path(dbpath)
return self.get_backend_name_from_dbid(dbid) == UNAVAILABLE
def remove_database(self, dbname, user=None):
"""
Deletes a database folder given a pattenr that matches
+3 -1
View File
@@ -64,6 +64,7 @@ from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
from gramps.gen.plug import BasePluginManager
from gramps.gen.utils.config import get_researcher
from gramps.gen.recentfiles import recent_files
from gramps.gen.filters import reload_custom_filters
#-------------------------------------------------------------------------
#
@@ -279,7 +280,7 @@ class CLIManager:
# Attempt to figure out the database title
path = os.path.join(filename, "name.txt")
try:
with open(path) as ifile:
with open(path, encoding='utf8') as ifile:
title = ifile.readline().strip()
except:
title = filename
@@ -373,6 +374,7 @@ def startcli(errors, argparser):
#load the plugins
climanager.do_reg_plugins(dbstate, uistate=None)
reload_custom_filters()
# handle the arguments
from .arghandler import ArgHandler
handler = ArgHandler(dbstate, argparser, climanager)
+2 -2
View File
@@ -88,9 +88,9 @@ def _convert_str_to_match_type(str_val, type_val):
return str(str_val)
elif ret_type == int:
if str_val.isdigit():
try:
return int(str_val)
else:
except ValueError:
print("'%s' is not an integer number" % str_val)
return 0
+19 -6
View File
@@ -6,6 +6,7 @@
# Copyright (C) 2008-2009 Gary Burton
# Copyright (C) 2009-2012 Doug Blank <doug.blank@gmail.com>
# Copyright (C) 2011 Tim G L Lyons
# Copyright (C) 2015- Serge Noiraud
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -148,6 +149,7 @@ register('behavior.min-generation-years', 13)
register('behavior.owner-warn', False)
register('behavior.pop-plugin-status', False)
register('behavior.recent-export-type', 3)
register('behavior.runcheck', False)
register('behavior.spellcheck', False)
register('behavior.startup', 0)
register('behavior.surname-guessing', 0)
@@ -155,9 +157,9 @@ register('behavior.translator-needed', True)
register('behavior.use-tips', False)
register('behavior.welcome', 100)
register('behavior.web-search-url', 'http://google.com/#&q=%(text)s')
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50")
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps51")
register('database.backend', 'bsddb')
register('database.backend', 'sqlite')
register('database.compress-backup', True)
register('database.backup-path', USER_HOME)
register('database.backup-on-exit', True)
@@ -217,17 +219,20 @@ register('interface.sidebar-text', True)
register('interface.size-checked', False)
register('interface.statusbar', 1)
register('interface.toolbar-on', True)
register('interface.toolbar-text', False)
register('interface.view', True)
register('interface.surname-box-height', 150)
register('interface.treemodel-cache-size', 1000)
register('paths.recent-export-dir', '')
register('paths.recent-export-dir', USER_HOME)
register('paths.recent-file', '')
register('paths.recent-import-dir', '')
register('paths.recent-import-dir', USER_HOME)
register('paths.report-directory', USER_HOME)
register('paths.website-directory', USER_HOME)
register('paths.website-cms-uri', '')
register('paths.website-cal-uri', '')
register('paths.website-extra-page-uri', '')
register('paths.website-extra-page-name', '')
register('paths.quick-backup-directory', USER_HOME)
register('paths.quick-backup-filename',
"%(filename)s_%(year)d-%(month)02d-%(day)02d.%(extension)s")
@@ -236,7 +241,6 @@ register('preferences.quick-backup-include-mode', False)
register('preferences.date-format', 0)
register('preferences.calendar-format-report', 0)
register('preferences.cprefix', 'C%04d')
register('preferences.alternate-fonthandler', False)
register('preferences.default-source', False)
register('preferences.tag-on-import', False)
register('preferences.tag-on-import-format', _("Imported %Y/%m/%d %H:%M:%S"))
@@ -278,6 +282,10 @@ register('colors.female-dead', ['#feccf0', '#3a292b'])
register('colors.unknown-alive', ['#f3dbb6', '#75507B'])
register('colors.unknown-dead', ['#f3dbb6', '#35103b'])
register('colors.family', ['#eeeeee', '#454545'])
register('colors.family-married', ['#eeeeee', '#454545'])
register('colors.family-unmarried', ['#eeeeee', '#454545'])
register('colors.family-civil-union', ['#eeeeee', '#454545'])
register('colors.family-unknown', ['#eeeeee', '#454545'])
register('colors.family-divorced', ['#ffdede', '#5c3636'])
register('colors.home-person', ['#bbe68a', '#304918'])
register('colors.border-male-alive', ['#1f4986', '#171d26'])
@@ -302,6 +310,11 @@ register('researcher.researcher-state', '')
register('plugin.hiddenplugins', [])
register('plugin.addonplugins', [])
register('utf8.in-use', False)
register('utf8.available-fonts', [])
register('utf8.selected-font', "")
register('utf8.death-symbol', 13)
if __debug__: # enable a simple CLI test to see if the datestrings exist
register('test.january', _("localized lexeme inflections||January"))
@@ -325,7 +338,7 @@ if not os.path.exists(CONFIGMAN.filename):
# check previous version of gramps:
fullpath, filename = os.path.split(CONFIGMAN.filename)
fullpath, previous = os.path.split(fullpath)
match = re.match('gramps(\d*)', previous)
match = re.match(r'gramps(\d*)', previous)
if match:
# cycle back looking for previous versions of gramps
for i in range(1, 20): # check back 2 gramps versions
+13 -3
View File
@@ -104,6 +104,13 @@ elif 'USERPROFILE' in os.environ:
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = os.path.join(USER_HOME, '.gramps')
ORIG_HOME_DIR = HOME_DIR
if 'SAFEMODE' in os.environ:
if 'USERPROFILE' in os.environ:
USER_HOME = get_env_var('USERPROFILE')
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = get_env_var('SAFEMODE')
VERSION_DIR = os.path.join(
@@ -138,7 +145,8 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
# Glade files
@@ -217,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2018 The Gramps Developers"
"© 2007-2019 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
@@ -266,6 +274,7 @@ LONGOPTS = [
"class=",
"config=",
"debug=",
"default=",
"display=",
"disable-sound",
"disable-crash-dialog",
@@ -293,6 +302,7 @@ LONGOPTS = [
"password=",
"create=",
"options=",
"safe",
"screen=",
"show",
"sm-client-id=",
@@ -306,7 +316,7 @@ LONGOPTS = [
"quiet",
]
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syq"
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syqSD:"
GRAMPS_UUID = uuid.UUID('516cd010-5a41-470f-99f8-eb22f1098ad6')
+6 -6
View File
@@ -124,12 +124,12 @@ class DateParserAR(DateParser):
_span_2 = ['إلى']
_range_1 = ['بين']
_range_2 = ['و']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+6 -6
View File
@@ -166,12 +166,12 @@ class DateParserBG(DateParser):
_span_2 = ['до']
_range_1 = ['между']
_range_2 = ['и']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+7 -7
View File
@@ -98,14 +98,14 @@ class DateParserCA(DateParser):
DateParser.init_strings(self)
_span_1 = ['des de']
_span_2 = ['fins a']
_range_1 = ['entre', 'ent\.', 'ent']
_range_1 = ['entre', r'ent\.', 'ent']
_range_2 = ['i']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+5 -4
View File
@@ -89,10 +89,11 @@ class DateParserDa(DateParser):
def init_strings(self):
DateParser.init_strings(self)
self._span = re.compile("(fra)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("(mellem)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
re.IGNORECASE)
self._span = re.compile(
r"(fra)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mellem)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
#-------------------------------------------------------------------------
#
+34 -19
View File
@@ -51,9 +51,9 @@ class DateParserDE(DateParser):
# Always add german and austrian name variants no matter what the current
# locale is
month_to_int["januar"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jänner"] = 1
month_to_int["jän"] = 1
month_to_int["jän"] = 1
# Add other common latin,
@@ -121,14 +121,14 @@ class DateParserDE(DateParser):
# local and historical variants
month_to_int["jenner"] = 1
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
# old german names
@@ -248,14 +248,16 @@ class DateParserDE(DateParser):
def init_strings(self):
DateParser.init_strings(self)
self._span = re.compile("(von|vom)\s+(?P<start>.+)\s+(bis)\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("zwischen\s+(?P<start>.+)\s+und\s+(?P<stop>.+)",
re.IGNORECASE)
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
re.IGNORECASE)
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
re.IGNORECASE)
self._span = re.compile(
r"(von|vom)\s+(?P<start>.+)\s+(bis)\s+(?P<stop>.+)", re.IGNORECASE)
self._range = re.compile(
r"zwischen\s+(?P<start>.+)\s+und\s+(?P<stop>.+)", re.IGNORECASE)
self._text2 = re.compile(
r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
re.IGNORECASE)
self._jtext2 = re.compile(
r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
re.IGNORECASE)
#-------------------------------------------------------------------------
#
@@ -288,7 +290,8 @@ class DateDisplayDE(DateDisplay):
formats = (
"JJJJ-MM-DD (ISO)", "Numerisch", "Monat Tag Jahr",
"MONAT Tag Jahr", "Tag. Monat Jahr", "Tag. MONAT Jahr"
"MONAT Tag Jahr", "Tag. Monat Jahr", "Tag. MONAT Jahr",
"Numerisch mit führenden Nullen"
)
# this definition must agree with its "_display_gregorian" method
@@ -341,6 +344,18 @@ class DateDisplayDE(DateDisplay):
else:
value = "%d. %s %s" % (date_val[0],
self.long_months[date_val[1]], year)
elif self.format == 6:
# day.month_number.year with leading zeros
if date_val[3]:
return self.display_iso(date_val)
else:
if date_val[0] == date_val[1] == 0:
value = str(date_val[2])
else:
value = self.dhformat.replace('%m', str(date_val[1])
.zfill(2))
value = value.replace('%d', str(date_val[0]).zfill(2))
value = value.replace('%Y', str(date_val[2]))
else:
# day. month_abbreviation year
if date_val[0] == 0:
+7 -7
View File
@@ -116,14 +116,14 @@ class DateParserEL(DateParser):
DateParser.init_strings(self)
_span_1 = ['από']
_span_2 = ['έως']
_range_1 = ['μετ', 'μετ\.', 'μεταξύ']
_range_1 = ['μετ', r'μετ\.', 'μεταξύ']
_range_2 = ['και']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+7 -7
View File
@@ -97,14 +97,14 @@ class DateParserES(DateParser):
DateParser.init_strings(self)
_span_1 = ['de']
_span_2 = ['a']
_range_1 = ['entre', 'ent\.', 'ent']
_range_1 = ['entre', r'ent\.', 'ent']
_range_2 = ['y']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+5 -5
View File
@@ -98,12 +98,12 @@ class DateParserFI(DateParser):
def init_strings(self):
DateParser.init_strings(self)
self._text2 = re.compile('(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile("(?P<start>.+)\s+(-)\s+(?P<stop>.+)",
re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile(r"(?P<start>.+)\s+(-)\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
"(vuosien\s*)?(?P<start>.+)\s+ja\s+(?P<stop>.+)\s+välillä",
r"(vuosien\s*)?(?P<start>.+)\s+ja\s+(?P<stop>.+)\s+välillä",
re.IGNORECASE)
#-------------------------------------------------------------------------
+51 -16
View File
@@ -22,6 +22,7 @@
#
# Croatian version 2008 by Josip
# Croatian version 2018 by Milo
"""
Croatian-specific classes for parsing and displaying dates.
@@ -51,13 +52,15 @@ from ._datehandler import register_datehandler
#-------------------------------------------------------------------------
class DateParserHR(DateParser):
modifier_to_int = {
'prije' : Date.MOD_BEFORE,
'prije' : Date.MOD_BEFORE,
'pr. ' : Date.MOD_BEFORE,
'poslije' : Date.MOD_AFTER,
'po. ' : Date.MOD_AFTER,
'okolo' : Date.MOD_ABOUT,
'ok. ' : Date.MOD_ABOUT,
'poslije' : Date.MOD_AFTER,
'po. ' : Date.MOD_AFTER,
'nakon' : Date.MOD_AFTER,
'na. ' : Date.MOD_AFTER,
'oko' : Date.MOD_ABOUT,
'okolo' : Date.MOD_ABOUT,
'ok. ' : Date.MOD_ABOUT,
}
quality_to_int = {
@@ -75,19 +78,27 @@ class DateParserHR(DateParser):
compiles regular expression strings for matching dates
"""
DateParser.init_strings(self)
#~ DateParser.calendar_to_int.update({
#~ 'персидский' : Date.CAL_PERSIAN,
#~ 'п' : Date.CAL_PERSIAN,
#~ })
# match 'Day. MONTH year.' format with or without dots
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
% self._mon_str, re.IGNORECASE)
# match Day.Month.Year.
self._numeric = re.compile(
r"((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._jmon_str, re.IGNORECASE)
_span_1 = ['od']
_span_2 = ['do']
_range_1 = ['između']
_range_2 = ['i']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
@@ -105,11 +116,35 @@ class DateDisplayHR(DateDisplay):
display = DateDisplay.display_formatted
def format_short_month_year(self, month, year, inflect, short_months):
""" Allow a subclass to modify the year, e.g. add a period """
if not hasattr(short_months[1], 'f'): # not a Lexeme: no inflection
return "{short_month} {year}.".format(
short_month = short_months[month], year = year)
return self.FORMATS_short_month_year[inflect].format(
short_month = short_months[month], year = year)
def _get_localized_year(self, year):
""" Allow a subclass to modify the year, e.g. add a period """
return year + '.'
# FIXME probably there should be a Croatian-specific "formats" (and this
# ("American comma") format (and dd_dformat03 too) should be eliminated)
def dd_dformat02(self, date_val, inflect, long_months):
""" month_name day, year """
return DateDisplay.dd_dformat02(
self, date_val, inflect, long_months).replace(' .', '')
def dd_dformat04(self, date_val, inflect, long_months):
""" day month_name year """
return DateDisplay.dd_dformat04(
self, date_val, inflect, long_months).replace(' .', '')
#-------------------------------------------------------------------------
#
# Register classes
#
#-------------------------------------------------------------------------
register_datehandler(
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d.%m.%Y',)),
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d. %m. %Y.',)),
DateParserHR, DateDisplayHR)
+46 -46
View File
@@ -55,7 +55,7 @@ class DateParserHU(DateParser):
month_to_int["-"]=0 #to make the Zero month to work
month_to_int["január"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jan."] = 1
month_to_int["I"] = 1
# month_to_int["i"] = 1
@@ -64,67 +64,67 @@ class DateParserHU(DateParser):
month_to_int["feb"] = 2
month_to_int["feb."] = 2
month_to_int["II"] = 2
# month_to_int["ii"] = 2
# month_to_int["ii"] = 2
month_to_int["március"] = 3
month_to_int["márc"] = 3
month_to_int["márc."] = 3
month_to_int["III"] = 3
# month_to_int["iii"] = 3
# month_to_int["iii"] = 3
month_to_int["április"] = 4
month_to_int["ápr"] = 4
month_to_int["ápr."] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["május"] = 5
month_to_int["máj"] = 5
month_to_int["máj."] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["június"] = 6
month_to_int["jún"] = 6
month_to_int["jún."] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szept."] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["nov."] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
#-----------------------------------------------------------------------
@@ -228,19 +228,19 @@ class DateParserHU(DateParser):
DateParser.init_strings(self)
self._numeric = re.compile(
"((\d+)[/\.])?\s*((\d+)[/\.])?\s*(\d+)[/\. ]?$")
r"((\d+)[/\.])?\s*((\d+)[/\.])?\s*(\d+)[/\. ]?$")
# this next RE has the (possibly-slashed) year at the string's start
self._text2 = re.compile('((\d+)(/\d+)?\.)?\s+?%s\.?\s*(\d+\.)?\s*$'
% self._mon_str, re.IGNORECASE)
_span_1 = ['-tó\\)l', '-tól', '-től']
self._text2 = re.compile(r'((\d+)(/\d+)?\.)?\s+?%s\.?\s*(\d+\.)?\s*$'
% self._mon_str, re.IGNORECASE)
_span_1 = [r'-tó\\)l', '-tól', '-től']
_span_2 = ['-ig']
_range_1 = ['és']
_range_2 = ['között']
self._span = re.compile("(?P<start>.+)(%s)\s+(?P<stop>.+)(%s)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(?P<start>.+)\s+(%s)\s+(?P<stop>.+)\s+(%s)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(?P<start>.+)(%s)\s+(?P<stop>.+)(%s)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(?P<start>.+)\s+(%s)\s+(?P<stop>.+)\s+(%s)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
+10 -8
View File
@@ -90,22 +90,23 @@ class DateParserIs(DateParser):
}
def dhformat_changed(self):
self._dhformat_parse = re.compile(".*%(\S).*%(\S).*%(\S).*%(\S).*")
self._dhformat_parse = re.compile(r".*%(\S).*%(\S).*%(\S).*%(\S).*")
def init_strings(self):
DateParser.init_strings(self)
# match 'day. month year' format
self._text2 = re.compile('(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*$'
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
# match 'short-day day.month year' format
short_day_str = '(' + '|'.join(self._ds.short_days[1:]) + ')'
self._numeric = re.compile("%s\s*((\d+)[\.]\s*)?((\d+)\s*)?(\d+)\s*$"
self._numeric = re.compile(r"%s\s*((\d+)[\.]\s*)?((\d+)\s*)?(\d+)\s*$"
% short_day_str, re.IGNORECASE)
self._span = re.compile("(frá)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("(milli)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
re.IGNORECASE)
self._span = re.compile(
r"(frá)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(milli)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
#-------------------------------------------------------------------------
#
@@ -185,7 +186,8 @@ class DateDisplayIs(DateDisplay):
text, scal)
def _get_weekday(self, date_val):
if date_val[0] == 0 or date_val[1] == 0: # no day or no month or both
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
or date_val[2] > datetime.MAXYEAR): # bug 10815
return ''
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
return self.short_days[((w_day.weekday() + 1) % 7) + 1]
+5 -5
View File
@@ -96,12 +96,12 @@ class DateParserIT(DateParser):
_span_2 = ['al', 'a']
_range_1 = ['tra', 'fra']
_range_2 = ['e']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+5 -5
View File
@@ -166,13 +166,13 @@ class DateParserJA(DateParser):
_span_2 = ['まで', '']
_range_1 = ['から', '', '~', '']
_range_2 = ['までの間', 'の間']
self._span = re.compile("(?P<start>.+)(%s)(?P<stop>\d+)(%s)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(?P<start>.+)(%s)(?P<stop>.+)(%s)" %
self._span = re.compile(r"(?P<start>.+)(%s)(?P<stop>\d+)(%s)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(?P<start>.+)(%s)(?P<stop>.+)(%s)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
#-------------------------------------------------------------------------
#
+9 -8
View File
@@ -131,18 +131,19 @@ class DateParserLT(DateParser):
def init_strings(self):
DateParser.init_strings(self)
# this next RE has the (possibly-slashed) year at the string's start
self._text2 = re.compile('((\d+)(/\d+)?)?\s+?m\.\s+%s\s*(\d+)?\s*d?\.?$'
% self._mon_str, re.IGNORECASE)
self._text2 = re.compile(
r'((\d+)(/\d+)?)?\s+?m\.\s+%s\s*(\d+)?\s*d?\.?$'
% self._mon_str, re.IGNORECASE)
_span_1 = ['nuo']
_span_2 = ['iki']
_range_1 = ['tarp']
_range_2 = ['ir']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
#-------------------------------------------------------------------------
#
+12 -6
View File
@@ -58,6 +58,7 @@ class DateParserNb(DateParser):
'innen' : Date.MOD_BEFORE,
'etter' : Date.MOD_AFTER,
'omkring' : Date.MOD_ABOUT,
'omtrent' : Date.MOD_ABOUT,
'ca' : Date.MOD_ABOUT
}
@@ -89,12 +90,13 @@ class DateParserNb(DateParser):
def init_strings(self):
DateParser.init_strings(self)
# match day. month year
self._numeric = re.compile("((\d+)[\.])?\s*((\d+))?\s*(\d+)$")
self._span = re.compile("(fra)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("(mellom)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
re.IGNORECASE)
self._numeric = re.compile(
r"((\d+)[/\.\s]\s*)?((\d+)[/\.\-\s]\s*)?(\d+)\s*$")
self._span = re.compile(
r"(fra)?\s*(?P<start>.+)\s*(til|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mellom)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
#-------------------------------------------------------------------------
#
@@ -173,6 +175,10 @@ class DateDisplayNb(DateDisplay):
return "%s%s%s%s" % (qual_str, self._mod_str[mod],
text, scal)
def dd_dformat01(self, date_val):
""" numerical -- for Norwegian dates """
return DateDisplay.dd_dformat01(self, date_val).lstrip()
#-------------------------------------------------------------------------
#
# Register classes
+28 -30
View File
@@ -57,30 +57,30 @@ class DateParserNL(DateParser):
# Always add dutch and flemish name variants
# no matter what the current locale is
month_to_int["januari"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
# Add other common latin, local and historical variants
month_to_int["januaris"] = 1
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
#make sure on all distro mrt and maa are accepted
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
modifier_to_int = {
'voor' : Date.MOD_BEFORE,
@@ -119,16 +119,14 @@ class DateParserNL(DateParser):
def init_strings(self):
DateParser.init_strings(self)
self._span = re.compile("(van)\s+(?P<start>.+)\s+(tot)\s+(?P<stop>.+)",
self._span = re.compile(
r"(van)\s+(?P<start>.+)\s+(tot)\s+(?P<stop>.+)", re.IGNORECASE)
self._range = re.compile(r"tussen\s+(?P<start>.+)\s+en\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("tussen\s+(?P<start>.+)\s+en\s+(?P<stop>.+)",
re.IGNORECASE)
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._mon_str,
re.IGNORECASE)
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._jmon_str,
re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._mon_str, re.IGNORECASE)
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._jmon_str, re.IGNORECASE)
#-------------------------------------------------------------------------
#
+41 -38
View File
@@ -54,38 +54,38 @@ class DateParserPL(DateParser):
month_to_int["styczeń"] = 1
month_to_int["sty"] = 1
month_to_int["I"] = 1
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
# Alternative forms: declined nouns
month_to_int["stycznia"] = 1
month_to_int["lutego"] = 2
@@ -156,13 +156,16 @@ class DateParserPL(DateParser):
def init_strings(self):
DateParser.init_strings(self)
self._span = re.compile("(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)", re.IGNORECASE)
self._span = re.compile(
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)", re.IGNORECASE)
# Also handle a common mistakes
self._range = re.compile("((?:po)?mi(?:ę|e)dzy)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)", re.IGNORECASE)
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
re.IGNORECASE)
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
re.IGNORECASE)
self._range = re.compile(
r"((?:po)?mi(?:ę|e)dzy)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._mon_str, re.IGNORECASE)
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._jmon_str, re.IGNORECASE)
#-------------------------------------------------------------------------
#
+6 -6
View File
@@ -102,13 +102,13 @@ class DateParserPT(DateParser):
DateParser.init_strings(self)
_span_1 = ['de']
_span_2 = ['a']
_range_1 = ['entre','ent\.','ent']
_range_1 = ['entre', r'ent\.', 'ent']
_range_2 = ['e']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
+16 -6
View File
@@ -94,13 +94,13 @@ class DateParserRU(DateParser):
_span_1 = ['с', 'от']
#_span_2 = ['по', 'до'] # <-- clashes with bce parsing :-(
_span_2 = ['по']
_range_1 = ['между', 'меж\.', 'меж']
_range_1 = ['между', r'меж\.', 'меж']
_range_2 = ['и']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
@@ -132,6 +132,11 @@ class DateDisplayRU(DateDisplay):
inflect, long_months)
elif date_val[1] == 0: # month is zero but day is not (see 8477)
return self.display_iso(date_val)
elif not hasattr(long_months[date_val[1]], 'f'): # not a Lexeme
return "{day:d} {long_month} {year}".format(
day = date_val[0],
long_month = long_months[date_val[1]],
year = year)
else:
return "{day:d} {long_month.f[Р]} {year}".format(
day = date_val[0],
@@ -151,6 +156,11 @@ class DateDisplayRU(DateDisplay):
inflect, short_months)
elif date_val[1] == 0: # month is zero but day is not (see 8477)
return self.display_iso(date_val)
elif not hasattr(short_months[date_val[1]], 'f'): # not a Lexeme
return "{day:d} {short_month} {year}".format(
day = date_val[0],
short_month = short_months[date_val[1]],
year = year)
else:
return "{day:d} {short_month.f[Р]} {year}".format(
day = date_val[0],
+5 -5
View File
@@ -86,11 +86,11 @@ class DateParserSK(DateParser):
_span_2 = ['do']
_range_1 = ['medzi']
_range_2 = ['a']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
+8 -8
View File
@@ -88,18 +88,18 @@ class DateParserSL(DateParser):
DateParser.init_strings(self)
# match 'Day. MONTH year.' format with or without dots
self._text2 = re.compile('(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
% self._mon_str, re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
% self._mon_str, re.IGNORECASE)
# match Day.Month.Year.
self._numeric = re.compile("((\d+)[/\.-])?\s*((\d+)[/\.-])?\s*(\d+)\.?$")
self._numeric = re.compile(
r"((\d+)[/\.-])?\s*((\d+)[/\.-])?\s*(\d+)\.?$")
self._span = re.compile("od\s+(?P<start>.+)\s+do\s+(?P<stop>.+)",
self._span = re.compile(r"od\s+(?P<start>.+)\s+do\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
"med\s+(?P<start>.+)\s+in\s+(?P<stop>.+)",
re.IGNORECASE)
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'\
% self._jmon_str, re.IGNORECASE)
r"med\s+(?P<start>.+)\s+in\s+(?P<stop>.+)", re.IGNORECASE)
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
% self._jmon_str, re.IGNORECASE)
#-------------------------------------------------------------------------
#
+67 -66
View File
@@ -54,95 +54,95 @@ class DateParserSR(DateParser):
"""
month_to_int = DateParser.month_to_int
month_to_int["januar"] = 1
month_to_int["januar"] = 1
month_to_int["januara"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["јануара"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["februar"] = 2
month_to_int["februar"] = 2
month_to_int["februara"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["фебруара"] = 2
month_to_int["ii"] = 2
month_to_int["ii"] = 2
month_to_int["mart"] = 3
month_to_int["mart"] = 3
month_to_int["marta"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["марта"] = 3
month_to_int["iii"] = 3
month_to_int["iii"] = 3
month_to_int["april"] = 4
month_to_int["april"] = 4
month_to_int["aprila"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["априла"] = 4
month_to_int["iv"] = 4
month_to_int["iv"] = 4
month_to_int["maj"] = 5
month_to_int["maj"] = 5
month_to_int["maja"] = 5
month_to_int["мај"] = 5
month_to_int["мај"] = 5
month_to_int["маја"] = 5
month_to_int["v"] = 5
month_to_int["v"] = 5
month_to_int["jun"] = 6
month_to_int["jun"] = 6
month_to_int["juna"] = 6
month_to_int["јун"] = 6
month_to_int["јун"] = 6
month_to_int["јуна"] = 6
month_to_int["vi"] = 6
month_to_int["vi"] = 6
month_to_int["jul"] = 7
month_to_int["jul"] = 7
month_to_int["jula"] = 7
month_to_int["јул"] = 7
month_to_int["јул"] = 7
month_to_int["јула"] = 7
month_to_int["vii"] = 7
month_to_int["vii"] = 7
month_to_int["avgust"] = 8
month_to_int["avgust"] = 8
month_to_int["avgusta"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["августа"] = 8
month_to_int["viii"] = 8
month_to_int["viii"] = 8
month_to_int["septembar"] = 9
month_to_int["septembra"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["септембар"] = 9
month_to_int["септембра"] = 9
month_to_int["ix"] = 9
month_to_int["ix"] = 9
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
modifier_to_int = {
'pre' : Date.MOD_BEFORE,
@@ -208,21 +208,22 @@ class DateParserSR(DateParser):
"""
DateParser.init_strings(self)
# match 'Day. MONTH year.' format with or without dots
self._text2 = re.compile('(\d+)?\.?\s*?%s\s*((\d+)(/\d+)?)?\.?\s*$'
% self._mon_str, re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\s*((\d+)(/\d+)?)?\.?\s*$'
% self._mon_str, re.IGNORECASE)
# match Day.Month.Year.
self._numeric = re.compile("((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
self._numeric = re.compile(
r"((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
_span_1 = ['od', 'од']
_span_2 = ['do', 'до']
_range_1 = ['između', 'између']
_range_2 = ['i', 'и']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
+9 -7
View File
@@ -95,14 +95,16 @@ class DateParserSv(DateParser):
def init_strings(self):
""" Define, in Swedish, span and range regular expressions"""
DateParser.init_strings(self)
self._numeric = re.compile("((\d+)/)?\s*((\d+)/)?\s*(\d+)[/ ]?$")
self._numeric = re.compile(r"((\d+)/)?\s*((\d+)/)?\s*(\d+)[/ ]?$")
# this next RE has the (possibly-slashed) year at the string's start
self._text2 = re.compile('((\d+)(/\d+)?)?\s+?%s\s*(\d+)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile("(från)?\s*(?P<start>.+)\s*(till|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile("(mellan)\s+(?P<start>.+)\s+och\s+(?P<stop>.+)",
re.IGNORECASE)
self._text2 = re.compile(r'((\d+)(/\d+)?)?\s+?%s\s*(\d+)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile(
r"(från)?\s*(?P<start>.+)\s*(till|--|)\s*(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mellan)\s+(?P<start>.+)\s+och\s+(?P<stop>.+)",
re.IGNORECASE)
#-------------------------------------------------------------------------
#
+6 -6
View File
@@ -108,14 +108,14 @@ class DateParserUK(DateParser):
_span_1 = ['з', 'від']
# b.c.e. pattern also have "до" so skip "до н."
_span_2 = ['по', 'до(?!\s+н)']
_span_2 = ['по', r'до(?!\s+н)']
_range_1 = ['між']
_range_2 = ['і', 'та']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
% ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#-------------------------------------------------------------------------
+5 -5
View File
@@ -124,13 +124,13 @@ class DateParserZH_CN(DateParser):
_span_2 = ['']
_range_1 = ['介于']
_range_2 = ['']
self._span = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
self._span = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
#-------------------------------------------------------------------------
#
+5 -5
View File
@@ -124,13 +124,13 @@ class DateParserZH_TW(DateParser):
_span_2 = ['']
_range_1 = ['介於']
_range_2 = ['']
self._span = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
self._span = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
#-------------------------------------------------------------------------
#
+26 -16
View File
@@ -4,7 +4,7 @@
#
# Copyright (C) 2004-2006 Donald N. Allingham
# Copyright (C) 2013 Vassilii Khachaturov
# Copyright (C) 2014-2017 Paul Franklin
# Copyright (C) 2014-2018 Paul Franklin
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -570,6 +570,7 @@ class DateDisplay:
def _get_short_weekday(self, date_val):
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
or date_val[1] == 13 # Hebrew has 13 months
or date_val[2] > datetime.MAXYEAR # bug 10815
or date_val[2] < 0): # B.C.E. date
return ''
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
@@ -578,11 +579,16 @@ class DateDisplay:
def _get_long_weekday(self, date_val):
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
or date_val[1] == 13 # Hebrew has 13 months
or date_val[2] > datetime.MAXYEAR # bug 10815
or date_val[2] < 0): # B.C.E. date
return ''
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
return self.long_days[((w_day.weekday() + 1) % 7) + 1]
def _get_localized_year(self, year):
""" Allow a subclass to modify the year, e.g. add a period """
return year
def dd_dformat01(self, date_val):
"""
numerical
@@ -594,19 +600,23 @@ class DateDisplay:
return self.display_iso(date_val)
else:
if date_val[0] == date_val[1] == 0:
return str(date_val[2])
return self._get_localized_year(str(date_val[2]))
else:
value = self.dhformat.replace('%m', str(date_val[1]))
# some locales have %b for the month, e.g. ar_EG, is_IS, nb_NO
# so it would be "Jan" but as it's "numeric" I'll make it "1"
value = value.replace('%b', str(date_val[1]))
# some locales have %B for the month, e.g. ta_IN
# so it would be "January" but as it's "numeric" I'll make it 1
value = value.replace('%B', str(date_val[1]))
# some locales have %a for the abbreviated day, e.g. is_IS
value = value.replace('%a', self._get_short_weekday(date_val))
# some locales have %A for the long/full day, e.g. ta_IN
value = value.replace('%A', self._get_long_weekday(date_val))
if '%b' in value or '%B' in value:
# some locales have %b for the month (ar_EG, is_IS, nb_NO)
# so it would be "Jan" but as it's "numeric" make it "1"
value = value.replace('%b', str(date_val[1]))
# some locales have %B for the month, e.g. ta_IN
# so it would be "January" but as it's "numeric" make it 1
value = value.replace('%B', str(date_val[1]))
if '%a' in value or '%A' in value:
# some locales have %a for the abbreviated day, e.g. is_IS
value = value.replace('%a',
self._get_short_weekday(date_val))
# some locales have %A for the long/full day, e.g. ta_IN
value = value.replace('%A',
self._get_long_weekday(date_val))
if date_val[0] == 0: # ignore the zero day and its delimiter
i_day = value.find('%d')
if len(value) == i_day + 2: # delimiter is left of the day
@@ -628,7 +638,7 @@ class DateDisplay:
year = self._slash_year(date_val[2], date_val[3])
if date_val[0] == 0:
if date_val[1] == 0:
return year
return self._get_localized_year(year)
else:
return self.format_long_month_year(date_val[1], year,
inflect, long_months)
@@ -654,7 +664,7 @@ class DateDisplay:
year = self._slash_year(date_val[2], date_val[3])
if date_val[0] == 0:
if date_val[1] == 0:
return year
return self._get_localized_year(year)
else:
return self.format_short_month_year(date_val[1], year,
inflect, short_months)
@@ -680,7 +690,7 @@ class DateDisplay:
year = self._slash_year(date_val[2], date_val[3])
if date_val[0] == 0:
if date_val[1] == 0:
return year
return self._get_localized_year(year)
else:
return self.format_long_month_year(date_val[1], year,
inflect, long_months)
@@ -706,7 +716,7 @@ class DateDisplay:
year = self._slash_year(date_val[2], date_val[3])
if date_val[0] == 0:
if date_val[1] == 0:
return year
return self._get_localized_year(year)
else:
return self.format_short_month_year(date_val[1], year,
inflect, short_months)
+64 -58
View File
@@ -56,7 +56,7 @@ from ._datestrings import DateStrings
# Top-level module functions
#
#-------------------------------------------------------------------------
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_leap_days = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
def gregorian_valid(date_tuple):
@@ -193,7 +193,7 @@ class DateParser:
converted, the text string is assigned.
"""
_dhformat_parse = re.compile(".*%(\S).*%(\S).*%(\S).*")
_dhformat_parse = re.compile(r".*%(\S).*%(\S).*%(\S).*")
# RFC-2822 only uses capitalized English abbreviated names, no locales.
_rfc_days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')
@@ -400,8 +400,8 @@ class DateParser:
_ = self._locale.translation.gettext
self.__init_prefix_tables()
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._bce_str = self.re_longest_first(self.bce)
self._qual_str = self.re_longest_first(list(self.quality_to_int.keys()))
@@ -409,77 +409,83 @@ class DateParser:
self._mod_after_str = self.re_longest_first(
list(self.modifier_after_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._jmon_str = self.re_longest_first(list(self.hebrew_to_int.keys()))
self._fmon_str = self.re_longest_first(list(self.french_to_int.keys()))
self._pmon_str = self.re_longest_first(list(self.persian_to_int.keys()))
self._imon_str = self.re_longest_first(list(self.islamic_to_int.keys()))
self._smon_str = self.re_longest_first(list(self.swedish_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._today_str = self.re_longest_first(self.today + [_("today"),])
# bce, calendar type and quality may be either at the end or at
# the beginning of the given date string, therefore they will
# be parsed from the middle and will be in match.group(2).
self._bce_re = re.compile("(.*)\s+%s( ?.*)" % self._bce_str)
self._bce_re = re.compile(r"(.*)\s+%s( ?.*)" % self._bce_str)
self._cal = re.compile("(.*)\s+\(%s\)( ?.*)" % self._cal_str,
re.IGNORECASE)
self._calny = re.compile("(.*)\s+\(%s,\s*%s\)( ?.*)" % (self._cal_str,
self._ny_str),
re.IGNORECASE)
self._calny_iso = re.compile("(.*)\s+\(%s,\s*(\d{1,2}-\d{1,2})\)( ?.*)" % self._cal_str,
re.IGNORECASE)
self._cal = re.compile(r"(.*)\s+\(%s\)( ?.*)" % self._cal_str,
re.IGNORECASE)
self._calny = re.compile(r"(.*)\s+\(%s,\s*%s\)( ?.*)" %
(self._cal_str, self._ny_str), re.IGNORECASE)
self._calny_iso = re.compile(
r"(.*)\s+\(%s,\s*(\d{1,2}-\d{1,2})\)( ?.*)" % self._cal_str,
re.IGNORECASE)
self._ny = re.compile("(.*)\s+\(%s\)( ?.*)" % self._ny_str,
re.IGNORECASE)
self._ny_iso = re.compile("(.*)\s+\((\d{1,2}-\d{1,2})\)( ?.*)")
self._ny = re.compile(r"(.*)\s+\(%s\)( ?.*)" % self._ny_str,
re.IGNORECASE)
self._ny_iso = re.compile(r"(.*)\s+\((\d{1,2}-\d{1,2})\)( ?.*)")
self._qual = re.compile("(.* ?)%s\s+(.+)" % self._qual_str,
re.IGNORECASE)
self._qual = re.compile(r"(.* ?)%s\s+(.+)" % self._qual_str,
re.IGNORECASE)
self._span = re.compile("(from)\s+(?P<start>.+)\s+to\s+(?P<stop>.+)",
self._span = re.compile(r"(from)\s+(?P<start>.+)\s+to\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(bet|bet.|between)\s+(?P<start>.+)\s+and\s+(?P<stop>.+)",
re.IGNORECASE)
self._modifier = re.compile(r'%s\s+(.*)' % self._mod_str,
re.IGNORECASE)
self._range = re.compile("(bet|bet.|between)\s+(?P<start>.+)\s+and\s+(?P<stop>.+)",
re.IGNORECASE)
self._modifier = re.compile('%s\s+(.*)' % self._mod_str,
re.IGNORECASE)
self._modifier_after = re.compile('(.*)\s+%s' % self._mod_after_str,
self._modifier_after = re.compile(r'(.*)\s+%s' % self._mod_after_str,
re.IGNORECASE)
self._abt2 = re.compile('<(.*)>', re.IGNORECASE)
self._text = re.compile('%s\.?(\s+\d+)?\s*,?\s+((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._abt2 = re.compile('<(.*)>', re.IGNORECASE)
self._text = re.compile(r'%s\.?(\s+\d+)?\s*,?\s+((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
# this next RE has the (possibly-slashed) year at the string's end
self._text2 = re.compile('(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
re.IGNORECASE)
self._jtext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._jmon_str,
re.IGNORECASE)
self._jtext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._jmon_str,
re.IGNORECASE)
self._ftext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._fmon_str,
re.IGNORECASE)
self._ftext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._fmon_str,
re.IGNORECASE)
self._ptext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._pmon_str,
re.IGNORECASE)
self._ptext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._pmon_str,
re.IGNORECASE)
self._itext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._imon_str,
re.IGNORECASE)
self._itext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._imon_str,
re.IGNORECASE)
self._stext = re.compile('%s\.?\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._smon_str,
re.IGNORECASE)
self._stext2 = re.compile('(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$' % self._smon_str,
re.IGNORECASE)
self._numeric = re.compile("((\d+)[/\.]\s*)?((\d+)[/\.]\s*)?(\d+)\s*$")
self._iso = re.compile("(\d+)(/(\d+))?-(\d+)-(\d+)\s*$")
self._isotimestamp = re.compile("^\s*?(\d{4})([01]\d)([0123]\d)(?:(?:[012]\d[0-5]\d[0-5]\d)|(?:\s+[012]\d:[0-5]\d(?::[0-5]\d)?))?\s*?$")
self._rfc = re.compile("(%s,)?\s+(\d|\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d(:\d\d)?\s+(\+|-)\d\d\d\d"
% (self._rfc_day_str, self._rfc_mon_str))
self._today = re.compile("^\s*%s\s*$" % self._today_str, re.IGNORECASE)
self._text2 = re.compile(r'(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._jtext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
% self._jmon_str, re.IGNORECASE)
self._jtext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
% self._jmon_str, re.IGNORECASE)
self._ftext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
% self._fmon_str, re.IGNORECASE)
self._ftext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
% self._fmon_str, re.IGNORECASE)
self._ptext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
% self._pmon_str, re.IGNORECASE)
self._ptext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
% self._pmon_str, re.IGNORECASE)
self._itext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
% self._imon_str, re.IGNORECASE)
self._itext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
% self._imon_str, re.IGNORECASE)
self._stext = re.compile(r'%s\.?\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
% self._smon_str, re.IGNORECASE)
self._stext2 = re.compile(r'(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._smon_str, re.IGNORECASE)
self._numeric = re.compile(
r"((\d+)[/\.]\s*)?((\d+)[/\.]\s*)?(\d+)\s*$")
self._iso = re.compile(r"(\d+)(/(\d+))?-(\d+)-(\d+)\s*$")
self._isotimestamp = re.compile(
r"^\s*?(\d{4})([01]\d)([0123]\d)(?:(?:[012]\d[0-5]\d[0-5]\d)|"
r"(?:\s+[012]\d:[0-5]\d(?::[0-5]\d)?))?\s*?$")
self._rfc = re.compile(
r"(%s,)?\s+(\d|\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d(:\d\d)?\s+"
r"(\+|-)\d\d\d\d" % (self._rfc_day_str, self._rfc_mon_str))
self._today = re.compile(r"^\s*%s\s*$" % self._today_str,
re.IGNORECASE)
def _get_int(self, val):
"""
@@ -905,7 +911,7 @@ class DateParser:
text = text.strip() # otherwise spaces can make it a bad date
date.set_text_value(text)
qual = Date.QUAL_NONE
cal = Date.CAL_GREGORIAN
cal = Date.CAL_GREGORIAN
newyear = Date.NEWYEAR_JAN1
(text, cal, newyear) = self.match_calendar_newyear(text, cal, newyear)
+2 -2
View File
@@ -66,7 +66,7 @@ def set_format(value):
except:
pass
def set_date(date_base, text) :
def set_date(date_base, text):
"""
Set the date of the :class:`.DateBase` instance.
@@ -79,7 +79,7 @@ def set_date(date_base, text) :
"""
parser.set_date(date_base.get_date_object(), text)
def get_date(date_base) :
def get_date(date_base):
"""
Return a string representation of the date of the :class:`.DateBase`
instance.
+20 -20
View File
@@ -39,36 +39,36 @@ __all__ = ( 'DBPAGE', 'DBMODE', 'DBCACHE', 'DBLOCKS', 'DBOBJECTS', 'DBUNDO',
"CLASS_TO_KEY_MAP", "KEY_TO_CLASS_MAP", "KEY_TO_NAME_MAP"
)
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBRECOVFN = "need_recover" # File name of recovery file
BDBVERSFN = "bdbversion.txt"# File name of Berkeley DB version file
DBBACKEND = "database.txt" # File name of Database backend file
SCHVERSFN = "schemaversion.txt"# File name of schema version file
PCKVERSFN = "pickleupgrade.txt" # Indicator that pickle has been upgrade t Python3
DBLOGNAME = ".Db" # Name of logger
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBOBJECTS = 100000 # Maximum number of simultaneously locked objects
DBUNDO = 1000 # Maximum size of undo buffer
DBUNDO = 1000 # Maximum size of undo buffer
ARRAYSIZE = 1000 # The arraysize for a SQL cursor
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
REPOSITORY_KEY = 6
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
TXNADD, TXNUPD, TXNDEL = 0, 1, 2
+11 -2
View File
@@ -32,7 +32,7 @@ database to fetch data from). Thus, dbstate.db cannot be left as 'None' because
None has no 'is_open' attribute. Therefore this database class is provided so
that it can be instantiated for dbstate.db.
FIXME: Ideally, only is_open() needs to be implemented here, bacause that is the
FIXME: Ideally, only is_open() needs to be implemented here, because that is the
only method that should really be called, but the Gramps code is not perfect,
and many other methods are called. Calls of other methods could be considered
bugs, so when these are fixed, this class could be reduced.
@@ -216,8 +216,9 @@ class DummyDb(M_A_M_B("NewBaseClass", (DbReadBase, Callback, object,), {})):
"""
Create a new DummyDb instance.
"""
DbReadBase.__init__(self)
Callback.__init__(self)
self.basedb = None
self.__feature = {} # {"feature": VALUE, ...}
self.db_is_open = False
self.readonly = True
self.name_formats = []
@@ -756,6 +757,14 @@ class DummyDb(M_A_M_B("NewBaseClass", (DbReadBase, Callback, object,), {})):
LOG.warning("database is closed")
return 0
def get_number_of_citations(self):
"""
Return the number of citations currently in the database.
"""
if not self.db_is_open:
LOG.warning("database is closed")
return 0
def get_number_of_tags(self):
"""
Return the number of tags currently in the database.
+9 -43
View File
@@ -42,7 +42,7 @@ import glob
#
#------------------------------------------------------------------------
from . import (DbReadBase, DbWriteBase, DbUndo, DBLOGNAME, DBUNDOFN,
KEY_TO_CLASS_MAP, REFERENCE_KEY, PERSON_KEY, FAMILY_KEY,
REFERENCE_KEY, PERSON_KEY, FAMILY_KEY,
CITATION_KEY, SOURCE_KEY, EVENT_KEY, MEDIA_KEY, PLACE_KEY,
REPOSITORY_KEY, NOTE_KEY, TAG_KEY, TXNADD, TXNUPD, TXNDEL,
KEY_TO_NAME_MAP, DBMODE_R, DBMODE_W)
@@ -144,9 +144,9 @@ class DbGenericUndo(DbUndo):
pickle.loads(self.undodb[record_id])
if key == REFERENCE_KEY:
self.undo_reference(new_data, handle)
self.db.undo_reference(new_data, handle)
else:
self.undo_data(new_data, handle, key)
self.db.undo_data(new_data, handle, key)
sigs[key][trans_type].append(handle)
# now emit the signals
self.undo_sigs(sigs, False)
@@ -193,9 +193,9 @@ class DbGenericUndo(DbUndo):
pickle.loads(self.undodb[record_id])
if key == REFERENCE_KEY:
self.undo_reference(old_data, handle)
self.db.undo_reference(old_data, handle)
else:
self.undo_data(old_data, handle, key)
self.db.undo_data(old_data, handle, key)
sigs[key][trans_type].append(handle)
# now emit the signals
self.undo_sigs(sigs, True)
@@ -221,39 +221,6 @@ class DbGenericUndo(DbUndo):
db.undo_history_callback()
return True
def undo_reference(self, data, handle):
"""
Helper method to undo a reference map entry
"""
if data is None:
sql = ("DELETE FROM reference " +
"WHERE obj_handle = ? AND ref_handle = ?")
self.db.dbapi.execute(sql, [handle[0], handle[1]])
else:
sql = ("INSERT INTO reference " +
"(obj_handle, obj_class, ref_handle, ref_class) " +
"VALUES(?, ?, ?, ?)")
self.db.dbapi.execute(sql, data)
def undo_data(self, data, handle, obj_key):
"""
Helper method to undo/redo the changes made
"""
cls = KEY_TO_CLASS_MAP[obj_key]
table = cls.lower()
if data is None:
sql = "DELETE FROM %s WHERE handle = ?" % table
self.db.dbapi.execute(sql, [handle])
else:
if self.db._has_handle(obj_key, handle):
sql = "UPDATE %s SET blob_data = ? WHERE handle = ?" % table
self.db.dbapi.execute(sql, [pickle.dumps(data), handle])
else:
sql = "INSERT INTO %s (handle, blob_data) VALUES (?, ?)" % table
self.db.dbapi.execute(sql, [handle, pickle.dumps(data)])
obj = self.db._get_table_func(cls)["class_func"].create(data)
self.db._update_secondary_values(obj)
def undo_sigs(self, sigs, undo):
"""
Helper method to undo/redo the signals for changes made
@@ -625,9 +592,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# run backend-specific code:
self._initialize(directory, username, password)
# We use the existence of the person table as a proxy for the database
# being new
if not self.dbapi.table_exists("person"):
if not self._schema_exists():
self._create_schema()
self._set_metadata('version', str(self.VERSION[0]))
@@ -706,7 +671,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
if update is False, don't change access times, etc.
"""
if self._directory != ":memory:":
if update:
if update and not self.readonly:
# This is just a dummy file to indicate last modified time of
# the database for gramps.cli.clidbman:
filename = os.path.join(self._directory, "meta_data.db")
@@ -792,7 +757,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
if self._directory:
filepath = os.path.join(self._directory, "name.txt")
try:
with open(filepath, "r") as name_file:
with open(filepath, "r", encoding='utf8') as name_file:
name = name_file.readline().strip()
except (OSError, IOError) as msg:
LOG.error(str(msg))
@@ -2496,4 +2461,5 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
enclosed_by = ""
for placeref in place.get_placeref_list():
enclosed_by = placeref.ref
break
return enclosed_by
+1 -1
View File
@@ -120,7 +120,7 @@ class DbTxn(defaultdict):
data = Python list where:
list element = (handle, data) where:
handle = handle (database key) of the object in the transaction
data = pickled representation of the object
data = pickled representation of the object
"""
# Conditional on __debug__ because all that frame stuff may be slow
+23 -8
View File
@@ -41,7 +41,7 @@ from ..plug import BasePluginManager
from ..const import PLUGINS_DIR, USER_PLUGINS
from ..constfunc import win, get_env_var
from ..config import config
from .dbconst import DBLOGNAME, DBLOCKFN
from .dbconst import DBLOGNAME, DBLOCKFN, DBBACKEND
#-------------------------------------------------------------------------
#
@@ -109,13 +109,7 @@ def lookup_family_tree(dbname):
if dbname == name:
locked = False
locked_by = None
backend = None
fname = os.path.join(dirpath, "database.txt")
if os.path.isfile(fname):
with open(fname, 'r', encoding='utf8') as ifile:
backend = ifile.read().strip()
else:
backend = "bsddb"
backend = get_dbid_from_path(dirpath)
try:
fname = os.path.join(dirpath, "lock")
with open(fname, 'r', encoding='utf8') as ifile:
@@ -126,6 +120,17 @@ def lookup_family_tree(dbname):
return (dirpath, locked, locked_by, backend)
return None
def get_dbid_from_path(dirpath):
"""
Return a database backend from a directory path.
"""
dbid = "bsddb"
dbid_path = os.path.join(dirpath, DBBACKEND)
if os.path.isfile(dbid_path):
with open(dbid_path) as file:
dbid = file.read().strip()
return dbid
def import_as_dict(filename, user, skp_imp_adds=True):
"""
Import the filename into a InMemoryDB and return it.
@@ -133,6 +138,16 @@ def import_as_dict(filename, user, skp_imp_adds=True):
db = make_database("sqlite")
db.load(":memory:")
db.set_feature("skip-import-additions", skp_imp_adds)
db.set_prefixes(
config.get('preferences.iprefix'),
config.get('preferences.oprefix'),
config.get('preferences.fprefix'),
config.get('preferences.sprefix'),
config.get('preferences.cprefix'),
config.get('preferences.pprefix'),
config.get('preferences.eprefix'),
config.get('preferences.rprefix'),
config.get('preferences.nprefix'))
status = import_from_filename(db, filename, user)
return db if status else None
+43 -43
View File
@@ -83,21 +83,21 @@ except ImportError:
# Constants
#
#-------------------------------------------------------------------------
_FIRSTNAME = 4
_FIRSTNAME = 4
_SURNAME_LIST = 5
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_CONNECTOR_IN_LIST = 4
_ORIGINPATRO = NameOriginType.PATRONYMIC
_ORIGINMATRO = NameOriginType.MATRONYMIC
@@ -570,13 +570,13 @@ class NameDisplay:
raw_data[_SUFFIX])
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -585,11 +585,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
@@ -671,13 +671,13 @@ class NameDisplay:
return "%s %s" % (first,suffix)
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -686,11 +686,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
"""
@@ -1059,13 +1059,13 @@ class NameDisplay:
format_str = format_str[1:]
else:
patterns = [
",\W*\"%(" + ("|".join(codes)) + ")\"", # ,\W*"%s"
",\W*\(%(" + ("|".join(codes)) + ")\)", # ,\W*(%s)
",\W*%(" + ("|".join(codes)) + ")", # ,\W*%s
"\"%(" + ("|".join(codes)) + ")\"", # "%s"
"_%(" + ("|".join(codes)) + ")_", # _%s_
"\(%(" + ("|".join(codes)) + ")\)", # (%s)
"%(" + ("|".join(codes)) + ")", # %s
",\\W*\"%(" + ("|".join(codes)) + ")\"", # ,\W*"%s"
",\\W*\\(%(" + ("|".join(codes)) + ")\\)", # ,\W*(%s)
",\\W*%(" + ("|".join(codes)) + ")", # ,\W*%s
"\"%(" + ("|".join(codes)) + ")\"", # "%s"
"_%(" + ("|".join(codes)) + ")_", # _%s_
"\\(%(" + ("|".join(codes)) + ")\\)", # (%s)
"%(" + ("|".join(codes)) + ")", # %s
]
new_fmt = format_str
+30 -20
View File
@@ -35,7 +35,8 @@ import xml.dom.minidom
# Gramps modules
#
#-------------------------------------------------------------------------
from ..const import PLACE_FORMATS
from ..const import PLACE_FORMATS, GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
from ..config import config
from ..utils.location import get_location_list
from ..lib import PlaceType
@@ -53,11 +54,6 @@ class PlaceFormat:
self.street = street
self.reverse = reverse
def to_xml(self):
return (' <format name="%s" levels="%s" language="%s" '
'street="%s" reverse="%s"/>\n' %
(self.name, self.levels, self.language,
self.street, self.reverse))
#-------------------------------------------------------------------------
#
@@ -70,12 +66,15 @@ class PlaceDisplay:
self.place_formats = []
self.default_format = config.get('preferences.place-format')
if os.path.exists(PLACE_FORMATS):
self.load_formats()
else:
pf = PlaceFormat('Full', ':', '', 0, False)
self.place_formats.append(pf)
try:
self.load_formats()
return
except BaseException:
print(_("Error in '%s' file: cannot load.") % PLACE_FORMATS)
pf = PlaceFormat(_('Full'), ':', '', 0, False)
self.place_formats.append(pf)
def display_event(self, db, event, fmt=None):
def display_event(self, db, event, fmt=-1):
if not event:
return ""
place_handle = event.get_place_handle()
@@ -85,13 +84,13 @@ class PlaceDisplay:
else:
return ""
def display(self, db, place, date=None, fmt=None):
def display(self, db, place, date=None, fmt=-1):
if not place:
return ""
if not config.get('preferences.place-auto'):
return place.title
else:
if fmt is None:
if fmt == -1:
fmt = config.get('preferences.place-format')
pf = self.place_formats[fmt]
lang = pf.language
@@ -105,7 +104,10 @@ class PlaceDisplay:
if len(parts) == 1:
offset = _get_offset(parts[0], index)
if offset is not None:
places.append(all_places[offset])
try:
places.append(all_places[offset])
except IndexError:
pass
elif len(parts) == 2:
start = _get_offset(parts[0], index)
end = _get_offset(parts[1], index)
@@ -160,12 +162,20 @@ class PlaceDisplay:
dom.unlink()
def save_formats(self):
with open(PLACE_FORMATS, 'w') as fd:
fd.write('<?xml version="1.0" encoding="utf-8"?>\n')
fd.write('<place_formats>\n')
for fmt in self.place_formats:
fd.write(fmt.to_xml())
fd.write('</place_formats>\n')
doc = xml.dom.minidom.Document()
place_formats = doc.createElement('place_formats')
doc.appendChild(place_formats)
for fmt in self.place_formats:
node = doc.createElement('format')
place_formats.appendChild(node)
node.setAttribute('name', fmt.name)
node.setAttribute('levels', fmt.levels)
node.setAttribute('language', fmt.language)
node.setAttribute('street', str(fmt.street))
node.setAttribute('reverse', str(fmt.reverse))
with open(PLACE_FORMATS, 'w', encoding='utf-8') as f_d:
doc.writexml(f_d, addindent=' ', newl='\n', encoding='utf-8')
def _get_offset(value, index):
if index is not None and value.startswith('p'):
+2 -11
View File
@@ -22,7 +22,6 @@
Package providing filtering framework for Gramps.
"""
#SystemFilters = None
CustomFilters = None
from ..const import CUSTOM_FILTERS
@@ -32,18 +31,10 @@ from ._genericfilter import (GenericFilter, GenericFilterFactory,
from ._paramfilter import ParamFilter
from ._searchfilter import SearchFilter, ExactSearchFilter
#def reload_system_filters():
#global SystemFilters
#SystemFilters = FilterList(SYSTEM_FILTERS)
#SystemFilters.load()
def reload_custom_filters():
global CustomFilters
CustomFilters = FilterList(CUSTOM_FILTERS)
CustomFilters.load()
#if not SystemFilters:
#reload_system_filters()
if not CustomFilters:
reload_custom_filters()
# if not CustomFilters: # moved to viewmanager
# reload_custom_filters()
+2 -2
View File
@@ -27,7 +27,7 @@
#-------------------------------------------------------------------------
from xml.sax import make_parser, SAXParseException
import os
import collections
from collections import abc
#-------------------------------------------------------------------------
#
@@ -78,7 +78,7 @@ class FilterList:
plugin_filters = []
try:
for plug in plugins:
if isinstance(plug, collections.Callable):
if isinstance(plug, abc.Callable):
plug = plug(namespace)
if plug:
if isinstance(plug, (list, tuple)):
+3
View File
@@ -62,6 +62,9 @@ class FilterParser(handler.ContentHandler):
self.namespace = attrs['type']
else:
self.namespace = "generic"
if self.namespace == 'MediaObject':
# deals with older custom filters
self.namespace = 'Media'
elif tag == "filter":
self.f = GenericFilterFactory(self.namespace)()
self.f.set_name(attrs['name'])
+27 -12
View File
@@ -124,6 +124,9 @@ class GenericFilter:
def get_cursor(self, db):
return db.get_person_cursor()
def get_tree_cursor(self, db):
return db.get_person_cursor()
def make_obj(self):
return Person()
@@ -133,13 +136,15 @@ class GenericFilter:
def get_number(self, db):
return db.get_number_of_people()
def check_func(self, db, id_list, task, user=None, tupleind=None):
def check_func(self, db, id_list, task, user=None, tupleind=None,
tree=False):
final_list = []
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with self.get_cursor(db) as cursor:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -162,14 +167,15 @@ class GenericFilter:
user.end_progress()
return final_list
def check_and(self, db, id_list, user=None, tupleind=None):
def check_and(self, db, id_list, user=None, tupleind=None, tree=False):
final_list = []
flist = self.flist
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with self.get_cursor(db) as cursor:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -194,14 +200,17 @@ class GenericFilter:
user.end_progress()
return final_list
def check_or(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.or_test, user, tupleind)
def check_or(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.or_test, user, tupleind,
tree=False)
def check_one(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.one_test, user, tupleind)
def check_one(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.one_test, user, tupleind,
tree=False)
def check_xor(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.xor_test, user, tupleind)
def check_xor(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.xor_test, user, tupleind,
tree=False)
def xor_test(self, db, person):
test = False
@@ -231,7 +240,7 @@ class GenericFilter:
def check(self, db, handle):
return self.get_check_func()(db, [handle])
def apply(self, db, id_list=None, tupleind=None, user=None):
def apply(self, db, id_list=None, tupleind=None, user=None, tree=False):
"""
Apply the filter using db.
If id_list given, the handles in id_list are used. If not given
@@ -251,7 +260,7 @@ class GenericFilter:
m = self.get_check_func()
for rule in self.flist:
rule.requestprepare(db, user)
res = m(db, id_list, user, tupleind)
res = m(db, id_list, user, tupleind, tree)
for rule in self.flist:
rule.requestreset()
return res
@@ -315,6 +324,9 @@ class GenericCitationFilter(GenericFilter):
def get_cursor(self, db):
return db.get_citation_cursor()
def get_tree_cursor(self, db):
return db.get_citation_cursor()
def make_obj(self):
return Citation()
@@ -332,6 +344,9 @@ class GenericPlaceFilter(GenericFilter):
def get_cursor(self, db):
return db.get_place_cursor()
def get_tree_cursor(self, db):
return db.get_place_tree_cursor()
def make_obj(self):
return Place()

Some files were not shown because too many files have changed in this diff Show More