Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b57b8d0b75 | ||
|
|
9fe57a2eb2 | ||
|
|
ddfc88946a | ||
|
|
52e4790753 | ||
|
|
8a2c94a3dd | ||
|
|
e40b727a57 | ||
|
|
160d5952f2 | ||
|
|
482199d29c | ||
|
|
bfa7c0c9f4 | ||
|
|
614332aac8 | ||
|
|
0a981f0ca6 | ||
|
|
9e81014fc6 | ||
|
|
2da93aad1f | ||
|
|
97434a0136 | ||
|
|
181e2d8540 | ||
|
|
36d03137dd | ||
|
|
f6ac1999dd | ||
|
|
a99b48711f | ||
|
|
d5d86e9139 | ||
|
|
4ebba02b6b | ||
|
|
e535fcefa5 | ||
|
|
0170e2b1e6 | ||
|
|
54799df049 | ||
|
|
b97facb66f | ||
|
|
aae38a6861 | ||
|
|
e0ee86c36a | ||
|
|
e3e89e6592 | ||
|
|
2cde1f0cdb | ||
|
|
2ca3839904 | ||
|
|
66cac5e852 | ||
|
|
99ec8e876b | ||
|
|
b27480f7a1 | ||
|
|
e0e81cf56a | ||
|
|
6df7c46400 | ||
|
|
b98f166a6d | ||
|
|
33e78d47db | ||
|
|
c753ca66b0 | ||
|
|
ff87829b99 | ||
|
|
a1ec516340 | ||
|
|
60b4866296 | ||
|
|
3ad5248af0 | ||
|
|
aa7d9c10c8 | ||
|
|
9f458578c0 | ||
|
|
3418027e50 | ||
|
|
8eed6b869a | ||
|
|
f5202a9ab8 | ||
|
|
b8e5eacbbe | ||
|
|
810d2fca24 | ||
|
|
7c0e138ad2 | ||
|
|
85535c0f5b | ||
|
|
b52d90221f | ||
|
|
bfcbd38610 | ||
|
|
2ada529a21 | ||
|
|
8d355ee184 | ||
|
|
d5b28435e0 | ||
|
|
61189d3930 | ||
|
|
fec961d992 | ||
|
|
8ceccb4a28 | ||
|
|
6ba9722dee | ||
|
|
4a9f658dd4 | ||
|
|
c9537b355e | ||
|
|
49c3fa0f3f | ||
|
|
eb002718b1 | ||
|
|
19c714d57a | ||
|
|
b392ce01e0 | ||
|
|
b43b6bdd6d | ||
|
|
c027276466 | ||
|
|
898b6b26e8 | ||
|
|
ab2df73268 | ||
|
|
e1794090e1 | ||
|
|
87860fcfd2 | ||
|
|
79986e1f5e | ||
|
|
0f38a1a645 | ||
|
|
14618917c2 | ||
|
|
ae7a2500de | ||
|
|
358a6b118b | ||
|
|
9352f0c438 | ||
|
|
1ab4cbfa63 | ||
|
|
1fd319e13a | ||
|
|
7cb8489ba2 | ||
|
|
a685b96f70 | ||
|
|
b24ebd5d77 | ||
|
|
6dcb1d00d5 | ||
|
|
a3b37b9627 | ||
|
|
034720321c | ||
|
|
09f01a69d5 | ||
|
|
597f3ebedf | ||
|
|
c7b5e149fa | ||
|
|
f7203aa029 | ||
|
|
9cca728a66 | ||
|
|
df270adc94 | ||
|
|
c177c13f99 | ||
|
|
15f1bb0201 | ||
|
|
f75aa9302a | ||
|
|
708c83dc58 | ||
|
|
0a809904dc | ||
|
|
e8f50deabc | ||
|
|
486fae91ce | ||
|
|
9ee5468bda | ||
|
|
eac6a935f6 | ||
|
|
cc68b7acfc | ||
|
|
c321e7f0d6 | ||
|
|
e13a852523 | ||
|
|
3c4c433a84 | ||
|
|
e8268cb37e | ||
|
|
721d964741 | ||
|
|
7d4ec1be73 | ||
|
|
36ce375a2a | ||
|
|
9f6afcc7db | ||
|
|
c66fc6423d | ||
|
|
f91d3e94ab | ||
|
|
3c1c21163c | ||
|
|
09709ec0c6 | ||
|
|
bb7f5fa522 | ||
|
|
9957506f35 | ||
|
|
eb4ce9ff79 | ||
|
|
1d72f4b23d | ||
|
|
5ad5f08a2b | ||
|
|
9e43f060d1 | ||
|
|
bc1ed688c4 | ||
|
|
9d358d06f5 | ||
|
|
16b1945a0e | ||
|
|
5e9be68ad5 | ||
|
|
cd3ef08ffb | ||
|
|
773e763093 | ||
|
|
0badfb6b47 | ||
|
|
5af80da5cd | ||
|
|
0045f134c6 | ||
|
|
1035f8930f | ||
|
|
d4bceeb6ff | ||
|
|
c8fc88cfe7 | ||
|
|
b4b6d52306 | ||
|
|
4f390c6b33 | ||
|
|
0442c34258 | ||
|
|
c903f5e5a5 | ||
|
|
3329860f50 | ||
|
|
e7401f3aaa | ||
|
|
1a48e8a03e | ||
|
|
9a4adab9d6 | ||
|
|
bb0647274b | ||
|
|
f6bfb46fc0 | ||
|
|
b6fa5da8ee | ||
|
|
14c2d0e1b6 | ||
|
|
226e8c549a | ||
|
|
d173809d8c | ||
|
|
63c52fa1bb | ||
|
|
455628d44a | ||
|
|
670bb355cb | ||
|
|
202c7a9bf6 | ||
|
|
72955840f1 | ||
|
|
b8e73d5ee1 | ||
|
|
990db39664 | ||
|
|
9c0dca6bd1 | ||
|
|
02e0c1c67d | ||
|
|
ebf1715468 | ||
|
|
c10f2da00e | ||
|
|
9f71372a97 | ||
|
|
0993d9cfc3 | ||
|
|
34471834ab | ||
|
|
ff912f844c | ||
|
|
45eac501a9 | ||
|
|
d4e85c2397 | ||
|
|
c7a4d287f0 | ||
|
|
c0d622c16a | ||
|
|
b38f77f2aa | ||
|
|
d91fc9e2fb | ||
|
|
198602be61 | ||
|
|
3f9f3215ee | ||
|
|
beb388a30d | ||
|
|
29e78d4253 | ||
|
|
b80dcaf701 | ||
|
|
a876d94fbc | ||
|
|
95e1e8cb67 | ||
|
|
4147bc728a | ||
|
|
3a9a7053ec | ||
|
|
b96fd8a274 | ||
|
|
26cf0601d8 | ||
|
|
c59278ef20 | ||
|
|
767557be61 | ||
|
|
495d4e58ae | ||
|
|
fd90a80cf8 | ||
|
|
f6c0103f32 | ||
|
|
04c1dc8503 | ||
|
|
8172e1017e | ||
|
|
ea30c3599b | ||
|
|
5f3ca40633 | ||
|
|
9c64dafaea | ||
|
|
13d83919b9 | ||
|
|
62d5a136a4 | ||
|
|
b57061d7c9 | ||
|
|
f7be7ab63f | ||
|
|
97923e7530 | ||
|
|
75aabf570d | ||
|
|
41f1e91600 | ||
|
|
981c0dfc5c | ||
|
|
d558a9a004 | ||
|
|
914bd6c0d3 | ||
|
|
e8eb5bf0a1 | ||
|
|
b523530fb0 | ||
|
|
0d698c13cc | ||
|
|
4232032ce3 | ||
|
|
8f4b51c837 | ||
|
|
f2caecd621 | ||
|
|
c26d6902d1 | ||
|
|
b00b1f37f1 | ||
|
|
9230de61be | ||
|
|
9906f1e4ab | ||
|
|
a68c0f7aa7 | ||
|
|
513b27531d | ||
|
|
b8f007c4dd | ||
|
|
e375df1e2a | ||
|
|
df81a10fe8 | ||
|
|
fa53805534 | ||
|
|
e614a79cef | ||
|
|
343633a189 | ||
|
|
eb14abbf3e | ||
|
|
5154d0c016 | ||
|
|
a2c6641774 | ||
|
|
924d82a7c4 | ||
|
|
f1f8847a86 | ||
|
|
748fbd0949 | ||
|
|
e2e659dc94 | ||
|
|
6cbc2b896d | ||
|
|
d210275a4e | ||
|
|
0a3a65ffb0 | ||
|
|
e34b98033e | ||
|
|
96de0ceb4e | ||
|
|
58335cfee2 | ||
|
|
2ce48d3793 | ||
|
|
f91063884e | ||
|
|
06732b1b5d | ||
|
|
26b78c17af | ||
|
|
d83fff3b62 | ||
|
|
823bcaac0d | ||
|
|
b9c324ef37 | ||
|
|
23d2c8e694 | ||
|
|
28dc2e5158 | ||
|
|
2baa6f5e40 | ||
|
|
eb1b4c1eb5 | ||
|
|
51f2052cfe | ||
|
|
ccf6d59b17 | ||
|
|
74d72f4dd0 | ||
|
|
9ce92f41e3 | ||
|
|
77cdbb11b5 | ||
|
|
72277db766 | ||
|
|
7ae77abead | ||
|
|
04b1463746 | ||
|
|
1eeae2edf8 | ||
|
|
740adc7070 | ||
|
|
a2dbdbb61a | ||
|
|
8d5b0c83ce | ||
|
|
01afe251fb | ||
|
|
152ed0b6bc | ||
|
|
5624fb1490 | ||
|
|
32c700c6bf | ||
|
|
130740553d | ||
|
|
675dfdbc70 | ||
|
|
34beeaad70 | ||
|
|
06cb9d7ea6 | ||
|
|
d693881b98 | ||
|
|
801be84465 | ||
|
|
7807ff8a6d | ||
|
|
672603c8ae | ||
|
|
c30dfc6343 | ||
|
|
e6ed0612e3 | ||
|
|
9b0cf1b976 | ||
|
|
ddb29b1628 | ||
|
|
1a8406e2e4 | ||
|
|
09e89549de | ||
|
|
afaeb7c995 | ||
|
|
6fa30b889d | ||
|
|
1916383a28 | ||
|
|
379c96ee6a | ||
|
|
7b45bbf72e | ||
|
|
aea9ef3645 | ||
|
|
05f7744cba | ||
|
|
bfc76a08d4 | ||
|
|
b7487330a7 | ||
|
|
1025a38caa | ||
|
|
2054c467db | ||
|
|
789b72289c | ||
|
|
2e1132bec0 | ||
|
|
8ccfa43e56 | ||
|
|
40140859af | ||
|
|
e69e6ca338 | ||
|
|
fb29a77f83 | ||
|
|
06cca96ad0 | ||
|
|
2c49461529 | ||
|
|
73d19851ef | ||
|
|
16c8e61944 | ||
|
|
2fbf945309 | ||
|
|
cf184e72e8 | ||
|
|
1c27b785f4 | ||
|
|
da7e4cc763 | ||
|
|
5d2fd8cbda | ||
|
|
005beac33f | ||
|
|
ae53b401ce | ||
|
|
79c54aaedc | ||
|
|
4360976d73 | ||
|
|
5e9d79ac6f | ||
|
|
ee1d9be898 | ||
|
|
75b0b66269 | ||
|
|
c54f381737 | ||
|
|
2aa6b54de4 | ||
|
|
49bad564ae | ||
|
|
03ab64c4d5 | ||
|
|
f7bd062bdb | ||
|
|
c312c96987 | ||
|
|
6b2066c797 | ||
|
|
5d15ccb2a2 | ||
|
|
0095a07f12 | ||
|
|
bb5b03dd78 | ||
|
|
26351c18c9 | ||
|
|
ecd6da40dd | ||
|
|
793b13be67 | ||
|
|
48dfca57e2 | ||
|
|
a07aae2e30 | ||
|
|
8f5daac4a7 | ||
|
|
0cd6394b72 | ||
|
|
57d8dcd574 | ||
|
|
d5bb4da5a1 | ||
|
|
5c44d925e1 | ||
|
|
c7e2e09b42 | ||
|
|
669e4af0b7 | ||
|
|
88f7a701a3 | ||
|
|
52c087154f | ||
|
|
2b62729f52 | ||
|
|
1c856bb93b | ||
|
|
710e40425f | ||
|
|
bb3eecb365 | ||
|
|
8de8c69686 | ||
|
|
4379a09fd3 | ||
|
|
0dc2be6dd5 | ||
|
|
daa845492d | ||
|
|
cc28935b15 | ||
|
|
3d1ef5e595 | ||
|
|
44bdd14609 | ||
|
|
bec5a41829 | ||
|
|
c3206121df | ||
|
|
1e52204d94 | ||
|
|
82cd211d29 | ||
|
|
4244d70312 | ||
|
|
98cc9b3740 | ||
|
|
efcf0d1b83 | ||
|
|
c1024aa61d | ||
|
|
fe3efc57ab | ||
|
|
52f2d7b4ba | ||
|
|
9e0e256fd2 | ||
|
|
50625c654b | ||
|
|
1e10eabb15 | ||
|
|
a7b934003b | ||
|
|
1b2e91d365 | ||
|
|
ff17f57ba3 | ||
|
|
a206503a9b | ||
|
|
846a4d1a32 | ||
|
|
d75d9797c0 | ||
|
|
5767b9c3c8 | ||
|
|
d397b83dc8 | ||
|
|
7617891faf | ||
|
|
d096d269c7 | ||
|
|
e983578fff | ||
|
|
e10df9eb6d | ||
|
|
14acaca0b5 | ||
|
|
6ba958cc41 | ||
|
|
efbec440fd | ||
|
|
578daa825d | ||
|
|
29994242c7 | ||
|
|
69261509ee | ||
|
|
d3d51677f9 | ||
|
|
6602843f5a | ||
|
|
7ec4a429a4 | ||
|
|
16d40189c6 | ||
|
|
4b9dba0c53 | ||
|
|
dd80e4b80e | ||
|
|
e39e59c795 | ||
|
|
590a5cf59a | ||
|
|
f5b6389042 | ||
|
|
a06478f8ed | ||
|
|
a88ae843e3 | ||
|
|
71931e2e2e | ||
|
|
e817b3cc4e | ||
|
|
7519561027 | ||
|
|
54944968cc | ||
|
|
6689ebd133 | ||
|
|
e92a89e90f | ||
|
|
9d167aa0e4 | ||
|
|
3e54390047 | ||
|
|
40a81ae8eb | ||
|
|
ff6d9a0936 | ||
|
|
6d4e4bd12d | ||
|
|
77d533f930 | ||
|
|
90dcc9b9ea | ||
|
|
f823e4f126 | ||
|
|
a833dfb3ac | ||
|
|
f6a5c9166e | ||
|
|
ee5f2fa600 | ||
|
|
ba6254ca3f | ||
|
|
7258bd9fd6 | ||
|
|
49632d8789 | ||
|
|
5f101300af | ||
|
|
d89557acf4 | ||
|
|
cdd3177b19 | ||
|
|
bb8ce0cce6 | ||
|
|
bb255c8529 | ||
|
|
fe87150c14 | ||
|
|
f6b81c9da8 | ||
|
|
e59aa58c63 | ||
|
|
3e2e8a837f | ||
|
|
c0ff650748 | ||
|
|
44104671b9 | ||
|
|
afa8e73486 | ||
|
|
27c38018fa | ||
|
|
96fcef2a84 | ||
|
|
7e7dd68b58 | ||
|
|
ab5a810990 | ||
|
|
f7d58f4c28 | ||
|
|
17dc7f7d23 | ||
|
|
5c6a0ebff3 | ||
|
|
949296a801 | ||
|
|
15e033c02c | ||
|
|
ede3707b51 | ||
|
|
0b6911f0da | ||
|
|
3fccf5a9cb | ||
|
|
80749afd09 | ||
|
|
cce5a26a9b | ||
|
|
83957ecdf0 | ||
|
|
804c03b286 | ||
|
|
bb3a1d3609 | ||
|
|
a9b4e22fb0 | ||
|
|
72d8d2d3cf | ||
|
|
b039a199d7 | ||
|
|
dda257bcd6 | ||
|
|
ce30c874d1 | ||
|
|
2f97ec7acd | ||
|
|
d2bad63603 | ||
|
|
9a699aef81 | ||
|
|
3a505745f3 | ||
|
|
2da2166004 | ||
|
|
6d67dff94c | ||
|
|
1f778e8ce1 | ||
|
|
81a1b675af | ||
|
|
1b7b20756f | ||
|
|
f24e29998d | ||
|
|
eff15c1ce3 | ||
|
|
2c15e382bd | ||
|
|
b3715efea9 | ||
|
|
cfe8c42d28 | ||
|
|
1ef467c9e3 | ||
|
|
7b3c86a4f5 | ||
|
|
7dc532c743 | ||
|
|
2951a0acf0 | ||
|
|
6d53c3a91c | ||
|
|
73705b08cd | ||
|
|
7ca19214d6 | ||
|
|
f123cac308 | ||
|
|
87955ed2e9 | ||
|
|
c61e79be76 | ||
|
|
135acff4e8 | ||
|
|
0910bebe56 | ||
|
|
805e07d09a | ||
|
|
e6324fe3d8 | ||
|
|
75d2f3dd00 | ||
|
|
9d3f17e377 | ||
|
|
aefa262cd1 | ||
|
|
a6ef08d4d3 | ||
|
|
9eb04593f5 | ||
|
|
45c06cac54 | ||
|
|
77124496e8 | ||
|
|
6bca4083cb | ||
|
|
3ba2253ac0 | ||
|
|
eb36980715 | ||
|
|
8366ceb896 | ||
|
|
5311cc7744 | ||
|
|
0213e65ff0 | ||
|
|
c82ec4c65b | ||
|
|
63cd18ebfb | ||
|
|
52b9fe8276 | ||
|
|
cd092897bc | ||
|
|
735e17a8cb | ||
|
|
08a4aeff7b | ||
|
|
0fb1742362 | ||
|
|
e4564ec86e | ||
|
|
76961fd675 | ||
|
|
2f9704c680 | ||
|
|
98a38cde57 | ||
|
|
b5e9795ccf | ||
|
|
4f14cbc12c | ||
|
|
b765d7eae0 | ||
|
|
3f28b5fcb5 | ||
|
|
903069fd34 | ||
|
|
03d0baa2bf | ||
|
|
3096c2b09a | ||
|
|
976edfbf1d | ||
|
|
2a5fee85c5 | ||
|
|
1b1452c7b7 | ||
|
|
021ea6baab | ||
|
|
50ed9268f9 | ||
|
|
f4832dd785 | ||
|
|
a94fc04890 | ||
|
|
488eaced8c | ||
|
|
9442c1ef7e | ||
|
|
67c8fd18cb | ||
|
|
1a0390f623 | ||
|
|
e9412a2479 | ||
|
|
c615b4dc32 | ||
|
|
450217a636 | ||
|
|
9a398cbcfd | ||
|
|
aff888a0b5 | ||
|
|
71ad5ffb04 | ||
|
|
100d6d0672 | ||
|
|
d96b6d19b8 | ||
|
|
bf4b3962bc | ||
|
|
51f44c2fd7 | ||
|
|
00c74d139a | ||
|
|
54c3b29793 | ||
|
|
d1ee70a0d2 | ||
|
|
c4f89c4034 | ||
|
|
8615021d37 | ||
|
|
c3c006c465 | ||
|
|
b389842af1 | ||
|
|
aba0303260 | ||
|
|
3bba6f57e4 | ||
|
|
f84c2ecf11 | ||
|
|
7a82b78ff9 | ||
|
|
39a0d8c648 | ||
|
|
62f8049d6a | ||
|
|
d65ad470d6 | ||
|
|
be98b673df | ||
|
|
f088d940a6 | ||
|
|
92328d4332 | ||
|
|
b4e4dbbcf2 | ||
|
|
4c6c052729 | ||
|
|
257b091cac | ||
|
|
abcf304ea7 | ||
|
|
dba752c328 | ||
|
|
0dd2b9d0fd | ||
|
|
520c81a355 | ||
|
|
807eab7cd9 | ||
|
|
2bc5f63406 | ||
|
|
344dd69a9d | ||
|
|
29b0e824a2 | ||
|
|
fb886c5954 | ||
|
|
06aa83e263 | ||
|
|
051311bbbd | ||
|
|
f4c94c48b4 | ||
|
|
c04b6f6fdf | ||
|
|
455cd151b7 | ||
|
|
4dd6abfe85 | ||
|
|
73402dfb05 | ||
|
|
a1c02bda9b | ||
|
|
67cf51bbf3 | ||
|
|
77cc12a42e | ||
|
|
290815cba8 | ||
|
|
979a477773 | ||
|
|
2e17c65a2c | ||
|
|
757854e566 | ||
|
|
a592f7b2fd | ||
|
|
03a89c73e3 | ||
|
|
45d3c43680 | ||
|
|
732f9fae16 | ||
|
|
c7f2b19784 | ||
|
|
30628cf6c7 | ||
|
|
36e43562e7 | ||
|
|
80b99925bd | ||
|
|
d78aa8cd8d | ||
|
|
4087ae800c | ||
|
|
fcfecef459 | ||
|
|
7131eec356 | ||
|
|
3ada5081b5 | ||
|
|
e4450cb34b | ||
|
|
97aedaae99 | ||
|
|
285fbf2c97 | ||
|
|
6e7e233155 | ||
|
|
436ca0df98 | ||
|
|
b17c230f56 | ||
|
|
3cb57426b1 | ||
|
|
acfbb0a763 | ||
|
|
255caf1ab7 | ||
|
|
1b824c410b | ||
|
|
7b8666e454 | ||
|
|
9e9d4e6369 | ||
|
|
508df3048d | ||
|
|
cb8bf0d00a | ||
|
|
44180b45e2 | ||
|
|
03b151b472 | ||
|
|
ec075e360b | ||
|
|
e4cbca4b73 | ||
|
|
4eda6d1afa | ||
|
|
496d4e1703 | ||
|
|
8d5f2bd050 | ||
|
|
96e4707c89 | ||
|
|
8fc03f85a1 | ||
|
|
b4b7911405 | ||
|
|
88373c0eb6 | ||
|
|
e8679a1eed | ||
|
|
b77378d2a1 | ||
|
|
f921bba612 | ||
|
|
58ffea1537 | ||
|
|
1ae319ef2a | ||
|
|
0340337107 | ||
|
|
bb1d59a29d | ||
|
|
d01afb3000 | ||
|
|
a99c02d9a7 | ||
|
|
dd43cde20e | ||
|
|
e356573605 | ||
|
|
6f7699480d | ||
|
|
3798175b50 | ||
|
|
6672230f23 | ||
|
|
8c35277267 | ||
|
|
38bfb760a3 | ||
|
|
df48f37a46 | ||
|
|
a02d7d0176 | ||
|
|
999a3937d1 | ||
|
|
a7e683d909 | ||
|
|
8e09235351 | ||
|
|
b934b0d424 | ||
|
|
9cc6e3a05e | ||
|
|
6cdc88e6f8 | ||
|
|
d6dd1dc221 | ||
|
|
21206af12b | ||
|
|
6506e85ea9 | ||
|
|
1d3202710a | ||
|
|
7078ca18ee | ||
|
|
b1fc676a55 | ||
|
|
5ef7739c60 | ||
|
|
a9748571f3 | ||
|
|
b4e5bd9eb2 | ||
|
|
e0e19492cd | ||
|
|
817f4b7205 | ||
|
|
4c7b24ba30 | ||
|
|
c7d552c238 | ||
|
|
b32e9d812e | ||
|
|
8da22fcbbf | ||
|
|
582d61e67e | ||
|
|
c110d9bc23 | ||
|
|
f4966ca793 | ||
|
|
2d0a5ed03c | ||
|
|
79074587f3 | ||
|
|
c660ed1728 | ||
|
|
e926934a49 | ||
|
|
b175b5cb60 | ||
|
|
8fe9069cbb | ||
|
|
63610d0651 | ||
|
|
754ac7966c | ||
|
|
51810ca973 | ||
|
|
b43b0fa77f | ||
|
|
f20dce51e8 | ||
|
|
254e196b2b | ||
|
|
edc214221e | ||
|
|
adfc1b8aee | ||
|
|
49f56bcc46 | ||
|
|
01efa725ce | ||
|
|
22b7f28edc | ||
|
|
780d83518d | ||
|
|
7247073a03 | ||
|
|
e5fedef66a | ||
|
|
8be3a475d1 | ||
|
|
c167cfa921 | ||
|
|
9eec554d4a | ||
|
|
c81b3596ec | ||
|
|
6c2179dc2e | ||
|
|
de1a4fec22 | ||
|
|
f0ebaa3bc1 | ||
|
|
263a082afe | ||
|
|
f2bc982c3d | ||
|
|
dd9ddab849 | ||
|
|
3046b0586c | ||
|
|
cfa278886b | ||
|
|
1c430a6b91 | ||
|
|
b0eb712933 | ||
|
|
51a7ad9483 | ||
|
|
d6e9d62fad | ||
|
|
3bac4a1036 | ||
|
|
1995a7068c | ||
|
|
5dc06d023d | ||
|
|
d98a1857dc | ||
|
|
7da8811327 | ||
|
|
375773d657 | ||
|
|
01060f0b0d | ||
|
|
36779c1229 | ||
|
|
5b7f5164db | ||
|
|
15db2dd603 | ||
|
|
97b15322d4 | ||
|
|
824bf7e40f | ||
|
|
56fa261ef2 | ||
|
|
1e9a3841cd | ||
|
|
e6ddedf6c6 | ||
|
|
325c3f22cc | ||
|
|
54be8d62f3 | ||
|
|
a40eca36d9 | ||
|
|
4b17ca4724 | ||
|
|
69aaec11a5 | ||
|
|
896b77a165 | ||
|
|
1b60193f77 | ||
|
|
1efab19f1e | ||
|
|
e667431dd5 | ||
|
|
cc7e4fda85 | ||
|
|
2490e2d07d | ||
|
|
e5c5a210b4 | ||
|
|
04a40c7a50 | ||
|
|
44c8e3c0f0 | ||
|
|
6f7242a773 | ||
|
|
358c3fc967 | ||
|
|
f1ca280441 | ||
|
|
482cecaa7e | ||
|
|
b6c57ab3c3 | ||
|
|
f3b5f75e37 | ||
|
|
7d9f4dcc80 | ||
|
|
224748eb96 | ||
|
|
2aec83f057 | ||
|
|
fd399323a6 | ||
|
|
bb6b3edee2 | ||
|
|
3f7ea4418c | ||
|
|
efcc115aa7 | ||
|
|
893c715a61 | ||
|
|
6bab78df21 | ||
|
|
29019eed98 | ||
|
|
d8c006e0f7 | ||
|
|
b8438dddeb | ||
|
|
4ba28c637e | ||
|
|
ae84040bc7 | ||
|
|
51e294f748 | ||
|
|
cb65fd93ca | ||
|
|
5b9600d835 | ||
|
|
cf80d17040 | ||
|
|
d4f906f22d | ||
|
|
d189e334d8 | ||
|
|
a48a94d872 | ||
|
|
8e5dc220dc | ||
|
|
dca2f610dc | ||
|
|
3d1833e307 | ||
|
|
aa221cc3c7 | ||
|
|
51b7d1c420 | ||
|
|
674d286f87 | ||
|
|
0161c4b917 | ||
|
|
de31a42fc8 | ||
|
|
9c508de5fd | ||
|
|
1b00d95ce4 | ||
|
|
78870decb8 | ||
|
|
1a5696eb2c | ||
|
|
269d38da2c | ||
|
|
99f77b0a88 | ||
|
|
264fdda4d0 | ||
|
|
8092b88ad4 | ||
|
|
3251e2ae88 | ||
|
|
f718c5f8b4 | ||
|
|
a96a446b47 | ||
|
|
5658411acf | ||
|
|
a4403d719e | ||
|
|
8597a10c40 | ||
|
|
d0c0045dc1 | ||
|
|
868abdc0d9 | ||
|
|
ebf88bf5c5 | ||
|
|
c3814a4e42 | ||
|
|
2a0b3afa4b | ||
|
|
52fe365919 | ||
|
|
414aac4c7e | ||
|
|
037e26a5a3 | ||
|
|
158d3a993b | ||
|
|
2ef35174d1 | ||
|
|
3249938b88 | ||
|
|
9b18083e48 | ||
|
|
04bdeb8321 | ||
|
|
67061d58e2 | ||
|
|
bc39dda9e7 | ||
|
|
257275f169 | ||
|
|
9e61809b17 | ||
|
|
9e2b935db1 | ||
|
|
9a386574d8 | ||
|
|
90bdb0a840 | ||
|
|
ae322dbdc8 | ||
|
|
208feceb03 | ||
|
|
32dd3a2e14 | ||
|
|
0ae51c9522 | ||
|
|
59bd9f040d | ||
|
|
df00dd1f32 | ||
|
|
ca49b56774 | ||
|
|
19f8c3561c | ||
|
|
79ff9bc216 | ||
|
|
b54672d28d | ||
|
|
6b42d71158 | ||
|
|
ac593d814d | ||
|
|
617e2212c8 | ||
|
|
ad15ef7961 | ||
|
|
406faa5603 | ||
|
|
4e0d562208 | ||
|
|
43ef686622 | ||
|
|
d59fe6b2af | ||
|
|
d677a1a785 | ||
|
|
be776d6a31 | ||
|
|
1482fedb9c | ||
|
|
00f8df60ce | ||
|
|
f31caf1ea4 | ||
|
|
8ebb4d35fa | ||
|
|
c5f2717623 | ||
|
|
e5d5cfbd3a | ||
|
|
bd5f6e4711 | ||
|
|
e15deff4ed | ||
|
|
9d906c29a2 | ||
|
|
6577d43e4e | ||
|
|
1a065485e3 | ||
|
|
009783a59a | ||
|
|
1b4f70c808 | ||
|
|
dd4a727521 | ||
|
|
ebb7111f25 | ||
|
|
86fd14613e | ||
|
|
5276461239 | ||
|
|
40f47bc22d | ||
|
|
8150403ccb | ||
|
|
b43d94ab16 | ||
|
|
849290a3b7 | ||
|
|
0b617e9fd6 | ||
|
|
6eb435142e | ||
|
|
e14ea777d5 | ||
|
|
46d73a16a0 | ||
|
|
4d2b918d39 | ||
|
|
4acfdcce52 | ||
|
|
f3b3eec211 | ||
|
|
a840566e02 | ||
|
|
f6a2199f68 | ||
|
|
dfc9dde32d | ||
|
|
50f93f54ec | ||
|
|
9cb1d96725 | ||
|
|
40013dccc3 | ||
|
|
24af1b8420 | ||
|
|
213d656df4 | ||
|
|
c09b4e96d2 | ||
|
|
a80875e00c | ||
|
|
bbdedb5097 | ||
|
|
dd0671b111 |
No files matched your search
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2022 Nick Hall
|
||||
#
|
||||
# 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
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
name: Gramps CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ maintenance/gramps51 ]
|
||||
pull_request:
|
||||
branches: [ maintenance/gramps51 ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install gir1.2-pango-1.0
|
||||
sudo apt-get install gir1.2-gtk-3.0
|
||||
sudo apt-get install xdg-utils
|
||||
sudo apt-get install librsvg2-common
|
||||
sudo apt-get install libglib2.0-dev
|
||||
sudo apt-get install intltool
|
||||
sudo apt-get install python3-gi
|
||||
sudo apt-get install python3-cairo
|
||||
sudo apt-get install python3-gi-cairo
|
||||
sudo apt-get install python3-bsddb3
|
||||
sudo apt-get install python3-dev
|
||||
sudo apt-get install python3-nose
|
||||
sudo apt-get install python3-mock
|
||||
sudo apt-get install python3-icu
|
||||
sudo apt-get install python3-coverage
|
||||
sudo apt-get install python3-jsonschema
|
||||
sudo apt-get install libxml2-utils
|
||||
sudo apt-get install python3-lxml
|
||||
sudo apt-get install python-libxml2
|
||||
sudo apt-get install zlib1g-dev
|
||||
sudo apt-get install python3-setuptools
|
||||
- name: Install addons
|
||||
run: |
|
||||
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
|
||||
- name: Build
|
||||
run: |
|
||||
python3 setup.py build
|
||||
- name: Run unit test suite
|
||||
run: |
|
||||
python3 setup.py test
|
||||
- name: Trailing whitespace check
|
||||
run: |
|
||||
if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
|
||||
echo "ERROR - Trailing whitespace found in source file(s)";
|
||||
exit 1;
|
||||
fi
|
||||
@@ -23,5 +23,8 @@ test/data
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
|
||||
# Glade temp files
|
||||
*~
|
||||
@@ -126,10 +126,10 @@ class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Regular expression matching correct function names
|
||||
function-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
function-rgx=(([a-z_][a-z0-9_]{2,30})|(_T_))$
|
||||
|
||||
# Naming hint for function names
|
||||
function-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
|
||||
|
||||
# Regular expression matching correct inline iteration names
|
||||
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2015-2015 Doug Blank
|
||||
# Copyright (C) 2016 DaAwesomeP
|
||||
# Copyright (C) 2016 QuLogic
|
||||
# Copyright (C) 2016 Tim G L Lyons
|
||||
#
|
||||
# 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
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
# After changing this file, check it on:
|
||||
# http://lint.travis-ci.org/
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
language: python
|
||||
python:
|
||||
- 3.3 # This is irrelevant, because the virtualenv is not used at all
|
||||
|
||||
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
|
||||
# for Python 3.2 should be added to this environment which is Python 3.3. It
|
||||
# will not be possible to run coverage under Python 3.2, because coverage is
|
||||
# Python 3.3 (or above) only.
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gir1.2-pango-1.0
|
||||
- gir1.2-gtk-3.0
|
||||
- xdg-utils
|
||||
- librsvg2-common
|
||||
- libglib2.0-dev
|
||||
- intltool
|
||||
# - python3-gobject Provided by python3-gi
|
||||
- python3-gi
|
||||
- python3-cairo
|
||||
- python3-gi-cairo
|
||||
- python3-bsddb3
|
||||
- python3-dev
|
||||
- python3-nose
|
||||
- python3-mock
|
||||
- python3-pyicu
|
||||
- python3-coverage
|
||||
- python3-jsonschema
|
||||
# lxml dependencies. for merge_ref_test to work
|
||||
# - libxml2-dev
|
||||
# - libxslt1-dev
|
||||
- libxml2-utils
|
||||
- python3-lxml
|
||||
- python-libxml2
|
||||
# ubuntu 14.04 requires this in addition to libxml2-dev and
|
||||
# libxslt1-dev for compiling lxml.
|
||||
# https://github.com/deanmalmgren/textract/issues/19
|
||||
- zlib1g-dev
|
||||
|
||||
before_install:
|
||||
|
||||
install:
|
||||
# The working directory is set to /home/travis/build/gramps-project/gramps
|
||||
# by the automatic git checkout.
|
||||
|
||||
# Download Sean Ross-Ross's Pure Python module containing a framework to
|
||||
# manipulate and analyze python ast�s 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
|
||||
- git clone -b master https://github.com/srossross/meta
|
||||
|
||||
# Build Gramps package. This seems to copy everything to
|
||||
# /home/travis/build/scripts-3.3
|
||||
- python setup.py build
|
||||
|
||||
before_script:
|
||||
# Create the Gramps database directory.
|
||||
- mkdir -p ~/.gramps/grampsdb/
|
||||
# set PYTHONPATH so the directly installed module (meta) is picked up from
|
||||
# /home/travis/build/gramps-project/gramps/meta
|
||||
- export PYTHONPATH=meta
|
||||
# set module exclusions. --exclude=TestUser because of older version of mock
|
||||
# without configure_mock
|
||||
- export EXCLUDE="--exclude=TestcaseGenerator"
|
||||
# --exclude=merge_ref_test"
|
||||
# set GRAMPS_RESOURCES for locale, data,image and documentation
|
||||
- export GRAMPS_RESOURCES=.
|
||||
# Install addons
|
||||
- mkdir -p ~/.gramps/gramps50/plugins/
|
||||
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/CliMerge.addon.tgz
|
||||
- tar -C ~/.gramps/gramps50/plugins -xzf CliMerge.addon.tgz
|
||||
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/ExportRaw.addon.tgz
|
||||
- tar -C ~/.gramps/gramps50/plugins -xzf ExportRaw.addon.tgz
|
||||
|
||||
script:
|
||||
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
|
||||
# from /usr/bin. Use libraries from /usr/lib/python3.4,
|
||||
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
|
||||
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
|
||||
gramps
|
||||
# FIXME: This should have run from the current directory, rather than from
|
||||
# gramps, because there is some test code in that directory.
|
||||
|
||||
# give an error for any trailing whitespace
|
||||
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
|
||||
echo "ERROR - Trailing whitespace found in source file(s)";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
after_success:
|
||||
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
|
||||
# a link
|
||||
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
|
||||
|
||||
# We have to use the bash script because the apt-get coverage does not install
|
||||
# codecov. If we used pip to install codecov, it would run inside the
|
||||
# virtualenv, and that doesn't work. Change the path to ensure that codecov
|
||||
# picks up coverage from /usr/bin, rather than from
|
||||
# /home/travis/virtualenv/python3.3.6/bin/
|
||||
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
|
||||
@@ -64,6 +64,8 @@ Martin Hawlisch martin.hawlisch@gmx.de
|
||||
|
||||
Nick Hall nick__hall@hotmail.com
|
||||
|
||||
Paul Culley paulr2787@gmail.com
|
||||
|
||||
Peter Landgren peter.talken@telia.com
|
||||
|
||||
Raphael Ackermann raphael.ackermann@gmail.com
|
||||
|
||||
@@ -1,243 +1,174 @@
|
||||
2018-07-24 Nick Hall <nick-h@gramps-project.org>
|
||||
2023-06-29 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* setup.py: Update development status for new release
|
||||
* docs/conf.py, gramps/gen/const.py: Update copyright date
|
||||
|
||||
2018-07-24 Nick Hall <nick-h@gramps-project.org>
|
||||
2023-05-13 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/gramps.pot: Update translation template for new release
|
||||
* gramps/plugins/webreport/media.py: Narrative web: problem with
|
||||
small pictures. Fixes #012884
|
||||
|
||||
2018-07-22 niememat <niememat@gmail.com>
|
||||
2023-05-09 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
* gramps/plugins/view/familyview.py: Implement the "<CTRL>J" for the
|
||||
family view Fixes #012882
|
||||
|
||||
2018-07-01 John Ralls <jralls@ceridwen.us>
|
||||
2022-07-11 Jon Schewe <jpschewe@mtu.net>
|
||||
|
||||
* gramps/gui/clipboard.py,
|
||||
gramps/gui/editors/displaytabs/buttontab.py,
|
||||
gramps/gui/editors/displaytabs/surnametab.py,
|
||||
gramps/gui/filters/_searchbar.py,
|
||||
gramps/gui/filters/sidebar/_sidebarfilter.py, gramps/gui/utils.py,
|
||||
gramps/gui/views/navigationview.py,
|
||||
gramps/gui/widgets/grampletpane.py,
|
||||
gramps/gui/widgets/interactivesearchbox.py,
|
||||
gramps/gui/widgets/multitreeview.py,
|
||||
gramps/gui/widgets/styledtexteditor.py: Correct binary test logic
|
||||
for primary mask. state & get_primary_mask(another) tested (state & (primary |
|
||||
other)), which will be true if state matches *either* primary *or*
|
||||
other, but what is wanted in a not-negated test is state matching
|
||||
all bits of (primary | other). match_primary_mask does that. On the other hand there are also cases of "not state & (primary |
|
||||
other)". no_match_primary_mask handles that, returning true if
|
||||
state matches none of the bits in (primary | other). Fixes #10646.
|
||||
* gramps/plugins/webreport/basepage.py: Avoid application crash on
|
||||
invalid user input If the user inputs an invalid date this change keeps the application
|
||||
from crashing when such a date is found. The invalid date
|
||||
information is reported to the user in the log. Fixes #12658.
|
||||
|
||||
2018-06-21 prculley <paulr2787@gmail.com>
|
||||
2023-05-13 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* gramps/gui/glade/baseselector.glade,
|
||||
gramps/gui/selectors/baseselector.py: Fix BaseSelector to avoid long
|
||||
delay before display on large trees Fixes #10634
|
||||
* gramps/plugins/export/exportgedcom.py: Fix export where private
|
||||
citations are excluded
|
||||
|
||||
2018-05-06 SNoiraud <serge.noiraud@laposte.net>
|
||||
2022-06-01 prculley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/plug/export/_exportoptions.py: Export options > Gui
|
||||
alignment issue Fixes #10576
|
||||
* gramps/plugins/tool/eventcmp.py: Fix Event compare tool to display
|
||||
enclosed places properly
|
||||
|
||||
2018-07-22 niememat <niememat@gmail.com>
|
||||
2022-06-08 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: New fix translation in Finnish
|
||||
* gramps/gui/viewmanager.py: Check that view exists before calling
|
||||
post_create method Avoids 'NoneType' object has no attribute 'post_create' error. Fixes #12638
|
||||
|
||||
2018-07-22 Espen Berg <espenbe@gmail.com>
|
||||
2022-06-15 Jingxuan He <LostBenjamin@users.noreply.github.com>
|
||||
|
||||
* po/nb.po: Revised Norwegian bokmål
|
||||
* gramps/plugins/webreport/webcal.py: Fix a wrong operator bug in
|
||||
the web calendar report
|
||||
|
||||
2018-07-22 Espen Berg <espenbe@gmail.com>
|
||||
2022-10-08 Himanshu Gohel <1551217+hgohel@users.noreply.github.com>
|
||||
|
||||
* po/nb.po: Revised Norwegian bokmål
|
||||
* gramps/gen/plug/docgen/treedoc.py: Revert "Enclose tree report
|
||||
image path and file name in braces" Fixes #12437 by reverting commit
|
||||
75921ceaf40f3ced597d99c43794b98f81e49957 due to reports of
|
||||
regression where processing of the generated TeX file fails due to
|
||||
bad path specificiation for image files. Change was introduced in bug fix for #10495. Bugs #12437 and #12697 reported the regression and confirmed that
|
||||
reverting the change fixes the regression.
|
||||
|
||||
2018-07-22 niememat <niememat@gmail.com>
|
||||
2022-10-22 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
* gramps/plugins/lib/maps/geography.py: Geography View: Fix number
|
||||
of arguments in add_bookmark method add_bookmark() takes 2 positional arguments but 3 were given Fixes #12718
|
||||
|
||||
2018-07-21 Nick Hall <nick-h@gramps-project.org>
|
||||
2022-12-08 GaryGriffin <genealogy@garygriffin.net>
|
||||
|
||||
* gramps/gui/glade/editplace.glade,
|
||||
gramps/gui/glade/editplaceref.glade: Fix dialog button order on
|
||||
non-Mac systems Resolves #10585.
|
||||
* gramps/plugins/lib/libsubstkeyword.py: Use date-specific place in
|
||||
report substitution variables Fix place title in graphical reports which have user-defined display
|
||||
formats to use date-specific alternate name. This impacts Ancestor Tree, Descendant Tree, and Family Descendant
|
||||
Tree. Fixes #12763.
|
||||
|
||||
2018-07-21 De Tran <trande@gmail.com>
|
||||
2022-12-27 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/vi.po: Fix and update Vietnamese translation Resolves #10681.
|
||||
* gramps/grampsapp.py, gramps/gui/aboutdialog.py,
|
||||
gramps/gui/logger/_errorreportassistant.py,
|
||||
gramps/plugins/db/bsddb/bsddbtxn.py,
|
||||
gramps/plugins/db/bsddb/cursor.py, gramps/plugins/db/bsddb/read.py,
|
||||
gramps/plugins/db/bsddb/summary.py,
|
||||
gramps/plugins/db/bsddb/test/cursor_test.py,
|
||||
gramps/plugins/db/bsddb/undoredo.py,
|
||||
gramps/plugins/db/bsddb/upgrade.py,
|
||||
gramps/plugins/db/bsddb/write.py, gramps/plugins/gramplet/leak.py,
|
||||
mac/patches/gramps-berkeleydb.patch: Try to import berkeleydb if
|
||||
bsddb3 isn't found. berkelydb is usable for python >= 3.6 and required for python >=
|
||||
3.10. See https://www.jcea.es/programacion/pybsddb.htm.
|
||||
|
||||
2018-07-21 Sveinn í Felli <sv1@fellsnet.is>
|
||||
2023-02-12 Vincent Smeets <Vincent.VSmeets@GMail.com>
|
||||
|
||||
* po/is.po: Update Icelandic translation
|
||||
* gramps/plugins/docgen/htmldoc.py: HtmlDoc: Create a unique
|
||||
filename for cropped images
|
||||
|
||||
2018-05-10 jose1711 <jose1711@gmail.com>
|
||||
2022-10-24 D.A.Lordemann <LordemannD@gmail.com>
|
||||
|
||||
* po/sk.po: Fix and update Slovak translation
|
||||
* gramps/plugins/export/exportgedcom.py: Fix corrupted NOTE tag in
|
||||
Gedcom export Remove Python2 code obsoleted by Python3, which was corrupting
|
||||
GEDCOM export of Gramps Notes text that includes multi-byte utf-8
|
||||
characters. Fixes #12709.
|
||||
|
||||
2018-05-11 jose1711 <jose1711@gmail.com>
|
||||
2022-09-27 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/plugins/rel/rel_cs.py: Fix typo in translation
|
||||
* gramps/gui/viewmanager.py: Fix IndexError that sometimes occurs
|
||||
when changing view This occurs when restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
|
||||
|
||||
2018-07-20 niememat <niememat@gmail.com>
|
||||
2023-03-18 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
* gramps/gen/proxy/referencedbyselection.py,
|
||||
gramps/gui/widgets/styledtexteditor.py,
|
||||
gramps/plugins/lib/libhtmlbackend.py: Fix crash when invalid note
|
||||
link Fixes #012854
|
||||
|
||||
2018-07-20 niememat <niememat@gmail.com>
|
||||
2023-04-17 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
* gramps/gui/utils.py: Tags with color names don't work in pedigree
|
||||
views Color tags work correctly in all views except in pedigree views.
|
||||
These views modify colors: ... context.set_source_rgba(*(self.bordercolor[:3] + (0.4,))) ... and context.set_source_rgb(*self.bgcolor[:3]) As it works everywhere except in these views, I think it is a bug
|
||||
even if we cannot enter color names in tags Fixes #012866
|
||||
|
||||
2018-07-18 niememat <niememat@gmail.com>
|
||||
2023-04-05 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
* gramps/gui/views/treemodels/eventmodel.py: Crash when invalid
|
||||
event date
|
||||
|
||||
2018-07-15 Luigi Toscano <luigi.toscano@tiscali.it>
|
||||
2023-04-04 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* po/it.po: Update Italian translation
|
||||
* gramps/gui/listmodel.py: ListModel: Only the first level is
|
||||
managed When we use checkboxes in columns. The path was converted to int.
|
||||
Why ? But when we have multiple level, the path format is "x:y" for
|
||||
two levels, "x:y:z" for three levels, etc
|
||||
|
||||
2018-07-13 Nick Hall <nick-h@gramps-project.org>
|
||||
2023-03-07 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* po/en_GB.po: Update English (British) translation
|
||||
* .github/workflows/gramps-ci.yml: Update Gramps CI workflow to run
|
||||
on Ubuntu 20.04 Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
|
||||
|
||||
2018-07-13 De Tran <trande@gmail.com>
|
||||
2022-12-27 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/vi.po: Update Vietnamese translation
|
||||
* mac/gramps.modules: mac: Patch bsddb to use berkeleydb instead of
|
||||
bsddb3 module.
|
||||
|
||||
2018-07-13 Kaj Mikkelsen <kmi@vgdata.dk>
|
||||
2022-12-27 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/da.po: Update Danish translation
|
||||
* mac/gramps.modules, mac/patches/berkeleydb-4.8-mutex.patch: Mac
|
||||
build: Patch berkeleydb configure to work on Apple Silicon.
|
||||
|
||||
2018-07-13 Lajos Nemeséri <nemeseril@gmail.com>
|
||||
2022-12-26 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/hu.po: Update Hungarian translation
|
||||
* mac/gramps.modules: [mac] Update Exiv2 download URL, moved to
|
||||
github.
|
||||
|
||||
2018-07-07 Fedik <getthesite@gmail.com>
|
||||
2022-12-24 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/uk.po: Update Ukrainian translation for Gramps
|
||||
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules: Repackage
|
||||
Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
|
||||
|
||||
2018-07-05 RossGammon <upstream@the-gammons.net>
|
||||
2022-03-08 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* gramps/plugins/lib/librecords.py: Fix spouse's name and underlined
|
||||
call names in records Fixes #12391
|
||||
|
||||
2022-03-16 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* .github/workflows/gramps-ci.yml: Fix package installation failures
|
||||
in CI
|
||||
|
||||
2019-12-09 Sam Manzi <manzi.sam@gmail.com>
|
||||
|
||||
* gramps/gen/utils/grampslocale.py: Update INCOMPLETE_TRANSLATIONS * Remove: he * Add: zh_HK, zh_TW
|
||||
|
||||
2022-02-12 Ross Gammon <rossgammon@debian.org>
|
||||
|
||||
* debian/changelog, debian/copyright,
|
||||
debian/patches/hardcoded_path_person_rules_test.patch,
|
||||
debian/patches/series: Update Debian directory after Gramps
|
||||
5.0.0-rc1 release. (#634)
|
||||
debian/patches/fix-probably_alive_test.patch, debian/patches/series:
|
||||
Update Debian folder after 5.1.5 release
|
||||
|
||||
2018-07-02 Leonhaeuser <mirko@leonhaeuser.de>
|
||||
2022-02-05 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* po/de.po: Fix not matching translation csv import/export
|
||||
* mac/Info.plist, mac/gramps.modules: Package Gramps 5.1.5 for
|
||||
macOS.
|
||||
|
||||
2018-07-02 Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
2022-02-05 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* po/cs.po: Update Czech translation
|
||||
|
||||
2018-07-02 Pier Luigi Cinquantini <plcinquantini@gmail.com>
|
||||
|
||||
* po/eo.po: Update Esperanto translation
|
||||
|
||||
2018-07-01 niememat <niememat@gmail.com>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
|
||||
2018-06-30 Paulo Henrique Paiva de Moraes <paulohpmoraes@gmail.com>
|
||||
|
||||
* po/pt_BR.po: Update Brazilian Portuguese translation
|
||||
|
||||
2018-06-30 vantu5z <vantu5z@mail.ru>
|
||||
|
||||
* po/ru.po: update Russian translation substantially just merge with
|
||||
latest template
|
||||
|
||||
2018-06-29 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
|
||||
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
|
||||
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
|
||||
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
|
||||
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/sk.po,
|
||||
po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po,
|
||||
po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po:
|
||||
Merge translation files with the latest template
|
||||
|
||||
2018-06-21 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/filters/sidebar/_sidebarfilter.py: Fix Custom filter
|
||||
update when created via sidebar (#630) Fixes #10620 Adding a filter via the sidebar editor originally only updated the
|
||||
current view, other associated views did not see the new filter.
|
||||
First noticed in People views. This causes the 'filters-changed' to
|
||||
be emitted which updates all associated view.
|
||||
|
||||
2018-06-21 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/widgets/grampletpane.py: Fix Gramplet configure
|
||||
(View/Configure) for large options (#629) When a Gramplet uses a BooleanListOption with a lot of entries,
|
||||
along with other options, all the options take on the size of the
|
||||
large BooleanListOption, which doesn't work well at all.
|
||||
|
||||
2018-06-22 Serge Noiraud <Serge.Noiraud@laposte.net>
|
||||
|
||||
* gramps/plugins/drawreport/statisticschart.py: Statistics Charts
|
||||
crashes with IndexError (#627) Fixes #010626 In statistics charts, get_month is only localized and the calendar
|
||||
is unused. If we have an Extra (Sansculottides) month in the french
|
||||
republican calendar (index 13), we have this IndexError because the
|
||||
gregorian calendar is always used and contains only 12 values.
|
||||
|
||||
2018-06-10 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.accel: [Mac] Change accel for Undo History. So that it doesn't conflict with a system binding for hiding the
|
||||
window. Fixes #10619.
|
||||
|
||||
2018-06-09 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/plug/_guioptions.py: Fix Family Lines/Family Colors
|
||||
picker for bad transient parent (#625) Fixes #10623
|
||||
|
||||
2018-06-09 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/db/utils.py: Fix import_as_dict to utilize user
|
||||
gramps_id prefixes (#626) Issue #10622 Found when comparing dbs with large prefixes 'I%05d'; using database
|
||||
differences or import_merge addons.
|
||||
|
||||
2018-06-09 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/db/bsddb/write.py: Fix error when opening bsddb db
|
||||
in read-only mode (#624) Fixes #10615 BSDDB had errors when trying to open in read-only mode.
|
||||
|
||||
2018-06-09 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/db/generic.py: Fix dbapi dbs for closeing read-only db
|
||||
crash (#623) Fixes #10613 The sqlite (and other dbapi dbs) tried to save their metadata on a
|
||||
close operation, which doesn't work for read-only dbs.
|
||||
|
||||
2018-06-09 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/viewmanager.py: Fix menus when operating with read-only
|
||||
db (#622) Fixes #10614 An earlier attempt to deal with closed dbs messed up the read-only
|
||||
ActionGroup settings. This corrects that situation.
|
||||
|
||||
2018-06-02 Sam Manzi <manzi.sam@gmail.com>
|
||||
|
||||
* gramps/gen/proxy/living.py: Fix Name formats to show all parts
|
||||
(#608) Fixes #10420 Allows reports to use the name format specified by the user.
|
||||
|
||||
2018-06-01 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/dbloader.py, gramps/gui/plug/_guioptions.py,
|
||||
gramps/gui/viewmanager.py: Fix dialogs for crash when canceling via
|
||||
'x' (#620) * Fix import dialog for crash when canceling via 'x' Fixes #10607 * Fix 'Make Backup' dialog for crash on 'x' close Issue #10607 * Fix Family Lines/Family Colors/add dialog crash on close with 'x' Issue #10607
|
||||
|
||||
2018-05-28 niememat <niememat@gmail.com>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
|
||||
2018-05-20 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/Info.plist, mac/gramps.modules: Release 5.0.0-rc1 on Mac.
|
||||
|
||||
2018-05-20 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.modules: Remove obsolete omeat-python-modules
|
||||
dependencies.
|
||||
|
||||
2018-05-20 prculley <paulr2787@gmail.com>
|
||||
|
||||
* Bump to v5.0.0-rc2
|
||||
* Bump to 5.1.6
|
||||
|
||||
@@ -133,7 +133,7 @@ Gramps is a [http://en.wikipedia.org/wiki/Gtk GTK] application. Gramps needs to
|
||||
|
||||
The Linux Genealogy CD can function as a live CD that you boot directly from. You can then run Linux and Gramps off the CD, even if your computer is entirely Windows.
|
||||
|
||||
An experimental Windows installer is available, however we do not have the manpower to offer support for Windows. A windows mailing list is available however and we do do our best to solve windows related problems.
|
||||
An Windows installer is available for 32 and 64 bit versions of windows from Windows versions 7 through 10. As with all other support, we do do our best to solve windows related problems.
|
||||
|
||||
|
||||
8. Does it work with the Mac?
|
||||
@@ -145,7 +145,7 @@ This present version of Gramps (2.2.x) does not appear to have been ported by th
|
||||
|
||||
9. What are the Minimum Specs to run Gramps?
|
||||
|
||||
We would recommend at least an 800x600 video display. For Gramps 2.0, the memory requirements have been reduced, and Gramps can run quite efficiently on a 256MB system, holding considerably more people. A system with 512MB should be able to hold around 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
|
||||
We would recommend at least an 800x600 video display. For Gramps 5.x, Gramps can run quite efficiently on a 3GB memory system. A system with that much RAM should be able to hold more than 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
|
||||
|
||||
|
||||
==Preferences==
|
||||
@@ -181,7 +181,7 @@ The nice thing about standards is that there never is a shortage of them. Gramps
|
||||
|
||||
15. How do I import data from another genealogy program into Gramps?
|
||||
|
||||
The best way is to create a new gramps database file (.grdb), and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
|
||||
The best way is to create a new gramps database file, and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
|
||||
|
||||
|
||||
16. Can I install Gramps on a Linux Web Server and use it via a web browser? This would enable my relations worldwide to access and update it.
|
||||
@@ -315,7 +315,7 @@ gramps-devel@lists.sf.net :-)
|
||||
The next best thing would be to submit a good bug report. This can be done in
|
||||
one of the two ways: (1) send your report to gramps-bugs@lists.sf.net
|
||||
or (2) file your report with the bug tracker system at
|
||||
http://bugs.gramps-project.org (this function is also
|
||||
https://gramps-project.org/bugs/ (this function is also
|
||||
available by selecting "Help->Report a bug" from gramps main menu).
|
||||
|
||||
A good bug report would include:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
include ChangeLog
|
||||
include AUTHORS
|
||||
include ChangeLog
|
||||
include COPYING
|
||||
include FAQ
|
||||
include Gramps.py
|
||||
@@ -10,11 +10,9 @@ include RELEASE_NOTES
|
||||
include TODO
|
||||
include CONTRIBUTING
|
||||
include TestPlan.txt
|
||||
recursive-include bash *
|
||||
recursive-include data *
|
||||
recursive-include debian *
|
||||
recursive-include docs *
|
||||
recursive-include example *
|
||||
recursive-include gramps *
|
||||
recursive-include help *
|
||||
recursive-include images *
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
The Gramps Project ( https://gramps-project.org ) [](https://travis-ci.org/gramps-project/gramps)[](https://codecov.io/github/gramps-project/gramps?branch=master)
|
||||
The Gramps Project ( https://gramps-project.org )
|
||||
===================
|
||||
[](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml?query=branch%3Amaintenance%2Fgramps51)
|
||||
[](https://app.codecov.io/gh/gramps-project/gramps/branch/maintenance%2Fgramps51)
|
||||
|
||||
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
|
||||
|
||||
Please read the **COPYING** file first.
|
||||
@@ -10,8 +13,8 @@ Requirements
|
||||
============
|
||||
The following packages **MUST** be installed in order for Gramps to work:
|
||||
|
||||
* **Python** 3.2 or greater - The programming language used by Gramps. https://www.python.org/
|
||||
* **GTK** 3.10 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
|
||||
* **Python** 3.3 or greater - The programming language used by Gramps. https://www.python.org/
|
||||
* **GTK** 3.12 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
|
||||
* **pygobject** 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+ https://wiki.gnome.org/Projects/PyGObject
|
||||
|
||||
The following three packages with GObject Introspection bindings (the gi packages)
|
||||
@@ -63,7 +66,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
|
||||
sorting is done through built-in libraries. PyICU is
|
||||
fairly widely available through the package managers of
|
||||
distributions. See http://pyicu.osafoundation.org/
|
||||
(These are Python bindings for the ICU package.
|
||||
(These are Python bindings for the ICU package.
|
||||
https://pypi.python.org/pypi/PyICU/)
|
||||
|
||||
* **Ghostscript**
|
||||
@@ -72,7 +75,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
|
||||
|
||||
The following packages are optional:
|
||||
------------------------------------
|
||||
* **gtkspell**
|
||||
* **gtkspell**
|
||||
|
||||
Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
@@ -103,6 +106,23 @@ The following packages are optional:
|
||||
|
||||
More font support in the reports
|
||||
|
||||
* **geocodeglib**
|
||||
|
||||
A library use to associate a geographical position (latitude, longitude)
|
||||
to a place name. This is used if you already have osmgpsmap installed.
|
||||
If installed, when you add or link a place from the map, you have a red line
|
||||
at the end of the table for selection.
|
||||
Debian, Ubuntu, ... : gir1.2-geocodeglib-1.0
|
||||
Fedora, Redhat, ... : geocode-glib
|
||||
openSUSE : geocode-glib
|
||||
ArchLinux : geocode-glib
|
||||
...
|
||||
|
||||
* **fontconfig**
|
||||
|
||||
Python bindings of fontconfig are required for displaying
|
||||
genealogical symbols
|
||||
|
||||
Optional packages required by Third-party Addons
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -59,7 +61,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 90%;
|
||||
font-size: 100%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #EEE;
|
||||
@@ -67,6 +69,13 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
@@ -75,9 +84,19 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -109,6 +128,7 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
text-decoration: underline;
|
||||
@@ -204,6 +224,93 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #EEE;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -330,6 +437,10 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -362,7 +473,15 @@ table.IndividualList td.ColumnSurname {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #999;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -379,13 +498,10 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 50em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #EEE;
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #GalleryDisplay img {
|
||||
float: right;
|
||||
border: solid 1px #999;
|
||||
}
|
||||
@@ -399,6 +515,12 @@ div#SourceDetail {
|
||||
#Contact #city:after {
|
||||
content: ",";
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Contact,
|
||||
#Contact #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Download
|
||||
----------------------------------------------------- */
|
||||
@@ -408,20 +530,29 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -444,13 +575,33 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -458,6 +609,40 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
@@ -465,6 +650,9 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -528,6 +716,7 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #EEE;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
# Copyright (C) 2018 Theo van Rijn
|
||||
# Copyright (C) 2019 Serge Noiraud
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -72,6 +74,13 @@ img {
|
||||
.thumbnail a:hover {
|
||||
background: none;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFF;
|
||||
color: #000;
|
||||
@@ -94,6 +103,10 @@ img {
|
||||
width: 96px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
@@ -101,6 +114,12 @@ img {
|
||||
padding: 0;
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -221,6 +240,55 @@ p#user_header {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Navigation
|
||||
----------------------------------------------------- */
|
||||
div#nav, #subnavigation {
|
||||
border: solid 1px #EEE; /* needed by IE7 */
|
||||
background-color: #13A926;
|
||||
}
|
||||
#subnavigation ul {
|
||||
overflow: hidden;
|
||||
}
|
||||
div#nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
#subnavigation ul {
|
||||
border-bottom: solid 1px #999;
|
||||
}
|
||||
div#nav ul li, #subnavigation ul li {
|
||||
float: left;
|
||||
}
|
||||
div#nav ul li a, #subnavigation ul li a {
|
||||
display: block;
|
||||
font-size: smaller;
|
||||
font-weight: bold;
|
||||
padding: 5px;
|
||||
border-bottom: solid 1px #EEE;
|
||||
}
|
||||
div#nav ul li a:hover, #subnavigation ul li a:hover {
|
||||
text-decoration: none;
|
||||
background-color: #CCC;
|
||||
border-bottom: solid 1px black;
|
||||
}
|
||||
div#nav ul li.CurrentSection a {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
border: solid 1px #999;
|
||||
border-bottom-style: none;
|
||||
background-color: white;
|
||||
}
|
||||
#nav ul li.CurrentSection a:hover {
|
||||
background-color: #903;
|
||||
}
|
||||
|
||||
/* Webcal
|
||||
----------------------------------------------------- */
|
||||
#subnavigation ul li.CurrentSection a {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* Footer
|
||||
----------------------------------------------------- */
|
||||
div#footer {
|
||||
@@ -270,6 +338,129 @@ div#footer p#copyright img {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
/* Alphabet Navigation
|
||||
----------------------------------------------------- */
|
||||
div#alphanav {
|
||||
background-color: #EEE;
|
||||
}
|
||||
div#alphanav ul {
|
||||
list-style: none;
|
||||
border-width: 2px 0px 4px 0px;
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
margin: 0px;
|
||||
padding-left: 15px;
|
||||
/* float container stretch, see www.quirksmode.org/css/clearing.html */
|
||||
overflow: hidden;
|
||||
}
|
||||
div#alphanav ul li {
|
||||
float: left;
|
||||
font-size: larger;
|
||||
font-weight: bold;
|
||||
}
|
||||
div#alphanav ul li:after {
|
||||
content: " |";
|
||||
}
|
||||
div#alphanav ul li a {
|
||||
display: block;
|
||||
padding: 4px 8px;
|
||||
line-height: 100%;
|
||||
float: left;
|
||||
|
||||
}
|
||||
div#alphanav ul li a:hover {
|
||||
text-decoration: none;
|
||||
background-color: black;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
/* position: absolute; */
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #13A926;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table.infolist {
|
||||
@@ -489,7 +680,7 @@ table.eventlist tbody tr td.ColumnNotes {
|
||||
width: 20%;
|
||||
}
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 17%;
|
||||
width: 5%;
|
||||
}
|
||||
table.eventlist tbody tr td.ColumnPerson {
|
||||
width: 35%;
|
||||
@@ -578,6 +769,26 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#Gallery table.infolist tbody tr td {
|
||||
border-bottom: dashed 1px #000;
|
||||
}
|
||||
@@ -627,7 +838,15 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
|
||||
}
|
||||
#GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail div#summaryarea{
|
||||
margin: 0;
|
||||
padding: 2em 0 0 0;
|
||||
@@ -679,48 +898,51 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
/* Contact
|
||||
------------------------------------------------- */
|
||||
#Contact #summaryarea {
|
||||
width: 500px;
|
||||
margin: 0 auto;
|
||||
padding: 3em;
|
||||
border: double 4px #000;
|
||||
background-color: #BCEAF6;
|
||||
}
|
||||
#Contact #summaryarea img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
#researcher {
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Contact, #Contact #summaryarea #researcher,
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#Contact #summaryarea #researcher {
|
||||
font: normal 1.5em/1.4em serif;
|
||||
margin-top: .3em;
|
||||
}
|
||||
#researcher h3 {
|
||||
#Contact #summaryarea #researcher h3 {
|
||||
font: normal 1.2em/1.4em serif;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
}
|
||||
#researcher span {
|
||||
float: left;
|
||||
#Contact #summaryarea #researcher span {
|
||||
display: block;
|
||||
font: normal .9em/1.4em serif;
|
||||
margin-right: .4em;
|
||||
}
|
||||
#streetaddress {
|
||||
#Contact #summaryarea #streetaddress {
|
||||
width: 100%;
|
||||
}
|
||||
#locality, .locality {
|
||||
#Contact #summaryarea #locality, .locality {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
#city:after {
|
||||
#Contact #summaryarea #city:after {
|
||||
content: ",";
|
||||
}
|
||||
#country {
|
||||
#Contact #summaryarea #country {
|
||||
clear: left;
|
||||
}
|
||||
#email {
|
||||
#Contact #summaryarea #email {
|
||||
clear: left;
|
||||
}
|
||||
#email a {
|
||||
#Contact #summaryarea #email a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -813,17 +1035,29 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
|
||||
|
||||
/* Subsections
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction, #Contact {
|
||||
padding: 2em 0 3em 0;
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay,
|
||||
#Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
margin: 0 20px 1em 20px;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 0;
|
||||
padding: 0 20px 3em 2em;
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
@@ -927,6 +1161,15 @@ div#families {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
div#families .infolist h4 {
|
||||
font: bold 1.2em sans-serif;
|
||||
color: #FFF;
|
||||
padding: 0px 0px 0px 20px;
|
||||
border-width: 4px 0px 4px 0px;
|
||||
border-style: solid;
|
||||
border-color: #00029D;
|
||||
background-color: #13A926;
|
||||
}
|
||||
div#families table.infolist tbody tr.BeginFamily {
|
||||
border-top: solid 1px #000;
|
||||
}
|
||||
@@ -1093,8 +1336,8 @@ div.Residence table.infolist tr td {
|
||||
margin: 0;
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery div.thumbnail a {
|
||||
display: block;
|
||||
@@ -1102,6 +1345,7 @@ div.Residence table.infolist tr td {
|
||||
padding: 0;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
#indivgallery div.thumbnail a img {
|
||||
padding: 0;
|
||||
@@ -1117,6 +1361,43 @@ div.Residence table.infolist tr td {
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsections : Narrative
|
||||
----------------------------------------------------- */
|
||||
|
||||
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -59,7 +61,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 90%;
|
||||
font-size: 100%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #454;
|
||||
@@ -67,6 +69,13 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
border-top: solid 1px #7C8F7C;
|
||||
@@ -75,9 +84,19 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -109,6 +128,7 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #9DBF9D;
|
||||
@@ -208,6 +228,98 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
color: #454;
|
||||
background-color: #E0E6E0;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
.nav.responsive li#CurrentSection a {
|
||||
color: #454;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -373,6 +485,10 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -408,7 +524,15 @@ table.IndividualList td.ColumnSurname {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #7C8F7C;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -425,13 +549,10 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #E0E6E0;
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
float: right;
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
@@ -458,20 +579,31 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -494,13 +626,33 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -508,6 +660,40 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
@@ -515,6 +701,9 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -573,6 +762,7 @@ a.familymap {
|
||||
#footer {
|
||||
clear: both;
|
||||
color: #E0E6E0;
|
||||
font-size: 80%;
|
||||
padding-top: 1em;
|
||||
background-color: #9DBF9D;
|
||||
border-top: solid 1px #454;
|
||||
@@ -600,7 +790,7 @@ a.familymap {
|
||||
/* Overwritten
|
||||
----------------------------------------------------- */
|
||||
body#FamilyMap {
|
||||
background-color: #E0E6E0 ! important;
|
||||
background-color: #454 ! important;
|
||||
}
|
||||
|
||||
/* Calendar Styles
|
||||
|
||||
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -67,6 +69,13 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FAFAFF;
|
||||
border-top: solid 1px #669;
|
||||
@@ -75,9 +84,19 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -110,6 +129,7 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #E0E0E9
|
||||
@@ -206,6 +226,93 @@ div#alphanav ul li a:hover {
|
||||
color: #FAFAFF;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #669;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -366,6 +473,10 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -401,7 +512,15 @@ table.IndividualList td.ColumnSurname {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #669;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -418,13 +537,10 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #E0E0E9;
|
||||
border: solid 1px #669;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
float: right;
|
||||
border: solid 1px #669;
|
||||
}
|
||||
@@ -451,20 +567,31 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -487,13 +614,33 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -501,6 +648,40 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #669;
|
||||
}
|
||||
@@ -508,6 +689,9 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -571,6 +755,7 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #E0E0E9;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -59,7 +61,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 90%;
|
||||
font-size: 100%;
|
||||
color: #36220B;
|
||||
margin: 0px;
|
||||
background-color: #FFE09F;
|
||||
@@ -67,6 +69,13 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFFBE7;
|
||||
border-top: solid 1px #8C581C;
|
||||
@@ -75,9 +84,19 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -110,6 +129,7 @@ p#description {
|
||||
a {
|
||||
color: #36220B;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #FFE09F
|
||||
@@ -206,6 +226,93 @@ div#alphanav ul li a:hover {
|
||||
color: #FFFBE7;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #FFC35E;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -366,6 +473,10 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -401,6 +512,13 @@ table.IndividualList td.ColumnSurname {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #EA8414;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
@@ -418,13 +536,10 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #FFE09F;
|
||||
border: solid 1px #EA8414;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
float: right;
|
||||
border: solid 1px #EA8414;
|
||||
}
|
||||
@@ -451,13 +566,24 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
@@ -487,13 +613,33 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -501,6 +647,40 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #8C581C;
|
||||
}
|
||||
@@ -508,6 +688,9 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -571,6 +754,7 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #FFE09F;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -21,6 +21,9 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -59,7 +62,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 90%;
|
||||
font-size: 100%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #EAEEF4;
|
||||
@@ -67,6 +70,13 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFF;
|
||||
border-top: solid 1px #7CA3DD;
|
||||
@@ -75,9 +85,19 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -110,6 +130,7 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #EAEEF4
|
||||
@@ -206,6 +227,93 @@ div#alphanav ul li a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #EEE;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -366,6 +474,10 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -401,6 +513,13 @@ table.IndividualList td.ColumnSurname {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #7CA3DD;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
@@ -418,13 +537,10 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #EAEEF4;
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
float: right;
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
@@ -451,20 +567,31 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -487,13 +614,33 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -501,6 +648,40 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
@@ -508,6 +689,9 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -571,6 +755,7 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #EAEEF4;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -32,7 +32,6 @@ body {
|
||||
background-color: #00029D;
|
||||
color: #00029D;
|
||||
width: 100%;
|
||||
padding: 0px 14px;
|
||||
}
|
||||
|
||||
/* Navigation Menus
|
||||
|
||||
@@ -19,6 +19,8 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -62,19 +64,30 @@ General Elements
|
||||
-----------------------------------------------------------------*/
|
||||
body {
|
||||
font-family: Georgia, serif;
|
||||
font-size: 90%;
|
||||
font-size: 100%;
|
||||
color: #7D5925;
|
||||
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
|
||||
}
|
||||
body > div {
|
||||
width: 85%;
|
||||
margin: 0px auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
overflow: hidden;
|
||||
padding: 0px 1.5em;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
padding: 1.5em 1.5em;
|
||||
overflow: auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
@@ -82,6 +95,13 @@ div.snapshot div.thumbnail {
|
||||
div.snapshot a {
|
||||
display: inline;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* General Text
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -119,6 +139,7 @@ h4 {
|
||||
a {
|
||||
color: #7D5925;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #FFFFE7;
|
||||
@@ -203,6 +224,93 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #D8C19F;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
-----------------------------------------------------------------*/
|
||||
table {
|
||||
@@ -312,6 +420,10 @@ table#SortByCount thead th.ColumnQuantity a:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
-----------------------------------------------------------------*/
|
||||
#GalleryNav {
|
||||
@@ -356,6 +468,13 @@ table#SortByCount thead th.ColumnQuantity a:after {
|
||||
margin: 0px auto;
|
||||
display:block;
|
||||
border: solid 1px #7D5925;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Sources
|
||||
@@ -371,7 +490,7 @@ div#SourceDetail {
|
||||
padding-bottom: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
#Contact img {
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
display: block;
|
||||
margin: 0px auto 1em auto;
|
||||
border: solid 1px #7D5925;
|
||||
@@ -397,16 +516,31 @@ div#SourceDetail {
|
||||
|
||||
/* SubSection
|
||||
-----------------------------------------------------------------*/
|
||||
#Home img, #Introduction img {
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay {
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: black;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -423,20 +557,43 @@ div#families table.fixed_subtables table.eventlist th:first-child {
|
||||
div#families table.fixed_subtables table.eventlist th:last-child {
|
||||
width: 5em;
|
||||
}
|
||||
div#families .infolist h4 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* SubSection : Gallery
|
||||
-----------------------------------------------------------------*/
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery {
|
||||
/* float container stretch, see www.quirksmode.org/css/clearing.html */
|
||||
overflow: hidden;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
width: 130px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7D5925;
|
||||
@@ -445,6 +602,43 @@ div#families table.fixed_subtables table.eventlist th:last-child {
|
||||
/* ## remove this line and the comment markers from the line below to hide the description in Individual Gallery
|
||||
display: none; */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* SubSection : Narrative
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -497,20 +691,32 @@ div.grampsstylednote p {
|
||||
-----------------------------------------------------------------*/
|
||||
#footer {
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
|
||||
border-top: dashed 1px #7D5925;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
width: 50%;
|
||||
text-align: left;
|
||||
margin-left: 10px;
|
||||
}
|
||||
#footer p#copyright {
|
||||
float: right;
|
||||
width: 40%;
|
||||
text-align: right;
|
||||
}
|
||||
#footer p#copyright img {
|
||||
float: right;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#footer > * {
|
||||
font-size: 80%;
|
||||
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
|
||||
}
|
||||
|
||||
/* Overwritten
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -529,7 +735,6 @@ div#map_canvas {
|
||||
table.calendar {
|
||||
table-layout: fixed;
|
||||
empty-cells: show;
|
||||
width: 950px;
|
||||
margin: 0px auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ Go to <http://gramps-project.org/> to learn more!
|
||||
Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -82,10 +84,21 @@ img {
|
||||
.thumbnail a:hover {
|
||||
background:none;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
padding-top: 1cm;
|
||||
background-color:#FFF;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.content div.snapshot {
|
||||
float:right;
|
||||
margin:1.6em;
|
||||
@@ -100,6 +113,12 @@ img {
|
||||
.content div.snapshot div.thumbnail span {
|
||||
display:none;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
.fullclear {
|
||||
width:100%;
|
||||
height:1px;
|
||||
@@ -254,6 +273,100 @@ div#subnavigation ul li.CurrentSection a {
|
||||
border-width: 0 0 1px 0;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive ::after {
|
||||
/* need to remove the "|" when we are in the dropdown menu. */
|
||||
color: #A97;
|
||||
background-color: #A97;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #A97;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table.infolist {
|
||||
@@ -576,6 +689,10 @@ table.relationships tbody tr td.ColumnPartner a:hover {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#Gallery { }
|
||||
@@ -630,6 +747,13 @@ table.relationships tbody tr td.ColumnPartner a:hover {
|
||||
}
|
||||
#GalleryDisplay img {
|
||||
margin:0 auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail div#summaryarea{
|
||||
margin:0;
|
||||
@@ -675,7 +799,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
/* Contact
|
||||
----------------------------------------------------- */
|
||||
#Contact #summaryarea {
|
||||
width:500px;
|
||||
margin:0 auto;
|
||||
padding:3em;
|
||||
background-color:#F1ECE2;
|
||||
@@ -693,7 +816,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
padding:0;
|
||||
}
|
||||
#researcher span {
|
||||
float:left;
|
||||
display:block;
|
||||
font:normal .9em/1.4em serif;
|
||||
margin-right:.4em;
|
||||
@@ -732,7 +854,7 @@ table.download {
|
||||
width:100%;
|
||||
}
|
||||
table.download img {
|
||||
float:center;
|
||||
float:none;
|
||||
}
|
||||
table.download thead tr th {
|
||||
text-align:center;
|
||||
@@ -775,20 +897,32 @@ table.download td.Modified {
|
||||
|
||||
/* Subsections
|
||||
----------------------------------------------------- */
|
||||
#Home, #Introduction, #Contact {
|
||||
padding:2em 0 3em 0;
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#Home p, #Introduction p {
|
||||
margin:0 20px 1em 20px;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
float:right;
|
||||
margin:0;
|
||||
padding:0 20px 3em 2em;
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
div.subsection{
|
||||
padding-bottom:.5em;
|
||||
@@ -922,6 +1056,26 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
|
||||
/* Subsections : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery h4 {
|
||||
margin-bottom:1em;
|
||||
}
|
||||
@@ -929,14 +1083,49 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
margin:0;
|
||||
float:left;
|
||||
width:130px;
|
||||
height:150px;
|
||||
text-align:center;
|
||||
background-color: white;
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery .thumbnail a {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
background:none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
#indivgallery .thumbnail a img {
|
||||
margin:0;
|
||||
@@ -953,6 +1142,9 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
margin:0 auto;
|
||||
padding:0;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsections : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -1066,6 +1258,9 @@ div#pedigree {
|
||||
background-color: #542;
|
||||
border-top: solid 8px #A97;
|
||||
}
|
||||
#footer > * {
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer a, #footer a:visited {
|
||||
text-decoration: none;
|
||||
color: #C1B398;
|
||||
@@ -1093,7 +1288,7 @@ div#pedigree {
|
||||
margin-right: 10px;
|
||||
}
|
||||
#footer p#copyright img {
|
||||
margin-right: 10px[
|
||||
margin-right: 10px;
|
||||
}
|
||||
#user_footer {
|
||||
width: 70%;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
@@ -20,10 +20,10 @@
|
||||
#
|
||||
# $Id: $
|
||||
#
|
||||
**************************************************************************************************
|
||||
*******************************************************************************
|
||||
GRAMPS Cascading Style Sheet
|
||||
Style Name: Combined Ancestor Tree Style Sheet
|
||||
***************************************************************************************************
|
||||
*******************************************************************************
|
||||
#
|
||||
===== Ancestor Graph Color Scheme =====
|
||||
Males #BCEAF6
|
||||
@@ -33,10 +33,8 @@ Unknown #000
|
||||
===== Web Graphics =====
|
||||
Males Web_Gender_Male.png
|
||||
Females Web_Gender_Female.png
|
||||
# ------------------------------------------------------------------------------------------------- */
|
||||
|
||||
/* Subsections : Ancestors Tree
|
||||
----------------------------------------------------- */
|
||||
# -------------------------------------------------------------------------- #
|
||||
/* Subsections : Ancestors Tree -------------------------------------------- */
|
||||
#tree {
|
||||
page-break-before:always;
|
||||
margin:0;
|
||||
@@ -52,8 +50,8 @@ Females Web_Gender_Female.png
|
||||
}
|
||||
#treeContainer div.boxbg {
|
||||
position:absolute;
|
||||
margin:0;
|
||||
padding:0;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
background:none;
|
||||
}
|
||||
#treeContainer div.boxbg a,
|
||||
@@ -61,41 +59,43 @@ Females Web_Gender_Female.png
|
||||
position:relative;
|
||||
z-index:10;
|
||||
display:block;
|
||||
font:normal .7em/1.4em sans-serif;
|
||||
font:normal 1.1em/1.4em sans-serif;
|
||||
text-align:center;
|
||||
word-break:break-word;
|
||||
word-wrap:break-word;
|
||||
text-decoration:none;
|
||||
color: #00029D;
|
||||
width:118px;
|
||||
padding:5px 20px 7px 20px;
|
||||
width:280px;
|
||||
min-height: 70px;
|
||||
margin-left:16px;
|
||||
background-color: #FFF;
|
||||
border: solid 1px #000;
|
||||
border: solid 2px #000;
|
||||
border-radius: 10px;
|
||||
}
|
||||
#treeContainer div.boxbg a.noThumb,
|
||||
#treeContainer div.AncCol3 a,
|
||||
#treeContainer div.AncCol4 a,
|
||||
#treeContainer div.AncCol3 span.unlinked,
|
||||
#treeContainer div.AncCol4 a,
|
||||
#treeContainer div.AncCol4 span.unlinked {
|
||||
margin-top:10px;
|
||||
float: right;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover {
|
||||
position:relative;
|
||||
z-index:999;
|
||||
font-size:1em;
|
||||
font-size:1.3em;
|
||||
word-break:break-word;
|
||||
word-wrap:break-word;
|
||||
text-decoration:none;
|
||||
color: #00029D;
|
||||
width:190px;
|
||||
width:400px;
|
||||
margin-left:-20px;
|
||||
padding:10px 25px 12px 25px;
|
||||
border: solid 2px #000;
|
||||
padding: 0px 0px 0px 40px;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover,
|
||||
#treeContainer div.AncCol3 a:hover,
|
||||
#treeContainer div.boxbg a:hover,
|
||||
#treeContainer div.AncCol4 a:hover {
|
||||
margin-top:-44px;
|
||||
}
|
||||
#treeContainer div.boxbg a.noThumb:hover {
|
||||
margin-top:0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#treeContainer div.AncCol0 a:hover {
|
||||
margin-left:12px;
|
||||
@@ -105,48 +105,73 @@ Females Web_Gender_Female.png
|
||||
}
|
||||
#treeContainer div.boxbg span.thumbnail {
|
||||
display:block;
|
||||
max-width:80px;
|
||||
max-height:65px;
|
||||
margin:0 auto;
|
||||
padding:4px 0;
|
||||
position: absolute;
|
||||
max-width:85px;
|
||||
max-height:75px;
|
||||
left: 3px;
|
||||
top: 3px;
|
||||
}
|
||||
#treeContainer div.boxbg span.thumbnail img {
|
||||
max-width:80px;
|
||||
max-height:65px;
|
||||
margin:0 auto;
|
||||
#treeContainer div.boxbg a.thumbnail table td.img {
|
||||
padding-right: 5px;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {
|
||||
height:80px;
|
||||
#treeContainer div.boxbg a.thumbnail:hover table td.img {
|
||||
padding-right: 9px;
|
||||
}
|
||||
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {
|
||||
#treeContainer div.boxbg a.thumbnail table td.name {
|
||||
padding-top:3px;
|
||||
padding-left: 2px;
|
||||
padding-right: 23px;
|
||||
width: 90%;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail img {
|
||||
margin-left:0px;
|
||||
padding-left: 0px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail:hover img {
|
||||
max-height:90%;
|
||||
margin-left:5px;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 4px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#treeContainer div.boxbg table td:first-child, table th:first-child {
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
#IndividualDetail div.subsection table tr td:first-child {
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
#treeContainer #treeContainer div.AncCol4 span.thumbnail {
|
||||
display:none;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover span.thumbnail {
|
||||
display:block;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg span.fullname {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg span.shortname {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg a:hover span.fullname {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg a:hover span.shortname {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
#treeContainer div.boxbg a:hover {
|
||||
float: right;
|
||||
margin-top: 10px;
|
||||
border: solid 4px #000;
|
||||
}
|
||||
#treeContainer div.male a,
|
||||
#treeContainer div.male span.unlinked {
|
||||
background:url(../images/Web_Gender_Male.png) #BCEAF6 no-repeat top right;
|
||||
}
|
||||
#treeContainer div.female a,
|
||||
#treeContainer div.female a,
|
||||
#treeContainer div.female span.unlinked {
|
||||
background:url(../images/Web_Gender_Female.png) #FFC0CB no-repeat top right;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop">
|
||||
<id>gramps.desktop</id>
|
||||
<metadata_license>CC0</metadata_license>
|
||||
<component type="desktop-application">
|
||||
<id>org.gramps.gramps</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>Gramps</name>
|
||||
<summary>Genealogical research program</summary>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">gramps.desktop</launchable>
|
||||
<url type="homepage">https://gramps-project.org/</url>
|
||||
<url type="bugtracker">https://gramps-project.org/bugs/</url>
|
||||
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
|
||||
@@ -18,11 +19,21 @@
|
||||
<developer_name>Gramps Development Team</developer_name>
|
||||
|
||||
<screenshots>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
|
||||
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/5f/AppData1.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData2.png</image>
|
||||
</screenshot>
|
||||
<screenshot type="default">
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/e/e9/AppData3.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData4.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/50/AppData5.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<provides>
|
||||
|
||||
@@ -251,7 +251,7 @@ PLACES
|
||||
|
||||
<!ELEMENT places (placeobj)*>
|
||||
|
||||
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
|
||||
<!ELEMENT placeobj (ptitle?, code?, pname+, coord?, placeref*, location*,
|
||||
objref*, url*, noteref*, citationref*, tagref*)>
|
||||
<!ATTLIST placeobj
|
||||
id CDATA #IMPLIED
|
||||
|
||||
@@ -453,10 +453,10 @@
|
||||
<ref name="primary-object"/>
|
||||
<attribute name="type"><text/></attribute>
|
||||
<optional><element name="ptitle"><text/></element></optional>
|
||||
<optional><element name="code"><text/></element></optional>
|
||||
<oneOrMore><element name="pname">
|
||||
<ref name="placename-content"/>
|
||||
</element></oneOrMore>
|
||||
<optional><element name="code"><text/></element></optional>
|
||||
<optional><element name="coord">
|
||||
<attribute name="long"><text/></attribute>
|
||||
<attribute name="lat"><text/></attribute>
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<code>SAMOA</code>
|
||||
<code>AP</code>
|
||||
</temple>
|
||||
<temple name="Arequipa Peru Temple">
|
||||
<code>AREQU</code>
|
||||
</temple>
|
||||
<temple name="Asuncion, Paraguay">
|
||||
<code>ASUNC</code>
|
||||
</temple>
|
||||
@@ -27,6 +30,9 @@
|
||||
<code>ATLAN</code>
|
||||
<code>AT</code>
|
||||
</temple>
|
||||
<temple name="Barranquilla Colombia Temple">
|
||||
<code>BARRA</code>
|
||||
</temple>
|
||||
<temple name="Baton Rouge, Louisiana">
|
||||
<code>BROUG</code>
|
||||
</temple>
|
||||
@@ -57,6 +63,9 @@
|
||||
<temple name="Bountiful, Utah">
|
||||
<code>BOUNT</code>
|
||||
</temple>
|
||||
<temple name="Brigham City Utah Temple">
|
||||
<code>BRIGH</code>
|
||||
</temple>
|
||||
<temple name="Brisbane, Australia">
|
||||
<code>BRISB</code>
|
||||
</temple>
|
||||
@@ -79,8 +88,12 @@
|
||||
<code>ALBR</code>
|
||||
</temple>
|
||||
<temple name="Cebu, Philippines">
|
||||
<code>CEBUP</code>
|
||||
<code>CEBU</code>
|
||||
</temple>
|
||||
<temple name="Cedar City Utah">
|
||||
<code>CEDAR</code>
|
||||
</temple>
|
||||
<temple name="Chicago, Illinois">
|
||||
<code>CHICA</code>
|
||||
<code>CH</code>
|
||||
@@ -94,15 +107,18 @@
|
||||
<temple name="Colonia Juarez, Chihuahua, Mexico">
|
||||
<code>COLJU</code>
|
||||
</temple>
|
||||
<temple name="Columbia, South Carolina">
|
||||
<code>COLSC</code>
|
||||
</temple>
|
||||
<temple name="Columbia River, Washington">
|
||||
<code>CRIVE</code>
|
||||
</temple>
|
||||
<temple name="Columbia, South Carolina">
|
||||
<code>COLSC</code>
|
||||
</temple>
|
||||
<temple name="Columbus, Ohio">
|
||||
<code>COLUM</code>
|
||||
</temple>
|
||||
<temple name="Concepción Chile">
|
||||
<code>CONCE</code>
|
||||
</temple>
|
||||
<temple name="Copenhagen, Denmark">
|
||||
<code>COPEN</code>
|
||||
</temple>
|
||||
@@ -129,6 +145,19 @@
|
||||
<temple name="Edmonton, Alberta">
|
||||
<code>EDMON</code>
|
||||
</temple>
|
||||
<temple name="Endowment House">
|
||||
<code>EHOUS</code>
|
||||
<code>EH</code>
|
||||
</temple>
|
||||
<temple name="Fort Collins Colorado">
|
||||
<code>FORTC</code>
|
||||
</temple>
|
||||
<temple name="Fort Lauderdale Florida">
|
||||
<code>FORTL</code>
|
||||
</temple>
|
||||
<temple name="Fortaleza Brazil">
|
||||
<code>FORTA</code>
|
||||
</temple>
|
||||
<temple name="Frankfurt, Germany">
|
||||
<code>FRANK</code>
|
||||
<code>FR</code>
|
||||
@@ -191,6 +220,9 @@
|
||||
<code>IFALL</code>
|
||||
<code>IF</code>
|
||||
</temple>
|
||||
<temple name="Indianapolis Indiana">
|
||||
<code>INDIA</code>
|
||||
</temple>
|
||||
<temple name="Johannesburg, South Africa">
|
||||
<code>JOHAN</code>
|
||||
<code>JO</code>
|
||||
@@ -202,10 +234,14 @@
|
||||
<temple name="Kansas City, Missouri">
|
||||
<code>KANSA</code>
|
||||
</temple>
|
||||
<temple name="Kinshasa Democratic Republic of the Congo">
|
||||
<code>KINSH</code>
|
||||
</temple>
|
||||
<temple name="Kona, Hawaii">
|
||||
<code>KONA</code>
|
||||
</temple>
|
||||
<temple name="Kiev, Ukraine">
|
||||
<code>KYIV</code>
|
||||
<code>KIEV</code>
|
||||
</temple>
|
||||
<temple name="Kirtland, Ohio">
|
||||
@@ -223,6 +259,9 @@
|
||||
<code>LIMA</code>
|
||||
<code>LI</code>
|
||||
</temple>
|
||||
<temple name="Lisbon Portugal">
|
||||
<code>LISBO</code>
|
||||
</temple>
|
||||
<temple name="Logan, Utah">
|
||||
<code>LOGAN</code>
|
||||
<code>LG</code>
|
||||
@@ -270,6 +309,9 @@
|
||||
<temple name="Merida, Mexico">
|
||||
<code>MERID</code>
|
||||
</temple>
|
||||
<temple name="Meridian Idaho">
|
||||
<code>MIDAH</code>
|
||||
</temple>
|
||||
<temple name="Mesa, Arizona">
|
||||
<code>ARIZO</code>
|
||||
<code>AZ</code>
|
||||
@@ -325,6 +367,7 @@
|
||||
<code>OKLAH</code>
|
||||
</temple>
|
||||
<temple name="Oquirrh Mountain, Utah">
|
||||
<code>OQUIR</code>
|
||||
<code>OMOUN</code>
|
||||
</temple>
|
||||
<temple name="Orlando, Florida">
|
||||
@@ -340,6 +383,12 @@
|
||||
<code>PAPEE</code>
|
||||
<code>TA</code>
|
||||
</temple>
|
||||
<temple name="Paris France">
|
||||
<code>PARIS</code>
|
||||
</temple>
|
||||
<temple name="Payson Utah">
|
||||
<code>PAYSO</code>
|
||||
</temple>
|
||||
<temple name="Perth, Australia">
|
||||
<code>PERTH</code>
|
||||
</temple>
|
||||
@@ -349,6 +398,9 @@
|
||||
<temple name="Phoenix, Arizona">
|
||||
<code>PHOEN</code>
|
||||
</temple>
|
||||
<temple name="Port-au-Prince Haiti">
|
||||
<code>PORTA</code>
|
||||
</temple>
|
||||
<temple name="Portland, Oregon">
|
||||
<code>PORTL</code>
|
||||
<code>PT</code>
|
||||
@@ -359,6 +411,9 @@
|
||||
<temple name="Preston, England">
|
||||
<code>PREST</code>
|
||||
</temple>
|
||||
<temple name="Provo City Center, Utah">
|
||||
<code>PROCC</code>
|
||||
</temple>
|
||||
<temple name="Provo, Utah">
|
||||
<code>PROVO</code>
|
||||
<code>PV</code>
|
||||
@@ -385,6 +440,7 @@
|
||||
<code>REXBU</code>
|
||||
</temple>
|
||||
<temple name="Rome, Italy">
|
||||
<code>ROMEI</code>
|
||||
<code>ROME</code>
|
||||
</temple>
|
||||
<temple name="Sacramento, California">
|
||||
@@ -394,12 +450,6 @@
|
||||
<code>SGEOR</code>
|
||||
<code>SG</code>
|
||||
</temple>
|
||||
<temple name="St. Louis, Missouri">
|
||||
<code>SLOUI</code>
|
||||
</temple>
|
||||
<temple name="St. Paul, Minnesota">
|
||||
<code>SPMIN</code>
|
||||
</temple>
|
||||
<temple name="Salt Lake City, Utah">
|
||||
<code>SLAKE</code>
|
||||
<code>SL</code>
|
||||
@@ -415,6 +465,7 @@
|
||||
<code>SJOSE</code>
|
||||
</temple>
|
||||
<temple name="San Salvador, El Salvador">
|
||||
<code>SANSA</code>
|
||||
<code>SSALV</code>
|
||||
</temple>
|
||||
<temple name="Santiago, Chile">
|
||||
@@ -428,6 +479,9 @@
|
||||
<code>SPAUL</code>
|
||||
<code>SP</code>
|
||||
</temple>
|
||||
<temple name="Sapporo Japan">
|
||||
<code>SAPPO</code>
|
||||
</temple>
|
||||
<temple name="Seattle, Washington">
|
||||
<code>SEATT</code>
|
||||
<code>SE</code>
|
||||
@@ -442,6 +496,15 @@
|
||||
<temple name="Spokane, Washington">
|
||||
<code>SPOKA</code>
|
||||
</temple>
|
||||
<temple name="St. Louis, Missouri">
|
||||
<code>SLOUI</code>
|
||||
</temple>
|
||||
<temple name="St. Paul, Minnesota">
|
||||
<code>SPMIN</code>
|
||||
</temple>
|
||||
<temple name="Star Valley Wyoming">
|
||||
<code>STARV</code>
|
||||
</temple>
|
||||
<temple name="Stockholm, Sweden">
|
||||
<code>STOCK</code>
|
||||
<code>ST</code>
|
||||
@@ -463,9 +526,15 @@
|
||||
<temple name="Tegucigalpa, Honduras">
|
||||
<code>TEGUC</code>
|
||||
</temple>
|
||||
<temple name="The Gila Valley Arizona">
|
||||
<code>GILAV</code>
|
||||
</temple>
|
||||
<temple name="The Hague, Netherlands">
|
||||
<code>HAGUE</code>
|
||||
</temple>
|
||||
<temple name="Tijuana Mexico">
|
||||
<code>TIJUA</code>
|
||||
</temple>
|
||||
<temple name="Tokyo, Japan">
|
||||
<code>TOKYO</code>
|
||||
<code>TK</code>
|
||||
@@ -474,16 +543,19 @@
|
||||
<code>TORON</code>
|
||||
<code>TORNO</code>
|
||||
<code>TR</code>
|
||||
</temple>
|
||||
<temple name="Trujillo, Peru">
|
||||
<code>TRUJI</code>
|
||||
</temple>
|
||||
<temple name="Tucson Arizona">
|
||||
<code>TUCSO</code>
|
||||
</temple>
|
||||
<temple name="Tuxtla Gutierrez, Mexico">
|
||||
<code>TGUTI</code>
|
||||
</temple>
|
||||
<temple name="Twin Falls, Idaho">
|
||||
<code>TFALL</code>
|
||||
<code>TWINF</code>
|
||||
<code>TFALL</code>
|
||||
</temple>
|
||||
<temple name="Vancouver, British Columbia">
|
||||
<code>VANCO</code>
|
||||
@@ -505,10 +577,6 @@
|
||||
<code>WINTE</code>
|
||||
<code>WQUAR</code>
|
||||
</temple>
|
||||
<temple name="Endowment House">
|
||||
<code>EHOUS</code>
|
||||
<code>EH</code>
|
||||
</temple>
|
||||
<temple name="President's Office">
|
||||
<code>POFFI</code>
|
||||
<code>PO</code>
|
||||
|
||||
@@ -1278,7 +1278,7 @@
|
||||
<rel type="Unknown"/>
|
||||
<father hlink="_0000000b0000000b"/>
|
||||
<mother hlink="_0000002600000026"/>
|
||||
<childref hlink="_0000006f0000006f"/>
|
||||
<childref hlink="_0000006f0000006f" frel="Adopted" mrel="Foster"/>
|
||||
</family>
|
||||
<family handle="_0000001000000010" change="1198222526" id="F0014">
|
||||
<rel type="Unknown"/>
|
||||
|
||||
@@ -9,6 +9,12 @@ beg
|
||||
- h Hans_Peter.8 17/4/1904 #bp Rønne,_Bornholm,_Denmark 29/1/1977 #dp San_Francisco,_San_Francisco_Co.,_CA
|
||||
end
|
||||
|
||||
notes Hansdotter Anna.1
|
||||
beg
|
||||
******************************************************************890123456789
|
||||
******************************************************************89 123456789
|
||||
end notes
|
||||
|
||||
notes Smith Hjalmar.5
|
||||
beg
|
||||
BIOGRAPHY
|
||||
@@ -61,7 +67,7 @@ Some Bold Unicode Characters: ࣶǼЀج⿄㑝㵋
|
||||
Some Italic Unicode Characters: ࣶǼЀج⿄㑝㵋圛墉幵聟聦𐅉🚶🛈
|
||||
end notes
|
||||
|
||||
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897
|
||||
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897 0
|
||||
|
||||
fam Smith Hjalmar.5 +31/10/1927 #mp Reno,_Washoe_Co.,_NV Ohman Marjorie.26 3/6/1903 #bp Denver,_Denver_Co.,_CO,_Denver_Co.,_Colorado,_USA 22/6/1980 #dp Reno,_Washoe_Co.,_NV
|
||||
beg
|
||||
@@ -98,13 +104,18 @@ beg
|
||||
- h Martin.17 1794..1796 #bp Tommarp,_Kristianstad_Län,_Sweden #dp Sweden
|
||||
end
|
||||
|
||||
fam Willard Edwin.42 ~1886 +~1910 Smith Kirsti_Marie.2
|
||||
fam Willard Edwin.42 ~1886 0 +~1910 Smith Kirsti_Marie.2
|
||||
|
||||
fam Smith Magnes.38 +24/8/1884 #mp Rønne,_Bornholm,_Denmark Streiffert Anna.43 23/9/1860 #bp Hoya/Jona/Hoia,_Sweden 2/2/1927 #dp Rønne,_Bornholm,_Denmark
|
||||
|
||||
fam Tester The.14 + Tester Mrs.44 0
|
||||
beg
|
||||
- h Tom.45 0
|
||||
- h Tom.45 Von_Tester_y_tested 0
|
||||
- Fake.46 von_Person 1954 #bp Fremont,_Alameda_Co.,_CA
|
||||
- f Mary.47 0
|
||||
- f Martha.48 0
|
||||
- h John.49 0
|
||||
- h Mark.50 0
|
||||
end
|
||||
|
||||
notes Tester Mrs.44
|
||||
|
||||
@@ -1,47 +1,52 @@
|
||||
Anna Hansdotter;;;;;2/10/1864-29/9/1945
|
||||
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
|
||||
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
|
||||
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
|
||||
Herman Julius Nielsen;;;;;31/8/1889-1945
|
||||
Evelyn Michaels;;;;;1897
|
||||
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
|
||||
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
|
||||
Jennifer Anderson;;;;;5/11/1907-29/5/1985
|
||||
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
|
||||
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
|
||||
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
|
||||
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
|
||||
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
|
||||
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
|
||||
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
|
||||
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
|
||||
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
|
||||
Marta Ericsdotter;;;;;1775
|
||||
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
|
||||
Ingeman Smith;;;;;1770
|
||||
Anna Streiffert;;;;;23/9/1860-2/2/1927
|
||||
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
|
||||
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
|
||||
Janice Ann Adams;;;;;26/8/1965
|
||||
Marjorie Ohman;;;;;3/6/1903-22/6/1980
|
||||
Darcy Horne;;;;;2/7/1966
|
||||
Alice Paula Perkins;;;;;22/11/1933
|
||||
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
|
||||
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
|
||||
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
|
||||
Elna Jefferson;;;;;14/9/1800-
|
||||
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
|
||||
Kerstina Hansdotter;;;;;29/11/1832-1908
|
||||
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
|
||||
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
|
||||
Janis Elaine Green;;;;;2/12/1935
|
||||
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
|
||||
Edwin Willard;;;;;1886
|
||||
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
|
||||
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
|
||||
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
|
||||
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
|
||||
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
|
||||
Mrs Tester;;;;;
|
||||
ピーター リチミシキスイミ;;;;;
|
||||
Tom Tester;The Tester;Mrs Tester;;;
|
||||
Anna Hansdotter;;;;;2/10/1864-29/9/1945
|
||||
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
|
||||
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
|
||||
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
|
||||
Herman Julius Nielsen;;;;;31/8/1889-1945
|
||||
Evelyn Michaels;;;;;1897
|
||||
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
|
||||
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
|
||||
Jennifer Anderson;;;;;5/11/1907-29/5/1985
|
||||
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
|
||||
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
|
||||
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
|
||||
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
|
||||
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
|
||||
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
|
||||
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
|
||||
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
|
||||
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
|
||||
Marta Ericsdotter;;;;;1775
|
||||
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
|
||||
Ingeman Smith;;;;;1770
|
||||
Anna Streiffert;;;;;23/9/1860-2/2/1927
|
||||
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
|
||||
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
|
||||
Janice Ann Adams;;;;;26/8/1965
|
||||
Marjorie Ohman;;;;;3/6/1903-22/6/1980
|
||||
Darcy Horne;;;;;2/7/1966
|
||||
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
|
||||
Alice Paula Perkins;;;;;22/11/1933
|
||||
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
|
||||
Elna Jefferson;;;;;14/9/1800-
|
||||
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
|
||||
Kerstina Hansdotter;;;;;29/11/1832-1908
|
||||
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
|
||||
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
|
||||
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
|
||||
Janis Elaine Green;;;;;2/12/1935
|
||||
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
|
||||
Edwin Willard;;;;;1886
|
||||
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
|
||||
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
|
||||
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
|
||||
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
|
||||
ピーター リチミシキスイミ;;;;;
|
||||
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
|
||||
Mrs Tester;;;;;
|
||||
Tom Von Tester y tested;The Tester;Mrs Tester;;;
|
||||
Fake von Person, I;The Tester;Mrs Tester;;;1954-
|
||||
Mary Tester;The Tester;Mrs Tester;;;
|
||||
Martha Tester;The Tester;Mrs Tester;;;
|
||||
John Tester;The Tester;Mrs Tester;;;
|
||||
Mark Tester;The Tester;Mrs Tester;;;
|
||||
@@ -30,66 +30,65 @@
|
||||
[P0014],"Denver, Denver Co., CO","Denver, Denver Co., CO",City,39.7392,104.9903 W,,[P0024],
|
||||
|
||||
Person,Surname,Given,Call,Suffix,Prefix,Title,Gender,Birth date,Birth place,Birth source,Baptism date,Baptism place,Baptism source,Death date,Death place,Death source,Burial date,Burial place,Burial source,Note
|
||||
[I0030],Adams,Janice Ann,,,,,female,26 Aug 1965,"Fremont, Alameda Co., CA",,,,,,,,,,,
|
||||
[I0016],Anderson,Jennifer,,,,,female,5 Nov 1907,"Rønne, Bornholm, Denmark",,,,,29 May 1985,"San Francisco, San Francisco Co., CA",,,,,
|
||||
[I0025],Ericsdotter,Marta,,,,,female,about 1775,Sweden,,,,,,,,,,,
|
||||
[I0041],Green,Janis Elaine,,,,,female,2 Dec 1935,,,,,,,,,,,,
|
||||
[I0000],Hansdotter,Anna,,,,,female,2 Oct 1864,"Löderup, Malmöhus Län, Sweden",,,,,29 Sep 1945,"Sparks, Washoe Co., NV",,,,,
|
||||
[I0038],Hansdotter,Kerstina,,,,,female,29 Nov 1832,"Smestorp, Kristianstad Län, Sweden",,,,,before 1908,Sweden,,,,,
|
||||
[I0032],Horne,Darcy,,,,,female,2 Jul 1966,"Sacramento, Sacramento Co., CA",,,,,,,,,,,
|
||||
[I0036],Jefferson,Elna,,,,,female,14 Sep 1800,"Gladsax, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
|
||||
[I0017],Jones,Lillie Harriet,,,,,female,2 May 1910,"Rønne, Bornholm, Denmark",,,,,26 Jun 1990,,,,,,
|
||||
[I0030],Adams,Janice Ann,,,,,female,1965-08-26,[P0013],,,,,,,,,,,
|
||||
[I0016],Anderson,Jennifer,,,,,female,1907-11-05,[P0003],,,,,1985-05-29,[P0002],,,,,
|
||||
[I0025],Ericsdotter,Marta,,,,,female,about 1775,[P0008],,,,,,,,,,,
|
||||
[I0041],Green,Janis Elaine,,,,,female,1935-12-02,,,,,,,,,,,,
|
||||
[I0000],Hansdotter,Anna,,,,,female,1864-10-02,[P0000],,,,,1945-09-29,[P0001],,,,,
|
||||
[I0038],Hansdotter,Kerstina,,,,,female,1832-11-29,[P0019],,,,,before 1908,[P0008],,,,,
|
||||
[I0032],Horne,Darcy,,,,,female,1966-07-02,[P0015],,,,,,,,,,,
|
||||
[I0036],Jefferson,Elna,,,,,female,1800-09-14,[P0004],,,,,,[P0008],,,,,
|
||||
[I0017],Jones,Lillie Harriet,,,,,female,1910-05-02,[P0003],,,,,1990-06-26,,,,,,
|
||||
[I0042],Ke 柯,雪,,,,,male,,,,,,,,,,,,,
|
||||
[I0013],Michaels,Evelyn,,,,,female,about 1897,,,,,,,,,,,,
|
||||
[I0012],Nielsen,Herman Julius,,,,,male,31 Aug 1889,"Rønne, Bornholm, Denmark",,,,,1945,,,,,,
|
||||
[I0031],Ohman,Marjorie,,,,,female,3 Jun 1903,"Denver, Denver Co., CO, Denver Co., Colorado, USA",,,,,22 Jun 1980,"Reno, Washoe Co., NV",,,,,
|
||||
[I0034],Perkins,Alice Paula,,,,,female,22 Nov 1933,"Sparks, Washoe Co., NV",,,,,,,,,,,
|
||||
[I0002],Smith,Amber Marie,,,,,female,12 Apr 1998,"Hayward, Alameda Co., CA",,,,,,,,,,,
|
||||
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,31 Jan 1889,"Rønne, Bornholm, Denmark",,,,,21 Dec 1963,"San Francisco, San Francisco Co., CA",,,,,
|
||||
[I0020],Smith,Carl Emil,,,,,male,20 Dec 1899,"Rønne, Bornholm, Denmark",,,,,28 Jan 1959,"Reno, Washoe Co., NV",,,,,
|
||||
[I0029],Smith,Craig Peter,,,,,male,after 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
|
||||
[I0037],Smith,Edwin Michael,,,,,male,24 May 1961,"San Jose, Santa Clara Co., CA","Birth, Death and Marriage Records",,,,,,,,,,
|
||||
[I0009],Smith,Emil,,,,,male,27 Sep 1860,"Simrishamn, Kristianstad Län, Sweden",,,,,,,,,,,
|
||||
[I0019],Smith,Eric Lloyd,,,,Dr.,male,28 Aug 1963,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
|
||||
[I0015],Smith,Gus,,,,,male,11 Sep 1897,"Rønne, Bornholm, Denmark",,,,,21 Oct 1963,"San Francisco, San Francisco Co., CA",,,,,
|
||||
[I0024],Smith,Gustaf,,Sr.,,,male,28 Nov 1862,"Grostorp, Kristianstad Län, Sweden",,,,,before 23 Jul 1930,"Sparks, Washoe Co., NV",,,,,
|
||||
[I0011],Smith,Hanna,,,,,female,29 Jan 1821,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
|
||||
[I0010],Smith,Hans Peter,,,,,male,17 Apr 1904,"Rønne, Bornholm, Denmark",Birth Records,,,,29 Jan 1977,"San Francisco, San Francisco Co., CA",,5 Feb 1977,"San Francisco, San Francisco Co., CA",findagrave.com,
|
||||
[I0021],Smith,Hjalmar,,,,,male,31 Jan 1893,"Rønne, Bornholm, Denmark",,,,,25 Sep 1894,"Rønne, Bornholm, Denmark",,,,,
|
||||
[I0008],Smith,Hjalmar,,,,,male,7 Apr 1895,"Rønne, Bornholm, Denmark",,3 Jun 1895,"Rønne Bornholm, Denmark",,26 Jun 1975,"Reno, Washoe Co., NV",,,,,
|
||||
[I0007],Smith,Ingar,,,,,female,after 1823,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
|
||||
[I0027],Smith,Ingeman,,,,,male,about 1770,Sweden,,,,,,,,,,,
|
||||
[I0004],Smith,Ingeman,,,,,male,29 Jan 1826,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
|
||||
[I0018],Smith,John Hjalmar,,,,,male,30 Jan 1932,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
|
||||
[I0001],Smith,Keith Lloyd,,,,,male,11 Aug 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
|
||||
[I0026],Smith,Kirsti Marie,,,,,female,15 Dec 1886,"Rønne, Bornholm, Denmark",,,,,18 Jul 1966,"San Francisco, San Francisco Co., CA",,,,,
|
||||
[I0035],Smith,Lars Peter,,,,,male,16 Sep 1991,"Santa Rosa, Sonoma Co., CA",,,,,,,,,,,
|
||||
[I0033],Smith,Lloyd,,,,,male,13 Mar 1935,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
|
||||
[I0003],Smith,Magnes,,,,,male,6 Oct 1858,"Simrishamn, Kristianstad Län, Sweden",,,,,20 Feb 1910,"Rønne, Bornholm, Denmark",,,,,
|
||||
[I0040],Smith,Marjorie Alice,,,,,female,5 Feb 1960,"San Jose, Santa Clara Co., CA",,,,,,,,,,,
|
||||
[I0014],Smith,Marjorie Lee,,,,,female,4 Nov 1934,"Reno, Washoe Co., NV",,,,,,,,,,,
|
||||
[I0022],Smith,Martin,,,,,male,19 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,23 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,between 1899 and 1905,Sweden,,,,,
|
||||
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,"Tommarp, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
|
||||
[I0005],Smith,Mason Michael,,,,,male,26 Jun 1996,"Hayward, Alameda Co., CA",,,,,,,,,,,
|
||||
[I0028],Streiffert,Anna,,,,,female,23 Sep 1860,"Hoya/Jona/Hoia, Sweden",,,,,2 Feb 1927,"Rønne, Bornholm, Denmark",,,,,
|
||||
[I0012],Nielsen,Herman Julius,,,,,male,1889-08-31,[P0003],,,,,1945,,,,,,
|
||||
[I0031],Ohman,Marjorie,,,,,female,1903-06-03,[P0014],,,,,1980-06-22,[P0005],,,,,
|
||||
[I0034],Perkins,Alice Paula,,,,,female,1933-11-22,[P0001],,,,,,,,,,,
|
||||
[I0002],Smith,Amber Marie,,,,,female,1998-04-12,[P0006],,,,,,,,,,,
|
||||
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,1889-01-31,[P0003],,,,,1963-12-21,[P0002],,,,,
|
||||
[I0020],Smith,Carl Emil,,,,,male,1899-12-20,[P0003],,,,,1959-01-28,[P0005],,,,,
|
||||
[I0029],Smith,Craig Peter,,,,,male,after 1966,[P0002],,,,,,,,,,,
|
||||
[I0037],Smith,Edwin Michael,,,,,male,1961-05-24,[P0017],"Birth, Death and Marriage Records",,,,,,,,,,
|
||||
[I0009],Smith,Emil,,,,,male,1860-09-27,[P0012],,,,,,,,,,,
|
||||
[I0019],Smith,Eric Lloyd,,,,Dr.,male,1963-08-28,[P0002],,,,,,,,,,,
|
||||
[I0015],Smith,Gus,,,,,male,1897-09-11,[P0003],,,,,1963-10-21,[P0002],,,,,
|
||||
[I0024],Smith,Gustaf,,Sr.,,,male,1862-11-28,[P0009],,,,,before 1930-07-23,[P0001],,,,,
|
||||
[I0011],Smith,Hanna,,,,,female,1821-01-29,[P0004],,,,,,,,,,,
|
||||
[I0010],Smith,Hans Peter,,,,,male,1904-04-17,[P0003],Birth Records,,,,1977-01-29,[P0002],,1977-02-05,[P0002],findagrave.com,
|
||||
[I0021],Smith,Hjalmar,,,,,male,1893-01-31,[P0003],,,,,1894-09-25,[P0003],,,,,
|
||||
[I0008],Smith,Hjalmar,,,,,male,1895-04-07,[P0003],,1895-06-03,[P0021],,1975-06-26,[P0005],,,,,
|
||||
[I0007],Smith,Ingar,,,,,female,after 1823,[P0004],,,,,,,,,,,
|
||||
[I0027],Smith,Ingeman,,,,,male,about 1770,[P0008],,,,,,,,,,,
|
||||
[I0004],Smith,Ingeman,,,,,male,1826-01-29,[P0004],,,,,,,,,,,
|
||||
[I0018],Smith,John Hjalmar,,,,,male,1932-01-30,[P0002],,,,,,,,,,,
|
||||
[I0001],Smith,Keith Lloyd,,,,,male,1966-08-11,[P0002],,,,,,,,,,,
|
||||
[I0026],Smith,Kirsti Marie,,,,,female,1886-12-15,[P0003],,,,,1966-07-18,[P0002],,,,,
|
||||
[I0035],Smith,Lars Peter,,,,,male,1991-09-16,[P0016],,,,,,,,,,,
|
||||
[I0033],Smith,Lloyd,,,,,male,1935-03-13,[P0002],,,,,,,,,,,
|
||||
[I0003],Smith,Magnes,,,,,male,1858-10-06,[P0012],,,,,1910-02-20,[P0003],,,,,
|
||||
[I0040],Smith,Marjorie Alice,,,,,female,1960-02-05,[P0017],,,,,,,,,,,
|
||||
[I0014],Smith,Marjorie Lee,,,,,female,1934-11-04,[P0005],,,,,,,,,,,
|
||||
[I0022],Smith,Martin,,,,,male,1830-11-19,[P0004],,1830-11-23,[P0004],,between 1899 and 1905,[P0008],,,,,
|
||||
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,[P0020],,,,,,[P0008],,,,,
|
||||
[I0005],Smith,Mason Michael,,,,,male,1996-06-26,[P0006],,,,,,,,,,,
|
||||
[I0028],Streiffert,Anna,,,,,female,1860-09-23,[P0011],,,,,1927-02-02,[P0003],,,,,
|
||||
[I0006],Willard,Edwin,,,,,male,about 1886,,,,,,,,,,,,
|
||||
[I0043],リチミシキスイミ,ピーター,,,,,male,,,,,,,,,,,,,
|
||||
|
||||
Marriage,Husband,Wife,Date,Place,Source,Note
|
||||
[F0000],[I0039],[I0036],about 1816,"Gladsax, Kristianstad Län, Sweden",,
|
||||
[F0001],[I0027],[I0025],about 1790,Sweden,,
|
||||
[F0000],[I0039],[I0036],about 1816,[P0004],,
|
||||
[F0001],[I0027],[I0025],about 1790,[P0008],,
|
||||
[F0002],[I0022],[I0038],about 1856,,,
|
||||
[F0003],[I0024],[I0000],27 Nov 1885,"Rønne, Bornholm, Denmark",,
|
||||
[F0003],[I0024],[I0000],1885-11-27,[P0003],,
|
||||
[F0004],[I0006],[I0026],about 1910,,,
|
||||
[F0005],[I0012],[I0023],30 Nov 1912,"Rønne, Bornholm, Denmark",,
|
||||
[F0006],[I0008],[I0031],31 Oct 1927,"Reno, Washoe Co., NV",,
|
||||
[F0005],[I0012],[I0023],1912-11-30,[P0003],,
|
||||
[F0006],[I0008],[I0031],1927-10-31,[P0005],,
|
||||
[F0007],[I0015],[I0013],about 1920,,,
|
||||
[F0008],[I0033],[I0041],10 Aug 1958,"San Francisco, San Francisco Co., CA",,
|
||||
[F0008],[I0033],[I0041],1958-08-10,[P0002],,
|
||||
[F0009],[I0010],[I0017],,,,
|
||||
[F0010],[I0019],[I0032],12 Jul 1986,"Woodland, Yolo Co., CA",,
|
||||
[F0011],[I0003],[I0028],24 Aug 1884,"Rønne, Bornholm, Denmark",,
|
||||
[F0012],[I0018],[I0034],4 Jun 1954,"Sparks, Washoe Co., NV",Marriage Certificae,
|
||||
[F0013],[I0037],[I0030],27 May 1995,"San Ramon, Conta Costa Co., CA",,
|
||||
[F0010],[I0019],[I0032],1986-07-12,[P0022],,
|
||||
[F0011],[I0003],[I0028],1884-08-24,[P0003],,
|
||||
[F0012],[I0018],[I0034],1954-06-04,[P0001],Marriage Certificae,
|
||||
[F0013],[I0037],[I0030],1995-05-27,[P0023],,
|
||||
[F0014],[I0010],[I0016],,,,
|
||||
|
||||
Family,Child
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
0 HEAD
|
||||
1 SOUR Gramps
|
||||
2 VERS 5.0.0-alpha2
|
||||
2 VERS 5.1.2
|
||||
2 NAME Gramps
|
||||
1 DATE 1 SEP 2017
|
||||
2 TIME 12:10:38
|
||||
1 DATE 7 JAN 2020
|
||||
2 TIME 13:39:43
|
||||
1 SUBM @SUBM@
|
||||
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
|
||||
1 COPR Copyright (c) 2017 Alex Roitman,,,.
|
||||
1 COPR Copyright (c) 2020 Alex Roitman,,,.
|
||||
1 GEDC
|
||||
2 VERS 5.5.1
|
||||
2 FORM LINEAGE-LINKED
|
||||
@@ -629,8 +629,12 @@
|
||||
2 TYPE Birth of Lloyd Smith
|
||||
2 DATE 13 MAR 1935
|
||||
2 PLAC San Francisco, San Francisco Co., CA
|
||||
1 ADOP Y
|
||||
2 FAMC @F0009@
|
||||
3 ADOP HUSB
|
||||
1 FAMC @F0009@
|
||||
2 PEDI birth
|
||||
2 _FREL Adopted
|
||||
2 _MREL Foster
|
||||
1 FAMS @F0008@
|
||||
1 CHAN
|
||||
2 DATE 4 SEP 2016
|
||||
@@ -786,11 +790,7 @@
|
||||
3 ADOP BOTH
|
||||
1 FAMC @F0005@
|
||||
2 PEDI adopted
|
||||
1 OBJE
|
||||
2 FORM jpeg
|
||||
2 TITL Michael O'Toole 2015-11
|
||||
2 FILE c:\grampsaio64-5.0.0\share\gramps\tests\O0.jpg
|
||||
2 NOTE @N0019@
|
||||
1 OBJE @O0000@
|
||||
1 NOTE @N0007@
|
||||
1 CHAN
|
||||
2 DATE 18 JUN 2016
|
||||
@@ -889,7 +889,7 @@
|
||||
0 @I0046@ INDI
|
||||
1 NAME Tom /Von Tester y tested/
|
||||
2 GIVN Tom
|
||||
2 SPFX Von,
|
||||
2 SPFX Von
|
||||
2 SURN Tester y, tested
|
||||
2 NICK TesterNickname
|
||||
1 SEX M
|
||||
@@ -911,7 +911,7 @@
|
||||
2 DATE I think 1970 to 1971
|
||||
2 PLAC San Francisco, San Francisco Co., CA
|
||||
1 SLGC
|
||||
2 DATE EST ABT 1999
|
||||
2 DATE ABT 1999
|
||||
2 FAMC @F0016@
|
||||
2 TEMP DENVE
|
||||
2 PLAC Denver, Denver Co., CO, Denver Co., Colorado, USA
|
||||
@@ -1044,7 +1044,7 @@
|
||||
2 SURN Tester
|
||||
1 SEX M
|
||||
1 FAMC @F0016@
|
||||
2 PEDI Unknown
|
||||
2 PEDI Sponsored
|
||||
1 CHAN
|
||||
2 DATE 29 OCT 2016
|
||||
3 TIME 16:27:59
|
||||
@@ -1423,4 +1423,12 @@
|
||||
0 @N0017@ NOTE A citation Note Source text
|
||||
0 @N0018@ NOTE Another Citation Note
|
||||
0 @N0019@ NOTE A bad photo for sure
|
||||
0 @O0000@ OBJE
|
||||
1 FILE d:\users\prc\documents\gramps\data\tests\O0.jpg
|
||||
2 FORM jpg
|
||||
2 TITL Michael O'Toole 2015-11
|
||||
1 NOTE @N0019@
|
||||
1 CHAN
|
||||
2 DATE 29 OCT 2016
|
||||
3 TIME 15:23:37
|
||||
0 TRLR
|
||||
@@ -3,41 +3,41 @@
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||
<header>
|
||||
<created date="2016-08-29" version="5.0.0-alpha1"/>
|
||||
<created date="2019-03-13" version="5.0.2"/>
|
||||
<researcher>
|
||||
</researcher>
|
||||
</header>
|
||||
<events>
|
||||
<event handle="_0000000500000005" change="1472500305" id="E0000">
|
||||
<event handle="_0000000500000005" change="1" id="E0000">
|
||||
<type>Birth</type>
|
||||
<dateval val="1816"/>
|
||||
<place hlink="_0000000700000007"/>
|
||||
<citationref hlink="_0000000600000006"/>
|
||||
</event>
|
||||
<event handle="_0000000800000008" change="1472500305" id="E0001">
|
||||
<event handle="_0000000800000008" change="1" id="E0001">
|
||||
<type>Residence</type>
|
||||
<dateval val="1850"/>
|
||||
<place hlink="_0000000a0000000a"/>
|
||||
<citationref hlink="_0000000900000009"/>
|
||||
</event>
|
||||
<event handle="_0000000b0000000b" change="1472500305" id="E0002">
|
||||
<event handle="_0000000b0000000b" change="1" id="E0002">
|
||||
<type>Death</type>
|
||||
<datestr val="1850/1860"/>
|
||||
<place hlink="_0000000c0000000c"/>
|
||||
</event>
|
||||
<event handle="_0000000f0000000f" change="1472500305" id="E0003">
|
||||
<event handle="_0000000f0000000f" change="1" id="E0003">
|
||||
<type>Marriage</type>
|
||||
<dateval val="1841" type="about"/>
|
||||
<place hlink="_0000001000000010"/>
|
||||
</event>
|
||||
<event handle="_0000001100000011" change="1472500305" id="E0004">
|
||||
<event handle="_0000001100000011" change="1" id="E0004">
|
||||
<type>Marriage</type>
|
||||
<dateval val="1847-08"/>
|
||||
<place hlink="_0000001200000012"/>
|
||||
</event>
|
||||
</events>
|
||||
<people>
|
||||
<person handle="_0000000100000001" change="1472500305" id="I0278">
|
||||
<person handle="_0000000100000001" change="1" id="I0278">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Andrew</first>
|
||||
@@ -54,13 +54,13 @@
|
||||
</person>
|
||||
</people>
|
||||
<families>
|
||||
<family handle="_0000000d0000000d" change="1472500305" id="F0073">
|
||||
<family handle="_0000000d0000000d" change="1" id="F0073">
|
||||
<rel type="Married"/>
|
||||
<father hlink="_0000000100000001"/>
|
||||
<eventref hlink="_0000000f0000000f" role="Family"/>
|
||||
<childref hlink="_0000000100000001"/>
|
||||
</family>
|
||||
<family handle="_0000000e0000000e" change="1472500305" id="F0074">
|
||||
<family handle="_0000000e0000000e" change="1" id="F0074">
|
||||
<rel type="Married"/>
|
||||
<father hlink="_0000000100000001"/>
|
||||
<eventref hlink="_0000001100000011" role="Family"/>
|
||||
@@ -68,19 +68,19 @@
|
||||
</family>
|
||||
</families>
|
||||
<citations>
|
||||
<citation handle="_0000000400000004" change="1472500305" id="C0000">
|
||||
<citation handle="_0000000400000004" change="1" id="C0000">
|
||||
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
|
||||
<confidence>2</confidence>
|
||||
<objref hlink="_0000000300000003"/>
|
||||
<sourceref hlink="_0000000200000002"/>
|
||||
</citation>
|
||||
<citation handle="_0000000600000006" change="1472500305" id="C0001">
|
||||
<citation handle="_0000000600000006" change="1" id="C0001">
|
||||
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
|
||||
<confidence>2</confidence>
|
||||
<objref hlink="_0000000300000003"/>
|
||||
<sourceref hlink="_0000000200000002"/>
|
||||
</citation>
|
||||
<citation handle="_0000000900000009" change="1472500305" id="C0002">
|
||||
<citation handle="_0000000900000009" change="1" id="C0002">
|
||||
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
|
||||
<confidence>2</confidence>
|
||||
<objref hlink="_0000000300000003"/>
|
||||
@@ -88,7 +88,7 @@
|
||||
</citation>
|
||||
</citations>
|
||||
<sources>
|
||||
<source handle="_0000000200000002" change="1472500305" id="S0029">
|
||||
<source handle="_0000000200000002" change="1" id="S0029">
|
||||
<stitle>1850 United States Federal Census</stitle>
|
||||
<sauthor>Ancestry.com</sauthor>
|
||||
<spubinfo>Name: Ancestry.com Operations, Inc.; Location: Provo, UT, USA; Date: 2009;</spubinfo>
|
||||
@@ -96,42 +96,43 @@
|
||||
</source>
|
||||
</sources>
|
||||
<places>
|
||||
<placeobj handle="_0000000700000007" change="1472500305" id="P0000" type="Unknown">
|
||||
<placeobj handle="_0000000700000007" change="1" id="P0000" type="Unknown">
|
||||
<ptitle>Tennessee, USA</ptitle>
|
||||
<pname value="Tennessee, USA"/>
|
||||
</placeobj>
|
||||
<placeobj handle="_0000000a0000000a" change="1472500305" id="P0001" type="Unknown">
|
||||
<placeobj handle="_0000000a0000000a" change="1" id="P0001" type="Unknown">
|
||||
<ptitle>District 14, Cape Girardeau, Missouri, USA</ptitle>
|
||||
<pname value="District 14, Cape Girardeau, Missouri, USA"/>
|
||||
</placeobj>
|
||||
<placeobj handle="_0000000c0000000c" change="1472500305" id="P0002" type="Unknown">
|
||||
<placeobj handle="_0000000c0000000c" change="1" id="P0002" type="Unknown">
|
||||
<ptitle>Bollinger Co. MO</ptitle>
|
||||
<pname value="Bollinger Co. MO"/>
|
||||
</placeobj>
|
||||
<placeobj handle="_0000001000000010" change="1472500305" id="P0003" type="Unknown">
|
||||
<placeobj handle="_0000001000000010" change="1" id="P0003" type="Unknown">
|
||||
<ptitle>Union Co.?, IL</ptitle>
|
||||
<pname value="Union Co.?, IL"/>
|
||||
</placeobj>
|
||||
<placeobj handle="_0000001200000012" change="1472500305" id="P0004" type="Unknown">
|
||||
<placeobj handle="_0000001200000012" change="1" id="P0004" type="Unknown">
|
||||
<ptitle>Wayne, Missouri, United States</ptitle>
|
||||
<pname value="Wayne, Missouri, United States"/>
|
||||
</placeobj>
|
||||
</places>
|
||||
<objects>
|
||||
<object handle="_0000000300000003" change="1472500305" id="M159">
|
||||
<object handle="_0000000300000003" change="1" id="M159">
|
||||
<file src="1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="1850 United States Federal Census"/>
|
||||
<noteref hlink="_0000001400000014"/>
|
||||
<noteref hlink="_0000001500000015"/>
|
||||
</object>
|
||||
<object handle="_0000001600000016" change="1472500305" id="M158">
|
||||
<file src="D:/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg"/>
|
||||
<object handle="_0000001600000016" change="1" id="M158">
|
||||
<file src="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg"/>
|
||||
<noteref hlink="_0000001700000017"/>
|
||||
</object>
|
||||
<object handle="_0000001700000017" change="1472500305" id="M157">
|
||||
<object handle="_0000001800000018" change="1" id="M157">
|
||||
<file src="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&d=mm&r=pg" mime="unknown" description="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&d=mm&r=pg"/>
|
||||
</object>
|
||||
</objects>
|
||||
<repositories>
|
||||
<repository handle="_0000001300000013" change="1472500305" id="R0001">
|
||||
<repository handle="_0000001300000013" change="1" id="R0001">
|
||||
<rname>Ancestry.com</rname>
|
||||
<type>Library</type>
|
||||
<address>
|
||||
@@ -140,16 +141,26 @@
|
||||
</repository>
|
||||
</repositories>
|
||||
<notes>
|
||||
<note handle="_0000001400000014" change="1472500305" id="N0000" type="Media Note">
|
||||
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</text>
|
||||
<note handle="_0000001400000014" change="1" id="N0000" type="Media Note">
|
||||
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248 </text>
|
||||
</note>
|
||||
<note handle="_0000001500000015" change="1472500305" id="N0001" type="GEDCOM import">
|
||||
<note handle="_0000001500000015" change="1" id="N0001" type="GEDCOM import">
|
||||
<text>Records not imported into OBJE (multi-media object) Gramps ID M159:
|
||||
|
||||
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg</text>
|
||||
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="200"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000001700000017" change="1" id="N0002" type="GEDCOM import">
|
||||
<text>Records not imported into OBJE (multi-media object) Gramps ID M158:
|
||||
|
||||
Could not import D:\Users\PRC\Downloads\1850 United States Federa Line 75: 1 FILE D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="223"/>
|
||||
</style>
|
||||
</note>
|
||||
</notes>
|
||||
</database>
|
||||
@@ -3,7 +3,7 @@
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||
<header>
|
||||
<created date="2017-05-30" version="5.0.0-alpha1"/>
|
||||
<created date="2019-03-05" version="5.0.2"/>
|
||||
<researcher>
|
||||
</researcher>
|
||||
</header>
|
||||
@@ -66,9 +66,10 @@
|
||||
<object handle="_0000000300000003" change="1" id="O0000">
|
||||
<file src="test_emb_55.jpg" mime="image/jpeg" description="Multimedia link embedded form v5.5"/>
|
||||
<noteref hlink="_0000000200000002"/>
|
||||
<noteref hlink="_0000000b0000000b"/>
|
||||
</object>
|
||||
<object handle="_0000000400000004" change="548708291" id="M1">
|
||||
<file src="" mime="" description="Multimedia link to linked form v5.5 blob"/>
|
||||
<file src="" mime="image/jpeg" description="Multimedia link to linked form v5.5 blob"/>
|
||||
<attribute type="REFN" value="Ref12345M1">
|
||||
<noteref hlink="_0000001200000012"/>
|
||||
</attribute>
|
||||
@@ -117,7 +118,7 @@
|
||||
<citationref hlink="_0000002700000027"/>
|
||||
</object>
|
||||
<object handle="_0000000c0000000c" change="1" id="O0002">
|
||||
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="unknown" description="Multimedia link embedded form v5.5 URL"/>
|
||||
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="text/html" description="Multimedia link embedded form v5.5 URL"/>
|
||||
<noteref hlink="_0000000b0000000b"/>
|
||||
</object>
|
||||
<object handle="_0000000d0000000d" change="1" id="M7">
|
||||
@@ -129,7 +130,7 @@
|
||||
<noteref hlink="_0000002900000029"/>
|
||||
</object>
|
||||
<object handle="_0000001500000015" change="1" id="M2">
|
||||
<file src="" mime="" description="2nd blob Multimedia link to linked form v5.5 blob"/>
|
||||
<file src="" mime="image/jpeg" description="2nd blob Multimedia link to linked form v5.5 blob"/>
|
||||
<noteref hlink="_0000001600000016"/>
|
||||
</object>
|
||||
</objects>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||
<header>
|
||||
<created date="2016-10-23" version="5.0.0-alpha1"/>
|
||||
<created date="2019-07-30" version="5.0.2"/>
|
||||
<researcher>
|
||||
<resname>John A. Tester</resname>
|
||||
</researcher>
|
||||
@@ -26,27 +26,23 @@
|
||||
<type>Death</type>
|
||||
<noteref hlink="_0000001600000016"/>
|
||||
</event>
|
||||
<event handle="_0000001e0000001e" change="1" id="E0003">
|
||||
<type>Who knows OBJE REFN TYPE</type>
|
||||
<description>REFN</description>
|
||||
</event>
|
||||
<event handle="_0000002700000027" change="1" id="E0004">
|
||||
<event handle="_0000002700000027" change="1" id="E0003">
|
||||
<type>Birth</type>
|
||||
<dateval val="1901-06-15"/>
|
||||
</event>
|
||||
<event handle="_0000002800000028" change="1" id="E0005">
|
||||
<event handle="_0000002800000028" change="1" id="E0004">
|
||||
<type>Death</type>
|
||||
<dateval val="1975-07-05"/>
|
||||
</event>
|
||||
<event handle="_0000002e0000002e" change="1" id="E0006">
|
||||
<event handle="_0000002e0000002e" change="1" id="E0005">
|
||||
<type>Birth</type>
|
||||
<dateval val="1922-06-15"/>
|
||||
</event>
|
||||
<event handle="_0000002f0000002f" change="1" id="E0007">
|
||||
<event handle="_0000002f0000002f" change="1" id="E0006">
|
||||
<type>Death</type>
|
||||
<dateval val="1994-07-05"/>
|
||||
</event>
|
||||
<event handle="_0000003b0000003b" change="1" id="E0008">
|
||||
<event handle="_0000003b0000003b" change="1" id="E0007">
|
||||
<type>TEST</type>
|
||||
<description>family</description>
|
||||
</event>
|
||||
@@ -61,10 +57,11 @@
|
||||
<eventref hlink="_0000000f0000000f" role="Primary"/>
|
||||
<eventref hlink="_0000001000000010" role="Primary"/>
|
||||
<eventref hlink="_0000001500000015" role="Primary"/>
|
||||
<eventref hlink="_0000001e0000001e" role="Primary"/>
|
||||
<objref hlink="_0000001f0000001f"/>
|
||||
<attribute type="RIN" value="123456 Person"/>
|
||||
<attribute type="REFN" value="98765 for PERSON"/>
|
||||
<attribute type="REFN" value="98765 for PERSON">
|
||||
<noteref hlink="_0000001e0000001e"/>
|
||||
</attribute>
|
||||
<url href="http://homepages.rootsweb.com/~pmcbride/gedcom/55gctoc.htm" type="Web Home" description="GEDCOM 5.5 documentation web site"/>
|
||||
<parentin hlink="_0000001700000017"/>
|
||||
<noteref hlink="_0000001800000018"/>
|
||||
@@ -270,7 +267,8 @@
|
||||
|
||||
Line ignored as not understood Line 18: 2 TEST Header Note
|
||||
Empty note ignored Line 19: 1 NOTE
|
||||
Skipped subordinate line Line 20: 2 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 20: 2 TEST Empty Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="327"/>
|
||||
</style>
|
||||
@@ -288,7 +286,8 @@ Skipped subordinate line Line 20:
|
||||
Line ignored as not understood Line 26: 2 TEST Submission Note
|
||||
Empty note ignored Line 27: 1 NOTE
|
||||
Skipped subordinate line Line 28: 2 TEST Empty Note
|
||||
Line ignored as not understood Line 29: 1 TEST submission</text>
|
||||
Line ignored as not understood Line 29: 1 TEST submission
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="425"/>
|
||||
</style>
|
||||
@@ -300,7 +299,8 @@ Tag recognized but not supported Line 32:
|
||||
Tag recognized but not supported Line 33: 1 REFN Submission Note REFN
|
||||
Skipped subordinate line Line 34: 2 TYPE Submission Note REFN TYPE
|
||||
Tag recognized but not supported Line 35: 1 SOUR Submission note source
|
||||
Line ignored as not understood Line 39: 1 TEST on XREF Note</text>
|
||||
Line ignored as not understood Line 39: 1 TEST on XREF Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="586"/>
|
||||
</style>
|
||||
@@ -318,7 +318,8 @@ Line ignored as not understood Line 39:
|
||||
Line ignored as not understood Line 43: 2 TEST Submitter Note
|
||||
Empty note ignored Line 44: 1 NOTE
|
||||
Skipped subordinate line Line 45: 2 TEST Empty Note
|
||||
Line ignored as not understood Line 46: 1 TEST Submitter</text>
|
||||
Line ignored as not understood Line 46: 1 TEST Submitter
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="460"/>
|
||||
</style>
|
||||
@@ -360,7 +361,10 @@ Line ignored as not understood Line 46:
|
||||
<note handle="_0000001d0000001d" change="979250406" id="N0018" type="Media Note">
|
||||
<text>Media xref note</text>
|
||||
</note>
|
||||
<note handle="_0000002100000021" change="1" id="N0019" type="GEDCOM import">
|
||||
<note handle="_0000001e0000001e" change="1" id="N0019" type="REFN-TYPE">
|
||||
<text>Who knows OBJE REFN TYPE</text>
|
||||
</note>
|
||||
<note handle="_0000002100000021" change="1" id="N0020" type="GEDCOM import">
|
||||
<text>Records not imported into INDI (individual) Gramps ID I0001:
|
||||
|
||||
Empty note ignored Line 54: 2 NOTE
|
||||
@@ -382,12 +386,14 @@ Empty note ignored Line 85:
|
||||
Skipped subordinate line Line 86: 3 TEST Empty Note
|
||||
Line ignored as not understood Line 88: 3 TEST 123456 Note
|
||||
Empty note ignored Line 90: 2 NOTE
|
||||
Skipped subordinate line Line 91: 3 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 91: 3 TEST Empty Note
|
||||
Line ignored as not understood Line 94: 2 TEST REFN
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="2009"/>
|
||||
<range start="0" end="2101"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000002200000022" change="1" id="N0020" type="GEDCOM import">
|
||||
<note handle="_0000002200000022" change="1" id="N0021" type="GEDCOM import">
|
||||
<text>Records not imported into NOTE Gramps ID N0018:
|
||||
|
||||
Tag recognized but not supported Line 103: 1 RIN 123456
|
||||
@@ -396,85 +402,89 @@ Skipped subordinate line Line 105:
|
||||
Tag recognized but not supported Line 109: 2 NOTE Note on a change on a note!!!
|
||||
Skipped subordinate line Line 110: 3 CHAN
|
||||
Skipped subordinate line Line 111: 4 DATE 2001-01-11
|
||||
Skipped subordinate line Line 112: 5 TIME 16:00:06</text>
|
||||
Skipped subordinate line Line 112: 5 TIME 16:00:06
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="741"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000002300000023" change="1" id="N0021" type="REFN-TYPE">
|
||||
<note handle="_0000002300000023" change="1" id="N0022" type="REFN-TYPE">
|
||||
<text>Who knows REFN TYPE</text>
|
||||
</note>
|
||||
<note handle="_0000002500000025" change="1" id="N0022" type="GEDCOM import">
|
||||
<note handle="_0000002500000025" change="1" id="N0023" type="GEDCOM import">
|
||||
<text>Records not imported into OBJE (multi-media object) Gramps ID M1:
|
||||
|
||||
Could not import photo.jpg Line 114: 1 FILE photo.jpg</text>
|
||||
Could not import photo.jpg Line 114: 1 FILE photo.jpg
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="164"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000002900000029" change="979250406" id="N0023" type="Person Note">
|
||||
<note handle="_0000002900000029" change="979250406" id="N0024" type="Person Note">
|
||||
<text>Family Spouse reference Note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000002b0000002b" change="1" id="N0024" type="GEDCOM import">
|
||||
<note handle="_0000002b0000002b" change="1" id="N0025" type="GEDCOM import">
|
||||
<text>Records not imported into INDI (individual) Gramps ID I0002:
|
||||
|
||||
Empty note ignored Line 132: 2 NOTE
|
||||
Skipped subordinate line Line 133: 3 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 133: 3 TEST Empty Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="248"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000002d0000002d" change="979250406" id="N0025" type="General">
|
||||
<note handle="_0000002d0000002d" change="979250406" id="N0026" type="General">
|
||||
<text>Name note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000003100000031" change="1" id="N0026" type="LDS Note">
|
||||
<note handle="_0000003100000031" change="1" id="N0027" type="LDS Note">
|
||||
<text>Place note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000003400000034" change="1" id="N0027" type="LDS Note">
|
||||
<note handle="_0000003400000034" change="1" id="N0028" type="LDS Note">
|
||||
<text>LDS xref note</text>
|
||||
</note>
|
||||
<note handle="_0000003600000036" change="979250406" id="N0028" type="Association Note">
|
||||
<note handle="_0000003600000036" change="979250406" id="N0029" type="Association Note">
|
||||
<text>Association link note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000003800000038" change="1" id="N0029" type="GEDCOM import">
|
||||
<note handle="_0000003800000038" change="1" id="N0030" type="GEDCOM import">
|
||||
<text>Records not imported into INDI (individual) Gramps ID I0003:
|
||||
|
||||
Empty note ignored Line 141: 2 NOTE
|
||||
Skipped subordinate line Line 142: 3 TEST Empty Note
|
||||
Line ignored as not understood Line 163: 3 TEST Accociation note
|
||||
Empty note ignored Line 167: 2 NOTE
|
||||
Skipped subordinate line Line 168: 3 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 168: 3 TEST Empty Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="538"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000003900000039" change="979250406" id="N0030" type="General">
|
||||
<note handle="_0000003900000039" change="979250406" id="N0031" type="General">
|
||||
<text>Just for association</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000003e0000003e" change="1" id="N0031" type="Family Note">
|
||||
<note handle="_0000003e0000003e" change="1" id="N0032" type="Family Note">
|
||||
<text>Family xref note</text>
|
||||
</note>
|
||||
<note handle="_0000003f0000003f" change="979250406" id="N0032" type="Family Note">
|
||||
<note handle="_0000003f0000003f" change="979250406" id="N0033" type="Family Note">
|
||||
<text>Family note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004000000040" change="1" id="N0033" type="Citation">
|
||||
<note handle="_0000004000000040" change="1" id="N0034" type="Citation">
|
||||
<text>Citation Data Note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004100000041" change="1" id="N0034" type="Source text">
|
||||
<note handle="_0000004100000041" change="1" id="N0035" type="Source text">
|
||||
<text>A sample text from a source of this family</text>
|
||||
</note>
|
||||
<note handle="_0000004200000042" change="979250406" id="N0035" type="Citation">
|
||||
<note handle="_0000004200000042" change="979250406" id="N0036" type="Citation">
|
||||
<text>A note this citation is on the FAMILY record.</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004400000044" change="1" id="N0036" type="GEDCOM import">
|
||||
<note handle="_0000004400000044" change="1" id="N0037" type="GEDCOM import">
|
||||
<text>Records not imported into FAM (family) Gramps ID F0001:
|
||||
|
||||
Line ignored as not understood Line 183: 2 TEST Family Note
|
||||
@@ -482,41 +492,44 @@ Empty note ignored Line 187:
|
||||
Skipped subordinate line Line 188: 2 TEST Empty Note
|
||||
Line ignored as not understood Line 190: 2 TEST citation
|
||||
Line ignored as not understood Line 194: 3 TEST Citation Data
|
||||
Line ignored as not understood Line 196: 4 TEST Citation Data Note</text>
|
||||
Line ignored as not understood Line 196: 4 TEST Citation Data Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="645"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000004600000046" change="979250406" id="N0037" type="Repository Reference Note">
|
||||
<note handle="_0000004600000046" change="979250406" id="N0038" type="Repository Reference Note">
|
||||
<text>A short note about the repository link.</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004700000047" change="979250406" id="N0038" type="Source Note">
|
||||
<note handle="_0000004700000047" change="979250406" id="N0039" type="Source Note">
|
||||
<text>note embedded in the SOURCE Record</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004800000048" change="1" id="N0039" type="GEDCOM import">
|
||||
<note handle="_0000004800000048" change="1" id="N0040" type="GEDCOM import">
|
||||
<text>Records not imported into SOUR (source) Gramps ID S0001:
|
||||
|
||||
Line ignored as not understood Line 206: 1 TEST source
|
||||
Empty note ignored Line 208: 2 NOTE
|
||||
Skipped subordinate line Line 209: 3 TEST Empty Note
|
||||
Empty note ignored Line 214: 1 NOTE
|
||||
Skipped subordinate line Line 215: 2 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 215: 2 TEST Empty Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="524"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_0000004900000049" change="1" id="N0040" type="Repository Note">
|
||||
<note handle="_0000004900000049" change="1" id="N0041" type="Repository Note">
|
||||
<text>Repository Note</text>
|
||||
<tagref hlink="_0000000500000005"/>
|
||||
</note>
|
||||
<note handle="_0000004a0000004a" change="1" id="N0041" type="GEDCOM import">
|
||||
<note handle="_0000004a0000004a" change="1" id="N0042" type="GEDCOM import">
|
||||
<text>Records not imported into REPO (repository) Gramps ID R0002:
|
||||
|
||||
Line ignored as not understood Line 223: 1 TEST Repo
|
||||
Empty note ignored Line 224: 1 NOTE
|
||||
Skipped subordinate line Line 225: 2 TEST Empty Note</text>
|
||||
Skipped subordinate line Line 225: 2 TEST Empty Note
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="340"/>
|
||||
</style>
|
||||
|
||||
@@ -50,9 +50,9 @@
|
||||
0 @I0@ INDI
|
||||
1 NAME Anna /Hansdotter/
|
||||
2 GIVN Anna
|
||||
2 SURN Hansdotter, Smith
|
||||
2 SPFX Vrow, huh
|
||||
2 SURN Hansdotter
|
||||
2 SPFX Vrow
|
||||
2 SURN Smith
|
||||
2 _AKA Anna Smith
|
||||
2 _AKA Hanna
|
||||
2 NOTE Hans daughter? N0000
|
||||
@@ -83,6 +83,8 @@
|
||||
2 DATE 11 AUG 1966
|
||||
2 PLAC San Francisco, San Francisco Co., CA
|
||||
1 FAMC @F8@
|
||||
2 _FREL Adopted
|
||||
2 _MREL Foster
|
||||
1 CHAN
|
||||
2 DATE 21 DEC 2007
|
||||
3 TIME 01:35:26
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||
<header>
|
||||
<created date="2016-10-24" version="5.0.0-alpha1"/>
|
||||
<created date="1999-12-25" version="5.1.3"/>
|
||||
<researcher>
|
||||
<resname>Alex Roitman,,,</resname>
|
||||
<resaddr>Not Provided</resaddr>
|
||||
@@ -163,6 +163,7 @@
|
||||
</event>
|
||||
<event handle="_0000005500000055" change="1" id="E0026">
|
||||
<type>Birth</type>
|
||||
<description>No Date Information</description>
|
||||
</event>
|
||||
<event handle="_0000005600000056" change="1" id="E0027">
|
||||
<type>Death</type>
|
||||
@@ -616,7 +617,8 @@
|
||||
<gender>F</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Anna</first>
|
||||
<surname prefix="Vrow">Smith</surname>
|
||||
<surname prefix="Vrow">Hansdotter</surname>
|
||||
<surname prim="0">Smith</surname>
|
||||
<noteref hlink="_0000001100000011"/>
|
||||
</name>
|
||||
<name alt="1" type="Also Known As">
|
||||
@@ -1132,7 +1134,7 @@
|
||||
<mother hlink="_000000b6000000b6"/>
|
||||
<eventref hlink="_000000e3000000e3" role="Family"/>
|
||||
<childref hlink="_0000004800000048" mrel="Adopted" frel="Adopted"/>
|
||||
<childref hlink="_0000001900000019"/>
|
||||
<childref hlink="_0000001900000019" mrel="Foster" frel="Adopted"/>
|
||||
<childref hlink="_0000007b0000007b" mrel="Adopted" frel="Adopted"/>
|
||||
<noteref hlink="_000000e4000000e4"/>
|
||||
</family>
|
||||
@@ -1300,7 +1302,7 @@
|
||||
</reporef>
|
||||
</source>
|
||||
<source handle="_0000008500000085" change="1" id="S0000">
|
||||
<stitle>@S0@</stitle>
|
||||
<stitle>Marriage Certificae</stitle>
|
||||
<noteref hlink="_000000e7000000e7"/>
|
||||
<reporef hlink="_000000e6000000e6" callno="what-321-ever" medium="Photo"/>
|
||||
</source>
|
||||
@@ -1456,13 +1458,13 @@
|
||||
<noteref hlink="_000000f9000000f9"/>
|
||||
</object>
|
||||
<object handle="_000000d1000000d1" change="1" id="O0001">
|
||||
<file src="Magnes&Anna_smiths_marr_cert.jpg" mime="unknown" description="Magnes&Anna_smiths_marr_cert.jpg"/>
|
||||
<file src="Magnes&Anna_smiths_marr_cert.jpg" mime="image/jpeg" description="Magnes&Anna_smiths_marr_cert.jpg"/>
|
||||
</object>
|
||||
<object handle="_000000d8000000d8" change="1" id="O0002">
|
||||
<file src="John&Alice_smiths_marr_cert.jpg" mime="unknown" description="John&Alice_smiths_marr_cert.jpg"/>
|
||||
<file src="John&Alice_smiths_marr_cert.jpg" mime="image/jpeg" description="John&Alice_smiths_marr_cert.jpg"/>
|
||||
</object>
|
||||
<object handle="_000000f1000000f1" change="1" id="O0003">
|
||||
<file src="Attic_photo.jpg" mime="unknown" description="Attic_photo.jpg"/>
|
||||
<file src="Attic_photo.jpg" mime="image/jpeg" description="Attic_photo.jpg"/>
|
||||
</object>
|
||||
</objects>
|
||||
<repositories>
|
||||
@@ -1506,7 +1508,8 @@
|
||||
<note handle="_0000000100000001" change="1" id="N0000" type="GEDCOM import">
|
||||
<text>Records not imported into HEAD (header):
|
||||
|
||||
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED</text>
|
||||
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="148"/>
|
||||
</style>
|
||||
@@ -1514,7 +1517,8 @@ GEDCOM FORM not supported Line 14:
|
||||
<note handle="_0000000200000002" change="1" id="N0001" type="GEDCOM import">
|
||||
<text>Records not imported into SUBM (Submitter): (@SUBM@) Alex Roitman,,,:
|
||||
|
||||
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)</text>
|
||||
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="199"/>
|
||||
</style>
|
||||
@@ -1523,7 +1527,8 @@ Line ignored as not understood Line 23:
|
||||
<text>Records not imported into FAM (family) Gramps ID F0003:
|
||||
|
||||
Line ignored as not understood Line 46: 2 SOUR Not really allowed here
|
||||
Filename omitted Line 48: 1 OBJE</text>
|
||||
Filename omitted Line 48: 1 OBJE
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="256"/>
|
||||
</style>
|
||||
@@ -1561,8 +1566,9 @@ Filename omitted Line 48:
|
||||
<note handle="_0000003d0000003d" change="1" id="N0012" type="GEDCOM import">
|
||||
<text>Records not imported into INDI (individual) Gramps ID I0016:
|
||||
|
||||
Warn: ADDR overwritten Line 204: 3 ADR1 456 Main St again
|
||||
ADDR element ignored '459 Main St.' Line 202: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA</text>
|
||||
Warn: ADDR overwritten Line 206: 3 ADR1 456 Main St again
|
||||
ADDR element ignored '459 Main St.' Line 204: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="304"/>
|
||||
</style>
|
||||
@@ -1573,7 +1579,8 @@ ADDR element ignored '459 Main St.' Line 202:
|
||||
<note handle="_0000004700000047" change="1" id="N0014" type="GEDCOM import">
|
||||
<text>Records not imported into INDI (individual) Gramps ID I0018:
|
||||
|
||||
Tag recognized but not supported Line 245: 2 TYPE first generaton</text>
|
||||
Tag recognized but not supported Line 247: 2 TYPE first generaton
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="165"/>
|
||||
</style>
|
||||
@@ -1604,7 +1611,8 @@ Company. He enlisted in the army at Sparks 7 December 1917 and served as a Corpo
|
||||
<note handle="_000000cf000000cf" change="1" id="N0021" type="GEDCOM import">
|
||||
<text>Records not imported into FAM (family) Gramps ID F0010:
|
||||
|
||||
Tag recognized but not supported Line 863: 2 _STAT</text>
|
||||
Tag recognized but not supported Line 865: 2 _STAT
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="146"/>
|
||||
</style>
|
||||
@@ -1612,8 +1620,9 @@ Tag recognized but not supported Line 863:
|
||||
<note handle="_000000d4000000d4" change="1" id="N0022" type="GEDCOM import">
|
||||
<text>Records not imported into FAM (family) Gramps ID F0011:
|
||||
|
||||
Could not import Magnes&Anna_smiths_marr_cert.jpg Line 878: 3 OBJE
|
||||
Could not import Magnes&Anna_smiths_marr_cert.jpg Line 881: 2 OBJE</text>
|
||||
Could not import Magnes&Anna_smiths_marr_cert.jpg Line 880: 3 OBJE
|
||||
Could not import Magnes&Anna_smiths_marr_cert.jpg Line 883: 2 OBJE
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="233"/>
|
||||
</style>
|
||||
@@ -1621,7 +1630,8 @@ Could not import Magnes&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&Alice_smiths_marr_cert.jpg Line 905: 1 OBJE</text>
|
||||
Could not import John&Alice_smiths_marr_cert.jpg Line 907: 1 OBJE
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="145"/>
|
||||
</style>
|
||||
@@ -1629,7 +1639,8 @@ Could not import John&Alice_smiths_marr_cert.jpg Line 9
|
||||
<note handle="_000000e4000000e4" change="1" id="N0024" type="GEDCOM import">
|
||||
<text>Records not imported into FAM (family) Gramps ID F0008:
|
||||
|
||||
Tag recognized but not supported Line 1005: 1 ADDR 123 Main st, Grantville, Virginia, USA</text>
|
||||
Tag recognized but not supported Line 1007: 1 ADDR 123 Main st, Grantville, Virginia, USA
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="183"/>
|
||||
</style>
|
||||
@@ -1652,8 +1663,9 @@ Tag recognized but not supported Line 1005:
|
||||
<note handle="_000000ee000000ee" change="1" id="N0030" type="GEDCOM import">
|
||||
<text>Records not imported into SOUR (source) Gramps ID S0003:
|
||||
|
||||
Tag recognized but not supported Line 1045: 1 DATA
|
||||
Skipped subordinate line Line 1046: 2 AGNC NYC Public Library</text>
|
||||
Tag recognized but not supported Line 1047: 1 DATA
|
||||
Skipped subordinate line Line 1048: 2 AGNC NYC Public Library
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="252"/>
|
||||
</style>
|
||||
@@ -1667,9 +1679,10 @@ Skipped subordinate line Line 1046:
|
||||
<note handle="_000000f5000000f5" change="1" id="N0033" type="GEDCOM import">
|
||||
<text>Records not imported into REPO (repository) Gramps ID R0003:
|
||||
|
||||
REFN ignored Line 1075: 3 REFN blah blah
|
||||
Skipped subordinate line Line 1076: 4 TYPE who knows
|
||||
Could not import Attic_photo.jpg Line 1079: 3 OBJE</text>
|
||||
REFN ignored Line 1077: 3 REFN blah blah
|
||||
Skipped subordinate line Line 1078: 4 TYPE who knows
|
||||
Could not import Attic_photo.jpg Line 1081: 3 OBJE
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="344"/>
|
||||
</style>
|
||||
@@ -1677,7 +1690,8 @@ Could not import Attic_photo.jpg Line 1079:
|
||||
<note handle="_000000f6000000f6" change="1" id="N0034" type="GEDCOM import">
|
||||
<text>Records not imported into Top Level:
|
||||
|
||||
Unknown tag Line 1106: 0 XXX an unknown token at level 0</text>
|
||||
Unknown tag Line 1108: 0 XXX an unknown token at level 0
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="152"/>
|
||||
</style>
|
||||
@@ -1685,12 +1699,13 @@ Unknown tag Line 1106:
|
||||
<note handle="_000000f8000000f8" change="1" id="N0035" type="GEDCOM import">
|
||||
<text>Records not imported into Top Level:
|
||||
|
||||
Unknown tag Line 1109: 1 @X1@ XXX and unknown token xref definition</text>
|
||||
Unknown tag Line 1111: 1 @X1@ XXX and unknown token xref definition
|
||||
</text>
|
||||
<style name="fontface" value="Monospace">
|
||||
<range start="0" end="163"/>
|
||||
</style>
|
||||
</note>
|
||||
<note handle="_000000f9000000f9" change="1477325896" id="N0036" type="General">
|
||||
<note handle="_000000f9000000f9" change="1591544255" 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>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
<_tip number="29"><b>Show All Checkbutton</b><br/>When adding an existing person as a spouse, the list of people shown is filtered to display only people who could realistically fit the role (based on dates in the database). In case Gramps is wrong in making this choice, you can override the filter by checking the Show All checkbutton.</_tip>
|
||||
|
||||
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to http://bugs.gramps-project.org and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
|
||||
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to https://gramps-project.org/bugs/ and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
|
||||
|
||||
<_tip number="32"><b>Gramps Mailing Lists</b><br/>Want answers to your questions about Gramps? Check out the gramps-users email list. Many helpful people are on the list, so you're likely to get an answer quickly. If you have questions related to the development of Gramps, try the gramps-devel list. You can see the lists by selecting "Help > Gramps Mailing Lists".</_tip>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
<_tip number="49"><b>Making a Genealogy Website</b><br/>You can easily export your family tree to a web page. Select the entire database, family lines or selected individuals to a collection of web pages ready for upload to the World Wide Web.</_tip>
|
||||
|
||||
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at http://bugs.gramps-project.org</_tip>
|
||||
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at https://gramps-project.org/bugs/</_tip>
|
||||
|
||||
<_tip number="51"><b>The Gramps Homepage</b><br/>The Gramps homepage is at http://gramps-project.org/</_tip>
|
||||
|
||||
|
||||
@@ -1,3 +1,70 @@
|
||||
gramps (5.1.5-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Update copyright file
|
||||
* Drop patch, incorporated upstream
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Sat, 12 Feb 2022 17:01:21 +0100
|
||||
|
||||
gramps (5.1.4-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Add new copyrights
|
||||
* Update watch file
|
||||
* Patch probably alive test to fix FTBFS
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Sun, 15 Aug 2021 18:31:56 +0200
|
||||
|
||||
gramps (5.1.3-1) focal; urgency=medium
|
||||
|
||||
* New release
|
||||
* Update debian/copyright for Alex Roitman
|
||||
|
||||
-- Ross Gammon <rosco2@ubuntu.com> Sun, 16 Aug 2020 20:23:34 +0200
|
||||
|
||||
gramps (5.1.2-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Sat, 11 Jan 2020 19:07:08 +0100
|
||||
|
||||
gramps (5.1.1-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Add python3-fontconfig to recommends
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Tue, 17 Sep 2019 15:21:43 +0200
|
||||
|
||||
gramps (5.1.0-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Update copyrights
|
||||
* Bump gtk+ version to 3.12
|
||||
* Add new geocode-glib dependency
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Sat, 24 Aug 2019 19:49:27 +0200
|
||||
|
||||
gramps (5.0.2-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Remove ancient python version field from debian/control
|
||||
* Bump standards version, no changes required
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Sun, 11 Aug 2019 14:11:35 +0200
|
||||
|
||||
gramps (5.0.1-1) unstable; urgency=medium
|
||||
|
||||
* New release
|
||||
* Update copyright file
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Thu, 20 Dec 2018 20:41:23 +0100
|
||||
|
||||
gramps (5.0.0-1) unstable; urgency=medium
|
||||
|
||||
* New Gramps release
|
||||
|
||||
-- Ross Gammon <rossgammon@debian.org> Wed, 25 Jul 2018 21:19:00 +0200
|
||||
|
||||
gramps (5.0.0~rc1-1) unstable; urgency=medium
|
||||
|
||||
* First release candidate for Gramps 5.0
|
||||
|
||||
@@ -10,7 +10,7 @@ Build-Depends-Indep:
|
||||
python3-all,
|
||||
python3-setuptools,
|
||||
python3-nose,
|
||||
gir1.2-gtk-3.0 (>= 3.10.0),
|
||||
gir1.2-gtk-3.0 (>= 3.12.0),
|
||||
python3-gi (>= 3.12.0),
|
||||
python3-gi-cairo,
|
||||
python3-bsddb3,
|
||||
@@ -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
|
||||
@@ -42,7 +41,9 @@ Recommends:
|
||||
graphviz,
|
||||
gir1.2-gexiv2-0.10,
|
||||
gir1.2-osmgpsmap-1.0,
|
||||
python3-icu
|
||||
python3-icu,
|
||||
gir1.2-geocodeglib-1.0,
|
||||
python3-fontconfig
|
||||
Suggests:
|
||||
fonts-freefont-ttf,
|
||||
gir1.2-goocanvas-2.0,
|
||||
|
||||
@@ -12,12 +12,12 @@ Copyright: 2000-2007, Alex Roitman
|
||||
2001-2017, Free Software Foundation, Inc.
|
||||
2001, Graham J. Williams
|
||||
2001, Jesper Zedlitz
|
||||
2001-2018, The Gramps Project
|
||||
2001-2019, The Gramps Project
|
||||
2002, Gary Shao
|
||||
2003-2006, Josiah Carlson
|
||||
2004-2006, Eero Tamminen
|
||||
2004-2013, Julio Sánchez
|
||||
2005-2017, Serge Noiraud
|
||||
2005-2019, Serge Noiraud
|
||||
2006-2012, Brian G. Matherly
|
||||
2006, 2008-2011, Kees Bakker
|
||||
2006-2008, Steve Hall
|
||||
@@ -46,7 +46,7 @@ Copyright: 2000-2007, Alex Roitman
|
||||
2009, Florian Heinle
|
||||
2009, Gerald W. Britton
|
||||
2009, Igal Shapira
|
||||
2009-2018, Nick Hall
|
||||
2009-2022, Nick Hall
|
||||
2009, Pander Musubi
|
||||
2009, Robert Ham
|
||||
2009, Swoon on bug tracker
|
||||
@@ -64,7 +64,7 @@ Copyright: 2000-2007, Alex Roitman
|
||||
2011, Helge Herz
|
||||
2011, 2013 John Ralls
|
||||
2011, 2016 Matt Keenan
|
||||
2011-2017, Paul Franklin
|
||||
2011-2018, Paul Franklin
|
||||
2012, lcc
|
||||
2012, 2014, Mathieu MD
|
||||
2012, Nicolas Adenis-Lamarre
|
||||
@@ -81,11 +81,19 @@ Copyright: 2000-2007, Alex Roitman
|
||||
2015, Detlef Wolz
|
||||
2016, Allen Crider
|
||||
2016, DaAwesomeP
|
||||
2016-2017, Paul Culley
|
||||
2016-2018, Paul Culley
|
||||
2016, QuLogic
|
||||
2016, Tom Samstag
|
||||
2017, Jonathan Biegert
|
||||
2017, Mindaugas Baranauskas
|
||||
2017, Robert Carnell
|
||||
2018, Christophe aka khrys63
|
||||
2018, Paul D.Smith
|
||||
2018, Robin van der Vliet
|
||||
2018, Theo van Rijn
|
||||
2019, Matthias Kemmer
|
||||
2020, Jan Sparreboom
|
||||
2021, Mirko Leonhaeuser
|
||||
License: GPL-2+
|
||||
|
||||
Files: debian/*
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
version=3
|
||||
|
||||
version=4
|
||||
opts=\
|
||||
dversionmangle=s/(\~|\+)(debian|dfsg|ds|deb)(\.\d+)?$//,\
|
||||
filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/$1\.tar\.gz/,\
|
||||
filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/gramps-project-$1\.tar\.gz/,\
|
||||
repacksuffix=~dfsg \
|
||||
https://github.com/gramps-project/gramps/tags \
|
||||
.*/archive/v?([\d\.]+).tar.gz
|
||||
.*/v?(\d\S+)\.tar\.gz
|
||||
@@ -57,7 +57,7 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = 'Gramps'
|
||||
copyright = '2001-2018, The Gramps Project'
|
||||
copyright = '2001-2023, The Gramps Project'
|
||||
author = 'Donald N. Allingham'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
@@ -65,9 +65,9 @@ author = 'Donald N. Allingham'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '5.0.0'
|
||||
version = '5.1.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '5.0.0-master'
|
||||
release = '5.1.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<resphone>(555)123-4567</resphone>
|
||||
<resemail>anyone@someplace.com</resemail>
|
||||
</researcher>
|
||||
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
|
||||
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
|
||||
</header>
|
||||
<tags>
|
||||
<tag handle="_c7642d9389b54417e8b" change="1370206720" name="tag1" color="#000000000000" priority="0"/>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||
<header>
|
||||
<created date="2018-03-08" version="5.0.0"/>
|
||||
<created date="2017-08-08" version="5.1.0"/>
|
||||
<researcher>
|
||||
<resname>Alex Roitman,,,</resname>
|
||||
</researcher>
|
||||
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
|
||||
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
|
||||
</header>
|
||||
<name-formats>
|
||||
<format number="-1" name="SURNAME, Given (Common)" fmt_str="SURNAME, given (common)" active="1"/>
|
||||
@@ -951,7 +951,7 @@
|
||||
<place hlink="_L3WJQCD3US67V2CNZT"/>
|
||||
<description>Birth of Garner, Anderson</description>
|
||||
</event>
|
||||
<event handle="_a5af0eb7dfb557da07e" change="1284030599" id="E0179">
|
||||
<event handle="_a5af0eb7dfb557da07e" change="1502187535" id="E0179">
|
||||
<type>Death</type>
|
||||
<dateval val="1887-04-07"/>
|
||||
<place hlink="_AKFKQC2N4SM243HCTN"/>
|
||||
@@ -6262,7 +6262,7 @@
|
||||
<dateval val="1842-06-28"/>
|
||||
<description>Death of Moreno, Joseph McDowell</description>
|
||||
</event>
|
||||
<event handle="_a5af0ec45b25c630e03" change="1284030608" id="E1179">
|
||||
<event handle="_a5af0ec45b25c630e03" change="1502187451" id="E1179">
|
||||
<type>Birth</type>
|
||||
<dateval val="1911-07-12"/>
|
||||
<description>Birth of Thornton, James Arthur</description>
|
||||
@@ -15003,7 +15003,7 @@
|
||||
<type>Marriage</type>
|
||||
<description>Marriage of Johnson, Henry and Sparks, Catherine</description>
|
||||
</event>
|
||||
<event handle="_a5af0ed5df832ee65c1" change="1328026859" id="E2815">
|
||||
<event handle="_a5af0ed5df832ee65c1" change="1502187371" id="E2815">
|
||||
<type>Marriage</type>
|
||||
<dateval val="1875-04-01"/>
|
||||
<place hlink="_RF5KQCNJRQY8OGTX2H"/>
|
||||
@@ -18649,7 +18649,7 @@
|
||||
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
|
||||
<citationref hlink="_c140d2472c91aad494f"/>
|
||||
</person>
|
||||
<person handle="_14LKQCYZJEAXTS3XX" change="1185438865" id="I1376">
|
||||
<person handle="_14LKQCYZJEAXTS3XX" change="1502187492" id="I1376">
|
||||
<gender>F</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Elizabeth</first>
|
||||
@@ -18657,6 +18657,7 @@
|
||||
</name>
|
||||
<eventref hlink="_a5af0ebb003796f79a0" role="Primary"/>
|
||||
<eventref hlink="_a5af0ebb0143dab99ff" role="Primary"/>
|
||||
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
|
||||
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
|
||||
<parentin hlink="_I4LKQCOAGPFH4R90A7"/>
|
||||
<citationref hlink="_c140d24731407d57b3c"/>
|
||||
@@ -19904,7 +19905,7 @@
|
||||
<childof hlink="_IO5KQC6H0Q6Y517LR9"/>
|
||||
<citationref hlink="_c140d24a1fd2319b703"/>
|
||||
</person>
|
||||
<person handle="_35WJQC1B7T7NPV8OLV" change="1284030051" id="I0106">
|
||||
<person handle="_35WJQC1B7T7NPV8OLV" change="1502187260" id="I0106">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Robert W.</first>
|
||||
@@ -19913,6 +19914,11 @@
|
||||
<eventref hlink="_a5af0eb74ac73f86aa7" role="Primary"/>
|
||||
<eventref hlink="_a5af0eb74ba358391ae" role="Primary"/>
|
||||
<eventref hlink="_a5af0eb74c852f7c633" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
|
||||
<attribute type="Age" value="23">
|
||||
<citationref hlink="_c140dafeb317af2fd79"/>
|
||||
</attribute>
|
||||
</eventref>
|
||||
<childof hlink="_X3WJQCSF48F6809142"/>
|
||||
<parentin hlink="_8OUJQCUVZ0XML7BQLF"/>
|
||||
<citationref hlink="_c140d24a27e19bb381a"/>
|
||||
@@ -21991,13 +21997,14 @@
|
||||
<childof hlink="_GCDKQCHI74ZPMI5GDJ"/>
|
||||
<citationref hlink="_c140d24f3f8704aa41b"/>
|
||||
</person>
|
||||
<person handle="_6G0KQC2UXYC66XDDC2" change="1185438865" id="I0363">
|
||||
<person handle="_6G0KQC2UXYC66XDDC2" change="1502187537" id="I0363">
|
||||
<gender>F</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Miranda Keziah</first>
|
||||
<surname>Farmer</surname>
|
||||
</name>
|
||||
<eventref hlink="_a5af0ec7a76244d962d" role="Primary"/>
|
||||
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
|
||||
<childof hlink="_8NVJQCGMJTCL7E6ZDV"/>
|
||||
<citationref hlink="_c140d24f439709d3118"/>
|
||||
</person>
|
||||
@@ -22989,7 +22996,7 @@
|
||||
<parentin hlink="_FBVJQCFBI50TW78O49"/>
|
||||
<citationref hlink="_c140d2522702664ec52"/>
|
||||
</person>
|
||||
<person handle="_8CLKQCT97PJOGREJ7W" change="1185438865" id="I1387">
|
||||
<person handle="_8CLKQCT97PJOGREJ7W" change="1502187387" id="I1387">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Robert</first>
|
||||
@@ -22997,6 +23004,11 @@
|
||||
</name>
|
||||
<eventref hlink="_a5af0ebb3737a6ad088" role="Primary"/>
|
||||
<eventref hlink="_a5af0ebb39b441e9607" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
|
||||
<attribute type="Age" value="23">
|
||||
<citationref hlink="_c140dafeb317af2fd79"/>
|
||||
</attribute>
|
||||
</eventref>
|
||||
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
|
||||
<parentin hlink="_H6LKQCWVIFNRNGHFVH"/>
|
||||
<citationref hlink="_c140d2522d804491375"/>
|
||||
@@ -23803,7 +23815,7 @@
|
||||
<childof hlink="_5DBKQCVAB0XMBEW8R9"/>
|
||||
<citationref hlink="_c140d25425874b0b827"/>
|
||||
</person>
|
||||
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1185438865" id="I0038">
|
||||
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1502187526" id="I0038">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>David</first>
|
||||
@@ -23812,6 +23824,7 @@
|
||||
<eventref hlink="_a5af0ec7eb514c52fbf" role="Primary"/>
|
||||
<eventref hlink="_a5af0ec7ec844213b55" role="Primary"/>
|
||||
<eventref hlink="_a5af0ec7ed61c743fc8" role="Primary"/>
|
||||
<eventref hlink="_a5af0eb7dfb557da07e" role="Informant"/>
|
||||
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
|
||||
<parentin hlink="_3HUJQCK4DH582YUTZG"/>
|
||||
<citationref hlink="_c140d2542c764516f13"/>
|
||||
@@ -24506,7 +24519,7 @@
|
||||
<parentin hlink="_8NVJQCGMJTCL7E6ZDV"/>
|
||||
<citationref hlink="_c140d2560004fad8df6"/>
|
||||
</person>
|
||||
<person handle="_ANLKQCQSQNE5LDZMRC" change="1185438865" id="I1402">
|
||||
<person handle="_ANLKQCQSQNE5LDZMRC" change="1502187434" id="I1402">
|
||||
<gender>F</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Margaret Jane "Maggie"</first>
|
||||
@@ -24514,6 +24527,7 @@
|
||||
</name>
|
||||
<eventref hlink="_a5af0ebb7d47a006ee2" role="Primary"/>
|
||||
<eventref hlink="_a5af0ebb7e54e14970f" role="Primary"/>
|
||||
<eventref hlink="_a5af0ec45b25c630e03" role="Witness"/>
|
||||
<childof hlink="_VDLKQCQQ1ADTJG1D1F"/>
|
||||
<parentin hlink="_SNLKQCD0VNJ627062Y"/>
|
||||
<citationref hlink="_c140d25607213be35da"/>
|
||||
@@ -24882,13 +24896,18 @@
|
||||
<parentin hlink="_JFYJQCG2KLRQN835JD"/>
|
||||
<citationref hlink="_c140d256e3403ba129d"/>
|
||||
</person>
|
||||
<person handle="_B3BKQCSV0G3NKSKWDX" change="1185438865" id="I0880">
|
||||
<person handle="_B3BKQCSV0G3NKSKWDX" change="1502187344" id="I0880">
|
||||
<gender>F</gender>
|
||||
<name type="Birth Name">
|
||||
<first>L. J.</first>
|
||||
<surname>Blanco</surname>
|
||||
</name>
|
||||
<eventref hlink="_a5af0ed2cf617169903" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
|
||||
<attribute type="Age" value="23">
|
||||
<citationref hlink="_c140dafeb317af2fd79"/>
|
||||
</attribute>
|
||||
</eventref>
|
||||
<childof hlink="_1BVJQCNTFAGS8273LJ"/>
|
||||
<citationref hlink="_c140d256ec4306a51ca"/>
|
||||
</person>
|
||||
@@ -31930,7 +31949,7 @@
|
||||
<childof hlink="_UDMKQC5D3A2PXPUGNC"/>
|
||||
<citationref hlink="_c140d266ec93334f40f"/>
|
||||
</person>
|
||||
<person handle="_MG5KQC6ZKSVO4A63G2" change="1328026883" id="I0624">
|
||||
<person handle="_MG5KQC6ZKSVO4A63G2" change="1502187451" id="I0624">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Raymond E.</first>
|
||||
@@ -31938,6 +31957,7 @@
|
||||
</name>
|
||||
<eventref hlink="_a5af0ece8bd1125a1a9" role="Primary"/>
|
||||
<eventref hlink="_a5af0ece8d15511ddf9" role="Primary"/>
|
||||
<eventref hlink="_a5af0ec45b25c630e03" role="Informant"/>
|
||||
<childof hlink="_9OUJQCBOHW9UEK9CNV"/>
|
||||
<citationref hlink="_c140d266f0d5d178784"/>
|
||||
</person>
|
||||
@@ -32336,7 +32356,7 @@
|
||||
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
|
||||
<citationref hlink="_c140d267ccb7aef0cd0"/>
|
||||
</person>
|
||||
<person handle="_N4DKQCPEMZ7OO62O7J" change="1185438865" id="I0975">
|
||||
<person handle="_N4DKQCPEMZ7OO62O7J" change="1502187308" id="I0975">
|
||||
<gender>M</gender>
|
||||
<name type="Birth Name">
|
||||
<first>Henry</first>
|
||||
@@ -32345,6 +32365,11 @@
|
||||
<eventref hlink="_a5af0ed483738d4ed1e" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed484a144d229b" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed48605fb6b9eb" role="Primary"/>
|
||||
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
|
||||
<attribute type="Age" value="23">
|
||||
<citationref hlink="_c140dafeb317af2fd79"/>
|
||||
</attribute>
|
||||
</eventref>
|
||||
<parentin hlink="_7PUJQC4PPS4EDIVMYE"/>
|
||||
<citationref hlink="_c140d267d2128356d8e"/>
|
||||
</person>
|
||||
|
||||
@@ -47,6 +47,7 @@ from gramps.gen.recentfiles import recent_files
|
||||
from gramps.gen.utils.file import rm_tempdir, get_empty_tempdir
|
||||
from .clidbman import CLIDbManager, NAME_FILE, find_locker_name
|
||||
from gramps.gen.db.utils import make_database
|
||||
from gramps.gen.db.dbconst import DBBACKEND
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE, BookList
|
||||
from .plug import cl_report, cl_book
|
||||
@@ -382,7 +383,7 @@ class ArgHandler:
|
||||
self.open = db_path
|
||||
self.__open_action()
|
||||
else:
|
||||
sys.exit(1)
|
||||
sys.exit(_("Error: cannot open '%s'") % self.open_gui)
|
||||
return db_path
|
||||
|
||||
# if not open_gui, parse any command line args. We can only have one
|
||||
@@ -504,6 +505,9 @@ class ArgHandler:
|
||||
self.imp_db_path = get_empty_tempdir("import_dbdir")
|
||||
dbid = config.get('database.backend')
|
||||
newdb = make_database(dbid)
|
||||
versionpath = os.path.join(self.imp_db_path, str(DBBACKEND))
|
||||
with open(versionpath, "w") as version_file:
|
||||
version_file.write(dbid)
|
||||
|
||||
try:
|
||||
self.smgr.open_activate(self.imp_db_path, self.username, self.password)
|
||||
@@ -619,8 +623,8 @@ class ArgHandler:
|
||||
#import of plugin failed
|
||||
return
|
||||
category = pdata.category
|
||||
report_class = eval('mod.' + pdata.reportclass)
|
||||
options_class = eval('mod.' + pdata.optionclass)
|
||||
report_class = getattr(mod, pdata.reportclass)
|
||||
options_class = getattr(mod, pdata.optionclass)
|
||||
if category in (CATEGORY_BOOK, CATEGORY_CODE):
|
||||
options_class(self.dbstate.db, name, category,
|
||||
options_str_dict)
|
||||
@@ -668,8 +672,8 @@ class ArgHandler:
|
||||
#import of plugin failed
|
||||
return
|
||||
category = pdata.category
|
||||
tool_class = eval('mod.' + pdata.toolclass)
|
||||
options_class = eval('mod.' + pdata.optionclass)
|
||||
tool_class = getattr(mod, pdata.toolclass)
|
||||
options_class = getattr(mod, pdata.optionclass)
|
||||
tool.cli_tool(dbstate=self.dbstate,
|
||||
name=name,
|
||||
category=category,
|
||||
|
||||
@@ -39,15 +39,16 @@ import sys
|
||||
import os
|
||||
import getopt
|
||||
import logging
|
||||
import shutil
|
||||
from glob import glob
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gramps.gen.const import LONGOPTS, SHORTOPTS, PLUGINS_DIR, USER_PLUGINS
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.config import config
|
||||
from gramps.gen.const import (LONGOPTS, SHORTOPTS, USER_PLUGINS, VERSION_DIR,
|
||||
HOME_DIR, TEMP_DIR, THUMB_DIR, ENV_DIR, USER_CSS)
|
||||
from gramps.gen.utils.cast import get_type_converter
|
||||
from gramps.gen.const import GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.gettext
|
||||
@@ -81,6 +82,14 @@ Application options
|
||||
-y, --yes Don't ask to confirm dangerous actions (non-GUI mode only)
|
||||
-q, --quiet Suppress progress indication output (non-GUI mode only)
|
||||
-v, --version Show versions
|
||||
-S, --safe Start Gramps in 'Safe mode'
|
||||
(temporarily use default settings)
|
||||
-D, --default=[APXFE] Reset settings to default;
|
||||
A - addons are cleared
|
||||
P - Preferences to default
|
||||
X - Books are cleared, reports and tool settings to default
|
||||
F - filters are cleared
|
||||
E - Everything is set to default or cleared
|
||||
""")
|
||||
|
||||
_USAGE = _("""
|
||||
@@ -342,6 +351,7 @@ class ArgParser:
|
||||
elif option in ['-t']:
|
||||
self.list_table = True
|
||||
elif option in ['-s', '--show']:
|
||||
from gramps.gen.config import config
|
||||
print(_("Gramps config settings from %s:"
|
||||
) % config.filename)
|
||||
for sect in config.data:
|
||||
@@ -351,6 +361,7 @@ class ArgParser:
|
||||
print()
|
||||
sys.exit(0)
|
||||
elif option in ['-c', '--config']:
|
||||
from gramps.gen.config import config
|
||||
cfg_name = value
|
||||
set_value = False
|
||||
if cfg_name:
|
||||
@@ -396,6 +407,44 @@ class ArgParser:
|
||||
self.auto_accept = True
|
||||
elif option in ['-q', '--quiet']:
|
||||
self.quiet = True
|
||||
elif option in ['-S', '--safe']:
|
||||
cleandbg += [opt_ix]
|
||||
elif option in ['-D', '--default']:
|
||||
def rmtree(path):
|
||||
if os.path.isdir(path):
|
||||
shutil.rmtree(path, ignore_errors=True)
|
||||
|
||||
if 'E' in value or 'A' in value: # clear addons
|
||||
rmtree(USER_PLUGINS)
|
||||
if 'E' in value or 'P' in value: # clear ini preferences
|
||||
for fil in glob(os.path.join(VERSION_DIR, "*.*")):
|
||||
if "custom_filters.xml" in fil:
|
||||
continue
|
||||
os.remove(fil)
|
||||
# create gramps.ini so config won't load the one from an
|
||||
# older version of Gramps.
|
||||
with open(os.path.join(VERSION_DIR, 'gramps.ini'), 'w'):
|
||||
pass
|
||||
if 'E' in value or 'F' in value: # clear filters
|
||||
fil = os.path.join(VERSION_DIR, "custom_filters.xml")
|
||||
if os.path.isfile(fil):
|
||||
os.remove(fil)
|
||||
if 'E' in value or 'X' in value: # clear xml reports/tools
|
||||
for fil in glob(os.path.join(HOME_DIR, "*.xml")):
|
||||
os.remove(fil)
|
||||
if 'E' in value or 'Z' in value: # clear upgrade zips
|
||||
for fil in glob(os.path.join(HOME_DIR, "*.zip")):
|
||||
os.remove(fil)
|
||||
if 'E' in value: # Everything else
|
||||
rmtree(TEMP_DIR)
|
||||
rmtree(THUMB_DIR)
|
||||
rmtree(USER_CSS)
|
||||
rmtree(ENV_DIR)
|
||||
rmtree(os.path.join(HOME_DIR, "maps"))
|
||||
for fil in glob(os.path.join(HOME_DIR, "*")):
|
||||
if os.path.isfile(fil):
|
||||
os.remove(fil)
|
||||
sys.exit(0) # Done with Default
|
||||
|
||||
#clean options list
|
||||
cleandbg.reverse()
|
||||
|
||||
@@ -64,6 +64,7 @@ from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.utils.config import get_researcher
|
||||
from gramps.gen.recentfiles import recent_files
|
||||
from gramps.gen.filters import reload_custom_filters
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -279,7 +280,7 @@ class CLIManager:
|
||||
# Attempt to figure out the database title
|
||||
path = os.path.join(filename, "name.txt")
|
||||
try:
|
||||
with open(path) as ifile:
|
||||
with open(path, encoding='utf8') as ifile:
|
||||
title = ifile.readline().strip()
|
||||
except:
|
||||
title = filename
|
||||
@@ -373,6 +374,7 @@ def startcli(errors, argparser):
|
||||
|
||||
#load the plugins
|
||||
climanager.do_reg_plugins(dbstate, uistate=None)
|
||||
reload_custom_filters()
|
||||
# handle the arguments
|
||||
from .arghandler import ArgHandler
|
||||
handler = ArgHandler(dbstate, argparser, climanager)
|
||||
|
||||
@@ -88,9 +88,9 @@ def _convert_str_to_match_type(str_val, type_val):
|
||||
return str(str_val)
|
||||
|
||||
elif ret_type == int:
|
||||
if str_val.isdigit():
|
||||
try:
|
||||
return int(str_val)
|
||||
else:
|
||||
except ValueError:
|
||||
print("'%s' is not an integer number" % str_val)
|
||||
return 0
|
||||
|
||||
@@ -519,8 +519,8 @@ class CommandLineReport:
|
||||
self.format = tree_format["class"]
|
||||
if self.format is None:
|
||||
# Pick the first one as the default.
|
||||
self.format = tree_format.FORMATS[0]["class"]
|
||||
_chosen_format = tree_format.FORMATS[0]["type"]
|
||||
self.format = treedoc.FORMATS[0]["class"]
|
||||
_chosen_format = treedoc.FORMATS[0]["type"]
|
||||
else:
|
||||
self.format = None
|
||||
if _chosen_format and _format_str:
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
# Copyright (C) 2008-2009 Gary Burton
|
||||
# Copyright (C) 2009-2012 Doug Blank <doug.blank@gmail.com>
|
||||
# Copyright (C) 2011 Tim G L Lyons
|
||||
# Copyright (C) 2015- Serge Noiraud
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -148,6 +149,7 @@ register('behavior.min-generation-years', 13)
|
||||
register('behavior.owner-warn', False)
|
||||
register('behavior.pop-plugin-status', False)
|
||||
register('behavior.recent-export-type', 3)
|
||||
register('behavior.runcheck', False)
|
||||
register('behavior.spellcheck', False)
|
||||
register('behavior.startup', 0)
|
||||
register('behavior.surname-guessing', 0)
|
||||
@@ -155,9 +157,9 @@ register('behavior.translator-needed', True)
|
||||
register('behavior.use-tips', False)
|
||||
register('behavior.welcome', 100)
|
||||
register('behavior.web-search-url', 'http://google.com/#&q=%(text)s')
|
||||
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50")
|
||||
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps51")
|
||||
|
||||
register('database.backend', 'bsddb')
|
||||
register('database.backend', 'sqlite')
|
||||
register('database.compress-backup', True)
|
||||
register('database.backup-path', USER_HOME)
|
||||
register('database.backup-on-exit', True)
|
||||
@@ -217,17 +219,20 @@ register('interface.sidebar-text', True)
|
||||
register('interface.size-checked', False)
|
||||
register('interface.statusbar', 1)
|
||||
register('interface.toolbar-on', True)
|
||||
register('interface.toolbar-text', False)
|
||||
register('interface.view', True)
|
||||
register('interface.surname-box-height', 150)
|
||||
register('interface.treemodel-cache-size', 1000)
|
||||
|
||||
register('paths.recent-export-dir', '')
|
||||
register('paths.recent-export-dir', USER_HOME)
|
||||
register('paths.recent-file', '')
|
||||
register('paths.recent-import-dir', '')
|
||||
register('paths.recent-import-dir', USER_HOME)
|
||||
register('paths.report-directory', USER_HOME)
|
||||
register('paths.website-directory', USER_HOME)
|
||||
register('paths.website-cms-uri', '')
|
||||
register('paths.website-cal-uri', '')
|
||||
register('paths.website-extra-page-uri', '')
|
||||
register('paths.website-extra-page-name', '')
|
||||
register('paths.quick-backup-directory', USER_HOME)
|
||||
register('paths.quick-backup-filename',
|
||||
"%(filename)s_%(year)d-%(month)02d-%(day)02d.%(extension)s")
|
||||
@@ -236,7 +241,6 @@ register('preferences.quick-backup-include-mode', False)
|
||||
register('preferences.date-format', 0)
|
||||
register('preferences.calendar-format-report', 0)
|
||||
register('preferences.cprefix', 'C%04d')
|
||||
register('preferences.alternate-fonthandler', False)
|
||||
register('preferences.default-source', False)
|
||||
register('preferences.tag-on-import', False)
|
||||
register('preferences.tag-on-import-format', _("Imported %Y/%m/%d %H:%M:%S"))
|
||||
@@ -278,6 +282,10 @@ register('colors.female-dead', ['#feccf0', '#3a292b'])
|
||||
register('colors.unknown-alive', ['#f3dbb6', '#75507B'])
|
||||
register('colors.unknown-dead', ['#f3dbb6', '#35103b'])
|
||||
register('colors.family', ['#eeeeee', '#454545'])
|
||||
register('colors.family-married', ['#eeeeee', '#454545'])
|
||||
register('colors.family-unmarried', ['#eeeeee', '#454545'])
|
||||
register('colors.family-civil-union', ['#eeeeee', '#454545'])
|
||||
register('colors.family-unknown', ['#eeeeee', '#454545'])
|
||||
register('colors.family-divorced', ['#ffdede', '#5c3636'])
|
||||
register('colors.home-person', ['#bbe68a', '#304918'])
|
||||
register('colors.border-male-alive', ['#1f4986', '#171d26'])
|
||||
@@ -302,6 +310,11 @@ register('researcher.researcher-state', '')
|
||||
register('plugin.hiddenplugins', [])
|
||||
register('plugin.addonplugins', [])
|
||||
|
||||
register('utf8.in-use', False)
|
||||
register('utf8.available-fonts', [])
|
||||
register('utf8.selected-font', "")
|
||||
register('utf8.death-symbol', 13)
|
||||
|
||||
if __debug__: # enable a simple CLI test to see if the datestrings exist
|
||||
register('test.january', _("localized lexeme inflections||January"))
|
||||
|
||||
@@ -325,7 +338,7 @@ if not os.path.exists(CONFIGMAN.filename):
|
||||
# check previous version of gramps:
|
||||
fullpath, filename = os.path.split(CONFIGMAN.filename)
|
||||
fullpath, previous = os.path.split(fullpath)
|
||||
match = re.match('gramps(\d*)', previous)
|
||||
match = re.match(r'gramps(\d*)', previous)
|
||||
if match:
|
||||
# cycle back looking for previous versions of gramps
|
||||
for i in range(1, 20): # check back 2 gramps versions
|
||||
|
||||
@@ -104,6 +104,13 @@ elif 'USERPROFILE' in os.environ:
|
||||
else:
|
||||
USER_HOME = get_env_var('HOME')
|
||||
HOME_DIR = os.path.join(USER_HOME, '.gramps')
|
||||
ORIG_HOME_DIR = HOME_DIR
|
||||
if 'SAFEMODE' in os.environ:
|
||||
if 'USERPROFILE' in os.environ:
|
||||
USER_HOME = get_env_var('USERPROFILE')
|
||||
else:
|
||||
USER_HOME = get_env_var('HOME')
|
||||
HOME_DIR = get_env_var('SAFEMODE')
|
||||
|
||||
|
||||
VERSION_DIR = os.path.join(
|
||||
@@ -138,7 +145,8 @@ sys.path.insert(0, ROOT_DIR)
|
||||
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
|
||||
if sys.platform == 'win32' and git_revision == "":
|
||||
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
|
||||
#VERSION += git_revision
|
||||
VERSION += git_revision
|
||||
#VERSION += "-1"
|
||||
|
||||
#
|
||||
# Glade files
|
||||
@@ -217,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
|
||||
"© 2007-2018 The Gramps Developers"
|
||||
"© 2007-2023 The Gramps Developers"
|
||||
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
|
||||
"Management Programming System)\n"
|
||||
"is a personal genealogy program.")
|
||||
@@ -266,6 +274,7 @@ LONGOPTS = [
|
||||
"class=",
|
||||
"config=",
|
||||
"debug=",
|
||||
"default=",
|
||||
"display=",
|
||||
"disable-sound",
|
||||
"disable-crash-dialog",
|
||||
@@ -293,6 +302,7 @@ LONGOPTS = [
|
||||
"password=",
|
||||
"create=",
|
||||
"options=",
|
||||
"safe",
|
||||
"screen=",
|
||||
"show",
|
||||
"sm-client-id=",
|
||||
@@ -306,7 +316,7 @@ LONGOPTS = [
|
||||
"quiet",
|
||||
]
|
||||
|
||||
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syq"
|
||||
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syqSD:"
|
||||
|
||||
GRAMPS_UUID = uuid.UUID('516cd010-5a41-470f-99f8-eb22f1098ad6')
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import logging
|
||||
# Gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from ..utils.grampslocale import GrampsLocale
|
||||
from ..const import GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.sgettext
|
||||
# import prerequisites for localized handlers
|
||||
@@ -72,16 +73,20 @@ from . import _date_uk
|
||||
from . import _date_zh_CN
|
||||
from . import _date_zh_TW
|
||||
|
||||
# the following makes sure we use the LC_TIME value for date display & parsing
|
||||
dlocale = GrampsLocale(lang=glocale.calendar)
|
||||
|
||||
|
||||
# Initialize global parser
|
||||
try:
|
||||
if LANG in LANG_TO_PARSER:
|
||||
parser = LANG_TO_PARSER[LANG](plocale=glocale)
|
||||
parser = LANG_TO_PARSER[LANG](plocale=dlocale)
|
||||
else:
|
||||
parser = LANG_TO_PARSER[LANG_SHORT](plocale=glocale)
|
||||
parser = LANG_TO_PARSER[LANG_SHORT](plocale=dlocale)
|
||||
except:
|
||||
logging.warning(
|
||||
_("Date parser for '%s' not available, using default") % LANG)
|
||||
parser = LANG_TO_PARSER["C"](plocale=glocale)
|
||||
parser = LANG_TO_PARSER["C"](plocale=dlocale)
|
||||
|
||||
# Initialize global displayer
|
||||
try:
|
||||
@@ -92,13 +97,13 @@ except:
|
||||
|
||||
try:
|
||||
if LANG in LANG_TO_DISPLAY:
|
||||
displayer = LANG_TO_DISPLAY[LANG](val, blocale=glocale)
|
||||
displayer = LANG_TO_DISPLAY[LANG](val, blocale=dlocale)
|
||||
else:
|
||||
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=glocale)
|
||||
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=dlocale)
|
||||
except:
|
||||
logging.warning(
|
||||
_("Date displayer for '%s' not available, using default") % LANG)
|
||||
displayer = LANG_TO_DISPLAY["C"](val, blocale=glocale)
|
||||
displayer = LANG_TO_DISPLAY["C"](val, blocale=dlocale)
|
||||
|
||||
|
||||
# Import utility functions
|
||||
|
||||
@@ -124,12 +124,12 @@ class DateParserAR(DateParser):
|
||||
_span_2 = ['إلى']
|
||||
_range_1 = ['بين']
|
||||
_range_2 = ['و']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -166,12 +166,12 @@ class DateParserBG(DateParser):
|
||||
_span_2 = ['до']
|
||||
_range_1 = ['между']
|
||||
_range_2 = ['и']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -98,14 +98,14 @@ class DateParserCA(DateParser):
|
||||
DateParser.init_strings(self)
|
||||
_span_1 = ['des de']
|
||||
_span_2 = ['fins a']
|
||||
_range_1 = ['entre', 'ent\.', 'ent']
|
||||
_range_1 = ['entre', r'ent\.', 'ent']
|
||||
_range_2 = ['i']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -50,6 +50,15 @@ class DateParserCZ(DateParser):
|
||||
Converts a text string into a Date object
|
||||
"""
|
||||
|
||||
quality_to_int = {
|
||||
'přibližně' : Date.QUAL_ESTIMATED,
|
||||
'odhadem' : Date.QUAL_ESTIMATED,
|
||||
'odh.' : Date.QUAL_ESTIMATED,
|
||||
'vypočteno' : Date.QUAL_CALCULATED,
|
||||
'vypočtené' : Date.QUAL_CALCULATED,
|
||||
'vyp.' : Date.QUAL_CALCULATED,
|
||||
}
|
||||
|
||||
bce = ["před naším letopočtem", "před Kristem",
|
||||
"př. n. l.", "př. Kr."] + DateParser.bce
|
||||
|
||||
@@ -58,6 +67,17 @@ class DateParserCZ(DateParser):
|
||||
# bug 9739 grampslocale.py gets '%-d.%-m.%Y' -- makes it be '%/d.%/m.%Y'
|
||||
self.dhformat = self.dhformat.replace('/', '') # so counteract that
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(mezi)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Czech display
|
||||
|
||||
@@ -89,10 +89,11 @@ class DateParserDa(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._span = re.compile("(fra)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(mellem)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(fra)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(mellem)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -51,9 +51,9 @@ class DateParserDE(DateParser):
|
||||
# Always add german and austrian name variants no matter what the current
|
||||
# locale is
|
||||
month_to_int["januar"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["jänner"] = 1
|
||||
month_to_int["jän"] = 1
|
||||
month_to_int["jän"] = 1
|
||||
|
||||
# Add other common latin,
|
||||
|
||||
@@ -121,14 +121,14 @@ class DateParserDE(DateParser):
|
||||
# local and historical variants
|
||||
|
||||
month_to_int["jenner"] = 1
|
||||
month_to_int["feber"] = 2
|
||||
month_to_int["merz"] = 3
|
||||
month_to_int["augst"] = 8
|
||||
month_to_int["7ber"] = 9
|
||||
month_to_int["8ber"] = 10
|
||||
month_to_int["9ber"] = 11
|
||||
month_to_int["10ber"] = 12
|
||||
month_to_int["xber"] = 12
|
||||
month_to_int["feber"] = 2
|
||||
month_to_int["merz"] = 3
|
||||
month_to_int["augst"] = 8
|
||||
month_to_int["7ber"] = 9
|
||||
month_to_int["8ber"] = 10
|
||||
month_to_int["9ber"] = 11
|
||||
month_to_int["10ber"] = 12
|
||||
month_to_int["xber"] = 12
|
||||
|
||||
# old german names
|
||||
|
||||
@@ -248,14 +248,16 @@ class DateParserDE(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._span = re.compile("(von|vom)\s+(?P<start>.+)\s+(bis)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("zwischen\s+(?P<start>.+)\s+und\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(von|vom)\s+(?P<start>.+)\s+(bis)\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"zwischen\s+(?P<start>.+)\s+und\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._text2 = re.compile(
|
||||
r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile(
|
||||
r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -116,14 +116,14 @@ class DateParserEL(DateParser):
|
||||
DateParser.init_strings(self)
|
||||
_span_1 = ['από']
|
||||
_span_2 = ['έως']
|
||||
_range_1 = ['μετ', 'μετ\.', 'μεταξύ']
|
||||
_range_1 = ['μετ', r'μετ\.', 'μεταξύ']
|
||||
_range_2 = ['και']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -97,14 +97,14 @@ class DateParserES(DateParser):
|
||||
DateParser.init_strings(self)
|
||||
_span_1 = ['de']
|
||||
_span_2 = ['a']
|
||||
_range_1 = ['entre', 'ent\.', 'ent']
|
||||
_range_1 = ['entre', r'ent\.', 'ent']
|
||||
_range_2 = ['y']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)), re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -98,12 +98,12 @@ class DateParserFI(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._text2 = re.compile('(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._span = re.compile("(?P<start>.+)\s+(-)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._span = re.compile(r"(?P<start>.+)\s+(-)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
"(vuosien\s*)?(?P<start>.+)\s+ja\s+(?P<stop>.+)\s+välillä",
|
||||
r"(vuosien\s*)?(?P<start>.+)\s+ja\s+(?P<stop>.+)\s+välillä",
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#
|
||||
|
||||
# Croatian version 2008 by Josip
|
||||
# Croatian version 2018 by Milo
|
||||
|
||||
"""
|
||||
Croatian-specific classes for parsing and displaying dates.
|
||||
@@ -51,13 +52,15 @@ from ._datehandler import register_datehandler
|
||||
#-------------------------------------------------------------------------
|
||||
class DateParserHR(DateParser):
|
||||
modifier_to_int = {
|
||||
'prije' : Date.MOD_BEFORE,
|
||||
'prije' : Date.MOD_BEFORE,
|
||||
'pr. ' : Date.MOD_BEFORE,
|
||||
'poslije' : Date.MOD_AFTER,
|
||||
'po. ' : Date.MOD_AFTER,
|
||||
'okolo' : Date.MOD_ABOUT,
|
||||
'ok. ' : Date.MOD_ABOUT,
|
||||
|
||||
'poslije' : Date.MOD_AFTER,
|
||||
'po. ' : Date.MOD_AFTER,
|
||||
'nakon' : Date.MOD_AFTER,
|
||||
'na. ' : Date.MOD_AFTER,
|
||||
'oko' : Date.MOD_ABOUT,
|
||||
'okolo' : Date.MOD_ABOUT,
|
||||
'ok. ' : Date.MOD_ABOUT,
|
||||
}
|
||||
|
||||
quality_to_int = {
|
||||
@@ -75,19 +78,27 @@ class DateParserHR(DateParser):
|
||||
compiles regular expression strings for matching dates
|
||||
"""
|
||||
DateParser.init_strings(self)
|
||||
#~ DateParser.calendar_to_int.update({
|
||||
#~ 'персидский' : Date.CAL_PERSIAN,
|
||||
#~ 'п' : Date.CAL_PERSIAN,
|
||||
#~ })
|
||||
|
||||
# match 'Day. MONTH year.' format with or without dots
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
|
||||
# match Day.Month.Year.
|
||||
self._numeric = re.compile(
|
||||
r"((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
|
||||
|
||||
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
|
||||
_span_1 = ['od']
|
||||
_span_2 = ['do']
|
||||
_range_1 = ['između']
|
||||
_range_2 = ['i']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -105,11 +116,35 @@ class DateDisplayHR(DateDisplay):
|
||||
|
||||
display = DateDisplay.display_formatted
|
||||
|
||||
def format_short_month_year(self, month, year, inflect, short_months):
|
||||
""" Allow a subclass to modify the year, e.g. add a period """
|
||||
if not hasattr(short_months[1], 'f'): # not a Lexeme: no inflection
|
||||
return "{short_month} {year}.".format(
|
||||
short_month = short_months[month], year = year)
|
||||
return self.FORMATS_short_month_year[inflect].format(
|
||||
short_month = short_months[month], year = year)
|
||||
|
||||
def _get_localized_year(self, year):
|
||||
""" Allow a subclass to modify the year, e.g. add a period """
|
||||
return year + '.'
|
||||
|
||||
# FIXME probably there should be a Croatian-specific "formats" (and this
|
||||
# ("American comma") format (and dd_dformat03 too) should be eliminated)
|
||||
def dd_dformat02(self, date_val, inflect, long_months):
|
||||
""" month_name day, year """
|
||||
return DateDisplay.dd_dformat02(
|
||||
self, date_val, inflect, long_months).replace(' .', '')
|
||||
|
||||
def dd_dformat04(self, date_val, inflect, long_months):
|
||||
""" day month_name year """
|
||||
return DateDisplay.dd_dformat04(
|
||||
self, date_val, inflect, long_months).replace(' .', '')
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Register classes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
register_datehandler(
|
||||
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d.%m.%Y',)),
|
||||
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d. %m. %Y.',)),
|
||||
DateParserHR, DateDisplayHR)
|
||||
@@ -55,7 +55,7 @@ class DateParserHU(DateParser):
|
||||
month_to_int["-"]=0 #to make the Zero month to work
|
||||
|
||||
month_to_int["január"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["jan."] = 1
|
||||
month_to_int["I"] = 1
|
||||
# month_to_int["i"] = 1
|
||||
@@ -64,67 +64,67 @@ class DateParserHU(DateParser):
|
||||
month_to_int["feb"] = 2
|
||||
month_to_int["feb."] = 2
|
||||
month_to_int["II"] = 2
|
||||
# month_to_int["ii"] = 2
|
||||
# month_to_int["ii"] = 2
|
||||
|
||||
month_to_int["március"] = 3
|
||||
month_to_int["márc"] = 3
|
||||
month_to_int["márc."] = 3
|
||||
month_to_int["III"] = 3
|
||||
# month_to_int["iii"] = 3
|
||||
# month_to_int["iii"] = 3
|
||||
|
||||
month_to_int["április"] = 4
|
||||
month_to_int["ápr"] = 4
|
||||
month_to_int["ápr."] = 4
|
||||
month_to_int["IV"] = 4
|
||||
# month_to_int["iv"] = 4
|
||||
month_to_int["IV"] = 4
|
||||
# month_to_int["iv"] = 4
|
||||
|
||||
month_to_int["május"] = 5
|
||||
month_to_int["máj"] = 5
|
||||
month_to_int["máj."] = 5
|
||||
month_to_int["V"] = 5
|
||||
# month_to_int["v"] = 5
|
||||
month_to_int["V"] = 5
|
||||
# month_to_int["v"] = 5
|
||||
|
||||
month_to_int["június"] = 6
|
||||
month_to_int["jún"] = 6
|
||||
month_to_int["jún."] = 6
|
||||
month_to_int["VI"] = 6
|
||||
# month_to_int["vi"] = 6
|
||||
month_to_int["VI"] = 6
|
||||
# month_to_int["vi"] = 6
|
||||
|
||||
month_to_int["július"] = 7
|
||||
month_to_int["júl"] = 7
|
||||
month_to_int["júl."] = 7
|
||||
month_to_int["VII"] = 7
|
||||
# month_to_int["vii"] = 7
|
||||
month_to_int["július"] = 7
|
||||
month_to_int["júl"] = 7
|
||||
month_to_int["júl."] = 7
|
||||
month_to_int["VII"] = 7
|
||||
# month_to_int["vii"] = 7
|
||||
|
||||
month_to_int["augusztus"] = 8
|
||||
month_to_int["aug"] = 8
|
||||
month_to_int["aug."] = 8
|
||||
month_to_int["VIII"] = 8
|
||||
# month_to_int["viii"] = 8
|
||||
month_to_int["augusztus"] = 8
|
||||
month_to_int["aug"] = 8
|
||||
month_to_int["aug."] = 8
|
||||
month_to_int["VIII"] = 8
|
||||
# month_to_int["viii"] = 8
|
||||
|
||||
month_to_int["szeptember"] = 9
|
||||
month_to_int["szept"] = 9
|
||||
month_to_int["szeptember"] = 9
|
||||
month_to_int["szept"] = 9
|
||||
month_to_int["szept."] = 9
|
||||
month_to_int["IX"] = 9
|
||||
# month_to_int["ix"] = 9
|
||||
month_to_int["IX"] = 9
|
||||
# month_to_int["ix"] = 9
|
||||
|
||||
month_to_int["október"] = 10
|
||||
month_to_int["okt"] = 10
|
||||
month_to_int["okt."] = 10
|
||||
month_to_int["X"] = 10
|
||||
# month_to_int["x"] = 10
|
||||
month_to_int["október"] = 10
|
||||
month_to_int["okt"] = 10
|
||||
month_to_int["okt."] = 10
|
||||
month_to_int["X"] = 10
|
||||
# month_to_int["x"] = 10
|
||||
|
||||
month_to_int["november"] = 11
|
||||
month_to_int["nov"] = 11
|
||||
month_to_int["november"] = 11
|
||||
month_to_int["nov"] = 11
|
||||
month_to_int["nov."] = 11
|
||||
month_to_int["XI"] = 11
|
||||
# month_to_int["xi"] = 11
|
||||
month_to_int["XI"] = 11
|
||||
# month_to_int["xi"] = 11
|
||||
|
||||
month_to_int["december"] = 12
|
||||
month_to_int["dec"] = 12
|
||||
month_to_int["dec."] = 12
|
||||
month_to_int["XII"] = 12
|
||||
# month_to_int["xii"] = 12
|
||||
month_to_int["december"] = 12
|
||||
month_to_int["dec"] = 12
|
||||
month_to_int["dec."] = 12
|
||||
month_to_int["XII"] = 12
|
||||
# month_to_int["xii"] = 12
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
@@ -228,19 +228,19 @@ class DateParserHU(DateParser):
|
||||
DateParser.init_strings(self)
|
||||
|
||||
self._numeric = re.compile(
|
||||
"((\d+)[/\.])?\s*((\d+)[/\.])?\s*(\d+)[/\. ]?$")
|
||||
r"((\d+)[/\.])?\s*((\d+)[/\.])?\s*(\d+)[/\. ]?$")
|
||||
# this next RE has the (possibly-slashed) year at the string's start
|
||||
self._text2 = re.compile('((\d+)(/\d+)?\.)?\s+?%s\.?\s*(\d+\.)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
_span_1 = ['-tó\(ő\)l', '-tól', '-től']
|
||||
self._text2 = re.compile(r'((\d+)(/\d+)?\.)?\s+?%s\.?\s*(\d+\.)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
_span_1 = [r'-tó\(ő\)l', '-tól', '-től']
|
||||
_span_2 = ['-ig']
|
||||
_range_1 = ['és']
|
||||
_range_2 = ['között']
|
||||
self._span = re.compile("(?P<start>.+)(%s)\s+(?P<stop>.+)(%s)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(?P<start>.+)\s+(%s)\s+(?P<stop>.+)\s+(%s)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(?P<start>.+)(%s)\s+(?P<stop>.+)(%s)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(?P<start>.+)\s+(%s)\s+(?P<stop>.+)\s+(%s)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
|
||||
|
||||
@@ -90,22 +90,23 @@ class DateParserIs(DateParser):
|
||||
}
|
||||
|
||||
def dhformat_changed(self):
|
||||
self._dhformat_parse = re.compile(".*%(\S).*%(\S).*%(\S).*%(\S).*")
|
||||
self._dhformat_parse = re.compile(r".*%(\S).*%(\S).*%(\S).*%(\S).*")
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
|
||||
# match 'day. month year' format
|
||||
self._text2 = re.compile('(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
# match 'short-day day.month year' format
|
||||
short_day_str = '(' + '|'.join(self._ds.short_days[1:]) + ')'
|
||||
self._numeric = re.compile("%s\s*((\d+)[\.]\s*)?((\d+)\s*)?(\d+)\s*$"
|
||||
self._numeric = re.compile(r"%s\s*((\d+)[\.]\s*)?((\d+)\s*)?(\d+)\s*$"
|
||||
% short_day_str, re.IGNORECASE)
|
||||
self._span = re.compile("(frá)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(milli)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(frá)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(milli)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -185,7 +186,8 @@ class DateDisplayIs(DateDisplay):
|
||||
text, scal)
|
||||
|
||||
def _get_weekday(self, date_val):
|
||||
if date_val[0] == 0 or date_val[1] == 0: # no day or no month or both
|
||||
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
|
||||
or date_val[2] > datetime.MAXYEAR): # bug 10815
|
||||
return ''
|
||||
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
|
||||
return self.short_days[((w_day.weekday() + 1) % 7) + 1]
|
||||
|
||||
@@ -96,12 +96,12 @@ class DateParserIT(DateParser):
|
||||
_span_2 = ['al', 'a']
|
||||
_range_1 = ['tra', 'fra']
|
||||
_range_2 = ['e']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -166,13 +166,13 @@ class DateParserJA(DateParser):
|
||||
_span_2 = ['まで', '']
|
||||
_range_1 = ['から', 'と', '~', '〜']
|
||||
_range_2 = ['までの間', 'の間']
|
||||
self._span = re.compile("(?P<start>.+)(%s)(?P<stop>\d+)(%s)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(?P<start>.+)(%s)(?P<stop>.+)(%s)" %
|
||||
self._span = re.compile(r"(?P<start>.+)(%s)(?P<stop>\d+)(%s)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(?P<start>.+)(%s)(?P<stop>.+)(%s)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -131,18 +131,19 @@ class DateParserLT(DateParser):
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
# this next RE has the (possibly-slashed) year at the string's start
|
||||
self._text2 = re.compile('((\d+)(/\d+)?)?\s+?m\.\s+%s\s*(\d+)?\s*d?\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._text2 = re.compile(
|
||||
r'((\d+)(/\d+)?)?\s+?m\.\s+%s\s*(\d+)?\s*d?\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
_span_1 = ['nuo']
|
||||
_span_2 = ['iki']
|
||||
_range_1 = ['tarp']
|
||||
_range_2 = ['ir']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)), re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -58,6 +58,7 @@ class DateParserNb(DateParser):
|
||||
'innen' : Date.MOD_BEFORE,
|
||||
'etter' : Date.MOD_AFTER,
|
||||
'omkring' : Date.MOD_ABOUT,
|
||||
'omtrent' : Date.MOD_ABOUT,
|
||||
'ca' : Date.MOD_ABOUT
|
||||
}
|
||||
|
||||
@@ -89,12 +90,13 @@ class DateParserNb(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
# match day. month year
|
||||
self._numeric = re.compile("((\d+)[\.])?\s*((\d+))?\s*(\d+)$")
|
||||
self._span = re.compile("(fra)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(mellom)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._numeric = re.compile(
|
||||
r"((\d+)[/\.\s]\s*)?((\d+)[/\.\-\s]\s*)?(\d+)\s*$")
|
||||
self._span = re.compile(
|
||||
r"(fra)?\s*(?P<start>.+)\s*(til|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(mellom)\s+(?P<start>.+)\s+og\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -173,6 +175,10 @@ class DateDisplayNb(DateDisplay):
|
||||
return "%s%s%s%s" % (qual_str, self._mod_str[mod],
|
||||
text, scal)
|
||||
|
||||
def dd_dformat01(self, date_val):
|
||||
""" numerical -- for Norwegian dates """
|
||||
return DateDisplay.dd_dformat01(self, date_val).lstrip()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Register classes
|
||||
|
||||
@@ -57,61 +57,63 @@ 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,
|
||||
'na' : Date.MOD_AFTER,
|
||||
'tegen' : Date.MOD_ABOUT,
|
||||
'om' : Date.MOD_ABOUT,
|
||||
'rond' : Date.MOD_ABOUT,
|
||||
'circa' : Date.MOD_ABOUT,
|
||||
'ca.' : Date.MOD_ABOUT,
|
||||
'voor' : Date.MOD_BEFORE,
|
||||
'na' : Date.MOD_AFTER,
|
||||
'ca.' : Date.MOD_ABOUT,
|
||||
'circa' : Date.MOD_ABOUT,
|
||||
'om' : Date.MOD_ABOUT,
|
||||
'omstreeks' : Date.MOD_ABOUT,
|
||||
'ongeveer' : Date.MOD_ABOUT,
|
||||
'rond' : Date.MOD_ABOUT,
|
||||
'tegen' : Date.MOD_ABOUT,
|
||||
}
|
||||
|
||||
calendar_to_int = {
|
||||
'gregoriaans' : Date.CAL_GREGORIAN,
|
||||
'greg.' : Date.CAL_GREGORIAN,
|
||||
'juliaans' : Date.CAL_JULIAN,
|
||||
'jul.' : Date.CAL_JULIAN,
|
||||
'hebreeuws' : Date.CAL_HEBREW,
|
||||
'hebr.' : Date.CAL_HEBREW,
|
||||
'islamitisch' : Date.CAL_ISLAMIC,
|
||||
'isl.' : Date.CAL_ISLAMIC,
|
||||
'franse republiek': Date.CAL_FRENCH,
|
||||
'fran.' : Date.CAL_FRENCH,
|
||||
'persisch' : Date.CAL_PERSIAN,
|
||||
'zweeds' : Date.CAL_SWEDISH,
|
||||
'z' : Date.CAL_SWEDISH,
|
||||
'gregoriaans' : Date.CAL_GREGORIAN,
|
||||
'greg.' : Date.CAL_GREGORIAN,
|
||||
'juliaans' : Date.CAL_JULIAN,
|
||||
'jul.' : Date.CAL_JULIAN,
|
||||
'hebreeuws' : Date.CAL_HEBREW,
|
||||
'hebr.' : Date.CAL_HEBREW,
|
||||
'islamitisch' : Date.CAL_ISLAMIC,
|
||||
'isl.' : Date.CAL_ISLAMIC,
|
||||
'frans republiekeins' : Date.CAL_FRENCH,
|
||||
'fran.' : Date.CAL_FRENCH,
|
||||
'persisch' : Date.CAL_PERSIAN,
|
||||
'zweeds' : Date.CAL_SWEDISH,
|
||||
'z' : Date.CAL_SWEDISH,
|
||||
}
|
||||
|
||||
quality_to_int = {
|
||||
'geschat' : Date.QUAL_ESTIMATED,
|
||||
'geschat' : Date.QUAL_ESTIMATED,
|
||||
'gesch.' : Date.QUAL_ESTIMATED,
|
||||
'berekend' : Date.QUAL_CALCULATED,
|
||||
'berekend' : Date.QUAL_CALCULATED,
|
||||
'ber.' : Date.QUAL_CALCULATED,
|
||||
}
|
||||
|
||||
@@ -119,16 +121,14 @@ class DateParserNL(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._span = re.compile("(van)\s+(?P<start>.+)\s+(tot)\s+(?P<stop>.+)",
|
||||
self._span = re.compile(
|
||||
r"(van)\s+(?P<start>.+)\s+(tot)\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._range = re.compile(r"tussen\s+(?P<start>.+)\s+en\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("tussen\s+(?P<start>.+)\s+en\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -149,17 +149,17 @@ class DateDisplayNL(DateDisplay):
|
||||
|
||||
calendar = (
|
||||
"", "juliaans", "hebreeuws",
|
||||
"franse republiek", "persisch", "islamitisch",
|
||||
"frans republikeins", "persisch", "islamitisch",
|
||||
"zweeds" )
|
||||
|
||||
_mod_str = ("", "voor ", "na ", "rond ", "", "", "")
|
||||
_mod_str = ("", "voor ", "na ", "omstreeks ", "", "", "")
|
||||
|
||||
_qual_str = ("", "geschat ", "berekend ")
|
||||
|
||||
_bce_str = "%s v. Chr."
|
||||
|
||||
formats = (
|
||||
"JJJJ-MM-DD (ISO)", "Numerisch DD/MM/JJ", "Maand Dag, Jaar",
|
||||
"JJJJ-MM-DD (ISO)", "Numeriek DD/MM/JJJJ", "Maand Dag, Jaar",
|
||||
"Mnd. Dag Jaar", "Dag Maand Jaar", "Dag Mnd. Jaar"
|
||||
)
|
||||
# this definition must agree with its "_display_gregorian" method
|
||||
|
||||
@@ -54,38 +54,38 @@ class DateParserPL(DateParser):
|
||||
month_to_int["styczeń"] = 1
|
||||
month_to_int["sty"] = 1
|
||||
month_to_int["I"] = 1
|
||||
month_to_int["luty"] = 2
|
||||
month_to_int["lut"] = 2
|
||||
month_to_int["II"] = 2
|
||||
month_to_int["marzec"] = 3
|
||||
month_to_int["mar"] = 3
|
||||
month_to_int["III"] = 3
|
||||
month_to_int["kwiecień"] = 4
|
||||
month_to_int["kwi"] = 4
|
||||
month_to_int["IV"] = 4
|
||||
month_to_int["maj"] = 5
|
||||
month_to_int["V"] = 5
|
||||
month_to_int["czerwiec"] = 6
|
||||
month_to_int["cze"] = 6
|
||||
month_to_int["VI"] = 6
|
||||
month_to_int["lipiec"] = 7
|
||||
month_to_int["lip"] = 7
|
||||
month_to_int["VII"] = 7
|
||||
month_to_int["sierpień"] = 8
|
||||
month_to_int["sie"] = 8
|
||||
month_to_int["VIII"] = 8
|
||||
month_to_int["wrzesień"] = 9
|
||||
month_to_int["wrz"] = 9
|
||||
month_to_int["IX"] = 9
|
||||
month_to_int["październik"] = 10
|
||||
month_to_int["paź"] = 10
|
||||
month_to_int["X"] = 10
|
||||
month_to_int["listopad"] = 11
|
||||
month_to_int["lis"] = 11
|
||||
month_to_int["XI"] = 11
|
||||
month_to_int["grudzień"] = 12
|
||||
month_to_int["gru"] = 12
|
||||
month_to_int["XII"] = 12
|
||||
month_to_int["luty"] = 2
|
||||
month_to_int["lut"] = 2
|
||||
month_to_int["II"] = 2
|
||||
month_to_int["marzec"] = 3
|
||||
month_to_int["mar"] = 3
|
||||
month_to_int["III"] = 3
|
||||
month_to_int["kwiecień"] = 4
|
||||
month_to_int["kwi"] = 4
|
||||
month_to_int["IV"] = 4
|
||||
month_to_int["maj"] = 5
|
||||
month_to_int["V"] = 5
|
||||
month_to_int["czerwiec"] = 6
|
||||
month_to_int["cze"] = 6
|
||||
month_to_int["VI"] = 6
|
||||
month_to_int["lipiec"] = 7
|
||||
month_to_int["lip"] = 7
|
||||
month_to_int["VII"] = 7
|
||||
month_to_int["sierpień"] = 8
|
||||
month_to_int["sie"] = 8
|
||||
month_to_int["VIII"] = 8
|
||||
month_to_int["wrzesień"] = 9
|
||||
month_to_int["wrz"] = 9
|
||||
month_to_int["IX"] = 9
|
||||
month_to_int["październik"] = 10
|
||||
month_to_int["paź"] = 10
|
||||
month_to_int["X"] = 10
|
||||
month_to_int["listopad"] = 11
|
||||
month_to_int["lis"] = 11
|
||||
month_to_int["XI"] = 11
|
||||
month_to_int["grudzień"] = 12
|
||||
month_to_int["gru"] = 12
|
||||
month_to_int["XII"] = 12
|
||||
# Alternative forms: declined nouns
|
||||
month_to_int["stycznia"] = 1
|
||||
month_to_int["lutego"] = 2
|
||||
@@ -156,13 +156,16 @@ class DateParserPL(DateParser):
|
||||
|
||||
def init_strings(self):
|
||||
DateParser.init_strings(self)
|
||||
self._span = re.compile("(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
# Also handle a common mistakes
|
||||
self._range = re.compile("((?:po)?mi(?:ę|e)dzy)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._text2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"((?:po)?mi(?:ę|e)dzy)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -102,13 +102,13 @@ class DateParserPT(DateParser):
|
||||
DateParser.init_strings(self)
|
||||
_span_1 = ['de']
|
||||
_span_2 = ['a']
|
||||
_range_1 = ['entre','ent\.','ent']
|
||||
_range_1 = ['entre', r'ent\.', 'ent']
|
||||
_range_2 = ['e']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -94,13 +94,13 @@ class DateParserRU(DateParser):
|
||||
_span_1 = ['с', 'от']
|
||||
#_span_2 = ['по', 'до'] # <-- clashes with bce parsing :-(
|
||||
_span_2 = ['по']
|
||||
_range_1 = ['между', 'меж\.', 'меж']
|
||||
_range_1 = ['между', r'меж\.', 'меж']
|
||||
_range_2 = ['и']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -132,6 +132,11 @@ class DateDisplayRU(DateDisplay):
|
||||
inflect, long_months)
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
elif not hasattr(long_months[date_val[1]], 'f'): # not a Lexeme
|
||||
return "{day:d} {long_month} {year}".format(
|
||||
day = date_val[0],
|
||||
long_month = long_months[date_val[1]],
|
||||
year = year)
|
||||
else:
|
||||
return "{day:d} {long_month.f[Р]} {year}".format(
|
||||
day = date_val[0],
|
||||
@@ -151,6 +156,11 @@ class DateDisplayRU(DateDisplay):
|
||||
inflect, short_months)
|
||||
elif date_val[1] == 0: # month is zero but day is not (see 8477)
|
||||
return self.display_iso(date_val)
|
||||
elif not hasattr(short_months[date_val[1]], 'f'): # not a Lexeme
|
||||
return "{day:d} {short_month} {year}".format(
|
||||
day = date_val[0],
|
||||
short_month = short_months[date_val[1]],
|
||||
year = year)
|
||||
else:
|
||||
return "{day:d} {short_month.f[Р]} {year}".format(
|
||||
day = date_val[0],
|
||||
|
||||
@@ -86,11 +86,11 @@ class DateParserSK(DateParser):
|
||||
_span_2 = ['do']
|
||||
_range_1 = ['medzi']
|
||||
_range_2 = ['a']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -88,18 +88,18 @@ class DateParserSL(DateParser):
|
||||
|
||||
DateParser.init_strings(self)
|
||||
# match 'Day. MONTH year.' format with or without dots
|
||||
self._text2 = re.compile('(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
# match Day.Month.Year.
|
||||
self._numeric = re.compile("((\d+)[/\.-])?\s*((\d+)[/\.-])?\s*(\d+)\.?$")
|
||||
self._numeric = re.compile(
|
||||
r"((\d+)[/\.-])?\s*((\d+)[/\.-])?\s*(\d+)\.?$")
|
||||
|
||||
self._span = re.compile("od\s+(?P<start>.+)\s+do\s+(?P<stop>.+)",
|
||||
self._span = re.compile(r"od\s+(?P<start>.+)\s+do\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
"med\s+(?P<start>.+)\s+in\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'\
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
r"med\s+(?P<start>.+)\s+in\s+(?P<stop>.+)", re.IGNORECASE)
|
||||
self._jtext2 = re.compile(r'(\d+)?.?\s+?%s\s*((\d+)(/\d+)?)?'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -54,95 +54,95 @@ class DateParserSR(DateParser):
|
||||
"""
|
||||
month_to_int = DateParser.month_to_int
|
||||
|
||||
month_to_int["januar"] = 1
|
||||
month_to_int["januar"] = 1
|
||||
month_to_int["januara"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["јан"] = 1
|
||||
month_to_int["jan"] = 1
|
||||
month_to_int["јан"] = 1
|
||||
month_to_int["јануара"] = 1
|
||||
month_to_int["јануар"] = 1
|
||||
month_to_int["i"] = 1
|
||||
month_to_int["јануар"] = 1
|
||||
month_to_int["i"] = 1
|
||||
|
||||
month_to_int["februar"] = 2
|
||||
month_to_int["februar"] = 2
|
||||
month_to_int["februara"] = 2
|
||||
month_to_int["feb"] = 2
|
||||
month_to_int["феб"] = 2
|
||||
month_to_int["фебруар"] = 2
|
||||
month_to_int["feb"] = 2
|
||||
month_to_int["феб"] = 2
|
||||
month_to_int["фебруар"] = 2
|
||||
month_to_int["фебруара"] = 2
|
||||
month_to_int["ii"] = 2
|
||||
month_to_int["ii"] = 2
|
||||
|
||||
month_to_int["mart"] = 3
|
||||
month_to_int["mart"] = 3
|
||||
month_to_int["marta"] = 3
|
||||
month_to_int["mar"] = 3
|
||||
month_to_int["мар"] = 3
|
||||
month_to_int["март"] = 3
|
||||
month_to_int["mar"] = 3
|
||||
month_to_int["мар"] = 3
|
||||
month_to_int["март"] = 3
|
||||
month_to_int["марта"] = 3
|
||||
month_to_int["iii"] = 3
|
||||
month_to_int["iii"] = 3
|
||||
|
||||
month_to_int["april"] = 4
|
||||
month_to_int["april"] = 4
|
||||
month_to_int["aprila"] = 4
|
||||
month_to_int["apr"] = 4
|
||||
month_to_int["апр"] = 4
|
||||
month_to_int["април"] = 4
|
||||
month_to_int["apr"] = 4
|
||||
month_to_int["апр"] = 4
|
||||
month_to_int["април"] = 4
|
||||
month_to_int["априла"] = 4
|
||||
month_to_int["iv"] = 4
|
||||
month_to_int["iv"] = 4
|
||||
|
||||
month_to_int["maj"] = 5
|
||||
month_to_int["maj"] = 5
|
||||
month_to_int["maja"] = 5
|
||||
month_to_int["мај"] = 5
|
||||
month_to_int["мај"] = 5
|
||||
month_to_int["маја"] = 5
|
||||
month_to_int["v"] = 5
|
||||
month_to_int["v"] = 5
|
||||
|
||||
month_to_int["jun"] = 6
|
||||
month_to_int["jun"] = 6
|
||||
month_to_int["juna"] = 6
|
||||
month_to_int["јун"] = 6
|
||||
month_to_int["јун"] = 6
|
||||
month_to_int["јуна"] = 6
|
||||
month_to_int["vi"] = 6
|
||||
month_to_int["vi"] = 6
|
||||
|
||||
month_to_int["jul"] = 7
|
||||
month_to_int["jul"] = 7
|
||||
month_to_int["jula"] = 7
|
||||
month_to_int["јул"] = 7
|
||||
month_to_int["јул"] = 7
|
||||
month_to_int["јула"] = 7
|
||||
month_to_int["vii"] = 7
|
||||
month_to_int["vii"] = 7
|
||||
|
||||
month_to_int["avgust"] = 8
|
||||
month_to_int["avgust"] = 8
|
||||
month_to_int["avgusta"] = 8
|
||||
month_to_int["avg"] = 8
|
||||
month_to_int["авг"] = 8
|
||||
month_to_int["август"] = 8
|
||||
month_to_int["avg"] = 8
|
||||
month_to_int["авг"] = 8
|
||||
month_to_int["август"] = 8
|
||||
month_to_int["августа"] = 8
|
||||
month_to_int["viii"] = 8
|
||||
month_to_int["viii"] = 8
|
||||
|
||||
month_to_int["septembar"] = 9
|
||||
month_to_int["septembra"] = 9
|
||||
month_to_int["sep"] = 9
|
||||
month_to_int["сеп"] = 9
|
||||
month_to_int["sep"] = 9
|
||||
month_to_int["сеп"] = 9
|
||||
month_to_int["септембар"] = 9
|
||||
month_to_int["септембра"] = 9
|
||||
month_to_int["ix"] = 9
|
||||
month_to_int["ix"] = 9
|
||||
|
||||
month_to_int["oktobar"] = 10
|
||||
month_to_int["oktobra"] = 10
|
||||
month_to_int["okt"] = 10
|
||||
month_to_int["окт"] = 10
|
||||
month_to_int["октобар"] = 10
|
||||
month_to_int["октобра"] = 10
|
||||
month_to_int["x"] = 10
|
||||
month_to_int["oktobar"] = 10
|
||||
month_to_int["oktobra"] = 10
|
||||
month_to_int["okt"] = 10
|
||||
month_to_int["окт"] = 10
|
||||
month_to_int["октобар"] = 10
|
||||
month_to_int["октобра"] = 10
|
||||
month_to_int["x"] = 10
|
||||
|
||||
month_to_int["novembar"] = 11
|
||||
month_to_int["novembra"] = 11
|
||||
month_to_int["nov"] = 11
|
||||
month_to_int["нов"] = 11
|
||||
month_to_int["новембар"] = 11
|
||||
month_to_int["новембра"] = 11
|
||||
month_to_int["xi"] = 11
|
||||
month_to_int["novembar"] = 11
|
||||
month_to_int["novembra"] = 11
|
||||
month_to_int["nov"] = 11
|
||||
month_to_int["нов"] = 11
|
||||
month_to_int["новембар"] = 11
|
||||
month_to_int["новембра"] = 11
|
||||
month_to_int["xi"] = 11
|
||||
|
||||
month_to_int["decembar"] = 12
|
||||
month_to_int["decembra"] = 12
|
||||
month_to_int["dec"] = 12
|
||||
month_to_int["дец"] = 12
|
||||
month_to_int["децембар"] = 12
|
||||
month_to_int["децембра"] = 12
|
||||
month_to_int["xii"] = 12
|
||||
month_to_int["decembar"] = 12
|
||||
month_to_int["decembra"] = 12
|
||||
month_to_int["dec"] = 12
|
||||
month_to_int["дец"] = 12
|
||||
month_to_int["децембар"] = 12
|
||||
month_to_int["децембра"] = 12
|
||||
month_to_int["xii"] = 12
|
||||
|
||||
modifier_to_int = {
|
||||
'pre' : Date.MOD_BEFORE,
|
||||
@@ -208,21 +208,22 @@ class DateParserSR(DateParser):
|
||||
"""
|
||||
DateParser.init_strings(self)
|
||||
# match 'Day. MONTH year.' format with or without dots
|
||||
self._text2 = re.compile('(\d+)?\.?\s*?%s\s*((\d+)(/\d+)?)?\.?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\s*((\d+)(/\d+)?)?\.?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
|
||||
# match Day.Month.Year.
|
||||
self._numeric = re.compile("((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
|
||||
self._numeric = re.compile(
|
||||
r"((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
|
||||
|
||||
_span_1 = ['od', 'од']
|
||||
_span_2 = ['do', 'до']
|
||||
_range_1 = ['između', 'између']
|
||||
_range_2 = ['i', 'и']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -95,14 +95,16 @@ class DateParserSv(DateParser):
|
||||
def init_strings(self):
|
||||
""" Define, in Swedish, span and range regular expressions"""
|
||||
DateParser.init_strings(self)
|
||||
self._numeric = re.compile("((\d+)/)?\s*((\d+)/)?\s*(\d+)[/ ]?$")
|
||||
self._numeric = re.compile(r"((\d+)/)?\s*((\d+)/)?\s*(\d+)[/ ]?$")
|
||||
# this next RE has the (possibly-slashed) year at the string's start
|
||||
self._text2 = re.compile('((\d+)(/\d+)?)?\s+?%s\s*(\d+)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._span = re.compile("(från)?\s*(?P<start>.+)\s*(till|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(mellan)\s+(?P<start>.+)\s+och\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._text2 = re.compile(r'((\d+)(/\d+)?)?\s+?%s\s*(\d+)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._span = re.compile(
|
||||
r"(från)?\s*(?P<start>.+)\s*(till|--|–)\s*(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(mellan)\s+(?P<start>.+)\s+och\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -108,14 +108,14 @@ class DateParserUK(DateParser):
|
||||
|
||||
_span_1 = ['з', 'від']
|
||||
# b.c.e. pattern also have "до" so skip "до н."
|
||||
_span_2 = ['по', 'до(?!\s+н)']
|
||||
_span_2 = ['по', r'до(?!\s+н)']
|
||||
_range_1 = ['між']
|
||||
_range_2 = ['і', 'та']
|
||||
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
self._span = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)"
|
||||
% ('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -124,13 +124,13 @@ class DateParserZH_CN(DateParser):
|
||||
_span_2 = ['至']
|
||||
_range_1 = ['介于']
|
||||
_range_2 = ['与']
|
||||
self._span = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
self._span = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -124,13 +124,13 @@ class DateParserZH_TW(DateParser):
|
||||
_span_2 = ['至']
|
||||
_range_1 = ['介於']
|
||||
_range_2 = ['與']
|
||||
self._span = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
self._span = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_span_1), '|'.join(_span_2)),
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(r"(%s)(?P<start>.+)(%s)(?P<stop>\d+)" %
|
||||
('|'.join(_range_1), '|'.join(_range_2)),
|
||||
re.IGNORECASE)
|
||||
self._numeric = re.compile("((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
self._numeric = re.compile(r"((\d+)年\s*)?((\d+)月\s*)?(\d+)?日?\s*$")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# Copyright (C) 2004-2006 Donald N. Allingham
|
||||
# Copyright (C) 2013 Vassilii Khachaturov
|
||||
# Copyright (C) 2014-2017 Paul Franklin
|
||||
# Copyright (C) 2014-2018 Paul Franklin
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -570,6 +570,7 @@ class DateDisplay:
|
||||
def _get_short_weekday(self, date_val):
|
||||
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
|
||||
or date_val[1] == 13 # Hebrew has 13 months
|
||||
or date_val[2] > datetime.MAXYEAR # bug 10815
|
||||
or date_val[2] < 0): # B.C.E. date
|
||||
return ''
|
||||
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
|
||||
@@ -578,11 +579,16 @@ class DateDisplay:
|
||||
def _get_long_weekday(self, date_val):
|
||||
if (date_val[0] == 0 or date_val[1] == 0 # no day or no month or both
|
||||
or date_val[1] == 13 # Hebrew has 13 months
|
||||
or date_val[2] > datetime.MAXYEAR # bug 10815
|
||||
or date_val[2] < 0): # B.C.E. date
|
||||
return ''
|
||||
w_day = datetime.date(date_val[2], date_val[1], date_val[0]) # y, m, d
|
||||
return self.long_days[((w_day.weekday() + 1) % 7) + 1]
|
||||
|
||||
def _get_localized_year(self, year):
|
||||
""" Allow a subclass to modify the year, e.g. add a period """
|
||||
return year
|
||||
|
||||
def dd_dformat01(self, date_val):
|
||||
"""
|
||||
numerical
|
||||
@@ -594,19 +600,23 @@ class DateDisplay:
|
||||
return self.display_iso(date_val)
|
||||
else:
|
||||
if date_val[0] == date_val[1] == 0:
|
||||
return str(date_val[2])
|
||||
return self._get_localized_year(str(date_val[2]))
|
||||
else:
|
||||
value = self.dhformat.replace('%m', str(date_val[1]))
|
||||
# some locales have %b for the month, e.g. ar_EG, is_IS, nb_NO
|
||||
# so it would be "Jan" but as it's "numeric" I'll make it "1"
|
||||
value = value.replace('%b', str(date_val[1]))
|
||||
# some locales have %B for the month, e.g. ta_IN
|
||||
# so it would be "January" but as it's "numeric" I'll make it 1
|
||||
value = value.replace('%B', str(date_val[1]))
|
||||
# some locales have %a for the abbreviated day, e.g. is_IS
|
||||
value = value.replace('%a', self._get_short_weekday(date_val))
|
||||
# some locales have %A for the long/full day, e.g. ta_IN
|
||||
value = value.replace('%A', self._get_long_weekday(date_val))
|
||||
if '%b' in value or '%B' in value:
|
||||
# some locales have %b for the month (ar_EG, is_IS, nb_NO)
|
||||
# so it would be "Jan" but as it's "numeric" make it "1"
|
||||
value = value.replace('%b', str(date_val[1]))
|
||||
# some locales have %B for the month, e.g. ta_IN
|
||||
# so it would be "January" but as it's "numeric" make it 1
|
||||
value = value.replace('%B', str(date_val[1]))
|
||||
if '%a' in value or '%A' in value:
|
||||
# some locales have %a for the abbreviated day, e.g. is_IS
|
||||
value = value.replace('%a',
|
||||
self._get_short_weekday(date_val))
|
||||
# some locales have %A for the long/full day, e.g. ta_IN
|
||||
value = value.replace('%A',
|
||||
self._get_long_weekday(date_val))
|
||||
if date_val[0] == 0: # ignore the zero day and its delimiter
|
||||
i_day = value.find('%d')
|
||||
if len(value) == i_day + 2: # delimiter is left of the day
|
||||
@@ -628,7 +638,7 @@ class DateDisplay:
|
||||
year = self._slash_year(date_val[2], date_val[3])
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
return year
|
||||
return self._get_localized_year(year)
|
||||
else:
|
||||
return self.format_long_month_year(date_val[1], year,
|
||||
inflect, long_months)
|
||||
@@ -654,7 +664,7 @@ class DateDisplay:
|
||||
year = self._slash_year(date_val[2], date_val[3])
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
return year
|
||||
return self._get_localized_year(year)
|
||||
else:
|
||||
return self.format_short_month_year(date_val[1], year,
|
||||
inflect, short_months)
|
||||
@@ -680,7 +690,7 @@ class DateDisplay:
|
||||
year = self._slash_year(date_val[2], date_val[3])
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
return year
|
||||
return self._get_localized_year(year)
|
||||
else:
|
||||
return self.format_long_month_year(date_val[1], year,
|
||||
inflect, long_months)
|
||||
@@ -706,7 +716,7 @@ class DateDisplay:
|
||||
year = self._slash_year(date_val[2], date_val[3])
|
||||
if date_val[0] == 0:
|
||||
if date_val[1] == 0:
|
||||
return year
|
||||
return self._get_localized_year(year)
|
||||
else:
|
||||
return self.format_short_month_year(date_val[1], year,
|
||||
inflect, short_months)
|
||||
|
||||
@@ -56,7 +56,7 @@ from ._datestrings import DateStrings
|
||||
# Top-level module functions
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
|
||||
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
|
||||
_leap_days = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
|
||||
|
||||
def gregorian_valid(date_tuple):
|
||||
@@ -193,7 +193,7 @@ class DateParser:
|
||||
converted, the text string is assigned.
|
||||
"""
|
||||
|
||||
_dhformat_parse = re.compile(".*%(\S).*%(\S).*%(\S).*")
|
||||
_dhformat_parse = re.compile(r".*%(\S).*%(\S).*%(\S).*")
|
||||
|
||||
# RFC-2822 only uses capitalized English abbreviated names, no locales.
|
||||
_rfc_days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')
|
||||
@@ -400,8 +400,8 @@ class DateParser:
|
||||
_ = self._locale.translation.gettext
|
||||
self.__init_prefix_tables()
|
||||
|
||||
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
|
||||
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
|
||||
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
|
||||
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
|
||||
|
||||
self._bce_str = self.re_longest_first(self.bce)
|
||||
self._qual_str = self.re_longest_first(list(self.quality_to_int.keys()))
|
||||
@@ -409,77 +409,83 @@ class DateParser:
|
||||
self._mod_after_str = self.re_longest_first(
|
||||
list(self.modifier_after_to_int.keys()))
|
||||
|
||||
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
|
||||
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
|
||||
self._jmon_str = self.re_longest_first(list(self.hebrew_to_int.keys()))
|
||||
self._fmon_str = self.re_longest_first(list(self.french_to_int.keys()))
|
||||
self._pmon_str = self.re_longest_first(list(self.persian_to_int.keys()))
|
||||
self._imon_str = self.re_longest_first(list(self.islamic_to_int.keys()))
|
||||
self._smon_str = self.re_longest_first(list(self.swedish_to_int.keys()))
|
||||
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
|
||||
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
|
||||
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
|
||||
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
|
||||
|
||||
self._today_str = self.re_longest_first(self.today + [_("today"),])
|
||||
|
||||
# bce, calendar type and quality may be either at the end or at
|
||||
# the beginning of the given date string, therefore they will
|
||||
# be parsed from the middle and will be in match.group(2).
|
||||
self._bce_re = re.compile("(.*)\s+%s( ?.*)" % self._bce_str)
|
||||
self._bce_re = re.compile(r"(.*)\s+%s( ?.*)" % self._bce_str)
|
||||
|
||||
self._cal = re.compile("(.*)\s+\(%s\)( ?.*)" % self._cal_str,
|
||||
re.IGNORECASE)
|
||||
self._calny = re.compile("(.*)\s+\(%s,\s*%s\)( ?.*)" % (self._cal_str,
|
||||
self._ny_str),
|
||||
re.IGNORECASE)
|
||||
self._calny_iso = re.compile("(.*)\s+\(%s,\s*(\d{1,2}-\d{1,2})\)( ?.*)" % self._cal_str,
|
||||
re.IGNORECASE)
|
||||
self._cal = re.compile(r"(.*)\s+\(%s\)( ?.*)" % self._cal_str,
|
||||
re.IGNORECASE)
|
||||
self._calny = re.compile(r"(.*)\s+\(%s,\s*%s\)( ?.*)" %
|
||||
(self._cal_str, self._ny_str), re.IGNORECASE)
|
||||
self._calny_iso = re.compile(
|
||||
r"(.*)\s+\(%s,\s*(\d{1,2}-\d{1,2})\)( ?.*)" % self._cal_str,
|
||||
re.IGNORECASE)
|
||||
|
||||
self._ny = re.compile("(.*)\s+\(%s\)( ?.*)" % self._ny_str,
|
||||
re.IGNORECASE)
|
||||
self._ny_iso = re.compile("(.*)\s+\((\d{1,2}-\d{1,2})\)( ?.*)")
|
||||
self._ny = re.compile(r"(.*)\s+\(%s\)( ?.*)" % self._ny_str,
|
||||
re.IGNORECASE)
|
||||
self._ny_iso = re.compile(r"(.*)\s+\((\d{1,2}-\d{1,2})\)( ?.*)")
|
||||
|
||||
self._qual = re.compile("(.* ?)%s\s+(.+)" % self._qual_str,
|
||||
re.IGNORECASE)
|
||||
self._qual = re.compile(r"(.* ?)%s\s+(.+)" % self._qual_str,
|
||||
re.IGNORECASE)
|
||||
|
||||
self._span = re.compile("(from)\s+(?P<start>.+)\s+to\s+(?P<stop>.+)",
|
||||
self._span = re.compile(r"(from)\s+(?P<start>.+)\s+to\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile(
|
||||
r"(bet|bet.|between)\s+(?P<start>.+)\s+and\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._modifier = re.compile(r'%s\s+(.*)' % self._mod_str,
|
||||
re.IGNORECASE)
|
||||
self._range = re.compile("(bet|bet.|between)\s+(?P<start>.+)\s+and\s+(?P<stop>.+)",
|
||||
re.IGNORECASE)
|
||||
self._modifier = re.compile('%s\s+(.*)' % self._mod_str,
|
||||
re.IGNORECASE)
|
||||
self._modifier_after = re.compile('(.*)\s+%s' % self._mod_after_str,
|
||||
self._modifier_after = re.compile(r'(.*)\s+%s' % self._mod_after_str,
|
||||
re.IGNORECASE)
|
||||
self._abt2 = re.compile('<(.*)>', re.IGNORECASE)
|
||||
self._text = re.compile('%s\.?(\s+\d+)?\s*,?\s+((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._abt2 = re.compile('<(.*)>', re.IGNORECASE)
|
||||
self._text = re.compile(r'%s\.?(\s+\d+)?\s*,?\s+((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
# this next RE has the (possibly-slashed) year at the string's end
|
||||
self._text2 = re.compile('(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$' % self._mon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
self._jtext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._jmon_str,
|
||||
re.IGNORECASE)
|
||||
self._ftext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._fmon_str,
|
||||
re.IGNORECASE)
|
||||
self._ftext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._fmon_str,
|
||||
re.IGNORECASE)
|
||||
self._ptext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._pmon_str,
|
||||
re.IGNORECASE)
|
||||
self._ptext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._pmon_str,
|
||||
re.IGNORECASE)
|
||||
self._itext = re.compile('%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._imon_str,
|
||||
re.IGNORECASE)
|
||||
self._itext2 = re.compile('(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$' % self._imon_str,
|
||||
re.IGNORECASE)
|
||||
self._stext = re.compile('%s\.?\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$' % self._smon_str,
|
||||
re.IGNORECASE)
|
||||
self._stext2 = re.compile('(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$' % self._smon_str,
|
||||
re.IGNORECASE)
|
||||
self._numeric = re.compile("((\d+)[/\.]\s*)?((\d+)[/\.]\s*)?(\d+)\s*$")
|
||||
self._iso = re.compile("(\d+)(/(\d+))?-(\d+)-(\d+)\s*$")
|
||||
self._isotimestamp = re.compile("^\s*?(\d{4})([01]\d)([0123]\d)(?:(?:[012]\d[0-5]\d[0-5]\d)|(?:\s+[012]\d:[0-5]\d(?::[0-5]\d)?))?\s*?$")
|
||||
self._rfc = re.compile("(%s,)?\s+(\d|\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d(:\d\d)?\s+(\+|-)\d\d\d\d"
|
||||
% (self._rfc_day_str, self._rfc_mon_str))
|
||||
self._today = re.compile("^\s*%s\s*$" % self._today_str, re.IGNORECASE)
|
||||
self._text2 = re.compile(r'(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._mon_str, re.IGNORECASE)
|
||||
self._jtext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
self._jtext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._jmon_str, re.IGNORECASE)
|
||||
self._ftext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._fmon_str, re.IGNORECASE)
|
||||
self._ftext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._fmon_str, re.IGNORECASE)
|
||||
self._ptext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._pmon_str, re.IGNORECASE)
|
||||
self._ptext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._pmon_str, re.IGNORECASE)
|
||||
self._itext = re.compile(r'%s\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._imon_str, re.IGNORECASE)
|
||||
self._itext2 = re.compile(r'(\d+)?\s+?%s\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._imon_str, re.IGNORECASE)
|
||||
self._stext = re.compile(r'%s\.?\s+(\d+)?\s*,?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._smon_str, re.IGNORECASE)
|
||||
self._stext2 = re.compile(r'(\d+)?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
|
||||
% self._smon_str, re.IGNORECASE)
|
||||
self._numeric = re.compile(
|
||||
r"((\d+)[/\.]\s*)?((\d+)[/\.]\s*)?(\d+)\s*$")
|
||||
self._iso = re.compile(r"(\d+)(/(\d+))?-(\d+)-(\d+)\s*$")
|
||||
self._isotimestamp = re.compile(
|
||||
r"^\s*?(\d{4})([01]\d)([0123]\d)(?:(?:[012]\d[0-5]\d[0-5]\d)|"
|
||||
r"(?:\s+[012]\d:[0-5]\d(?::[0-5]\d)?))?\s*?$")
|
||||
self._rfc = re.compile(
|
||||
r"(%s,)?\s+(\d|\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d(:\d\d)?\s+"
|
||||
r"(\+|-)\d\d\d\d" % (self._rfc_day_str, self._rfc_mon_str))
|
||||
self._today = re.compile(r"^\s*%s\s*$" % self._today_str,
|
||||
re.IGNORECASE)
|
||||
|
||||
def _get_int(self, val):
|
||||
"""
|
||||
@@ -905,7 +911,7 @@ class DateParser:
|
||||
text = text.strip() # otherwise spaces can make it a bad date
|
||||
date.set_text_value(text)
|
||||
qual = Date.QUAL_NONE
|
||||
cal = Date.CAL_GREGORIAN
|
||||
cal = Date.CAL_GREGORIAN
|
||||
newyear = Date.NEWYEAR_JAN1
|
||||
|
||||
(text, cal, newyear) = self.match_calendar_newyear(text, cal, newyear)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -52,7 +52,6 @@ methods should be changed to generate exceptions. Possibly by globally changing
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import logging
|
||||
import os
|
||||
import inspect
|
||||
from abc import ABCMeta
|
||||
from types import FunctionType
|
||||
@@ -160,10 +159,12 @@ def wrapper(method):
|
||||
"""
|
||||
class_name = args[0].__class__.__name__
|
||||
func_name = method.__name__
|
||||
caller_frame = inspect.stack()[1]
|
||||
frame = inspect.currentframe()
|
||||
c_frame = frame.f_back
|
||||
c_code = c_frame.f_code
|
||||
LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
||||
class_name, func_name, os.path.split(caller_frame[1])[1],
|
||||
caller_frame[2], caller_frame[3])
|
||||
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
|
||||
c_code.co_name)
|
||||
return method(*args, **keywargs)
|
||||
return wrapped
|
||||
|
||||
@@ -216,8 +217,9 @@ class DummyDb(M_A_M_B("NewBaseClass", (DbReadBase, Callback, object,), {})):
|
||||
"""
|
||||
Create a new DummyDb instance.
|
||||
"""
|
||||
DbReadBase.__init__(self)
|
||||
Callback.__init__(self)
|
||||
self.basedb = None
|
||||
self.__feature = {} # {"feature": VALUE, ...}
|
||||
self.db_is_open = False
|
||||
self.readonly = True
|
||||
self.name_formats = []
|
||||
|
||||
@@ -47,6 +47,7 @@ from . import (DbReadBase, DbWriteBase, DbUndo, DBLOGNAME, DBUNDOFN,
|
||||
REPOSITORY_KEY, NOTE_KEY, TAG_KEY, TXNADD, TXNUPD, TXNDEL,
|
||||
KEY_TO_NAME_MAP, DBMODE_R, DBMODE_W)
|
||||
from .utils import write_lock_file, clear_lock_file
|
||||
from .exceptions import DbVersionError
|
||||
from ..errors import HandleError
|
||||
from ..utils.callback import Callback
|
||||
from ..updatecallback import UpdateCallback
|
||||
@@ -534,7 +535,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
self.undo_history_callback = None
|
||||
self.modified = 0
|
||||
self.transaction = None
|
||||
self.abort_possible = False
|
||||
self.abort_possible = True
|
||||
self._bm_changes = 0
|
||||
self.has_changed = False
|
||||
self.surname_list = []
|
||||
@@ -659,6 +660,12 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
|
||||
self.db_is_open = True
|
||||
|
||||
# Check on db version to see if too new
|
||||
dbversion = int(self._get_metadata('version', default='0'))
|
||||
if dbversion > self.VERSION[0]:
|
||||
self.close()
|
||||
raise DbVersionError(dbversion, 18, self.VERSION[0])
|
||||
|
||||
def _close(self):
|
||||
"""
|
||||
Close database backend.
|
||||
@@ -757,7 +764,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
if self._directory:
|
||||
filepath = os.path.join(self._directory, "name.txt")
|
||||
try:
|
||||
with open(filepath, "r") as name_file:
|
||||
with open(filepath, "r", encoding='utf8') as name_file:
|
||||
name = name_file.readline().strip()
|
||||
except (OSError, IOError) as msg:
|
||||
LOG.error(str(msg))
|
||||
@@ -2461,4 +2468,5 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
enclosed_by = ""
|
||||
for placeref in place.get_placeref_list():
|
||||
enclosed_by = placeref.ref
|
||||
break
|
||||
return enclosed_by
|
||||
@@ -78,15 +78,13 @@ class DbTxn(defaultdict):
|
||||
|
||||
elapsed_time = time.time() - self.start_time
|
||||
if __debug__:
|
||||
caller_frame = inspect.stack()[1]
|
||||
frame = inspect.currentframe()
|
||||
c_frame = frame.f_back
|
||||
c_code = c_frame.f_code
|
||||
_LOG.debug(" **** DbTxn %s exited. Called from file %s, "
|
||||
"line %s, in %s **** %.2f seconds" %
|
||||
((hex(id(self)),)+
|
||||
(os.path.split(caller_frame[1])[1],)+
|
||||
tuple(caller_frame[i] for i in range(2, 4))+
|
||||
(elapsed_time,)
|
||||
)
|
||||
)
|
||||
"line %s, in %s **** %.2f seconds",
|
||||
hex(id(self)), c_code.co_filename, c_frame.f_lineno,
|
||||
c_code.co_name, elapsed_time)
|
||||
|
||||
return False
|
||||
|
||||
@@ -120,7 +118,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
|
||||
|
||||
@@ -42,6 +42,8 @@ from ..const import PLUGINS_DIR, USER_PLUGINS
|
||||
from ..constfunc import win, get_env_var
|
||||
from ..config import config
|
||||
from .dbconst import DBLOGNAME, DBLOCKFN, DBBACKEND
|
||||
from ..const import GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.gettext
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -70,12 +72,14 @@ def make_database(plugin_id):
|
||||
database = getattr(mod, pdata.databaseclass)
|
||||
db = database()
|
||||
import inspect
|
||||
caller_frame = inspect.stack()[1]
|
||||
frame = inspect.currentframe()
|
||||
c_frame = frame.f_back
|
||||
c_code = c_frame.f_code
|
||||
_LOG.debug("Database class instance created Class:%s instance:%s. "
|
||||
"Called from File %s, line %s, in %s"
|
||||
% ((db.__class__.__name__, hex(id(db)))
|
||||
+ (os.path.split(caller_frame[1])[1],)
|
||||
+ tuple(caller_frame[i] for i in range(2, 4))))
|
||||
"Called from File %s, line %s, in %s",
|
||||
db.__class__.__name__, hex(id(db)), c_code.co_filename,
|
||||
c_frame.f_lineno, c_code.co_name)
|
||||
|
||||
return db
|
||||
else:
|
||||
raise Exception("can't load database backend: '%s'" % plugin_id)
|
||||
@@ -209,8 +213,8 @@ def write_lock_file(name):
|
||||
if win():
|
||||
user = get_env_var('USERNAME')
|
||||
host = get_env_var('USERDOMAIN')
|
||||
if host is None:
|
||||
host = ""
|
||||
if not user:
|
||||
user = _("Unknown")
|
||||
else:
|
||||
host = os.uname()[1]
|
||||
# An ugly workaround for os.getlogin() issue with Konsole
|
||||
|
||||
@@ -29,7 +29,6 @@ Provide the database state class
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
import sys
|
||||
import os
|
||||
import logging
|
||||
import inspect
|
||||
|
||||
@@ -88,10 +87,12 @@ class DbState(Callback):
|
||||
"""
|
||||
class_name = self.__class__.__name__
|
||||
func_name = "is_open"
|
||||
caller_frame = inspect.stack()[1]
|
||||
frame = inspect.currentframe()
|
||||
c_frame = frame.f_back
|
||||
c_code = c_frame.f_code
|
||||
_LOG.debug('calling %s.%s()... from file %s, line %s in %s',
|
||||
class_name, func_name, os.path.split(caller_frame[1])[1],
|
||||
caller_frame[2], caller_frame[3])
|
||||
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
|
||||
c_code.co_name)
|
||||
return (self.db is not None) and self.db.is_open()
|
||||
|
||||
def change_database(self, database):
|
||||
|
||||
@@ -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
|
||||
|
||||
"""
|
||||
@@ -999,6 +999,8 @@ class NameDisplay:
|
||||
1. if group name is defined, use that
|
||||
2. if group name is defined for the primary surname, use that
|
||||
3. use primary surname itself otherwise
|
||||
4. if no primary surname, do we have a ma/patronymic surname ?
|
||||
in this case, group name will be the ma/patronymic name.
|
||||
|
||||
:param pn: raw unserialized data of name
|
||||
:type pn: tuple
|
||||
@@ -1007,8 +1009,25 @@ class NameDisplay:
|
||||
"""
|
||||
if pn[_GROUP]:
|
||||
return pn[_GROUP]
|
||||
return db.get_name_group_mapping(_raw_primary_surname_only(
|
||||
pn[_SURNAME_LIST]))
|
||||
name = pn[_GROUP]
|
||||
if not name:
|
||||
# if we have no primary surname, perhaps we have a
|
||||
# patronymic/matronynic name ?
|
||||
srnme = pn[_ORIGINPATRO]
|
||||
surname = []
|
||||
for _surname in srnme:
|
||||
if (_surname[_TYPE_IN_LIST][0] == _ORIGINPATRO
|
||||
or _surname[_TYPE_IN_LIST][0] == _ORIGINMATRO):
|
||||
# Yes, we have one.
|
||||
surname = [_surname]
|
||||
# name1 is the ma/patronymic name.
|
||||
name1 = _raw_patro_surname_only(surname)
|
||||
if name1 and len(srnme) == 1:
|
||||
name = db.get_name_group_mapping(name1)
|
||||
if not name:
|
||||
name = db.get_name_group_mapping(_raw_primary_surname_only(
|
||||
pn[_SURNAME_LIST]))
|
||||
return name
|
||||
|
||||
def _make_fn(self, format_str, d, args):
|
||||
"""
|
||||
@@ -1059,13 +1078,13 @@ class NameDisplay:
|
||||
format_str = format_str[1:]
|
||||
else:
|
||||
patterns = [
|
||||
",\W*\"%(" + ("|".join(codes)) + ")\"", # ,\W*"%s"
|
||||
",\W*\(%(" + ("|".join(codes)) + ")\)", # ,\W*(%s)
|
||||
",\W*%(" + ("|".join(codes)) + ")", # ,\W*%s
|
||||
"\"%(" + ("|".join(codes)) + ")\"", # "%s"
|
||||
"_%(" + ("|".join(codes)) + ")_", # _%s_
|
||||
"\(%(" + ("|".join(codes)) + ")\)", # (%s)
|
||||
"%(" + ("|".join(codes)) + ")", # %s
|
||||
",\\W*\"%(" + ("|".join(codes)) + ")\"", # ,\W*"%s"
|
||||
",\\W*\\(%(" + ("|".join(codes)) + ")\\)", # ,\W*(%s)
|
||||
",\\W*%(" + ("|".join(codes)) + ")", # ,\W*%s
|
||||
"\"%(" + ("|".join(codes)) + ")\"", # "%s"
|
||||
"_%(" + ("|".join(codes)) + ")_", # _%s_
|
||||
"\\(%(" + ("|".join(codes)) + ")\\)", # (%s)
|
||||
"%(" + ("|".join(codes)) + ")", # %s
|
||||
]
|
||||
new_fmt = format_str
|
||||
|
||||
|
||||
@@ -35,7 +35,8 @@ import xml.dom.minidom
|
||||
# Gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from ..const import PLACE_FORMATS
|
||||
from ..const import PLACE_FORMATS, GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.gettext
|
||||
from ..config import config
|
||||
from ..utils.location import get_location_list
|
||||
from ..lib import PlaceType
|
||||
@@ -53,11 +54,6 @@ class PlaceFormat:
|
||||
self.street = street
|
||||
self.reverse = reverse
|
||||
|
||||
def to_xml(self):
|
||||
return (' <format name="%s" levels="%s" language="%s" '
|
||||
'street="%s" reverse="%s"/>\n' %
|
||||
(self.name, self.levels, self.language,
|
||||
self.street, self.reverse))
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -70,10 +66,13 @@ class PlaceDisplay:
|
||||
self.place_formats = []
|
||||
self.default_format = config.get('preferences.place-format')
|
||||
if os.path.exists(PLACE_FORMATS):
|
||||
self.load_formats()
|
||||
else:
|
||||
pf = PlaceFormat('Full', ':', '', 0, False)
|
||||
self.place_formats.append(pf)
|
||||
try:
|
||||
self.load_formats()
|
||||
return
|
||||
except BaseException:
|
||||
print(_("Error in '%s' file: cannot load.") % PLACE_FORMATS)
|
||||
pf = PlaceFormat(_('Full'), ':', '', 0, False)
|
||||
self.place_formats.append(pf)
|
||||
|
||||
def display_event(self, db, event, fmt=-1):
|
||||
if not event:
|
||||
@@ -163,12 +162,20 @@ class PlaceDisplay:
|
||||
dom.unlink()
|
||||
|
||||
def save_formats(self):
|
||||
with open(PLACE_FORMATS, 'w') as fd:
|
||||
fd.write('<?xml version="1.0" encoding="utf-8"?>\n')
|
||||
fd.write('<place_formats>\n')
|
||||
for fmt in self.place_formats:
|
||||
fd.write(fmt.to_xml())
|
||||
fd.write('</place_formats>\n')
|
||||
doc = xml.dom.minidom.Document()
|
||||
place_formats = doc.createElement('place_formats')
|
||||
doc.appendChild(place_formats)
|
||||
for fmt in self.place_formats:
|
||||
node = doc.createElement('format')
|
||||
place_formats.appendChild(node)
|
||||
node.setAttribute('name', fmt.name)
|
||||
node.setAttribute('levels', fmt.levels)
|
||||
node.setAttribute('language', fmt.language)
|
||||
node.setAttribute('street', str(fmt.street))
|
||||
node.setAttribute('reverse', str(fmt.reverse))
|
||||
with open(PLACE_FORMATS, 'w', encoding='utf-8') as f_d:
|
||||
doc.writexml(f_d, addindent=' ', newl='\n', encoding='utf-8')
|
||||
|
||||
|
||||
def _get_offset(value, index):
|
||||
if index is not None and value.startswith('p'):
|
||||
|
||||