Compare commits

..

8 Commits

Author SHA1 Message Date
John Ralls e7247af252 Release Gramps-5.0.2 on Mac. 2019-08-24 16:11:26 -07:00
John Ralls ed02e39d5d Revert "Add entitlements file for hardening and notarizing Gramps.app."
This reverts commit e72695ca90.
I'd already added the correct version of the file.
2019-08-17 17:39:06 -07:00
John Ralls e72695ca90 Add entitlements file for hardening and notarizing Gramps.app. 2019-08-17 17:37:18 -07:00
John Ralls d5db6e2b65 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-16 12:41:18 -07:00
Zdeněk Hataš 1294d53bc1 Update Czech translation 2019-08-15 13:08:56 +02:00
Ross Gammon bdaa0d8c59 Update Debian files to 5.0.2 release 2019-08-11 15:49:23 +01:00
niememat d2deae8ff7 Fix translation in Finnish 2019-08-10 13:40:42 +03:00
niememat a4cbdb34df Update finnish translation 2019-08-09 13:28:22 +03:00
605 changed files with 54053 additions and 103729 deletions
-3
View File
@@ -23,8 +23,5 @@ 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})|(_T_))$
function-rgx=[a-z_][a-z0-9_]{2,30}$
# Naming hint for function names
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
function-name-hint=[a-z_][a-z0-9_]{2,30}$
# 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/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
- 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
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
+355 -1499
View File
File diff suppressed because it is too large Load Diff
+3 -1
View File
@@ -1,5 +1,5 @@
include AUTHORS
include ChangeLog
include AUTHORS
include COPYING
include FAQ
include Gramps.py
@@ -10,9 +10,11 @@ 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 *
+1543 -187
View File
File diff suppressed because it is too large Load Diff
+1 -13
View File
@@ -11,7 +11,7 @@ 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.12 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
* **GTK** 3.10 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,18 +103,6 @@ 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
...
Optional packages required by Third-party Addons
------------------------------------------------
+10 -196
View File
@@ -21,8 +21,6 @@ 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.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #EEE;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #999;
@@ -84,19 +75,9 @@ 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
----------------------------------------------------- */
@@ -224,93 +205,6 @@ 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 {
@@ -473,16 +367,7 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #999;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -499,10 +384,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 50em;
margin: 2em auto;
padding: 3em;
background-color: #EEE;
border: solid 1px #999;
}
#Contact #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #999;
}
@@ -516,12 +404,6 @@ div#SourceDetail {
#Contact #city:after {
content: ",";
}
@media only screen and (max-width: 1080px) {
#Contact,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
/* Download
----------------------------------------------------- */
@@ -531,29 +413,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
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: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -576,33 +449,12 @@ 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;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -610,40 +462,6 @@ 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;
}
@@ -651,9 +469,6 @@ 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
----------------------------------------------------- */
@@ -717,7 +532,6 @@ a.familymap {
}
#footer > * {
background-color: #EEE;
font-size: 80%;
}
#footer p#createdate {
float: left;
+21 -303
View File
@@ -3,8 +3,6 @@
# 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
@@ -74,13 +72,6 @@ img {
.thumbnail a:hover {
background: none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
color: #000;
@@ -103,10 +94,6 @@ img {
width: 96px;
margin: 0 auto;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
width: 100%;
height: 1px;
@@ -114,12 +101,6 @@ 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
----------------------------------------------------- */
@@ -240,55 +221,6 @@ 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 {
@@ -338,129 +270,6 @@ 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 {
@@ -769,26 +578,6 @@ 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;
}
@@ -838,16 +627,7 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDisplay img {
margin: 0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin: 0;
padding: 2em 0 0 0;
@@ -899,51 +679,48 @@ 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 #GalleryDisplay img {
#Contact #summaryarea img {
float: right;
margin: 0;
}
@media only screen and (max-width: 1080px) {
#Contact, #Contact #summaryarea #researcher,
#Contact #summaryarea #GalleryDisplay img {
max-width: 100%;
}
}
#Contact #summaryarea #researcher {
#researcher {
font: normal 1.5em/1.4em serif;
margin-top: .3em;
}
#Contact #summaryarea #researcher h3 {
#researcher h3 {
font: normal 1.2em/1.4em serif;
padding: 0;
text-align: left;
}
#Contact #summaryarea #researcher span {
#researcher span {
float: left;
display: block;
font: normal .9em/1.4em serif;
margin-right: .4em;
}
#Contact #summaryarea #streetaddress {
#streetaddress {
width: 100%;
}
#Contact #summaryarea #locality, .locality {
#locality, .locality {
display: block;
width: 100%;
}
#Contact #summaryarea #city:after {
#city:after {
content: ",";
}
#Contact #summaryarea #country {
#country {
clear: left;
}
#Contact #summaryarea #email {
#email {
clear: left;
}
#Contact #summaryarea #email a {
#email a {
text-decoration: none;
}
@@ -1036,29 +813,17 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
/* Subsections
----------------------------------------------------- */
#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, #Introduction, #Contact {
padding: 2em 0 3em 0;
}
#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;
@@ -1162,15 +927,6 @@ 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;
}
@@ -1338,7 +1094,6 @@ div.Residence table.infolist tr td {
float: left;
width: 130px;
text-align: center;
background-color: white;
}
#indivgallery div.thumbnail a {
display: block;
@@ -1362,43 +1117,6 @@ 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
----------------------------------------------------- */
+12 -199
View File
@@ -21,8 +21,6 @@ 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.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #454;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #7C8F7C;
@@ -84,19 +75,9 @@ 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
----------------------------------------------------- */
@@ -228,98 +209,6 @@ 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 {
@@ -524,16 +413,7 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7C8F7C;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -550,10 +430,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E6E0;
border: solid 1px #7C8F7C;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #7C8F7C;
}
@@ -580,31 +463,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
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: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -627,33 +499,12 @@ 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;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -661,40 +512,6 @@ 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;
}
@@ -702,9 +519,6 @@ 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
----------------------------------------------------- */
@@ -763,7 +577,6 @@ a.familymap {
#footer {
clear: both;
color: #E0E6E0;
font-size: 80%;
padding-top: 1em;
background-color: #9DBF9D;
border-top: solid 1px #454;
@@ -791,7 +604,7 @@ a.familymap {
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #454 ! important;
background-color: #E0E6E0 ! important;
}
/* Calendar Styles
+10 -191
View File
@@ -21,8 +21,6 @@ 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.
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FAFAFF;
border-top: solid 1px #669;
@@ -84,19 +75,9 @@ 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
----------------------------------------------------- */
@@ -226,93 +207,6 @@ 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 {
@@ -512,14 +406,6 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #669;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -537,10 +423,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E0E9;
border: solid 1px #669;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #669;
}
@@ -567,31 +456,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
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: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -614,33 +492,12 @@ 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;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -648,40 +505,6 @@ 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;
}
@@ -689,9 +512,6 @@ 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
----------------------------------------------------- */
@@ -755,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #E0E0E9;
font-size: 80%;
}
#footer p#createdate {
float: left;
+10 -191
View File
@@ -21,8 +21,6 @@ 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.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: #36220B;
margin: 0px;
background-color: #FFE09F;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFFBE7;
border-top: solid 1px #8C581C;
@@ -84,19 +75,9 @@ 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
----------------------------------------------------- */
@@ -226,93 +207,6 @@ 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 {
@@ -512,14 +406,6 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #EA8414;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -537,10 +423,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #FFE09F;
border: solid 1px #EA8414;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #EA8414;
}
@@ -567,24 +456,13 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
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;
@@ -614,33 +492,12 @@ 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;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -648,40 +505,6 @@ 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;
}
@@ -689,9 +512,6 @@ 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
----------------------------------------------------- */
@@ -755,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #FFE09F;
font-size: 80%;
}
#footer p#createdate {
float: left;
+11 -193
View File
@@ -21,9 +21,6 @@ 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,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #EAEEF4;
@@ -70,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
border-top: solid 1px #7CA3DD;
@@ -85,19 +75,9 @@ 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
----------------------------------------------------- */
@@ -227,93 +207,6 @@ 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 {
@@ -513,14 +406,6 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7CA3DD;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -538,10 +423,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #EAEEF4;
border: solid 1px #7CA3DD;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #7CA3DD;
}
@@ -568,31 +456,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
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: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -615,33 +492,12 @@ 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;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -649,40 +505,6 @@ 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;
}
@@ -690,9 +512,6 @@ 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
----------------------------------------------------- */
@@ -756,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #EAEEF4;
font-size: 80%;
}
#footer p#createdate {
float: left;
+4 -198
View File
@@ -19,8 +19,6 @@ 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.
@@ -64,7 +62,7 @@ General Elements
-----------------------------------------------------------------*/
body {
font-family: Georgia, serif;
font-size: 100%;
font-size: 90%;
color: #7D5925;
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
@@ -75,33 +73,15 @@ body > div {
overflow: hidden;
padding: 0px 1.5em;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding: 1.5em 1.5em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
div.snapshot div.thumbnail {
text-align: center;
}
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
-----------------------------------------------------------------*/
@@ -224,93 +204,6 @@ 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 {
@@ -468,14 +361,6 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display:block;
border: solid 1px #7D5925;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
/* Sources
@@ -491,7 +376,7 @@ div#SourceDetail {
padding-bottom: 0px;
margin: 0px;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
display: block;
margin: 0px auto 1em auto;
border: solid 1px #7D5925;
@@ -517,31 +402,16 @@ div#SourceDetail {
/* SubSection
-----------------------------------------------------------------*/
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
#Home img, #Introduction img {
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;
@@ -558,32 +428,9 @@ 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;
@@ -594,7 +441,6 @@ div#families .infolist h4 {
font-size: smaller;
text-align: center;
margin: 0.5em;
background-color: white;
}
#indivgallery img {
border: solid 1px #7D5925;
@@ -603,43 +449,6 @@ div#families .infolist h4 {
/* ## 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
-----------------------------------------------------------------*/
@@ -706,9 +515,6 @@ div.grampsstylednote p {
width: 40%;
text-align: right;
}
#footer > * {
font-size: 80%;
}
/* Overwritten
-----------------------------------------------------------------*/
+9 -201
View File
@@ -19,8 +19,6 @@ 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.
@@ -84,21 +82,10 @@ 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;
@@ -113,12 +100,6 @@ 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;
@@ -273,100 +254,6 @@ 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 {
@@ -747,14 +634,6 @@ table.eventlist tbody tr td.ColumnSources {
}
#GalleryDisplay img {
margin:0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin:0;
@@ -800,6 +679,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
----------------------------------------------------- */
#Contact #summaryarea {
width:500px;
margin:0 auto;
padding:3em;
background-color:#F1ECE2;
@@ -817,6 +697,7 @@ 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;
@@ -898,32 +779,20 @@ table.download td.Modified {
/* Subsections
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
#Home, #Introduction, #Contact {
padding:2em 0 3em 0;
}
#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;
@@ -1057,26 +926,6 @@ 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;
}
@@ -1085,41 +934,6 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
float:left;
width:130px;
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;
@@ -1143,9 +957,6 @@ 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
----------------------------------------------------- */
@@ -1259,9 +1070,6 @@ div#pedigree {
background-color: #542;
border-top: solid 8px #A97;
}
#footer > * {
font-size: 80%;
}
#footer a, #footer a:visited {
text-decoration: none;
color: #C1B398;
+8 -19
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.gramps.gramps</id>
<metadata_license>CC0-1.0</metadata_license>
<component type="desktop">
<id>gramps.desktop</id>
<metadata_license>CC0</metadata_license>
<name>Gramps</name>
<summary>Genealogical research program</summary>
@@ -11,7 +11,6 @@
<_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>
@@ -19,21 +18,11 @@
<developer_name>Gramps Development Team</developer_name>
<screenshots>
<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>
<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>
</screenshots>
<provides>
+504 -725
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" frel="Adopted" mrel="Foster"/>
<childref hlink="_0000006f0000006f"/>
</family>
<family handle="_0000001000000010" change="1198222526" id="F0014">
<rel type="Unknown"/>
+4 -8
View File
@@ -2,8 +2,8 @@
1 SOUR Gramps
2 VERS 5.0.2
2 NAME Gramps
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 DATE 31 JUL 2019
2 TIME 10:58:33
1 SUBM @SUBM@
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
1 COPR Copyright (c) 2019 Alex Roitman,,,.
@@ -629,12 +629,8 @@
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 _FREL Adopted
2 _MREL Foster
2 PEDI birth
1 FAMS @F0008@
1 CHAN
2 DATE 4 SEP 2016
@@ -1044,7 +1040,7 @@
2 SURN Tester
1 SEX M
1 FAMC @F0016@
2 PEDI Sponsored
2 PEDI Unknown
1 CHAN
2 DATE 29 OCT 2016
3 TIME 16:27:59
-2
View File
@@ -83,8 +83,6 @@
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
+18 -18
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="2019-08-04" version="5.0.2"/>
<created date="2019-07-31" version="5.0.2"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -1134,7 +1134,7 @@
<mother hlink="_000000b6000000b6"/>
<eventref hlink="_000000e3000000e3" role="Family"/>
<childref hlink="_0000004800000048" mrel="Adopted" frel="Adopted"/>
<childref hlink="_0000001900000019" mrel="Foster" frel="Adopted"/>
<childref hlink="_0000001900000019"/>
<childref hlink="_0000007b0000007b" mrel="Adopted" frel="Adopted"/>
<noteref hlink="_000000e4000000e4"/>
</family>
@@ -1566,8 +1566,8 @@ 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 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
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>
<style name="fontface" value="Monospace">
<range start="0" end="304"/>
@@ -1579,7 +1579,7 @@ ADDR element ignored '459 Main St.' Line 204:
<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 247: 2 TYPE first generaton
Tag recognized but not supported Line 245: 2 TYPE first generaton
</text>
<style name="fontface" value="Monospace">
<range start="0" end="165"/>
@@ -1611,7 +1611,7 @@ 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 865: 2 _STAT
Tag recognized but not supported Line 863: 2 _STAT
</text>
<style name="fontface" value="Monospace">
<range start="0" end="146"/>
@@ -1620,8 +1620,8 @@ Tag recognized but not supported Line 865:
<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 880: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 883: 2 OBJE
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>
<style name="fontface" value="Monospace">
<range start="0" end="233"/>
@@ -1630,7 +1630,7 @@ 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 907: 1 OBJE
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 905: 1 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="145"/>
@@ -1639,7 +1639,7 @@ 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 1007: 1 ADDR 123 Main st, Grantville, Virginia, USA
Tag recognized but not supported Line 1005: 1 ADDR 123 Main st, Grantville, Virginia, USA
</text>
<style name="fontface" value="Monospace">
<range start="0" end="183"/>
@@ -1663,8 +1663,8 @@ Tag recognized but not supported Line 1007:
<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 1047: 1 DATA
Skipped subordinate line Line 1048: 2 AGNC NYC Public Library
Tag recognized but not supported Line 1045: 1 DATA
Skipped subordinate line Line 1046: 2 AGNC NYC Public Library
</text>
<style name="fontface" value="Monospace">
<range start="0" end="252"/>
@@ -1679,9 +1679,9 @@ Skipped subordinate line Line 1048:
<note handle="_000000f5000000f5" change="1" id="N0033" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0003:
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
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>
<style name="fontface" value="Monospace">
<range start="0" end="344"/>
@@ -1690,7 +1690,7 @@ Could not import Attic_photo.jpg Line 1081:
<note handle="_000000f6000000f6" change="1" id="N0034" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1108: 0 XXX an unknown token at level 0
Unknown tag Line 1106: 0 XXX an unknown token at level 0
</text>
<style name="fontface" value="Monospace">
<range start="0" end="152"/>
@@ -1699,13 +1699,13 @@ Unknown tag Line 1108:
<note handle="_000000f8000000f8" change="1" id="N0035" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1111: 1 @X1@ XXX and unknown token xref definition
Unknown tag Line 1109: 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="1564950708" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1564588949" 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>
+8
View File
@@ -1,3 +1,11 @@
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
+1 -2
View File
@@ -21,11 +21,10 @@ Build-Depends-Indep:
python3-nose-exclude
Build-Depends:
debhelper (>= 11)
Standards-Version: 4.1.3
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/
X-Python3-Version: >= 3.2
Package: gramps
Architecture: all
+3 -3
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2019, The Gramps Project'
copyright = '2001-2018, 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.1.0'
version = '5.0.0'
# The full version, including alpha/beta/rc tags.
release = '5.1.0'
release = '5.0.0-master'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+13 -38
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-08-08" version="5.1.0"/>
<created date="2018-03-08" version="5.0.0"/>
<researcher>
<resname>Alex Roitman,,,</resname>
</researcher>
@@ -951,7 +951,7 @@
<place hlink="_L3WJQCD3US67V2CNZT"/>
<description>Birth of Garner, Anderson</description>
</event>
<event handle="_a5af0eb7dfb557da07e" change="1502187535" id="E0179">
<event handle="_a5af0eb7dfb557da07e" change="1284030599" 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="1502187451" id="E1179">
<event handle="_a5af0ec45b25c630e03" change="1284030608" id="E1179">
<type>Birth</type>
<dateval val="1911-07-12"/>
<description>Birth of Thornton, James Arthur</description>
@@ -15003,7 +15003,7 @@
<type>Marriage</type>
<description>Marriage of Johnson, Henry and Sparks, Catherine</description>
</event>
<event handle="_a5af0ed5df832ee65c1" change="1502187371" id="E2815">
<event handle="_a5af0ed5df832ee65c1" change="1328026859" 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="1502187492" id="I1376">
<person handle="_14LKQCYZJEAXTS3XX" change="1185438865" id="I1376">
<gender>F</gender>
<name type="Birth Name">
<first>Elizabeth</first>
@@ -18657,7 +18657,6 @@
</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"/>
@@ -19905,7 +19904,7 @@
<childof hlink="_IO5KQC6H0Q6Y517LR9"/>
<citationref hlink="_c140d24a1fd2319b703"/>
</person>
<person handle="_35WJQC1B7T7NPV8OLV" change="1502187260" id="I0106">
<person handle="_35WJQC1B7T7NPV8OLV" change="1284030051" id="I0106">
<gender>M</gender>
<name type="Birth Name">
<first>Robert W.</first>
@@ -19914,11 +19913,6 @@
<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"/>
@@ -21997,14 +21991,13 @@
<childof hlink="_GCDKQCHI74ZPMI5GDJ"/>
<citationref hlink="_c140d24f3f8704aa41b"/>
</person>
<person handle="_6G0KQC2UXYC66XDDC2" change="1502187537" id="I0363">
<person handle="_6G0KQC2UXYC66XDDC2" change="1185438865" 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>
@@ -22996,7 +22989,7 @@
<parentin hlink="_FBVJQCFBI50TW78O49"/>
<citationref hlink="_c140d2522702664ec52"/>
</person>
<person handle="_8CLKQCT97PJOGREJ7W" change="1502187387" id="I1387">
<person handle="_8CLKQCT97PJOGREJ7W" change="1185438865" id="I1387">
<gender>M</gender>
<name type="Birth Name">
<first>Robert</first>
@@ -23004,11 +22997,6 @@
</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"/>
@@ -23815,7 +23803,7 @@
<childof hlink="_5DBKQCVAB0XMBEW8R9"/>
<citationref hlink="_c140d25425874b0b827"/>
</person>
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1502187526" id="I0038">
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1185438865" id="I0038">
<gender>M</gender>
<name type="Birth Name">
<first>David</first>
@@ -23824,7 +23812,6 @@
<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"/>
@@ -24519,7 +24506,7 @@
<parentin hlink="_8NVJQCGMJTCL7E6ZDV"/>
<citationref hlink="_c140d2560004fad8df6"/>
</person>
<person handle="_ANLKQCQSQNE5LDZMRC" change="1502187434" id="I1402">
<person handle="_ANLKQCQSQNE5LDZMRC" change="1185438865" id="I1402">
<gender>F</gender>
<name type="Birth Name">
<first>Margaret Jane &quot;Maggie&quot;</first>
@@ -24527,7 +24514,6 @@
</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"/>
@@ -24896,18 +24882,13 @@
<parentin hlink="_JFYJQCG2KLRQN835JD"/>
<citationref hlink="_c140d256e3403ba129d"/>
</person>
<person handle="_B3BKQCSV0G3NKSKWDX" change="1502187344" id="I0880">
<person handle="_B3BKQCSV0G3NKSKWDX" change="1185438865" 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>
@@ -31949,7 +31930,7 @@
<childof hlink="_UDMKQC5D3A2PXPUGNC"/>
<citationref hlink="_c140d266ec93334f40f"/>
</person>
<person handle="_MG5KQC6ZKSVO4A63G2" change="1502187451" id="I0624">
<person handle="_MG5KQC6ZKSVO4A63G2" change="1328026883" id="I0624">
<gender>M</gender>
<name type="Birth Name">
<first>Raymond E.</first>
@@ -31957,7 +31938,6 @@
</name>
<eventref hlink="_a5af0ece8bd1125a1a9" role="Primary"/>
<eventref hlink="_a5af0ece8d15511ddf9" role="Primary"/>
<eventref hlink="_a5af0ec45b25c630e03" role="Informant"/>
<childof hlink="_9OUJQCBOHW9UEK9CNV"/>
<citationref hlink="_c140d266f0d5d178784"/>
</person>
@@ -32356,7 +32336,7 @@
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
<citationref hlink="_c140d267ccb7aef0cd0"/>
</person>
<person handle="_N4DKQCPEMZ7OO62O7J" change="1502187308" id="I0975">
<person handle="_N4DKQCPEMZ7OO62O7J" change="1185438865" id="I0975">
<gender>M</gender>
<name type="Birth Name">
<first>Henry</first>
@@ -32365,11 +32345,6 @@
<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>
+4 -8
View File
@@ -47,7 +47,6 @@ 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
@@ -505,9 +504,6 @@ 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)
@@ -623,8 +619,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
report_class = getattr(mod, pdata.reportclass)
options_class = getattr(mod, pdata.optionclass)
report_class = eval('mod.' + pdata.reportclass)
options_class = eval('mod.' + pdata.optionclass)
if category in (CATEGORY_BOOK, CATEGORY_CODE):
options_class(self.dbstate.db, name, category,
options_str_dict)
@@ -672,8 +668,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
tool_class = getattr(mod, pdata.toolclass)
options_class = getattr(mod, pdata.optionclass)
tool_class = eval('mod.' + pdata.toolclass)
options_class = eval('mod.' + pdata.optionclass)
tool.cli_tool(dbstate=self.dbstate,
name=name,
category=category,
+3 -52
View File
@@ -39,16 +39,15 @@ import sys
import os
import getopt
import logging
import shutil
from glob import glob
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.const import (LONGOPTS, SHORTOPTS, USER_PLUGINS, VERSION_DIR,
HOME_DIR, TEMP_DIR, THUMB_DIR, ENV_DIR, USER_CSS)
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.utils.cast import get_type_converter
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@@ -82,14 +81,6 @@ 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 = _("""
@@ -351,7 +342,6 @@ 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:
@@ -361,7 +351,6 @@ 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:
@@ -407,44 +396,6 @@ 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()
+2 -16
View File
@@ -6,7 +6,6 @@
# 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
@@ -149,7 +148,6 @@ 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)
@@ -157,9 +155,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/gramps51")
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50")
register('database.backend', 'sqlite')
register('database.backend', 'bsddb')
register('database.compress-backup', True)
register('database.backup-path', USER_HOME)
register('database.backup-on-exit', True)
@@ -219,7 +217,6 @@ 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)
@@ -231,8 +228,6 @@ 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")
@@ -282,10 +277,6 @@ 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'])
@@ -310,11 +301,6 @@ 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"))
+3 -13
View File
@@ -104,13 +104,6 @@ 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(
@@ -145,8 +138,7 @@ 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 += "-1"
VERSION += git_revision
#
# Glade files
@@ -225,7 +217,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2019 The Gramps Developers"
"© 2007-2018 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
@@ -274,7 +266,6 @@ LONGOPTS = [
"class=",
"config=",
"debug=",
"default=",
"display=",
"disable-sound",
"disable-crash-dialog",
@@ -302,7 +293,6 @@ LONGOPTS = [
"password=",
"create=",
"options=",
"safe",
"screen=",
"show",
"sm-client-id=",
@@ -316,7 +306,7 @@ LONGOPTS = [
"quiet",
]
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syqSD:"
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syq"
GRAMPS_UUID = uuid.UUID('516cd010-5a41-470f-99f8-eb22f1098ad6')
+10 -10
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
+37 -37
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
#-----------------------------------------------------------------------
+21 -21
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,
+32 -32
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
+58 -58
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,
+7 -7
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):
@@ -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,14 +409,14 @@ 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"),])
@@ -911,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
+1 -2
View File
@@ -216,9 +216,8 @@ 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 = []
+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
+36 -36
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
"""
+11 -2
View File
@@ -22,6 +22,7 @@
Package providing filtering framework for Gramps.
"""
#SystemFilters = None
CustomFilters = None
from ..const import CUSTOM_FILTERS
@@ -31,10 +32,18 @@ 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 CustomFilters: # moved to viewmanager
# reload_custom_filters()
#if not SystemFilters:
#reload_system_filters()
if not CustomFilters:
reload_custom_filters()
+2 -2
View File
@@ -27,7 +27,7 @@
#-------------------------------------------------------------------------
from xml.sax import make_parser, SAXParseException
import os
from collections import abc
import collections
#-------------------------------------------------------------------------
#
@@ -78,7 +78,7 @@ class FilterList:
plugin_filters = []
try:
for plug in plugins:
if isinstance(plug, abc.Callable):
if isinstance(plug, collections.Callable):
plug = plug(namespace)
if plug:
if isinstance(plug, (list, tuple)):
@@ -48,12 +48,12 @@ class ChangedSinceBase(Rule):
Rule that checks for primary objects changed since a specific time.
"""
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
description = "Matches object records changed after a specified " \
"date/time (yyyy-mm-dd hh:mm:ss) or in range, if a second " \
"date/time is given."
category = _('General filters')
category = _('General filters')
def add_time(self, date):
if re.search(r"\d.*\s+\d{1,2}:\d{2}:\d{2}", date):
+2 -2
View File
@@ -41,8 +41,8 @@ from . import Rule
class Everything(Rule):
"""Match Everyone."""
name = 'Every object'
category = _('General filters')
name = 'Every object'
category = _('General filters')
description = 'Matches every object in the database'
def is_empty(self):
@@ -2,7 +2,6 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2002-2006 Donald N. Allingham
# Copyright (C) 2019 Matthias Kemmer
#
# 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
@@ -35,7 +34,6 @@ _ = glocale.translation.gettext
from ...lib.attrtype import AttributeType
from . import Rule
#-------------------------------------------------------------------------
#
# HasAttribute
@@ -46,11 +44,11 @@ class HasAttributeBase(Rule):
Rule that checks for an object with a particular attribute.
"""
labels = ['Attribute:', 'Value:']
name = 'Objects with the <attribute>'
labels = [ 'Attribute:', 'Value:' ]
name = 'Objects with the <attribute>'
description = "Matches objects with the given attribute " \
"of a particular value"
category = _('General filters')
"of a particular value"
category = _('General filters')
allow_regex = True
def apply(self, db, obj):
@@ -62,6 +60,5 @@ class HasAttributeBase(Rule):
name_match = attr.get_type() == specified_type
if name_match:
if self.match_substring(1, attr.get_value()):
return True
return self.match_substring(1, attr.get_value())
return False
+3 -3
View File
@@ -46,12 +46,12 @@ class HasCitationBase(Rule):
First parameter is [Volume/page, Date, Confidence]
"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence:') ]
name = _('Citations matching parameters')
name = _('Citations matching parameters')
description = _("Matches citations with particular parameters")
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def prepare(self, db, user):
+4 -4
View File
@@ -46,14 +46,14 @@ class HasEventBase(Rule):
"""Rule that checks for an event with a particular value."""
labels = [ 'Event type:',
labels = [ 'Event type:',
'Date:',
'Place:',
'Description:',
'Main Participants:' ]
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
allow_regex = True
def prepare(self, db, user):
+3 -3
View File
@@ -42,10 +42,10 @@ from . import Rule
class HasGalleryBase(Rule):
"""Objects who have Media Object"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
description = "Matches objects with certain number of items in the gallery"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -42,10 +42,10 @@ from . import Rule
class HasGrampsId(Rule):
"""Rule that checks for an object with a specific Gramps ID."""
labels = [ _('ID:') ]
name = 'Object with <Id>'
labels = [ _('ID:') ]
name = 'Object with <Id>'
description = "Matches objects with a specified Gramps ID"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
"""
+3 -3
View File
@@ -45,10 +45,10 @@ from . import Rule
class HasLDSBase(Rule):
"""Rule that checks for object with a LDS event"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
description = "Matches objects with LDS events"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -43,10 +43,10 @@ from . import Rule
class HasNoteBase(Rule):
"""Objects having notes"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
description = "Matches objects that have a certain number of notes"
category = _('General filters')
category = _('General filters')
def __init__(self, arg, use_regex=False):
# Upgrade from pre 3.1 HasNote filter, use defaults that correspond
@@ -40,11 +40,11 @@ from . import Rule
class HasNoteRegexBase(Rule):
"""Objects having notes containing <text>."""
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
description = ("Matches objects whose notes contain a substring "
"or match a regular expression")
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, person):
@@ -39,11 +39,11 @@ from . import Rule
class HasNoteSubstrBase(Rule):
"""People having notes containing <substring>."""
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
description = "Matches objects whose notes contain text matching a " \
"substring"
category = _('General filters')
category = _('General filters')
def apply(self, db, person):
notelist = person.get_note_list()
@@ -39,10 +39,10 @@ from . import Rule
class HasReferenceCountBase(Rule):
"""Objects with a reference count of <count>."""
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
description = "Matches objects with a certain reference count"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
+3 -3
View File
@@ -43,13 +43,13 @@ class HasSourceBase(Rule):
"""Rule that checks for a source with a particular value"""
labels = [ 'Title:',
labels = [ 'Title:',
'Author:',
'Abbreviation:',
'Publication:' ]
name = 'Sources matching parameters'
name = 'Sources matching parameters'
description = "Matches sources with particular parameters"
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def apply(self,db,source):
@@ -42,11 +42,11 @@ from . import Rule
class HasSourceCountBase(Rule):
"""Objects having sources"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
description = "Matches objects that have a certain number of sources " \
"connected to it (actually citations are counted)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -42,9 +42,9 @@ from . import Rule
class HasSourceOfBase(Rule):
"""Rule that checks for objects that have a particular source."""
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
description = 'Matches objects who have a particular source'
def prepare(self, db, user):
+3 -3
View File
@@ -46,10 +46,10 @@ class HasTagBase(Rule):
Rule that checks for an object with a particular tag.
"""
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
description = "Matches objects with the given tag"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
"""
@@ -39,13 +39,13 @@ from . import Rule
class HasTextMatchingSubstringOf(Rule):
"""Rule that checks for string matches in any textual information."""
labels = [ 'Substring:',
labels = [ 'Substring:',
'Case sensitive:',
'Regular-Expression matching:']
name = 'Objects with records containing <substring>'
name = 'Objects with records containing <substring>'
description = "Matches objects whose records contain text " \
"matching a substring"
category = _('General filters')
category = _('General filters')
# FIXME: This needs to be written for an arbitrary object
# if possible
+2 -2
View File
@@ -37,9 +37,9 @@ from . import Rule
class IsPrivate(Rule):
"""Objects marked private."""
name = 'Objects marked private'
name = 'Objects marked private'
description = "Matches objects that are indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return obj.get_privacy()
+2 -2
View File
@@ -34,9 +34,9 @@ _ = glocale.translation.gettext
class IsPublic(Rule):
"""Objects not marked private."""
name = 'Objects not marked private'
name = 'Objects not marked private'
description = "Matches objects that are not indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return not obj.get_privacy()
@@ -47,14 +47,14 @@ class MatchesEventFilterBase(MatchesFilterBase):
"""
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
description = "Matches objects who have events that match a certain" \
" event filter"
category = _('General filters')
category = _('General filters')
# we want to have this filter show event filters
namespace = 'Event'
namespace = 'Event'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
@@ -51,10 +51,10 @@ class MatchesFilterBase(Rule):
Subclasses need to define the namespace class attribute.
"""
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
description = "Matches objects matched by the specified filter name"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
if gramps.gen.filters.CustomFilters:
@@ -44,10 +44,10 @@ from . import Rule
class MatchesSourceConfidenceBase(Rule):
"""Objects with a specific confidence level on 'direct' Source references"""
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
description = "Matches objects with at least one direct source with confidence level(s)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def apply(self, db, obj):
required_conf = int(self.list[0])
@@ -44,14 +44,14 @@ class MatchesSourceFilterBase(MatchesFilterBase):
Rule that checks against another filter.
"""
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
description = "Matches objects with sources that match the " \
"specified source filter name"
category = _('Citation/source filters')
category = _('Citation/source filters')
# we want to have this filter show source filters
namespace = 'Source'
namespace = 'Source'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
+3 -3
View File
@@ -45,11 +45,11 @@ class RegExpIdBase(Rule):
regular expression.
"""
labels = [ _('Text:') ]
name = 'Objects with <Id>'
labels = [ _('Text:') ]
name = 'Objects with <Id>'
description = "Matches objects whose Gramps ID contains a substring " \
"or matches a regular expression"
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, obj):
+5 -7
View File
@@ -50,9 +50,9 @@ LOG = logging.getLogger(".")
class Rule:
"""Base rule class."""
labels = []
name = ''
category = _('Miscellaneous filters')
labels = []
name = ''
category = _('Miscellaneous filters')
description = _('No description')
allow_regex = False
@@ -141,10 +141,8 @@ class Rule:
def display_values(self):
"""Return the labels and values of this rule."""
l_v = ('%s="%s"' % (_(self.labels[ix][0] if
isinstance(self.labels[ix], tuple) else
self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix])
l_v = ( '%s="%s"' % (_(self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix] )
return ';'.join(l_v)
@@ -42,5 +42,5 @@ from .._everything import Everything
class AllCitations(Everything):
"""Matches every citation"""
name = _('Every citation')
name = _('Every citation')
description = _('Matches every citation in the database')
@@ -42,8 +42,8 @@ from .._changedsincebase import ChangedSinceBase
class ChangedSince(ChangedSinceBase):
"""Rule that checks for citations changed since a specific time."""
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
description = _("Matches citation records changed after a specified "
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
"date-time is given.")
@@ -40,5 +40,5 @@ from .._isprivate import IsPrivate
class CitationPrivate(IsPrivate):
"""Citation marked private"""
name = _('Citations marked private')
name = _('Citations marked private')
description = _("Matches citations that are indicated as private")
@@ -45,11 +45,11 @@ from ....datehandler import parser
class HasCitation(Rule):
"""Rule that checks for a citations with a particular value"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence level:')]
name = _('Citations matching parameters')
category = _('General filters')
name = _('Citations matching parameters')
category = _('General filters')
description = _("Matches citations with particular parameters")
allow_regex = True
@@ -42,5 +42,5 @@ from .._hasgallerybase import HasGalleryBase
class HasGallery(HasGalleryBase):
"""Rule that checks for citation who has media object reference"""
name = _('Citations with <count> media')
name = _('Citations with <count> media')
description = _("Matches citations with a certain number of items in the gallery")
@@ -42,5 +42,5 @@ from .. import HasGrampsId
class HasIdOf(HasGrampsId):
"""Rule that checks for a citation with a specific Gramps ID"""
name = _('Citation with <Id>')
name = _('Citation with <Id>')
description = _("Matches a citation with a specified Gramps ID")
@@ -43,5 +43,5 @@ from .._hasnotebase import HasNoteBase
class HasNote(HasNoteBase):
"""Citations having notes"""
name = _('Citations having <count> notes')
name = _('Citations having <count> notes')
description = _("Matches citations having a certain number of notes")
@@ -40,7 +40,7 @@ from .._hasnotesubstrbase import HasNoteSubstrBase
class HasNoteMatchingSubstringOf(HasNoteSubstrBase):
"""Citations having notes containing <substring>"""
name = _('Citations having notes containing <substring>')
name = _('Citations having notes containing <substring>')
description = _("Matches citations whose notes contain text "
"matching a substring")
@@ -39,6 +39,6 @@ from .._hasnoteregexbase import HasNoteRegexBase
#-------------------------------------------------------------------------
class HasNoteRegexp(HasNoteRegexBase):
name = _('Citations having notes containing <text>')
name = _('Citations having notes containing <text>')
description = _("Matches citations whose notes contain text "
"matching a regular expression")
@@ -40,6 +40,6 @@ from .._hasreferencecountbase import HasReferenceCountBase
class HasReferenceCountOf(HasReferenceCountBase):
"""Citation objects with a reference count of <count>"""
name = _('Citations with a reference count of <count>')
name = _('Citations with a reference count of <count>')
description = _("Matches citations with a certain reference count")
@@ -45,14 +45,14 @@ from .._hassourcebase import HasSourceBase
class HasSource(HasSourceBase):
"""Rule that checks for an citation with a particular value"""
labels = [ _('Title:'),
labels = [ _('Title:'),
_('Author:'),
_('Abbreviation:'),
_('Publication:') ]
name = _('Sources matching parameters')
name = _('Sources matching parameters')
description = _("Matches citations with a source of a particular "
"value")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
@@ -43,10 +43,10 @@ class HasSourceIdOf(HasGrampsId):
"""Rule that checks for a citation with a source which has a specific
Gramps ID"""
name = _('Citation with Source <Id>')
name = _('Citation with Source <Id>')
description = _("Matches a citation with a source with a specified Gramps "
"ID")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
@@ -49,10 +49,10 @@ class HasSourceNoteRegexp(HasNoteRegexBase):
substring or matches a regular expression.
"""
name = _('Citations having source notes containing <text>')
name = _('Citations having source notes containing <text>')
description = _("Matches citations whose source notes contain a substring "
"or match a regular expression")
category = _('Source filters')
category = _('Source filters')
def apply(self, db, citation):
source = db.get_source_from_handle(citation.get_reference_handle())
+2 -2
View File
@@ -45,6 +45,6 @@ class HasTag(HasTagBase):
"""
Rule that checks for a citation with a particular tag.
"""
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
description = _("Matches citations with the particular tag")
@@ -42,6 +42,6 @@ from .._matchesfilterbase import MatchesFilterBase
class MatchesFilter(MatchesFilterBase):
"""Rule that checks against another filter"""
name = _('Citations matching the <filter>')
name = _('Citations matching the <filter>')
description = _("Matches citations matched by the specified filter name")
namespace = 'Citation'
namespace = 'Citation'
@@ -39,11 +39,11 @@ from .. import Rule
class MatchesPageSubstringOf(Rule):
"""Citation Volume/Page title containing <substring>"""
labels = [ _('Text:')]
name = _('Citations with Volume/Page containing <text>')
labels = [ _('Text:')]
name = _('Citations with Volume/Page containing <text>')
description = _("Matches citations whose Volume/Page contains a "
"certain substring")
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, object):
@@ -42,12 +42,12 @@ from .. import MatchesFilterBase
class MatchesRepositoryFilter(MatchesFilterBase):
"""Citations which have a source which references the selected repository"""
labels = [ _('Repository filter name:') ]
name = _('Citations with a source with a repository reference '
labels = [ _('Repository filter name:') ]
name = _('Citations with a source with a repository reference '
'matching the <repository filter>')
description = _("Matches citations with sources with a repository "
"reference that match a certain repository filter")
category = _('General filters')
category = _('General filters')
# we want to have this filter show repository filters
namespace = 'Repository'
@@ -45,14 +45,14 @@ class MatchesSourceFilter(MatchesFilterBase):
Rule that checks against another filter.
"""
labels = [_('Source filter name:')]
name = _('Citations with source matching the <source filter>')
labels = [_('Source filter name:')]
name = _('Citations with source matching the <source filter>')
description = _("Matches citations with sources that match the "
"specified source filter name")
category = _('General filters')
category = _('General filters')
# we want to have this filter show source filters
namespace = 'Source'
namespace = 'Source'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
@@ -45,6 +45,6 @@ class RegExpIdOf(RegExpIdBase):
matches regular expression.
"""
name = _('Citations with Id containing <text>')
name = _('Citations with Id containing <text>')
description = _("Matches citations whose Gramps ID matches "
"the regular expression")
@@ -45,10 +45,10 @@ class RegExpSourceIdOf(RegExpIdBase):
matches regular expression.
"""
name = _('Citations with Source Id containing <text>')
name = _('Citations with Source Id containing <text>')
description = _("Matches citations whose source has a Gramps ID that "
"matches the regular expression")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
+1 -1
View File
@@ -41,5 +41,5 @@ from .._everything import Everything
class AllEvents(Everything):
"""Matches Everyone"""
name = _('Every event')
name = _('Every event')
description = _('Matches every event in the database')
@@ -43,8 +43,8 @@ from .._changedsincebase import ChangedSinceBase
class ChangedSince(ChangedSinceBase):
"""Rule that checks for an event changed since a specific time."""
labels = [ _('Changed after:'), _('but before:') ]
name = _('Events changed after <date time>')
labels = [ _('Changed after:'), _('but before:') ]
name = _('Events changed after <date time>')
description = _("Matches event records changed after a specified "
"date/time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
"date/time is given.")
@@ -39,5 +39,5 @@ from .._isprivate import IsPrivate
class EventPrivate(IsPrivate):
"""Event marked private"""
name = _('Events marked private')
name = _('Events marked private')
description = _("Matches events that are indicated as private")
@@ -41,7 +41,7 @@ from .._hasattributebase import HasAttributeBase
class HasAttribute(HasAttributeBase):
"""Rule that checks for an event with a particular event attribute"""
labels = [ _('Event attribute:'), _('Value:') ]
name = _('Events with the attribute <attribute>')
labels = [ _('Event attribute:'), _('Value:') ]
name = _('Events with the attribute <attribute>')
description = _("Matches events with the event attribute "
"of a particular value")
@@ -45,9 +45,9 @@ from .._hascitationbase import HasCitationBase
class HasCitation(HasCitationBase):
"""Rule that checks for an event with a particular value"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence level:')]
name = _('Events with the <citation>')
name = _('Events with the <citation>')
description = _("Matches events with a citation of a particular "
"value")
+3 -3
View File
@@ -44,11 +44,11 @@ from .. import Rule
class HasData(Rule):
"""Rule that checks for an event containing particular values"""
labels = [ _('Event type:'), _('Date:'), _('Place:'),
labels = [ _('Event type:'), _('Date:'), _('Place:'),
_('Description:') ]
name = _('Events with <data>')
name = _('Events with <data>')
description = _("Matches events with data of a particular value")
category = _('General filters')
category = _('General filters')
allow_regex = True
def prepare(self, db, user):
@@ -35,10 +35,10 @@ _ = glocale.translation.gettext
class HasDayOfWeek(Rule):
"""Rule that matches an event occurring on a particular day of the week."""
labels = [ _('Day of Week:') ]
name = _('Events occurring on a particular day of the week')
labels = [ _('Day of Week:') ]
name = _('Events occurring on a particular day of the week')
description = _('Matches events occurring on a particular day of the week')
category = _('General filters')
category = _('General filters')
def apply(self, db, event):
if not self.list[0]:
@@ -42,5 +42,5 @@ from .._hasgallerybase import HasGalleryBase
class HasGallery(HasGalleryBase):
"""Rule that checks for event who has media object reference"""
name = _('Events with <count> media')
name = _('Events with <count> media')
description = _("Matches events with a certain number of items in the gallery")
+1 -1
View File
@@ -41,5 +41,5 @@ from .. import HasGrampsId
class HasIdOf(HasGrampsId):
"""Rule that checks for a family with a specific Gramps ID"""
name = _('Event with <Id>')
name = _('Event with <Id>')
description = _("Matches an event with a specified Gramps ID")
+1 -1
View File
@@ -42,5 +42,5 @@ from .._hasnotebase import HasNoteBase
class HasNote(HasNoteBase):
"""Events having notes"""
name = _('Events having <count> notes')
name = _('Events having <count> notes')
description = _("Matches events having a certain number of notes")
@@ -39,7 +39,7 @@ from .._hasnotesubstrbase import HasNoteSubstrBase
class HasNoteMatchingSubstringOf(HasNoteSubstrBase):
"""People having notes containing <substring>"""
name = _('Events having notes containing <substring>')
name = _('Events having notes containing <substring>')
description = _("Matches events whose notes contain text "
"matching a substring")
@@ -38,6 +38,6 @@ from .._hasnoteregexbase import HasNoteRegexBase
#-------------------------------------------------------------------------
class HasNoteRegexp(HasNoteRegexBase):
name = _('Events having notes containing <text>')
name = _('Events having notes containing <text>')
description = _("Matches events whose notes contain text "
"matching a regular expression")
@@ -39,6 +39,6 @@ from .._hasreferencecountbase import HasReferenceCountBase
class HasReferenceCountOf(HasReferenceCountBase):
"""Events with a reference count of <count>"""
name = _('Events with a reference count of <count>')
name = _('Events with a reference count of <count>')
description = _("Matches events with a certain reference count")

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