Compare commits
1241 Commits
v3.4.2
...
v4.0.0-alpha3
| Author | SHA1 | Date | |
|---|---|---|---|
| d080d15352 | |||
| f3c4314a89 | |||
| 2284694530 | |||
| 15edee3a26 | |||
| d0e698ffac | |||
| addfaa933f | |||
| e2fc32c4c0 | |||
| 46e8d865b1 | |||
| c208b91184 | |||
| ab6342af70 | |||
| 715ddbbab3 | |||
| cc936c589b | |||
| f554ffd57d | |||
| 46e9edaf59 | |||
| 29620a31ef | |||
| ca2fd738d0 | |||
| 821caa8a5f | |||
| 3a45e70f54 | |||
| 89f6c7d83e | |||
| ca73e01512 | |||
| bfcecc646d | |||
| 77f9760504 | |||
| 3a93d03a4a | |||
| 03851db458 | |||
| 9f87dfd54b | |||
| 711e25e5bb | |||
| f1eecb349d | |||
| 04baa6b50f | |||
| c18d73ea8f | |||
| 671f64c08c | |||
| b9cd27550f | |||
| 8b26f688cb | |||
| e41c6db70d | |||
| fdcc02d1bd | |||
| f4f5104b72 | |||
| 0caf61b805 | |||
| c46a66ecd1 | |||
| 35d553b4eb | |||
| 8bc6d475d9 | |||
| b5fec9d1a3 | |||
| 1a5c516179 | |||
| 054d29612c | |||
| ad066ba200 | |||
| ffb3b1e232 | |||
| 76c896f977 | |||
| 5e00312139 | |||
| c7ad3f3295 | |||
| 11723ffd8c | |||
| cb9bebee1e | |||
| a9ac56b33c | |||
| 19038fab93 | |||
| fd13311aa0 | |||
| ec0b9fb54b | |||
| 8b94955772 | |||
| 9a229466fd | |||
| 647c9cfef5 | |||
| 29443339cb | |||
| f4f2747c65 | |||
| ba7913fe3c | |||
| 5526f64e1f | |||
| 0a17eab461 | |||
| fcce312e0a | |||
| 4ed2b0bace | |||
| 759075b3e4 | |||
| 7f4956dd00 | |||
| e1ab03348e | |||
| 2033fd6567 | |||
| 7c6872c11a | |||
| 71f87a31b3 | |||
| eb2ca43ff6 | |||
| 71b951f31d | |||
| a542081e25 | |||
| 5b8da49bae | |||
| 4d7e1043ef | |||
| 2040716b9c | |||
| 8a3a477ea4 | |||
| d682510c42 | |||
| 55d9ef2dbf | |||
| eb52e2f3de | |||
| f39e82c9b3 | |||
| ef023ffdb3 | |||
| 0e01b5919e | |||
| 100eeec905 | |||
| 0f35aa4aa3 | |||
| aa5e2f0847 | |||
| f90198e0c2 | |||
| e5beb28b0c | |||
| 3c285ad02e | |||
| c2443c74d4 | |||
| dbd8edaae6 | |||
| fb55907dc3 | |||
| dfcfacfaec | |||
| de4953f090 | |||
| d21eae52e1 | |||
| 096694439e | |||
| 8203d2f49f | |||
| 7802b0a43b | |||
| 84ee7c8ff8 | |||
| 159d683ed7 | |||
| d6b6d09577 | |||
| bb7470e604 | |||
| 81172d0c95 | |||
| 79ed692aa5 | |||
| fe0d77ee77 | |||
| eb4544e16c | |||
| 2a100e8a8d | |||
| 66988f0d3f | |||
| 7c7efb4db5 | |||
| 987701c5fc | |||
| 222f7bc1c8 | |||
| 3dd5c5976d | |||
| b0d607dcd5 | |||
| 8a1995be75 | |||
| 01676a58a4 | |||
| 6f6c3845f0 | |||
| 870f54c733 | |||
| af1d8b1ed1 | |||
| fbac0193af | |||
| f44e1d2297 | |||
| 7c534d3bdc | |||
| dfcc87fff0 | |||
| bf3444778d | |||
| 98a26cd53a | |||
| 03bafbd9e6 | |||
| 8759bc0c03 | |||
| 64846b1892 | |||
| 6b1477d4b5 | |||
| 29a7d3b036 | |||
| 29e04b9dc3 | |||
| 61daa7eb77 | |||
| a152c05b99 | |||
| c26cffaffb | |||
| 255d26fa4b | |||
| ca0501bab0 | |||
| 20f3ac2c58 | |||
| a2f0092403 | |||
| 1dd0ebca64 | |||
| eca67c5c3e | |||
| 84618d0633 | |||
| ee5290e02b | |||
| bbcb1dd406 | |||
| 3845dfb304 | |||
| 2ca04af319 | |||
| f4abcb7f66 | |||
| f491fcd3f8 | |||
| 9e381f2ad5 | |||
| a87a4f9868 | |||
| dbe7fbc248 | |||
| d1bda1ec09 | |||
| 1c22612f5d | |||
| 6170e7fcbd | |||
| deece38ffa | |||
| 04775cea4e | |||
| adb6b449ff | |||
| 6a2ca043a4 | |||
| a1591a964c | |||
| db6a462bc2 | |||
| 755d88fa0e | |||
| 5b7312f80d | |||
| 3c3e5e8248 | |||
| bd28665977 | |||
| 14dbae104f | |||
| 7deae0a996 | |||
| a34af94a40 | |||
| 2825502b18 | |||
| 0710324b05 | |||
| ee2f5a990d | |||
| ace8790379 | |||
| c6cbeafb28 | |||
| 200cb60db3 | |||
| 7576054885 | |||
| 3e85d2f7c9 | |||
| 28d939cda7 | |||
| a760b74252 | |||
| b2d7d5c0b4 | |||
| 0eb5c29989 | |||
| 79491a995c | |||
| 95e7a74f42 | |||
| 884d3d8eb2 | |||
| 4e8437bae4 | |||
| 945819631c | |||
| 22dd2eb45a | |||
| 18d11170ab | |||
| 8c4eb3d171 | |||
| 2bdf6c8b95 | |||
| eb09afbc99 | |||
| 1cad822978 | |||
| 8b39b80dc8 | |||
| b9aafe5b49 | |||
| 1babd07b19 | |||
| 77cfc58259 | |||
| 5b7d6a3181 | |||
| 15e2743ac4 | |||
| 59e3fe1f46 | |||
| b4ca613e21 | |||
| 536d5f4f8b | |||
| be52834cd6 | |||
| a876912059 | |||
| dc8339b8d8 | |||
| 41ca746143 | |||
| 003098cb01 | |||
| 72769f91bf | |||
| 70d50d2fc2 | |||
| 5326703ef0 | |||
| bba47e960b | |||
| bb5fc7cb7c | |||
| 3b2a0dbe48 | |||
| 2d042b0025 | |||
| bdb2e632a4 | |||
| ad4bf17642 | |||
| 410685135e | |||
| d6faa8ceb7 | |||
| bb679b51a0 | |||
| 363f6b685a | |||
| 695e6bfa65 | |||
| 80d67a5e11 | |||
| f90296bb66 | |||
| c4304d6ea8 | |||
| 715b9ae16d | |||
| 5951118ddb | |||
| f36bd3d2cb | |||
| 6c9d7d5eee | |||
| 35af1c2e41 | |||
| 2331392dc0 | |||
| a82623eca4 | |||
| 6d63f9be46 | |||
| ceb2dc6817 | |||
| 92c5146a4b | |||
| b832835a98 | |||
| db9c52335b | |||
| fc0c5a30e3 | |||
| 1a7862e848 | |||
| ad01d3fd07 | |||
| 0da8e85157 | |||
| 24862b6ac4 | |||
| bb3c76a673 | |||
| 6b485afacd | |||
| fc4ac6cc7f | |||
| 1445ea7f0d | |||
| 87a99c2e87 | |||
| 0100acdbf5 | |||
| 0e9cb5c7d1 | |||
| 72d3f95801 | |||
| 3ca0b86fc4 | |||
| 97e0ce0d4c | |||
| b1c6d82003 | |||
| 091b87e70b | |||
| 436491d048 | |||
| 11aadc005d | |||
| 0ccc4e1b09 | |||
| 1d3a4efc89 | |||
| ec018b8fcc | |||
| 1e88f5ffe5 | |||
| 3090a184cf | |||
| c058b1e71b | |||
| 546c591015 | |||
| a9bf135c65 | |||
| 46f95d9834 | |||
| 98d91fc626 | |||
| 96524f06fa | |||
| bba3a2661f | |||
| f3c1d90433 | |||
| 41e9051d19 | |||
| 88e6df595f | |||
| 2658861b18 | |||
| 759dd6bce5 | |||
| 289689ffa8 | |||
| c8baa0fcb6 | |||
| 5ac9aaa3f4 | |||
| 3d172b1972 | |||
| a8f5f13950 | |||
| 6bab48a92b | |||
| b74b1ee293 | |||
| 251aff61a0 | |||
| e97bf17488 | |||
| 2e98c52cd5 | |||
| 9b3fd50329 | |||
| c754eb02f2 | |||
| c87343eb61 | |||
| 1cde34b45d | |||
| 3a52f3afcb | |||
| c8f30e4c3e | |||
| b62adcfeb3 | |||
| 54f78b6358 | |||
| 2411f22310 | |||
| 6fc289a956 | |||
| 91e6df28c1 | |||
| 62ac19b895 | |||
| fa8af4dbcf | |||
| e6cd5b5d2d | |||
| 809c60fd77 | |||
| dcdb0935d1 | |||
| 760806a7f9 | |||
| 55c19e4180 | |||
| e96d4dd43f | |||
| 80fbfd4d8c | |||
| d696b6be75 | |||
| 186b27bf34 | |||
| a5c41d0566 | |||
| 6b5318fa18 | |||
| 2f87a2d38a | |||
| 507487f9c4 | |||
| 2924cac09a | |||
| c7c8d4b0f0 | |||
| 149298c52b | |||
| 0a34aa05b1 | |||
| 9832e6712e | |||
| 47a612c36a | |||
| adac46441d | |||
| bc06218642 | |||
| 7bcccde1a6 | |||
| a137276e2b | |||
| 288f92432e | |||
| 52a98c1323 | |||
| d0506dfa84 | |||
| 9a9ba88cdc | |||
| 564a2f01f8 | |||
| 4f5f419b78 | |||
| 326d604365 | |||
| e9253804be | |||
| 7c77224d1a | |||
| e7f5ac08ad | |||
| 07896227e2 | |||
| 66a3d2c4d7 | |||
| d3ea18e297 | |||
| bb9336c92b | |||
| cb3d94f816 | |||
| 0d60717443 | |||
| 0842d8def4 | |||
| b19a9c5139 | |||
| 0ebe837bd7 | |||
| 4c8c703dcf | |||
| 2ba36c75e4 | |||
| 23f56c30d1 | |||
| ef6b254ba3 | |||
| 2aa5848247 | |||
| 987be6c408 | |||
| be06435c9e | |||
| 2e1b94b0d1 | |||
| 9f836a7ee9 | |||
| 104b16a18a | |||
| 2e3638d1fd | |||
| 789fc4bbed | |||
| 77e8bee449 | |||
| 7b9465098f | |||
| 461f51660d | |||
| 7dc043f4a1 | |||
| 59bfeb3e70 | |||
| b22eae6489 | |||
| fe77240a2f | |||
| 0478af1335 | |||
| e60b305a0d | |||
| 4283ce217b | |||
| c2560a2af8 | |||
| f9ff67fde1 | |||
| 4284da6d8e | |||
| 1c6df8ad46 | |||
| e6864165ee | |||
| 36228d2808 | |||
| 49e89808c9 | |||
| d51ee0219a | |||
| c7d196f387 | |||
| 0af3930f62 | |||
| bbd1617d66 | |||
| ebf197ad8e | |||
| 7c1e29aa60 | |||
| 0d9f926a43 | |||
| ed6f1c5672 | |||
| 7348f5ee79 | |||
| a9acb0bbeb | |||
| 51d5ea5643 | |||
| 5a2ec9a3f2 | |||
| 1c61414a02 | |||
| 919b71a121 | |||
| 0fe1e20f70 | |||
| c02cd679e1 | |||
| 80dc80ec35 | |||
| 8feeceda88 | |||
| 4848aaaa7d | |||
| 516916cb5c | |||
| 6708e3b6b5 | |||
| 078c5eda3f | |||
| 1e639caa40 | |||
| b76f1e9c44 | |||
| 2066135e7d | |||
| e020136c73 | |||
| 55af9b7ce3 | |||
| 8df38776a5 | |||
| 83ca2b4969 | |||
| 39707ac885 | |||
| 1fe42b7f49 | |||
| 136438c5c5 | |||
| 7825638ce5 | |||
| 320044c377 | |||
| 1ce04c4874 | |||
| e56fc52e95 | |||
| 4cc2af5eb6 | |||
| ca4127b003 | |||
| b00da4a099 | |||
| 889644df6e | |||
| 29ea43cfe4 | |||
| 3d6f43134c | |||
| f36a7c9b66 | |||
| 672a96b94d | |||
| 0bdee9f99a | |||
| aab1e24b32 | |||
| 6ff34a87ee | |||
| d8ccf0de9b | |||
| 09806437b8 | |||
| 0250908e2a | |||
| e2d684ebdb | |||
| bccc6f4d75 | |||
| 781cdcb6f4 | |||
| 4379726f75 | |||
| d95af110e8 | |||
| d14bdeb262 | |||
| 1b09094916 | |||
| 9321422b48 | |||
| beed421150 | |||
| 6de280afb5 | |||
| eebcec8cc2 | |||
| 87a5da6135 | |||
| 5f74964ec5 | |||
| 9734eba3ca | |||
| 6a9cb1694e | |||
| 9b42432844 | |||
| 14c05dcba3 | |||
| c86f383122 | |||
| 455d077c2c | |||
| c233adcd64 | |||
| 86c4e407e9 | |||
| 7d96db40ed | |||
| 6a76f51f75 | |||
| 43b2d6831a | |||
| 5f469a7948 | |||
| 8126eb8f51 | |||
| 5bcef2615a | |||
| 2527c24014 | |||
| 8c092746f0 | |||
| cc58908d34 | |||
| 2ed067932e | |||
| 527ac4be59 | |||
| 0847d42cd4 | |||
| 3d473d7062 | |||
| 39dba1ffd0 | |||
| 8dc900e046 | |||
| 232e76520e | |||
| e1a53fe353 | |||
| c87bbda04e | |||
| 97a7b690ac | |||
| 6536b74a59 | |||
| 185883c0ab | |||
| 6227383508 | |||
| fe38fb66fc | |||
| a125f69502 | |||
| 9f14e7c7c7 | |||
| 734b6dff3c | |||
| 091eaea9a6 | |||
| 2031f90e12 | |||
| c1fd5d258a | |||
| 7fe3808f5f | |||
| f9f9109072 | |||
| 3aefa46059 | |||
| 869777a651 | |||
| e42a90f3b1 | |||
| 908d287477 | |||
| fdd1b1f6b1 | |||
| 8d3f87270e | |||
| edd1ef1920 | |||
| 59ad97eb16 | |||
| b06ca70730 | |||
| 1c05e4a214 | |||
| 1ce27ee12b | |||
| 0ea744e5e5 | |||
| 61738c91b6 | |||
| da05263402 | |||
| 885523602d | |||
| 379fc274ad | |||
| c0d1cfc4bc | |||
| 5c6f4cf551 | |||
| 5c754506e0 | |||
| b7ab76bcf6 | |||
| 7b1d5c3859 | |||
| feb5721eae | |||
| f4ccd053d3 | |||
| 5ef40c7b50 | |||
| aa1729d364 | |||
| ea5dcfd4ae | |||
| 22867c8090 | |||
| 8dddccf6b6 | |||
| 35bc7024d0 | |||
| f5895ebb73 | |||
| 0360335899 | |||
| 97f26ed118 | |||
| b4ee8915d6 | |||
| dbacf33834 | |||
| aae6ed5a39 | |||
| 0ed251f6ce | |||
| 1a2940192c | |||
| 0c189bf4e6 | |||
| bcbaf8fe25 | |||
| 31e3fbc70e | |||
| e351f60398 | |||
| e16c439e46 | |||
| ed74f6e1b3 | |||
| e4b5e4e7b2 | |||
| 740da0aedc | |||
| ca4f62cd37 | |||
| 6686435b19 | |||
| 72e956b1db | |||
| e72e446759 | |||
| 55685f32b6 | |||
| 3158247c90 | |||
| 5f92d658dc | |||
| ecbcea50af | |||
| dc78c76176 | |||
| 1fe0a00747 | |||
| b61e83c621 | |||
| 130b987367 | |||
| f080cb1b3c | |||
| 36d3973984 | |||
| 636d9b2be9 | |||
| d0a1cdfb25 | |||
| 192e9080c5 | |||
| 5764b374b3 | |||
| fca59a15a7 | |||
| e908a84b1e | |||
| f1ccd09cfc | |||
| 8798f77a3d | |||
| 71852fce07 | |||
| 169d8a8635 | |||
| f2eacf6125 | |||
| bcfdeecdab | |||
| 6f89360ee0 | |||
| 103184ceb6 | |||
| 8247c24e3e | |||
| 371f34bb75 | |||
| bdaee91064 | |||
| 13a1e7e412 | |||
| 3d189e8f60 | |||
| ee0e6681ac | |||
| 1d21989810 | |||
| f21dd31e91 | |||
| a3c7409bcd | |||
| 2d787397b0 | |||
| 1682fb6945 | |||
| 1f47ab637f | |||
| 8262134f5d | |||
| e5ebd81b2a | |||
| 08a00f49cd | |||
| 871b58ae3d | |||
| ad424628a4 | |||
| ae50a76405 | |||
| 2deef77d79 | |||
| a81ec4fc74 | |||
| 28a20116b5 | |||
| e44e69b0dc | |||
| d9710bdcc2 | |||
| bd15d69989 | |||
| 6c4f7b5699 | |||
| d8b0d5ba5e | |||
| c40e01b987 | |||
| 0a10eed5a3 | |||
| 3593c775e6 | |||
| 6ebcc8624e | |||
| 4168033f83 | |||
| 26a211d715 | |||
| 30d3379626 | |||
| 5bff535428 | |||
| 8d29bb62e4 | |||
| 768278d6a7 | |||
| e6474051cf | |||
| a404c93276 | |||
| 43e7edd99f | |||
| 868d00a67f | |||
| d57b63ac6d | |||
| 011afd5ea6 | |||
| b9d5ea797e | |||
| 59307c6268 | |||
| 4ac709f104 | |||
| 1992256b02 | |||
| b2623e454b | |||
| 64d2de4dbd | |||
| 8bb7e19145 | |||
| 032516c774 | |||
| 07942011c1 | |||
| 95a604f2c6 | |||
| 3da425b6c8 | |||
| 15811672a2 | |||
| c5061b1bb1 | |||
| 800d6aef45 | |||
| ff5aa4101d | |||
| 00f3707474 | |||
| 5af4d58ff3 | |||
| ea9a8699f7 | |||
| b5bf4a3644 | |||
| daaf25867d | |||
| 685641ec27 | |||
| d944dc918f | |||
| 41e77a23bf | |||
| 9295c61005 | |||
| 2b254a9bdd | |||
| f383dad6df | |||
| 747c1c8af3 | |||
| cf6b91ffe9 | |||
| 17350a8c2f | |||
| 37e6616185 | |||
| 828d1cd009 | |||
| aa4276602e | |||
| 7ba473d4b0 | |||
| 94c6d31fa8 | |||
| cd5da12282 | |||
| e98c78e136 | |||
| 6d39969056 | |||
| 83058c7e7b | |||
| 7f5f855df1 | |||
| ec2367cb66 | |||
| 679178d3bb | |||
| bfc8d16620 | |||
| c9b6f11da2 | |||
| e9a2520802 | |||
| 9f3feb9832 | |||
| 216bbfee1e | |||
| d26a7312d9 | |||
| c2a2343573 | |||
| c5c5e24f7c | |||
| e03eaa26da | |||
| d6fbdc43db | |||
| 3fa004ce98 | |||
| 255e51c002 | |||
| d15031df00 | |||
| 9e400a2ca3 | |||
| e7439e6e23 | |||
| 345d80b588 | |||
| fdeac38c04 | |||
| c59fe9fd71 | |||
| ee1e4eb2f7 | |||
| f311e3d64a | |||
| 7b133023ed | |||
| 1f0dc4f799 | |||
| e106cfb7ad | |||
| e61df51701 | |||
| c6e45e6b40 | |||
| 996a2cd2a2 | |||
| e44060f00b | |||
| c52933f9ec | |||
| 4c5470492f | |||
| 2ff2f4ff57 | |||
| 6955382107 | |||
| 318c1def5a | |||
| 9da71185a6 | |||
| 0b8d0a1a95 | |||
| 3430acd2d5 | |||
| 458ac1cdf0 | |||
| 5696864675 | |||
| 9a7a6548f3 | |||
| fbe91910dc | |||
| 0cdc51ec04 | |||
| 123cc33f59 | |||
| 49445e948d | |||
| 140f23536f | |||
| a4ccd58c09 | |||
| 2a6790d795 | |||
| 5678f5df54 | |||
| 226a3eee2b | |||
| 3e9cc045eb | |||
| aba47d38cb | |||
| e73eec36aa | |||
| 11bfd21e8a | |||
| 2580665600 | |||
| f160ba8c64 | |||
| ff8a9fbbba | |||
| 40e1821d12 | |||
| 38f5d57b7f | |||
| e1247426da | |||
| 833dfcf7ef | |||
| c54a6e582d | |||
| cdf504dc9d | |||
| d1ac573c51 | |||
| 508aefea03 | |||
| b913cde440 | |||
| ad66d4ba4c | |||
| 521e053a41 | |||
| ae1585df82 | |||
| 54ed4276a4 | |||
| 747c4f2960 | |||
| f381a707b0 | |||
| 449bb71a49 | |||
| 6f04233439 | |||
| a072c989b2 | |||
| cfe03f3b60 | |||
| a164389c6a | |||
| 7871067d99 | |||
| 4209730bcb | |||
| b7d5b91535 | |||
| 063e6504c8 | |||
| 4a7623a5ed | |||
| 541887e6ba | |||
| 973f166c99 | |||
| bf4685e302 | |||
| ac133984a4 | |||
| 8b297167b1 | |||
| e484d54bd8 | |||
| 5e1535e125 | |||
| 2a0b009bdf | |||
| 3ec4c0f80c | |||
| 640e203693 | |||
| b359b16a21 | |||
| e2a80ded2a | |||
| 742c3d770e | |||
| 010325c23b | |||
| 4f1cfd2718 | |||
| 3a82d58838 | |||
| d3c412512b | |||
| e0193098a0 | |||
| d1bef05130 | |||
| 6527b43def | |||
| 1194f5afcd | |||
| 7fe31877f0 | |||
| 4b0962fcc9 | |||
| 6dd1c0e3c2 | |||
| 32fbd754fb | |||
| 846a46ee7f | |||
| 8f012c19b5 | |||
| 75f4cf2ee2 | |||
| e7032c45b6 | |||
| 9929a355ab | |||
| ab89662e64 | |||
| 47309dbcfb | |||
| 08f380a4ef | |||
| 8892057886 | |||
| 9404e6c1b4 | |||
| ff93112221 | |||
| 7b4271e6a3 | |||
| daa01defab | |||
| 9841fb79ef | |||
| a0d592a6fc | |||
| 30b0c044ce | |||
| 1bffd5f2f0 | |||
| 074fef2b21 | |||
| 35ccf01827 | |||
| faed8a9f5f | |||
| 3b9a696f90 | |||
| 7a5348de8a | |||
| 0c447be83d | |||
| d6b20e48ec | |||
| df06be53df | |||
| 4ae2c9610c | |||
| 69f7381764 | |||
| a884943ece | |||
| d6f3dfb5dd | |||
| c7499652d6 | |||
| 7cdc5ec0c0 | |||
| 20fd0256bf | |||
| 37d768e556 | |||
| 8f3a7f04ff | |||
| eb6d9c7b0f | |||
| 910e59fff3 | |||
| 974312059f | |||
| be81cc1617 | |||
| f6d6b9c990 | |||
| e00296fa98 | |||
| 56f5d50003 | |||
| 7cc1a962ae | |||
| 6c8b83d58b | |||
| d4f92a2943 | |||
| 1f8f4c6b5c | |||
| ca26e2aec7 | |||
| dd50e437f7 | |||
| e3b5f6b3a5 | |||
| d85c856782 | |||
| a6e30ff4a3 | |||
| ef5c99e015 | |||
| a39e9e057a | |||
| 717e40170f | |||
| 0d8fbf842f | |||
| af0b93b069 | |||
| 58d7914312 | |||
| 29e96820d9 | |||
| e4faea4cf3 | |||
| 120c6b00b9 | |||
| d3fed5963f | |||
| bd6478327c | |||
| 69b9142d36 | |||
| 449448b5fa | |||
| 9595af1324 | |||
| aabc6c05c2 | |||
| 03608064ef | |||
| f36e8594f9 | |||
| cfd59da40f | |||
| 20682993b5 | |||
| fdb3be0ffa | |||
| 5f7c31eae8 | |||
| d13b4e585d | |||
| a2af7d66b3 | |||
| aa7ae06f6e | |||
| e7d4833ea8 | |||
| 706ae18795 | |||
| c6c2fb4611 | |||
| 02832006ab | |||
| 01484cc8fb | |||
| 585d11b0a9 | |||
| 31e90c52fb | |||
| 2baba1dbb3 | |||
| 49cf552b3f | |||
| d42b5e2a3a | |||
| 8b541c3559 | |||
| c559890644 | |||
| 6bd01cdff1 | |||
| 1d6a4e60c4 | |||
| 1ac34dfeb9 | |||
| 31bf96496b | |||
| 8d81b9237f | |||
| 4f51cfcf92 | |||
| 9f6def272f | |||
| 0d3bf6bb16 | |||
| 5f8b823159 | |||
| 32b61fc60f | |||
| 308f2616ba | |||
| a41b175b09 | |||
| 6a15f8fd18 | |||
| 54535a83bd | |||
| 33f45cb087 | |||
| 77f621ac2a | |||
| ce1bb72219 | |||
| eb369d08dd | |||
| f74b14c869 | |||
| 300c65a256 | |||
| e82046018f | |||
| 8949403d63 | |||
| 000c2a3be4 | |||
| 25e3f707d2 | |||
| 28b94af257 | |||
| 2fe3abf433 | |||
| 9496e097d8 | |||
| c2de30e2de | |||
| d62afc815f | |||
| 186c686296 | |||
| 6a12e7bfae | |||
| 0cc0915c03 | |||
| bb38c5c0ee | |||
| e84f6c41d1 | |||
| 87942d80fa | |||
| 0dcd17cefd | |||
| 92bc0c7dc0 | |||
| cc3497ad6a | |||
| 398acf6d75 | |||
| 2724cf2c7a | |||
| 23ceaabbd4 | |||
| b0e285abfb | |||
| be6e718433 | |||
| 5763a57985 | |||
| aaf600985c | |||
| c3fc7a5f70 | |||
| 65d707d649 | |||
| eba22c4062 | |||
| fab55acff2 | |||
| 982fa97fb3 | |||
| 40ca28cd60 | |||
| e2fc155240 | |||
| 5e6f747016 | |||
| d3c03dc11a | |||
| 2272661654 | |||
| 9090d09881 | |||
| 5e93dddaff | |||
| e5a9d652fa | |||
| 83099375e3 | |||
| 33f168ed6e | |||
| 1bd9848b1a | |||
| 61bd569c29 | |||
| 83b12cd6b6 | |||
| f14b94dd14 | |||
| 2abf41570c | |||
| db90acb48b | |||
| 228cc1d4d5 | |||
| 1b87f73f5e | |||
| d746cdb0d7 | |||
| 321c704cac | |||
| 44dd3a049c | |||
| f33986204c | |||
| ecf49d95e8 | |||
| 38b50049f2 | |||
| ee794b5077 | |||
| 7e82282c07 | |||
| 5da0cc8412 | |||
| baea5e36b4 | |||
| 554e925944 | |||
| a1b06272e2 | |||
| d28d83354a | |||
| 9212e21eb6 | |||
| abbb02a08e | |||
| a8f5d1f8e1 | |||
| 531fbe6e5a | |||
| d71494b3d8 | |||
| 3073f58940 | |||
| d7dea255b9 | |||
| b8416f7d42 | |||
| bb2b773e6d | |||
| dcddea249d | |||
| 8bcc160985 | |||
| 9f63d657cd | |||
| 4a29a99cff | |||
| 8f8d80f783 | |||
| e4b5789396 | |||
| 396f517548 | |||
| 685e4c2a46 | |||
| b50d9eda8a | |||
| baf98375f3 | |||
| bbd443ba7d | |||
| 0027f983c0 | |||
| 02d0af7c0a | |||
| e6571398cb | |||
| 82dde838e9 | |||
| 7b97bef883 | |||
| 6f6c914649 | |||
| c2b4f96ddc | |||
| b206ade3d3 | |||
| 0ba29c2d8b | |||
| 7035384369 | |||
| e99da22e7d | |||
| 6919546a0f | |||
| c2e5e1741b | |||
| ba9c607ae9 | |||
| e860f32d51 | |||
| c0eaa76d68 | |||
| 355bbd6d7b | |||
| 7d223409b5 | |||
| bea515fc09 | |||
| 0d89ea1884 | |||
| e0919026fd | |||
| 47cdbffbb6 | |||
| cfaee2894a | |||
| 394f9f9d12 | |||
| 961a35b529 | |||
| 9ca1bd92fb | |||
| bb1bf9ac7a | |||
| b29c7969ed | |||
| a2825098ec | |||
| fe01467480 | |||
| eadc089835 | |||
| b028ce0730 | |||
| 48ef83fbcc | |||
| 50773ebd51 | |||
| 7af7459eb2 | |||
| f471592d68 | |||
| f23562019e | |||
| 74813da8f0 | |||
| 3e482e9d39 | |||
| 8ce9db4f9a | |||
| cd731f1e21 | |||
| e495bb58df | |||
| 9e148614c6 | |||
| 2fede54efb | |||
| 4884a8dcc9 | |||
| c92791e4d2 | |||
| 01b6c75f5a | |||
| 092d2057ba | |||
| 648c09e10c | |||
| 736c5e0b66 | |||
| da4981e9a0 | |||
| 6580922960 | |||
| 12f00bf61d | |||
| 85dcc46d39 | |||
| 62df43f815 | |||
| 22bcc1858e | |||
| c6db40a14d | |||
| 93a57457da | |||
| f641712353 | |||
| a6ab4f5f02 | |||
| 95be31d84f | |||
| 2de079da06 | |||
| f199b5782f | |||
| b8109ba431 | |||
| 21abdd5f7f | |||
| de196aea96 | |||
| 525da42eec | |||
| 8cebcd57db | |||
| 3721709368 | |||
| b551f24962 | |||
| f3c99d6337 | |||
| 00213b2203 | |||
| 96f9d72540 | |||
| 5d6f91a82e | |||
| cb0d0a2c81 | |||
| 82bcb4018c | |||
| ba4f791bb7 | |||
| b9eb3cefd3 | |||
| 324544e4b4 | |||
| f4d11153a2 | |||
| 77d8e18eb7 | |||
| c4b84b1e03 | |||
| 400ce7de33 | |||
| 23114ebe86 | |||
| 70b9a8bef0 | |||
| 66ecc67627 | |||
| 58c54609df | |||
| 48c1b83e21 | |||
| e5b31262ab | |||
| 215db01776 | |||
| 6955f6282c | |||
| 56176e6f04 | |||
| 4fac7ed601 | |||
| afa2ea05a9 | |||
| 6d3b3558bc | |||
| 27a66aec72 | |||
| f1eeb470f3 | |||
| cb52407a0b | |||
| 1fec21ada9 | |||
| dd370f44b5 | |||
| 9369f01ffe | |||
| ec75f84c34 | |||
| 88edcd1dad | |||
| 183f0f2ff5 | |||
| b1d7c68a89 | |||
| 3a1093edc4 | |||
| 17791c4b46 | |||
| 4ac14fbc65 | |||
| 126a637610 | |||
| 342ad20cdd | |||
| acd641f73e | |||
| 2bb2b59a90 | |||
| 157d32a963 | |||
| dff245f684 | |||
| edc5a2e7a3 | |||
| 5bfe83b19f | |||
| b557be86d9 | |||
| 90d3da2e11 | |||
| 56b4bc7700 | |||
| f6e541c296 | |||
| e1a5a5f8b9 | |||
| 17843e1efd | |||
| 50b3e4b56a | |||
| 65fe82ae7c | |||
| d2d73263e5 | |||
| 24ac90fde9 | |||
| 73a37df305 | |||
| 2912e07371 | |||
| 0d18eef9ee | |||
| b28730baa3 | |||
| 5fc79c4009 | |||
| 8260f30b94 | |||
| 2cd6b8a50a | |||
| 113a8bce3a | |||
| 5b8c41bfb1 | |||
| 4151874ad1 | |||
| 8eff19ab02 | |||
| ad1704f62f | |||
| 0515433985 | |||
| da3349ff55 | |||
| 0b447c49a0 | |||
| 0145b5ea22 | |||
| f7178ecca7 | |||
| 89c94a6fa4 | |||
| 06c0aa4d54 | |||
| cc709d4c3c | |||
| 0a9b63bdfd | |||
| 42071b5050 | |||
| 11f65c4625 | |||
| e611060c23 | |||
| a31e6dc92c | |||
| 61e68d6ec7 | |||
| a5cdd339ed | |||
| ac3318e992 | |||
| 84d4d1acaf | |||
| 2485af7689 | |||
| 0271ce7ca1 | |||
| 3eb232c1a9 | |||
| b3b03d4d2b | |||
| 590d836d62 | |||
| c2271280e5 | |||
| 5e17b21594 | |||
| 03d5c759f4 | |||
| 9aaffb82f8 | |||
| 180861bbee | |||
| 37e4824029 | |||
| 5237f8dc64 | |||
| 374e24dc2c | |||
| 30a92809e5 | |||
| 707efc0aff | |||
| 92c3c4e824 | |||
| 080f4ee1fa | |||
| 64ba41c5fd | |||
| 10b88a5cc0 | |||
| 240a2b712f | |||
| 10ba3a6dc2 | |||
| ce3cb64ee9 | |||
| 4dc30d6276 | |||
| 5a642228c8 | |||
| 26a8d1bf92 | |||
| 0986741e0c | |||
| 013858c4ff | |||
| 77e780167e | |||
| 6c4dc9c239 | |||
| fe56bef4c8 | |||
| 95b4775c58 | |||
| 9f28ab87eb | |||
| 2bca3eb56f | |||
| 8d4906354d | |||
| 47ffcf9bec | |||
| ecdb51c9f7 | |||
| a50f8c9f9b | |||
| 0a850ceaf4 | |||
| 7d4d7735b7 | |||
| 08581e7ca8 | |||
| 6c7f3d65bc | |||
| 675aeb8e21 | |||
| 596758789a | |||
| 3339a68f80 | |||
| fbafc7e8ef | |||
| a0cae6a3e0 | |||
| da29ed5238 | |||
| df071b9009 | |||
| ac5875c38f | |||
| 4bbae2d469 | |||
| 3b962bb977 | |||
| c0acdd678d | |||
| 52f8a42312 | |||
| 220f4161ba | |||
| b97ff5fd63 | |||
| 502fcaf19d | |||
| e383c8fd44 | |||
| 88d9b23ac8 | |||
| 612774f11b | |||
| 76ece14d56 | |||
| cea1b3ddbd | |||
| a05a3fb060 | |||
| 02326d3816 | |||
| 1722a36829 | |||
| 30a25b7b7f | |||
| 8161e7a5ff | |||
| b1e9f33a60 | |||
| cd6a5822a2 | |||
| ab781b635f | |||
| 64e6b23967 | |||
| 48205702d2 | |||
| 6bfd0b0e8d | |||
| dcdf119ffa | |||
| 99ed2483ac | |||
| 516f94fdd8 | |||
| 8ced6ca00a | |||
| 969cbe93d3 | |||
| c094b007e0 | |||
| f2ad220878 | |||
| 1283d9e90e | |||
| 6645dee5dd | |||
| 17b27c8f2d | |||
| a5076593d3 | |||
| de0d215ba2 | |||
| 110e6d52de | |||
| 4e7137569f | |||
| 73be67b3f8 | |||
| 44667f7f13 | |||
| 1c89635532 | |||
| 3de03c51ef | |||
| c2849f8aa3 | |||
| 4010e20cdd | |||
| fc9a7d08ca | |||
| ef12d41aa9 | |||
| 03c8cba91d | |||
| 977772e076 | |||
| eb554c0327 | |||
| 803cf27077 | |||
| c37ff11cfa | |||
| 9006235aa3 | |||
| 76a128bd1e | |||
| cde90955cb | |||
| 31dcf7b990 | |||
| f6b12cfc9a | |||
| 028dbd80e2 | |||
| 8ea689cf6b | |||
| 48399325fc | |||
| b7373e10b3 | |||
| 6313ce7b8d | |||
| cdaaf11964 | |||
| b17cf1f8ff | |||
| c11615fe49 | |||
| c1ff037027 | |||
| 39f157a104 | |||
| ab63ab35ec | |||
| 85a431eb44 | |||
| af90f9ef06 | |||
| cd2c9544cd | |||
| a54cbac8f3 | |||
| b708b68160 | |||
| 154a49bad9 | |||
| 7c8f8a2656 | |||
| f76a460b28 | |||
| 26bbb654d0 | |||
| 0427db85d6 | |||
| d4e0017365 | |||
| 5d10b97fb8 | |||
| a99a124b96 | |||
| 900a8f39f1 | |||
| 08d8cd2535 | |||
| 31647a7a3b | |||
| b4c89cf207 | |||
| 1194b9e8ab | |||
| e516ae592e | |||
| d54fd2e8f4 | |||
| d8c1fae4df | |||
| 94f523dfa2 | |||
| a79fb3683b | |||
| 4aa0a450ef | |||
| 58afe3dfe9 | |||
| 212c752202 | |||
| b422c82edb | |||
| a5c42e2975 | |||
| 5f15b64215 | |||
| baeee9d079 | |||
| e76a52b0bd | |||
| 2354408e8b | |||
| cfa6d69483 | |||
| 609a276dcb | |||
| 4a3afc5683 | |||
| 78dcfce04a | |||
| e3e772a7a4 | |||
| 7fadd0216b | |||
| 9c41947834 | |||
| 9d46f1ac7e | |||
| 36f9b37e4e | |||
| b7f7ce860f | |||
| 6231c38625 | |||
| 30389049a4 | |||
| 7f44897477 | |||
| 943e6ad444 | |||
| 6f6e56e924 | |||
| 9c57935c95 | |||
| 033919132a | |||
| ff7187bfa0 | |||
| 395abdce98 | |||
| c914471342 | |||
| ff81e2301b | |||
| fc40da01b0 | |||
| fc3d17f1df | |||
| 3a6f1e69f5 | |||
| 7d2278674e | |||
| 7856971064 | |||
| 2f8ffdb8b2 | |||
| e8567ae608 | |||
| c8048fed81 | |||
| 9e043eeb2a |
@@ -0,0 +1,11 @@
|
||||
import os
|
||||
|
||||
from distutils2.util import find_packages
|
||||
|
||||
exclude_list = ('src.gui.glade', 'src.guiQML', 'src.guiQML.views', 'src.images', 'src.plugins',
|
||||
'src.webapp', 'src.webapp.grampsdb', 'src.webapp.grampsdb.templatetags', 'src.webapp.grampsdb.view', )
|
||||
|
||||
packages = sorted(find_packages(exclude=exclude_list))
|
||||
|
||||
for package in packages:
|
||||
print(" '%s'," % package)
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
# Python
|
||||
*.py[cod]
|
||||
|
||||
# Distutils
|
||||
build/
|
||||
sdist/
|
||||
|
||||
# Gramps
|
||||
gramps/data/tips.xml
|
||||
gramps/gen/const.py
|
||||
gramps/plugins/lib/holidays.xml
|
||||
po/.intltool-merge-cache
|
||||
@@ -1,17 +1,94 @@
|
||||
Donald N. Allingham ** Concept and main design
|
||||
<!-- $Id$ -->
|
||||
|
||||
David Hampton ** Autocomp.py and Report.py
|
||||
|
||||
Donald A. Peterson ** Makefiles, LaTeXDoc.py
|
||||
Alex Roitman shura@gramps-project.org
|
||||
|
||||
Alex Roitman ** BookReport, command line, Gramps manual, bugfixes
|
||||
Arturas Sleinius asleinius@users.sourceforge.net
|
||||
|
||||
Tim Waugh ** Comprehensive Ancestor report, docgen, Makefiles, bugfixes
|
||||
Benny Malengier benny.malengier@gramps-project.org
|
||||
|
||||
Martin Hawlisch - Filters
|
||||
Boril Gourinov boril.gourinov@gmail.com
|
||||
|
||||
Richard Taylor - ScratchPad.py, GrampsDBCallback.py
|
||||
Brian Matherly brian@gramps-project.org
|
||||
|
||||
Brian Matherly - Reports
|
||||
Craig J. Anderson ander882@hotmail.com
|
||||
|
||||
$Id$
|
||||
Don Allingham don@gramps-project.org
|
||||
|
||||
Donald A. Peterson
|
||||
|
||||
Doug Blank doug.blank@gmail.com
|
||||
|
||||
Eero Tamminen eerot@users.sourceforge.net
|
||||
|
||||
Erik De Richter erikdrgm@users.sourceforge.net
|
||||
|
||||
Espen Berg espenbe@gmail.com
|
||||
|
||||
Gary Burton gary.burton@zen.co.uk
|
||||
|
||||
Gerald Britton gerald.britton@gmail.com
|
||||
|
||||
James G Sack jgsack@san.rr.com
|
||||
|
||||
Janne Kovesjärvi janne.kovesjarvi@gmail.com
|
||||
|
||||
Jason Simanek jsimanek@gmail.com
|
||||
|
||||
Jérôme Rapinat romjerome@yahoo.fr
|
||||
|
||||
Joan Creus joan.creus@gmail.com
|
||||
|
||||
Josip Pisoj josip@pisoj.com
|
||||
|
||||
Julio Sánchez julio.sanchez@gmail.com
|
||||
|
||||
Kees Bakker kees.bakker@xs4all.nl
|
||||
|
||||
Konstantin Dorichev kdorichev@gmail.com
|
||||
|
||||
Lubo Vasko pgval@inMail.sk
|
||||
|
||||
Luigi Toscano luigi.toscano@tiscali.it
|
||||
|
||||
Luiz Gonzaga dos Santos Filho lfilho@gmail.com
|
||||
|
||||
Łukasz Rymarczyk yenidai@poczta.onet.pl
|
||||
|
||||
Michiel Nauta m.d.nauta@hetnet.nl
|
||||
|
||||
Mirko Leonhäuser mirko@leonhaeuser.de
|
||||
|
||||
Morten Bo Johansen mbj@spamcop.net
|
||||
|
||||
Martin Hawlisch martin.hawlisch@gmx.de
|
||||
|
||||
Nick Hall nick__hall@hotmail.com
|
||||
|
||||
Peter Landgren peter.talken@telia.com
|
||||
|
||||
Raphael Ackermann raphael.ackermann@gmail.com
|
||||
|
||||
Richard Taylor rjt-gramps@thegrindstone.me.uk
|
||||
|
||||
Rob G. Healey robhealey1@gmail.com
|
||||
|
||||
Serge Noiraud Serge.Noiraud@free.fr
|
||||
|
||||
Sigmund Lorentsen sigmund.lorentsen@tele2.no
|
||||
|
||||
Stefan Bjork betula@users.sourceforge.net
|
||||
|
||||
Stéphane Charette stephanecharette@gmail.com
|
||||
|
||||
Tim G L Lyons tim.g.lyons@gmail.com
|
||||
|
||||
Tim Waugh twaugh@redhat.com
|
||||
|
||||
Vassilii Khachaturov vassilii@tarunz.org
|
||||
|
||||
Zdeněk Hataš zdenek.hatas@gmail.com
|
||||
|
||||
Zsolt Foldvari zfoldvar@users.sourceforge.net
|
||||
|
||||
John Ralls jralls@ceridwen.us
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2012 Benny Malengier
|
||||
#
|
||||
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
|
||||
"""
|
||||
This is a stub to start Gramps. It is provided for the sole reason of being
|
||||
able to run gramps from the source directory without setting PYTHONPATH
|
||||
|
||||
From this position, import gramps works great
|
||||
"""
|
||||
import gramps.grampsapp as app
|
||||
app.main()
|
||||
@@ -8,107 +8,94 @@ Uninstall old version
|
||||
---------------------
|
||||
If you do a source install in the same place of an existing install,
|
||||
you need to remove the old version first. You can delete the old
|
||||
version by:
|
||||
version by deleting the installed directories (for example,
|
||||
/usr/share/gramps
|
||||
/usr/local/lib/pythonx.x/site-packages/gramps
|
||||
/usr/local/lib/pythonx.x/dist-packages/gramps
|
||||
/usr/lib/pythonx.x/site-packages/gramps
|
||||
/usr/lib/pythonx.x/dist-packages/gramps
|
||||
where pythonx.x is python2.7 or whatever version you installed gramps with.
|
||||
Also remove the gramps .egg files that are installed along the gramps directory.
|
||||
|
||||
* deleting the installed directories (for example,
|
||||
/usr/share/gramps)
|
||||
* OR by running "make uninstall" from the old directory where you
|
||||
ran "make install" (not the new GRAMPS directory)
|
||||
If you don't know the list of all files that Gramps installed, you can reinstall
|
||||
it with the --record option, and take a look at the list this produces (so
|
||||
python setup.py install --record grampsfiles.txt
|
||||
|
||||
GRAMPS is a python application, so loading happens on reading the
|
||||
files, meaning that files of a previous version that are no longer
|
||||
present in the new version can still be loaded, making the new install
|
||||
unstable.
|
||||
unstable!
|
||||
|
||||
Configure vs autogen scripts
|
||||
----------------------------
|
||||
Configure does not check all dependencies of Gramps, see README for a
|
||||
list of all required and optional dependencies.
|
||||
distutils install
|
||||
-----------------
|
||||
We do not check all dependencies of Gramps, see README for a
|
||||
list of all required and optional dependencies. On running Gramps, errors will
|
||||
be returned if dependencies are missing.
|
||||
|
||||
If you are building from released tarball, you should be able to just
|
||||
run "./configure && make". However, if you're building from the SVN,
|
||||
the configure is not present. You should auto-generate it by
|
||||
running ./autogen.sh and then "make" and, finally, "make install".
|
||||
run
|
||||
|
||||
python setup.py build
|
||||
python setup.py install
|
||||
|
||||
where the last must be done as root. You can work with Gramps if you only build
|
||||
it by pointing the PYTHONPATH to the build directory, but things like MIME type
|
||||
and desktop entries will not be created then.
|
||||
|
||||
Typical install directories in linux (ubuntu) are:
|
||||
* /usr/local/lib/python2.7/dist-packages/gramps/ : the gramps python module
|
||||
* /usr/local/share/mime-info : mime info so gramps opens files automatically
|
||||
* /usr/local/share/icons/gnome : our icons
|
||||
* /usr/local/share/doc/gramps : documentation, also example .gramps and .gedcom
|
||||
* /usr/local/bin : the gramps executable
|
||||
* /usr/local/share/locale/xx/LC_MESSAGES : xx language code, translation
|
||||
* /usr/local/share/man/man1/xx/man1 : xx language code, man file
|
||||
* /usr/local/share/mime
|
||||
* /usr/local/share/mime-info
|
||||
|
||||
Running Gramps
|
||||
--------------
|
||||
Gramps is python only, so no compilation is needed, you can even run gramps
|
||||
from the source directory.
|
||||
|
||||
a) You installed Gramps, then you can run it with the command
|
||||
|
||||
gramps
|
||||
|
||||
b) You installed Gramps, and want to start it from the PYTHONPATH. In this
|
||||
case use the command:
|
||||
|
||||
python -c 'from gramps.grampsapp import main; main()'
|
||||
|
||||
The executable 'gramps' in /usr/local/bin or /usr/bin from a) does
|
||||
this for you.
|
||||
|
||||
b) You downloaded the Gramps source code to a directory, and want to run it.
|
||||
First, copy/rename the gramps/gen/const.py.in to gramps/gen/const.py.
|
||||
Edit this file if needed. Now you can start Gramps from the source code
|
||||
directory with
|
||||
|
||||
python Gramps.py
|
||||
|
||||
Running ./autogen.sh on this branch of gramps requires the following
|
||||
packages to be installed:
|
||||
* autoconf >=2.53
|
||||
* automake >=1.9
|
||||
* intltool >=0.25
|
||||
* glib-gettext >=2.2.0, included in libglib2.0-dev (may be called
|
||||
differently on other distros) and maybe something else. If autogen.sh
|
||||
fails, it should inform you what's missing.
|
||||
|
||||
Custom directory installation
|
||||
-------------------------------------
|
||||
If you would like to install GRAMPS without being root, or in an
|
||||
alternative location on windows, supply the --prefix argument to autogen
|
||||
or configure.
|
||||
alternative location on windows, supply the --root argument to setup.py
|
||||
|
||||
For example:
|
||||
./autogen.sh --prefix=$HOME/my_gramps_path
|
||||
python setup.py install --root ~/test
|
||||
or
|
||||
./autogen.sh --prefix=/cygdrive/c/Projects/gramps
|
||||
python setup.py install --root ~/test --enable-packager-mode
|
||||
|
||||
Regular vs local installation
|
||||
-----------------------------
|
||||
This version of gramps REQUIRES, among other things, the mime types for
|
||||
gramps be properly installed.
|
||||
|
||||
The usual ./configure, make, and make install as a root should do the trick.
|
||||
|
||||
But be careful if you're using the non-default options or would like
|
||||
to install without being root.
|
||||
|
||||
The latter is possible, but you should supply additional arguments to
|
||||
autogen or configure:
|
||||
--with-mime-dir=$HOME/.local/share/mime
|
||||
Most likely, such local install will also need some prefix with write
|
||||
permissions for you:
|
||||
--prefix=$HOME/my_gramps_path
|
||||
|
||||
Whether you're doing local install or regular install, YOU MUST INSTALL
|
||||
MIME TYPES. YOU HAVE BEEN WARNED!
|
||||
|
||||
Installing under non-default prefix
|
||||
-----------------------------------
|
||||
As hinted above, mime types for gramps MUST be properly installed.
|
||||
The "proper install" means installing them where the shared mime system
|
||||
will find them.
|
||||
|
||||
By default, the shared mime systems will look in these places:
|
||||
1. /usr/share/mime
|
||||
2. /usr/local/share/mime : this may be broken on some systems
|
||||
3. $HOME/.local/share/mime : this is a per-user setup, not system-wide
|
||||
There's a number of ways to instruct the shared mime system
|
||||
to look in other places, but this is the whole other story.
|
||||
|
||||
So if you install some place other than /usr/share, you will most
|
||||
likely need to add this option to autogen.sh/configure scripts:
|
||||
--with-mime-dir=/usr/share/mime
|
||||
|
||||
Using the --prefix=/usr/share and installing as a root will most
|
||||
likely do everything correctly, so no extra care needs to be
|
||||
taken. You should take extra care only if you are installing under
|
||||
something like --prefix=/usr/local/my_gramps, /var/gramps123/blah, etc.
|
||||
The last option, --enable-packager-mode, is needed if you want to disable
|
||||
execution of post-install mime processing. If you don't have root/admin
|
||||
access, this will be needed
|
||||
|
||||
Packager's issues
|
||||
------------------
|
||||
The above mime types must be installed. However, the
|
||||
update-mime-database call to process the newly installed types and
|
||||
schemas must be done in POST-INSTALLATION.
|
||||
There is a MANIFEST.in file to indicate the work needed.
|
||||
To create a source distribution run:
|
||||
|
||||
In packager's world, the install happens on packager's machine
|
||||
into something like /tmp/gramps-tmp. However, the postinstall
|
||||
should happen on the user's machine.
|
||||
python setup.py sdist
|
||||
|
||||
To assist with that, there's an argument available in configure
|
||||
(or autogen, which will pass it to configure) which disables
|
||||
mime type processing:
|
||||
--enable-packager-mode
|
||||
This argument should disable postinstall calls made during
|
||||
make install, and print a nasty warning during configure.
|
||||
IT IS PACKAGER'S RESPONSIBILITY to follow the advice given
|
||||
by the configure output and to copy the appropriate code
|
||||
from the data/Makefile.am into the post-install (and post-uninstall)
|
||||
of the particular packaging system.
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
include AUTHORS
|
||||
include COPYING
|
||||
include FAQ
|
||||
include INSTALL
|
||||
include LICENSE
|
||||
include MANIFEST.in
|
||||
include NEWS
|
||||
include RELEASE_NOTES
|
||||
include TODO
|
||||
include TestPlan.txt
|
||||
recursive-include data *
|
||||
recursive-include debian *
|
||||
recursive-include docs *
|
||||
recursive-include help *
|
||||
recursive-include mac *
|
||||
recursive-include po *
|
||||
recursive-include gramps *
|
||||
recursive-include test *
|
||||
recursive-include windows *
|
||||
|
||||
# Remove files created in the build
|
||||
exclude data/gramps.desktop
|
||||
exclude data/gramps.keys
|
||||
exclude data/gramps.xml
|
||||
recursive-exclude data/man *.1
|
||||
recursive-exclude data/man *.1.gz
|
||||
exclude gramps/const.py
|
||||
exclude gramps/data/tips.xml
|
||||
exclude gramps/plugins/lib/holidays.xml
|
||||
exclude po/*.gmo
|
||||
exclude po/.intltool-merge-cache
|
||||
exclude po/stamp-it
|
||||
exclude po/POTFILES
|
||||
global-exclude *.pyc
|
||||
global-exclude *.py~
|
||||
global-exclude *.pyo
|
||||
global-exclude *.bak
|
||||
|
||||
# Remove directories which should not be included in the distribution
|
||||
prune gramps/guiQML
|
||||
prune gramps/webapp
|
||||
|
||||
# Remove Makefiles used by autotools
|
||||
global-exclude Makefile*
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
# This is the top level Makefile for Gramps
|
||||
# $Id$
|
||||
|
||||
SUBDIRS = m4 po src data example
|
||||
|
||||
EXTRA_DIST = \
|
||||
config.rpath autogen.sh \
|
||||
FAQ COPYING \
|
||||
intltool-extract.in intltool-merge.in intltool-update.in
|
||||
|
||||
bin_SCRIPTS = gramps
|
||||
|
||||
dist_pkgdata_DATA = COPYING
|
||||
|
||||
distuninstallcheck_listfiles = find . -type -f -print | grep -E -v '/(globs|magic|XMLnamespaces)'
|
||||
|
||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update \
|
||||
gnome-doc-utils.make
|
||||
|
||||
gramps: gramps.sh
|
||||
cp gramps.sh gramps
|
||||
|
||||
.PHONY: pycheck trans
|
||||
|
||||
pycheck:
|
||||
(cd src; make pycheck)
|
||||
trans:
|
||||
(cd src; make trans)
|
||||
|
||||
distuninstallcheck:
|
||||
@:
|
||||
|
||||
CLEANFILES = gramps
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
@@ -1,3 +1,62 @@
|
||||
2012-10-28
|
||||
Version 3.4.2 -- the "We're all individuals!" bug fix release.
|
||||
* Some fixes on NarrativeWeb report
|
||||
* Some fixes on book report
|
||||
* Improvement on database path interface and user's preferences
|
||||
* Consistency on Name display and regex support
|
||||
* Some platform-specific fixes for Windows system environment
|
||||
* Better support for media links on Gedcom file format
|
||||
* Fix possible incorrect family relations on Gedcom file format
|
||||
* Various fixes on citation records
|
||||
* Fix and improve places handling on Geography views
|
||||
* Fix on command line arguments
|
||||
* Consistency on PDF file format
|
||||
* New language: Greek
|
||||
* Various updated translations
|
||||
* Changelog: http://www.gramps-project.org/bugs/changelog_page.php?version_id=32
|
||||
|
||||
2012-08-23
|
||||
Version 3.4.1 -- The "A tiger? In Africa?!" bug fix release.
|
||||
Mention in the release that upgrading is advised for two critical issues:
|
||||
-> error in export to xml of family order in 3.4.0, now fixed
|
||||
-> crash in windows after some use due to too much terminal output in 3.4.0, now fixed
|
||||
* Some platform-specific fixes (Windows, OSX)
|
||||
* Bug fixes
|
||||
* Translation updates
|
||||
* Changelog: http://www.gramps-project.org/bugs/changelog_page.php?version_id=31
|
||||
|
||||
2012-05-21
|
||||
Version 3.4.0 -- The "always look on the bright side of life" feature release.
|
||||
* Lots of changes and bug fixes to every part of Gramps, including XML
|
||||
import/export, image handling, gedom handling, Gramplets, date handling,
|
||||
citations, reports, more!
|
||||
* Some platform-specific fixes (Windows, OSX, Linux)
|
||||
* What's new (and what to do before you upgrade): http://goo.gl/K3RDV
|
||||
* Roadmap: http://goo.gl/GJhjH
|
||||
* Many translation updates
|
||||
|
||||
2012-05-18
|
||||
Version 3.3.2 -- "The Knights who say 'Ni'" bug fix release.
|
||||
* Expressive error when trying to load familytree with downgraded Berkeley db
|
||||
* Fix in the image offset calculation (MediaRef Editor)
|
||||
* Improved focus and bug fixes on Editors
|
||||
* Enhancements on ODT file format
|
||||
* Improved synchronization on gramplets
|
||||
* Export, filtering and database log improvements
|
||||
* Call of living proxy is more accurate when using NarrativeWeb report
|
||||
* Fixes on Check and Repair, Sort Events and Clipboard tools
|
||||
* Fix automate version
|
||||
* Fixes on PedigreeView (database state and mouse events)
|
||||
* Various fixes and improvements on merge code
|
||||
* Minor fixes on report interface and output
|
||||
* Various fixes on Narrative and Web Calendar reports
|
||||
* Minor issues on Gedcom handling
|
||||
* Cleanup
|
||||
* Add Japanese holidays (reports)
|
||||
* Add a Relationship calculator for Catalan
|
||||
* More than 50 bug fixes and improvements
|
||||
* Translations update: ca, cs, de, es, fr, hr, hu, it, nb, nl, nn, pl, sv, zh
|
||||
|
||||
2011-10-01
|
||||
Version 3.3.1 -- "The Tenth Anniversary Edition" bug fix release.
|
||||
* translation updates: ca, cs, de, fr, hr, it, nb, nl, pl, pt_br, sk, sl, sv, uk, zh_cn
|
||||
|
||||
@@ -5,8 +5,9 @@ If building from source, also read the INSTALL file (at least through the
|
||||
Requirements
|
||||
--------------------------------
|
||||
The following packages *MUST* be installed in order for Gramps to work:
|
||||
Python 2.6 or greater
|
||||
PyGTK2 2.16 or greater
|
||||
Python 2.7 or greater, Python 3.2 or greater (python version cannot be mixed)
|
||||
GTK 3.0 or greater
|
||||
pygobject 3.3.2 or greater
|
||||
librsvg2 (svg icon view)
|
||||
xdg-utils
|
||||
|
||||
@@ -33,36 +34,27 @@ The following packages are *STRONGLY RECOMMENDED* to be installed:
|
||||
Obtain it from: http://tilloy.net/dev/pyexiv2/download.html
|
||||
|
||||
The following packages are optional
|
||||
python gtkspell Enable spell checking in the notes, gtkspell contains the
|
||||
libraries.
|
||||
gtkspell Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
is needed, so minimally version 3.0.0
|
||||
|
||||
ttf-freefont More font support in the reports
|
||||
|
||||
PyWebKitGtk or python-gtkmozembed:
|
||||
The hidden view 'Htmlview' allows websites to be opened in
|
||||
gir-webkit GObject introspection data of WebKit is required for the
|
||||
hidden view 'Htmlview', which allows websites to be opened in
|
||||
Gramps. Users can unhide the view in the plugin manager.
|
||||
A html renderer must be installed to use the view.
|
||||
!! PACKAGERS, Test if on your distribution
|
||||
webkit and Gramps is stable. If you obtain crashes, patch
|
||||
src/plugins/view/htmlrenderer.py and
|
||||
src/plugins/view/geoview.gpr.py, so as to remove:
|
||||
import webkit
|
||||
Then use the gecko package (python-gtkmozembed) instead.
|
||||
If WEBKIT ang GECKO are installed, webkit will be used as
|
||||
the javascript engine is faster (google maps).
|
||||
* PyWebKitGtk
|
||||
Enable html rendering for the Web view. Often called
|
||||
python-webkit package. Be careful, webkit is always in a
|
||||
development phase.
|
||||
* python-gtkmozembed
|
||||
Enable html rendering for the Web view in case PyWebKitGtk
|
||||
is not available or to be used if webkit is unstable.
|
||||
It can be in python-gnome2-extras or python-gtkhtml2
|
||||
depending on distributions.
|
||||
from gi.repository import WebKit as webkit
|
||||
|
||||
python-pygoocanvas:
|
||||
Required for the experimental Graphview plugin
|
||||
goocanvas2:
|
||||
Required for the Graphview plugin
|
||||
|
||||
No longer needed in 4.0:
|
||||
pygoocanvas, pygtk
|
||||
No longer needed in 3.3:
|
||||
python-enchant Enchant
|
||||
No longer needed in 3.2:
|
||||
@@ -70,20 +62,14 @@ No longer needed in 3.2:
|
||||
No longer needed in 3.1:
|
||||
yelp Gnome help browser. At the moment no help is shipped
|
||||
|
||||
Remark: There is a conflict when using python-gnome2 in Ubuntu. This is evident
|
||||
with the error: TypeError: Error when calling the metaclass bases
|
||||
metaclass conflict
|
||||
|
||||
Documentation
|
||||
---------------------------------
|
||||
The User Manual is now maintained on the gramps website,
|
||||
http://www.gramps-project.org/wiki/index.php?title=User_manual
|
||||
We might in the future distribute again a manual via gnome-doc-utils, this has not
|
||||
been decided yet though.
|
||||
|
||||
|
||||
Building on non-Linux systems: i18n support and GNU make
|
||||
--------------------------------------------------------
|
||||
If make fails, use gmake (the name FreeBSD gives to GNU make) instead.
|
||||
You might need a patch also. FreeBSD has in ports a patch ( /usr/ports/science/gramps/files)
|
||||
you need to apply to po/Makefile.in.in
|
||||
|
||||
|
||||
--------------------------------
|
||||
The Gramps Project
|
||||
|
||||
+26
-17
@@ -1,24 +1,33 @@
|
||||
Gramps 3.2 Release Notes
|
||||
"UNSTABLE Gramps 4.0.0 Alpha2 release.
|
||||
|
||||
General Improvements
|
||||
This is a technology preview to allow plugin writers and packagers-installer
|
||||
writers to update their plugins and scripts. This release is not production
|
||||
ready, so use for testing!"
|
||||
|
||||
* New Plugin System
|
||||
In the Help Menu -> Menu Status, all available plugins are visible. All plugins can be hidden, saving resources and hiding options you do not need. Eg: You don't use the Pedigree View? Hide it in the Plugin Status, and it will not be present anymore. You don't use vcard export? Hide it in the Plugin Status, and it will not be offered anymore.
|
||||
It is recommended to use Gramps 4.0.0 with python 3.2 so as to be ready
|
||||
for the future (python 2.7 works though).
|
||||
|
||||
* Faster
|
||||
Many under the hood improvements have occurred that should improve perfamance enormously. Yes, new features are present to use all your processing power, but they are all implemented as plugins that can be hidden. Eg: Insert of a person in a 30000 people family tree took 4sec on 1.4Ghz PC in 3.1, Now it is done in milliseconds.
|
||||
The dependencies for Gramps 4.0.0 are _completely_ different than 3.4 due
|
||||
to the switch to GObject introspection, and the removal of autotools. So
|
||||
only install 4.0.0 if you are certain you can obtain the dependencies,
|
||||
see README and INSTALL.
|
||||
|
||||
*New Views
|
||||
There are new views, and some views have been greatly improved
|
||||
- People view can now be sorted on the columns
|
||||
- A Place treeview is present, nicely grouping your places under country groups
|
||||
- GeoView has left it's beta status behind and shows your data on an
|
||||
online map (Openstreetmap or google maps, fast internet connection required)
|
||||
- Help Menu -> Extra Reports/Tools open a webpage with downloadable extra views
|
||||
For linux, in Ubuntu 12.10 you can install 4.0.0, but you will need to
|
||||
compile and install osmgpsmap manually to have the maps working (see
|
||||
http://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion#OsmGpsMap_for_Geography )
|
||||
|
||||
|
||||
Other Improvements
|
||||
Major enhancements in Gramps 4.0.0:
|
||||
|
||||
* Styled Notes now in most output formats that support styles, eg in the web report
|
||||
* New languages
|
||||
* Select language in which report should be created (only present now in some reports)
|
||||
* GEP 8: code reorganization: http://www.gramps-project.org/wiki/index.php?title=GEPS_008:_File_Organization
|
||||
|
||||
* GEP 26: Replace make: http://www.gramps-project.org/wiki/index.php?title=GEPS_026:_Replace_%27make%27_for_Gramps_build
|
||||
|
||||
* GEP 29: Gtk 3 :http://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion
|
||||
|
||||
* GEP 31: Python 3 support: http://www.gramps-project.org/wiki/index.php?title=GEPS_031:_Python_3_support
|
||||
|
||||
More info in the manual
|
||||
http://www.gramps-project.org/wiki/index.php?title=Gramps_4.0_Wiki_Manual_-_What%27s_new%3F
|
||||
|
||||
Everybody is invited to update the manual to make it current!
|
||||
|
||||
@@ -1,76 +1 @@
|
||||
* Remove GCONF, provide up grade path - IN PROGRESS
|
||||
|
||||
* Replace the LPRDoc interface (based on gnome-print) with a GTK based
|
||||
print routine. This would remove one of the last gnome-specific
|
||||
libraries, and make portability better. Even more important, the
|
||||
gnome-print interface has been deprecated by the GNOME project, so it
|
||||
will not be around forever. We need to adapt to the new GTK method.
|
||||
- IN PROGRESS
|
||||
|
||||
* Add support for formatted notes. We have a start by ripping off code
|
||||
from GPL code from grecipe-manager. - DONE
|
||||
|
||||
* Allow for multiple notes. A tabbed interface would be really useful,
|
||||
since there are no titles for notes. Not all objects would
|
||||
necessarily need multiple notes. Determine which ones should and
|
||||
shouldn't. - DONE
|
||||
|
||||
* before release: fix command line options
|
||||
|
||||
* remove critical bugs:
|
||||
- #1053 - DONE (testing of LDS privacy needed!!)
|
||||
- #1318, wrong note backreferences - DONE
|
||||
- #1208, relative path, see bug note for agreed solution
|
||||
|
||||
* before release on multiple notes:
|
||||
--> in note: also public/private on GUI - DONE
|
||||
--> on upgrade, the notetype should correspond to the object the note is made
|
||||
from, so notetype SOURCE, SOURCEREF, ..., this gives information on
|
||||
orphaned notes.(DONE for GRDB)
|
||||
TODO: change notetype into note tags, so people can give notes multiple tags,
|
||||
Like this all source notes can have tag source, but also tag 'family history' (Discussion Alex/Benny)
|
||||
--> in sourceref:
|
||||
* remove text tab. (DONE)
|
||||
* On import of GEDCOM text tag, or upgrade of < 2.2 database,
|
||||
create a note with type TRANSCRIPT (DONE, type SOURCE_TEXT)
|
||||
* On export, do not write the text tag in sourceref, write a
|
||||
note instead (DONE)
|
||||
--> A GrampsWidget for use in report dialogs to select which notetypes to include
|
||||
in a report (a filter?).
|
||||
--> Support for multiple notes in all reports.
|
||||
--> Empty text field on Saving Note should throw an error that Note is empty ! (?)
|
||||
--> Undo in Note. Serious editing needs an undo function. Furthermore, the function
|
||||
the Clear icon is unclear: tooltip? Other icon?
|
||||
|
||||
* Remove import of global var in __init__.py, use functions or don't export. Eg.
|
||||
PluginUtils/__init__.py export of plugin lists (tool_list, ...). E
|
||||
|
||||
* Add forward/backward buttons (and active object) on all object views, not only person views.
|
||||
|
||||
* Split views
|
||||
|
||||
* Export to spreadsheet, print, CSV of views - DONE
|
||||
|
||||
* Date calculator. See
|
||||
http://sourceforge.net/mailarchive/forum.php?thread_id=3252078&forum_id=1993
|
||||
|
||||
* Add string substitutions for web page generation (name, report name,
|
||||
date, etc).
|
||||
|
||||
* Add support for sources of the parent/child relation
|
||||
|
||||
* Add support for storing reliability (confidence) of the marriage
|
||||
information; see
|
||||
http://sourceforge.net/mailarchive/forum.php?thread_id=3066997&forum_id=1993
|
||||
and
|
||||
http://sourceforge.net/mailarchive/forum.php?thread_id=3134931&forum_id=1993
|
||||
for the details.
|
||||
|
||||
* Move LDS temple info out of const.py and into an XML file: DONE
|
||||
|
||||
* Make the descendant graph adapt to the page size, not stuck with the
|
||||
current 3 entries per page.
|
||||
|
||||
* Add slideshow generation ability to web page generator
|
||||
|
||||
* And a whole lot more....
|
||||
http://gramps-project.org/wiki/index.php?title=Category:GEPS
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
dnl AM_SHARED_MIME
|
||||
dnl Defines SHARED_MIME_DIR which is where mime type definitions should go.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([AM_SHARED_MIME],
|
||||
[
|
||||
if test "x$SHARED_MIME_DIR" = "x"; then
|
||||
SHARED_MIME_DIR='$(prefix)/share/mime'
|
||||
fi
|
||||
|
||||
AC_ARG_WITH(mime-dir,
|
||||
[ --with-mime-dir=dir Shared mime directory.],SHARED_MIME_DIR="$withval",)
|
||||
|
||||
AC_SUBST(SHARED_MIME_DIR)
|
||||
AC_MSG_RESULT([Using directory $SHARED_MIME_DIR for installation of mime type definitions])
|
||||
|
||||
AC_ARG_ENABLE(mime-install,
|
||||
[ --disable-mime-install Disable the mime types installation],
|
||||
[case "${enableval}" in
|
||||
yes) mime_install=true ;;
|
||||
no) mime_install=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-mime-install) ;;
|
||||
esac],[mime_install=true])
|
||||
AM_CONDITIONAL(SHARED_MIME_INSTALL, test x$mime_install = xtrue)
|
||||
|
||||
])
|
||||
|
||||
|
||||
dnl AM_PACKAGER
|
||||
dnl Defines conditional PACKAGER_MODE to define packager mode
|
||||
dnl
|
||||
|
||||
AC_DEFUN([AM_PACKAGER],
|
||||
[
|
||||
AC_ARG_ENABLE(packager_mode,
|
||||
[ --enable-packager-mode Enable packager mode],
|
||||
[case "${enableval}" in
|
||||
yes) packager_mode=true ;;
|
||||
no) packager_mode=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-packager-mode) ;;
|
||||
esac],[packager_mode=false])
|
||||
AM_CONDITIONAL(PACKAGER_MODE, test x$packager_mode = xtrue)
|
||||
if test "x$packager_mode" = "xtrue"; then
|
||||
AC_MSG_RESULT([WARNING:
|
||||
Packager mode enabled.
|
||||
Shared mime types WILL NOT BE INSTALLED.
|
||||
You will need to place the contents of the
|
||||
SHARED_MIME_INSTALLATION
|
||||
commands MANUALLY into the postinstall script of your package,
|
||||
see data/Makefile.am file for details.
|
||||
Otherwise you will end up with the unusable package.
|
||||
YOU HAVE BEEN WARNED!])
|
||||
fi
|
||||
])
|
||||
-102
@@ -1,102 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
# $Id$
|
||||
|
||||
PKG_NAME="gramps"
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
srcfile=$srcdir/src/gramps.py
|
||||
|
||||
REQUIRED_AUTOMAKE_VERSION=1.9
|
||||
DIE=0
|
||||
|
||||
# source helper functions
|
||||
if test ! -f gramps-autogen.sh;
|
||||
then
|
||||
echo There is something wrong with your source tree.
|
||||
echo You are missing gramps-autogen.sh
|
||||
exit 1
|
||||
fi
|
||||
. ./gramps-autogen.sh
|
||||
|
||||
CONFIGURE_DEF_OPT=
|
||||
|
||||
autogen_options $@
|
||||
|
||||
#echo -n "+ check for build tools"
|
||||
#if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else echo; fi
|
||||
|
||||
#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13
|
||||
WANT_AUTOCONF_2_5=1
|
||||
export WANT_AUTOCONF_2_5
|
||||
version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \
|
||||
"http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz" || DIE=1
|
||||
AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/`
|
||||
|
||||
automake_progs="automake automake-1.10 automake-1.9"
|
||||
version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \
|
||||
"http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz" || DIE=1
|
||||
ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`
|
||||
|
||||
version_check glib-gettext GLIB_GETTEXTIZE glib-gettextize $REQUIRED_GLIB_GETTEXT_VERSION \
|
||||
"ftp://ftp.gtk.org/pub/gtk/v2.2/glib-$REQUIRED_GLIB_GETTEXT_VERSION.tar.gz" || DIE=1
|
||||
require_m4macro glib-gettext.m4
|
||||
|
||||
version_check intltool INTLTOOLIZE intltoolize $REQUIRED_INTLTOOL_VERSION \
|
||||
"http://ftp.gnome.org/pub/GNOME/sources/intltool/" || DIE=1
|
||||
require_m4macro intltool.m4
|
||||
|
||||
|
||||
check_m4macros || DIE=1
|
||||
|
||||
if [ "$DIE" -eq 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$#" = 0 ]; then
|
||||
printerr "**Warning**: I am going to run .configure with no arguments."
|
||||
printerr "If you wish to pass any to it, please specify them on the"
|
||||
printerr "$0 command line."
|
||||
printerr
|
||||
fi
|
||||
|
||||
toplevel_check $srcfile
|
||||
|
||||
# Note that the order these tools are called should match what
|
||||
# autoconf's "autoupdate" package does. See bug 138584 for
|
||||
# details.
|
||||
|
||||
# programs that might install new macros get run before aclocal
|
||||
|
||||
printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
|
||||
echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
|
||||
|
||||
printbold "Running $INTLTOOLIZE..."
|
||||
$INTLTOOLIZE --force --copy --automake || exit 1
|
||||
|
||||
# Now run aclocal to pull in any additional macros needed
|
||||
printbold "Running $ACLOCAL..."
|
||||
$ACLOCAL -I m4 $ACLOCAL_FLAGS || exit 1
|
||||
|
||||
# Now that all the macros are sorted, run autoconf and autoheader ...
|
||||
printbold "Running $AUTOCONF..."
|
||||
$AUTOCONF || exit 1
|
||||
|
||||
# Finally, run automake to create the makefiles ...
|
||||
printbold "Running $AUTOMAKE..."
|
||||
cp -pf COPYING COPYING.autogen_bak
|
||||
cp -pf INSTALL INSTALL.autogen_bak
|
||||
$AUTOMAKE --gnu --add-missing --force --copy || exit 1
|
||||
cmp COPYING COPYING.autogen_bak || cp -pf COPYING.autogen_bak COPYING
|
||||
cmp INSTALL INSTALL.autogen_bak || cp -pf INSTALL.autogen_bak INSTALL
|
||||
rm -f COPYING.autogen_bak INSTALL.autogen_bak
|
||||
|
||||
|
||||
if test x$NOCONFIGURE = x; then
|
||||
printbold Running ./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT ...
|
||||
./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT \
|
||||
&& echo Now type \`make\' to compile $PKG_NAME || exit 1
|
||||
else
|
||||
echo Skipping configure process.
|
||||
fi
|
||||
|
||||
-571
@@ -1,571 +0,0 @@
|
||||
#! /bin/sh
|
||||
# Output a system dependent set of variables, describing how to set the
|
||||
# run time search path of shared libraries in an executable.
|
||||
#
|
||||
# Copyright 1996-2005 Free Software Foundation, Inc.
|
||||
# Taken from GNU libtool, 2001
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
#
|
||||
# The first argument passed to this file is the canonical host specification,
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||
# or
|
||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
||||
# should be set by the caller.
|
||||
#
|
||||
# The set of defined variables is at the end of this script.
|
||||
|
||||
# Known limitations:
|
||||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
|
||||
# than 256 bytes, otherwise the compiler driver will dump core. The only
|
||||
# known workaround is to choose shorter directory names for the build
|
||||
# directory and/or the installation directory.
|
||||
|
||||
# All known linkers require a `.a' archive for static linking (except M$VC,
|
||||
# which needs '.lib').
|
||||
libext=a
|
||||
shrext=.so
|
||||
|
||||
host="$1"
|
||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
|
||||
cc_basename=`echo "$CC" | sed -e 's%^.*/%%'`
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
|
||||
|
||||
wl=
|
||||
if test "$GCC" = yes; then
|
||||
wl='-Wl,'
|
||||
else
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
darwin*)
|
||||
case "$cc_basename" in
|
||||
xlc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
mingw* | pw32* | os2*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
linux*)
|
||||
case $cc_basename in
|
||||
icc* | ecc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
pgcc | pgf77 | pgf90)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
ccc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
como)
|
||||
wl='-lopt='
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sco3.2v5*)
|
||||
;;
|
||||
solaris*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sunos4*)
|
||||
wl='-Qoption ld '
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
unicos*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
|
||||
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
|
||||
case "$host_os" in
|
||||
cygwin* | mingw* | pw32*)
|
||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
if test "$GCC" != yes; then
|
||||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
openbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
||||
ld_shlibs=yes
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
case "$host_os" in
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
|
||||
# that the semantics of dynamic libraries on AmigaOS, at least up
|
||||
# to version 4, is to share data among multiple programs linked
|
||||
# with the same dynamic library. Since this doesn't match the
|
||||
# behavior of shared libraries on other platforms, we cannot use
|
||||
# them.
|
||||
ld_shlibs=no
|
||||
;;
|
||||
beos*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
solaris* | sysv5*)
|
||||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
|
||||
ld_shlibs=no
|
||||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
linux*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$ld_shlibs" = yes; then
|
||||
# Unlike libtool, we use -rpath here, not --rpath, since the documented
|
||||
# option of GNU ld is called -rpath, not --rpath.
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
fi
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
if test "$GCC" = yes; then
|
||||
# Neither direct hardcoding nor static linking is supported with a
|
||||
# broken collect2.
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
else
|
||||
aix_use_runtimelinking=no
|
||||
# Test if we are trying to use run time linking or normal
|
||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
||||
# need to do runtime linking.
|
||||
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
esac
|
||||
fi
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
case $host_os in aix4.[012]|aix4.[012].*)
|
||||
collect2name=`${CC} -print-prog-name=collect2`
|
||||
if test -f "$collect2name" && \
|
||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
hardcode_direct=yes
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
hardcode_minus_L=yes
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_libdir_separator=
|
||||
fi
|
||||
esac
|
||||
fi
|
||||
# Begin _LT_AC_SYS_LIBPATH_AIX.
|
||||
echo 'int main () { return 0; }' > conftest.c
|
||||
${CC} ${LDFLAGS} conftest.c -o conftest
|
||||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
fi
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath="/usr/lib:/lib"
|
||||
fi
|
||||
rm -f conftest.c conftest
|
||||
# End _LT_AC_SYS_LIBPATH_AIX.
|
||||
if test "$aix_use_runtimelinking" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# see comment about different semantics on the GNU ld section
|
||||
ld_shlibs=no
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec=' '
|
||||
libext=lib
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
hardcode_direct=no
|
||||
if test "$GCC" = yes ; then
|
||||
:
|
||||
else
|
||||
case "$cc_basename" in
|
||||
xlc*)
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
dgux*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
freebsd2.2*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
freebsd* | kfreebsd*-gnu | dragonfly*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
hpux9*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
hpux10* | hpux11*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
case "$host_cpu" in
|
||||
hppa*64*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=no
|
||||
;;
|
||||
ia64*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=no
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
netbsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
newsos6)
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
else
|
||||
case "$host_os" in
|
||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
os2*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
osf3*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
osf4* | osf5*)
|
||||
if test "$GCC" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
else
|
||||
# Both cc and cxx compiler support -rpath directly
|
||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
||||
fi
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
sco3.2v5*)
|
||||
;;
|
||||
solaris*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
sysv4)
|
||||
case $host_vendor in
|
||||
sni)
|
||||
hardcode_direct=yes # is this really true???
|
||||
;;
|
||||
siemens)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
motorola)
|
||||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sysv4.3*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
ld_shlibs=yes
|
||||
fi
|
||||
;;
|
||||
sysv4.2uw2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=no
|
||||
;;
|
||||
sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
|
||||
;;
|
||||
sysv5*)
|
||||
hardcode_libdir_flag_spec=
|
||||
;;
|
||||
uts4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check dynamic linker characteristics
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
|
||||
libname_spec='lib$name'
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
;;
|
||||
amigaos*)
|
||||
;;
|
||||
beos*)
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
shrext=.dll
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
shrext=.dylib
|
||||
;;
|
||||
dgux*)
|
||||
;;
|
||||
freebsd1*)
|
||||
;;
|
||||
kfreebsd*-gnu)
|
||||
;;
|
||||
freebsd*)
|
||||
;;
|
||||
gnu*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
case "$host_cpu" in
|
||||
ia64*)
|
||||
shrext=.so
|
||||
;;
|
||||
hppa*64*)
|
||||
shrext=.sl
|
||||
;;
|
||||
*)
|
||||
shrext=.sl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
case "$host_os" in
|
||||
irix5* | nonstopux*)
|
||||
libsuff= shlibsuff=
|
||||
;;
|
||||
*)
|
||||
case $LD in
|
||||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
|
||||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
|
||||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
|
||||
*) libsuff= shlibsuff= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux*oldld* | linux*aout* | linux*coff*)
|
||||
;;
|
||||
linux*)
|
||||
;;
|
||||
knetbsd*-gnu)
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
nto-qnx*)
|
||||
;;
|
||||
openbsd*)
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
shrext=.dll
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
;;
|
||||
sco3.2v5*)
|
||||
;;
|
||||
solaris*)
|
||||
;;
|
||||
sunos4*)
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
|
||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
|
||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
|
||||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
||||
|
||||
# How to pass a linker flag through the compiler.
|
||||
wl="$escaped_wl"
|
||||
|
||||
# Static library suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally "so").
|
||||
shlibext="$shlibext"
|
||||
|
||||
# Flag to hardcode \$libdir into a binary during linking.
|
||||
# This must work even if \$libdir does not exist.
|
||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
||||
|
||||
# Whether we need a single -rpath flag with a separated argument.
|
||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
||||
|
||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_direct="$hardcode_direct"
|
||||
|
||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_minus_L="$hardcode_minus_L"
|
||||
|
||||
EOF
|
||||
-175
@@ -1,175 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl May need to run automake && aclocal first
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
dnl NOTE: arg to macro below becomes the "VERSION"
|
||||
AC_INIT(gramps, 3.4.0, [gramps-bugs@lists.sourceforge.net])
|
||||
AC_CONFIG_SRCDIR(configure.in)
|
||||
AM_INIT_AUTOMAKE([1.6.3 foreign])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
RELEASE=0.SVN$(svnversion -n .)
|
||||
dnl RELEASE=0beta
|
||||
dnl RELEASE=0rc1
|
||||
dnl RELEASE=1
|
||||
|
||||
VERSIONSTRING=$VERSION
|
||||
if test x"$RELEASE" != "x"
|
||||
then
|
||||
VERSIONSTRING="$VERSION-$RELEASE"
|
||||
fi
|
||||
|
||||
dnl put the ACLOCAL flags in the Makefile
|
||||
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
|
||||
|
||||
AC_PROG_INTLTOOL
|
||||
|
||||
AM_SHARED_MIME
|
||||
AM_PACKAGER
|
||||
AC_SUBST(RELEASE)
|
||||
AC_SUBST(VERSIONSTRING)
|
||||
|
||||
dnl Add the languages which your application supports here.
|
||||
ALL_LINGUAS="hu zh_CN cs da de es fr it nb nl nn pl pt_BR pt_PT ru sv fi lt sk bg hr sl ca sq he uk ja vi"
|
||||
GETTEXT_PACKAGE=gramps
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the Gettext package name.])
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
||||
dnl Checks for programs.
|
||||
dnl We first only check for python >= 2.6
|
||||
|
||||
AM_PATH_PYTHON(2.6)
|
||||
AC_PATH_PROG(BINSH, sh)
|
||||
|
||||
pygtk_require="
|
||||
try:
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
def out(line):
|
||||
f = open('conftest.out', 'w')
|
||||
f.write(line)
|
||||
f.close()
|
||||
"
|
||||
|
||||
AC_MSG_CHECKING(Python bindings for gtk 2.10 (pygtk2>=2.10.0))
|
||||
cat > conftest.py <<EOF
|
||||
$pygtk_require
|
||||
try:
|
||||
import gobject
|
||||
version = gobject.pygtk_version
|
||||
if version >= (2,10,0):
|
||||
print_version = '.'.join([[str(i) for i in version]])
|
||||
out(print_version)
|
||||
else:
|
||||
out("NO")
|
||||
except ImportError:
|
||||
out("NO")
|
||||
except AttributeError:
|
||||
out("NO")
|
||||
EOF
|
||||
$PYTHON conftest.py
|
||||
has_pygtk=`cat conftest.out`
|
||||
rm -f conftest.out conftest.py
|
||||
if test NO = "$has_pygtk"
|
||||
then
|
||||
AC_MSG_ERROR([
|
||||
|
||||
**** The python bindings for gtk 2.10 (pygtk2>=2.10.0) could not be found.])
|
||||
fi
|
||||
AC_MSG_RESULT($has_pygtk)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
po/Makefile.in
|
||||
m4/Makefile
|
||||
Makefile
|
||||
gramps.sh
|
||||
src/const.py
|
||||
src/Makefile
|
||||
src/cli/Makefile
|
||||
src/cli/plug/Makefile
|
||||
src/gen/Makefile
|
||||
src/gen/db/Makefile
|
||||
src/gen/display/Makefile
|
||||
src/gen/lib/Makefile
|
||||
src/gen/mime/Makefile
|
||||
src/gen/plug/Makefile
|
||||
src/gen/plug/docbackend/Makefile
|
||||
src/gen/plug/docgen/Makefile
|
||||
src/gen/plug/menu/Makefile
|
||||
src/gen/plug/report/Makefile
|
||||
src/gen/proxy/Makefile
|
||||
src/gen/utils/Makefile
|
||||
src/gui/Makefile
|
||||
src/gui/editors/Makefile
|
||||
src/gui/editors/displaytabs/Makefile
|
||||
src/gui/plug/Makefile
|
||||
src/gui/plug/report/Makefile
|
||||
src/gui/selectors/Makefile
|
||||
src/gui/views/Makefile
|
||||
src/gui/views/treemodels/Makefile
|
||||
src/gui/widgets/Makefile
|
||||
src/GrampsLogger/Makefile
|
||||
src/Merge/Makefile
|
||||
src/docgen/Makefile
|
||||
src/Filters/Makefile
|
||||
src/Filters/Rules/Makefile
|
||||
src/Filters/Rules/Person/Makefile
|
||||
src/Filters/Rules/Family/Makefile
|
||||
src/Filters/Rules/Event/Makefile
|
||||
src/Filters/Rules/Source/Makefile
|
||||
src/Filters/Rules/Place/Makefile
|
||||
src/Filters/Rules/MediaObject/Makefile
|
||||
src/Filters/Rules/Repository/Makefile
|
||||
src/Filters/Rules/Note/Makefile
|
||||
src/Filters/Rules/Citation/Makefile
|
||||
src/Filters/SideBar/Makefile
|
||||
src/Simple/Makefile
|
||||
src/GrampsLocale/Makefile
|
||||
src/plugins/Makefile
|
||||
src/plugins/docgen/Makefile
|
||||
src/plugins/drawreport/Makefile
|
||||
src/plugins/export/Makefile
|
||||
src/plugins/gramplet/Makefile
|
||||
src/plugins/graph/Makefile
|
||||
src/plugins/import/Makefile
|
||||
src/plugins/lib/Makefile
|
||||
src/plugins/lib/maps/Makefile
|
||||
src/plugins/mapservices/Makefile
|
||||
src/plugins/quickview/Makefile
|
||||
src/plugins/rel/Makefile
|
||||
src/plugins/sidebar/Makefile
|
||||
src/plugins/textreport/Makefile
|
||||
src/plugins/tool/Makefile
|
||||
src/plugins/view/Makefile
|
||||
src/plugins/webreport/Makefile
|
||||
src/plugins/webstuff/Makefile
|
||||
src/plugins/webstuff/css/Makefile
|
||||
src/plugins/webstuff/images/Makefile
|
||||
src/plugins/webstuff/js/Makefile
|
||||
src/DateHandler/Makefile
|
||||
src/data/Makefile
|
||||
src/glade/Makefile
|
||||
src/images/Makefile
|
||||
src/images/scalable/Makefile
|
||||
src/images/16x16/Makefile
|
||||
src/images/22x22/Makefile
|
||||
src/images/48x48/Makefile
|
||||
data/Makefile
|
||||
data/man/Makefile
|
||||
data/man/cs/Makefile
|
||||
data/man/fr/Makefile
|
||||
data/man/nl/Makefile
|
||||
data/man/pl/Makefile
|
||||
data/man/sv/Makefile
|
||||
example/Makefile
|
||||
example/gramps/Makefile
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
@@ -1,83 +0,0 @@
|
||||
# This is the data level Makefile for gramps
|
||||
# $Id$
|
||||
|
||||
SUBDIRS = man
|
||||
|
||||
# Rules for files with translatable strings
|
||||
# These are taken care of by the intltool
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_in_files = gramps.desktop.in
|
||||
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
|
||||
@INTLTOOL_DESKTOP_RULE@
|
||||
|
||||
keys_in_files = gramps.keys.in
|
||||
keys_files = $(keys_in_files:.keys.in=.keys)
|
||||
@INTLTOOL_KEYS_RULE@
|
||||
|
||||
# Rules for files with translatable strings
|
||||
# These are taken care of by the intltool
|
||||
xml_in_files = gramps.xml.in
|
||||
xml_files = $(xml_in_files:.xml.in=.xml)
|
||||
@INTLTOOL_XML_RULE@
|
||||
|
||||
applicationsdir = $(datadir)/application-registry
|
||||
applications_DATA = gramps.applications
|
||||
|
||||
mimedir = $(datadir)/mime-info
|
||||
mime_DATA = $(keys_files) gramps.mime
|
||||
|
||||
xmldir = $(SHARED_MIME_DIR)/packages
|
||||
xml_DATA = $(xml_files)
|
||||
|
||||
pngdir = $(datadir)/icons/gnome/48x48/mimetypes
|
||||
png_DATA = \
|
||||
gnome-mime-application-x-gramps.png \
|
||||
gnome-mime-application-x-gedcom.png \
|
||||
gnome-mime-application-x-gramps-package.png \
|
||||
gnome-mime-application-x-gramps-xml.png \
|
||||
gnome-mime-application-x-geneweb.png
|
||||
|
||||
svgdir = $(datadir)/icons/gnome/scalable/mimetypes
|
||||
svg_DATA = \
|
||||
gnome-mime-application-x-gramps.svg \
|
||||
gnome-mime-application-x-gedcom.svg \
|
||||
gnome-mime-application-x-gramps-package.svg \
|
||||
gnome-mime-application-x-gramps-xml.svg \
|
||||
gnome-mime-application-x-geneweb.svg
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(png_DATA) \
|
||||
$(svg_DATA) \
|
||||
$(applications_DATA) \
|
||||
$(keys_in_files) \
|
||||
$(desktop_in_files) \
|
||||
$(mime_DATA) \
|
||||
$(xml_DATA) \
|
||||
$(desktop_DATA) \
|
||||
$(xml_in_files)
|
||||
|
||||
CLEANFILES = \
|
||||
$(desktop_DATA) \
|
||||
$(keys_files) \
|
||||
$(xml_files)
|
||||
|
||||
# Conditionally enable/disable mime types,
|
||||
# or disable unconditionally if in a packager mode
|
||||
SHARED_MIME_INSTALLATION =
|
||||
SHARED_MIME_UNINSTALLATION =
|
||||
|
||||
if !PACKAGER_MODE
|
||||
if SHARED_MIME_INSTALL
|
||||
SHARED_MIME_INSTALLATION += \
|
||||
update-mime-database $(DESTDIR)$(SHARED_MIME_DIR)
|
||||
SHARED_MIME_UNINSTALLATION += \
|
||||
update-mime-database $(DESTDIR)$(SHARED_MIME_DIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
install-data-hook:
|
||||
$(SHARED_MIME_INSTALLATION)
|
||||
|
||||
uninstall-hook:
|
||||
$(SHARED_MIME_UNINSTALLATION)
|
||||
@@ -1,11 +1,12 @@
|
||||
[Desktop Entry]
|
||||
_Name=Gramps Genealogy System
|
||||
_Name=Gramps
|
||||
_GenericName=Genealogy System
|
||||
_X-GNOME-FullName=Gramps Genealogy System
|
||||
_Comment=Manage genealogical information, perform genealogical research and analysis
|
||||
Icon=gramps
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=GTK;Office;
|
||||
X-GNOME-DocPath=gramps/gramps-manual.xml
|
||||
MimeType=application/x-gramps;application/x-gedcom;application/x-gramps-package;application/x-gramps-xml;
|
||||
Exec=gramps %F
|
||||
|
||||
+1
-1
@@ -383,7 +383,7 @@ BOOKMARKS
|
||||
<!ELEMENT bookmarks (bookmark)*>
|
||||
<!ELEMENT bookmark EMPTY>
|
||||
<!ATTLIST bookmark
|
||||
target (person|family|event|source|place|media|repository|
|
||||
target (person|family|event|source|citation|place|media|repository|
|
||||
note) #REQUIRED
|
||||
hlink IDREF #REQUIRED
|
||||
>
|
||||
|
||||
@@ -546,6 +546,7 @@
|
||||
<value>family</value>
|
||||
<value>event</value>
|
||||
<value>source</value>
|
||||
<value>citation</value>
|
||||
<value>place</value>
|
||||
<value>media</value>
|
||||
<value>repository</value>
|
||||
@@ -610,6 +611,20 @@
|
||||
<define name="citationref-content">
|
||||
<attribute name="hlink"><data type="IDREF"/></attribute>
|
||||
</define>
|
||||
|
||||
<define name="personref-content">
|
||||
<attribute name="hlink"><data type="IDREF"/></attribute>
|
||||
<optional><attribute name="priv">
|
||||
<ref name="priv-content"/>
|
||||
</attribute></optional>
|
||||
<attribute name="rel"><text/></attribute>
|
||||
<optional><zeroOrMore><element name="citationref">
|
||||
<ref name="citationref-content"/>
|
||||
</element></zeroOrMore></optional>
|
||||
<optional><zeroOrMore><element name="noteref">
|
||||
<ref name="noteref-content"/>
|
||||
</element></zeroOrMore></optional>
|
||||
</define>
|
||||
|
||||
<define name="sourceref-content">
|
||||
<attribute name="hlink"><data type="IDREF"/></attribute>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# This is the data/man level Makefile for Gramps
|
||||
# $Id$
|
||||
|
||||
SUBDIRS = fr sv nl pl cs
|
||||
SUBDIRS = fr sv nl pl cs pt_BR
|
||||
|
||||
man_IN_FILES = gramps.1.in
|
||||
man_MANS = $(man_IN_FILES:.1.in=.1)
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0-alpha2'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#locale_dirs = './locale'
|
||||
#gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('en', 'gramps', u'Gramps Documentation',
|
||||
['Gramps project'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'cs'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('cs', 'gramps', u'Gramps Documentation',
|
||||
[u'.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,282 @@
|
||||
Czech
|
||||
======
|
||||
|
||||
gramps(1) 3.4.0 gramps(1)
|
||||
|
||||
|
||||
|
||||
**JMÉNO**
|
||||
gramps - programový systém pro správu genealogického výzkumu a analýzy.
|
||||
|
||||
|
||||
**POUŽITÍ**
|
||||
gramps [-?|--help] [--usage] [--version] [-l] [-u|--force-unlock]
|
||||
[-O|--open= DATABÁZE [-f|--format= FORMÁT]] [-i|--import= SOUBOR
|
||||
[-f|--format= FORMÁT]] [-i|--import= ...] [-e|--export= SOUBOR
|
||||
[-f|--format= FORMÁT]] [-a|--action= AKCE] [-p|--options= PARAMETRY]] [
|
||||
SOUBOR ] [--version]
|
||||
|
||||
|
||||
**POPIS**
|
||||
Gramps je zdarma šířený Open Source genealogický program. Je napsán v
|
||||
jazyce Python s využitím rozhraní GTK+/GNOME. Gramps bude povědomý
|
||||
komukoli, kdo už pracoval s jinými genealogickými programy jako Family
|
||||
Tree Maker (TM), Personal Ancestral Files (TM), nebo GNU Geneweb.
|
||||
Podporuje import dat z populárního formátu GEDCOM, který je celosvětově
|
||||
rozšířen a je využíván téměř všemi ostatními genealogickými programy.
|
||||
|
||||
|
||||
**MOŽNOSTI**
|
||||
**gramps** *SOUBOR*
|
||||
Pokud je zadán SOUBOR (bez dalších parametrů) jako název rodok‐
|
||||
menu nebo jako adresář databáze rodokmenu, je gramps otevřeno v
|
||||
interaktivním módu. Pokud je SOUBOR formátem podporovaným
|
||||
Gramps, je vytvořen rodokmen s názvem založeným na názvu souboru
|
||||
a data ze vstupu jsou do něho naimportována. Zbytek parametrů
|
||||
příkazové řádky je ignorován. Tento způsob spouštění je vhodný
|
||||
pro gramps použitý jako prohlížeč genealogických dat např. pro
|
||||
webové prohlížeče. Spuštění tímto způsobem zpracuje jakákoli
|
||||
data ve formátu podporovaném gramps, viz dále.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMÁT*
|
||||
Explicitně definuje formát SOUBORu předchozího parametru -i,
|
||||
nebo -e. Pokud není parametr -f pro SOUBOR specifikován, bude
|
||||
automaticky použit formát odpovídající koncovce souboru nebo
|
||||
MIME-typu.
|
||||
|
||||
Formáty dostupné pro export jsou gramps-xml (automaticky použit
|
||||
pokud má SOUBOR koncovku .gramps), gedcom (automaticky použit
|
||||
pokud má SOUBOR koncovku .ged), případně jiný další formát dos‐
|
||||
tupný prostřednictvím zásuvných modulů Gramps.
|
||||
|
||||
Formáty dostupné pro import jsou grdb, gramps-xml, gedcom,
|
||||
gramps-pkg (automaticky použit pokud má SOUBOR koncovku .gpkg),
|
||||
nebo geneweb (automaticky použit pokud má SOUBOR koncovku .gw).
|
||||
|
||||
Formáty dostupné pro export jsou gramps-xml, gedcom, gramps-pkg,
|
||||
wft (automaticky použit pokud má SOUBOR koncovku .wft), geneweb,
|
||||
a iso (nikdy není použit automaticky, vždy musí být specifikován
|
||||
parametrem -f).
|
||||
|
||||
|
||||
**-l**
|
||||
Vypíše seznam známých rodokmenů.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Odemkne zamčenou databázi.
|
||||
|
||||
|
||||
**-O** , **--open=** *DATABÁZE*
|
||||
Otevření *DATABÁZE* . Hodnota musí být existujícím databázovým
|
||||
adresářem, nebo názvem existujícího rodokmenu. Pokud na
|
||||
příkazové řádce nejsou žádné parametry importu nebo exportu, je
|
||||
nad danou databází spuštěna interaktivní relace.
|
||||
|
||||
|
||||
**-i** , **--import=** *SOUBOR*
|
||||
Importuje data ze SOUBORu. Pokud není specifikována databáze, je
|
||||
použita dočasná. Ta je po ukončení gramps smazána.
|
||||
|
||||
Pokud je předáván více než jeden vstup, musí každému souboru
|
||||
předcházet parametr -i. Soubory jsou zpracovávány v pořadí, v
|
||||
jakém byly zadány na příkazové řádce. Např. -i SOUBOR1 -i SOU‐
|
||||
BOR2 a -i SOUBOR2 -i SOUBOR1 mohou vytvořit ve výsledné databázi
|
||||
různá gramps ID.
|
||||
|
||||
|
||||
**-a** , **--action=** *AKCE*
|
||||
Provedení AKCE nad importovanými daty. Akce jsou spuštěny poté
|
||||
co jsou všechny importy dat úspěšně ukončeny. V tuto chvíli jsou
|
||||
podporovány následující akce: summary (stejné jako
|
||||
Zprávy->Pohled->Souhrn), check (stejné jako Nástroje->Database
|
||||
Processing->Kontrola a oprava), report (vytvoří zprávu), a tool
|
||||
(spustí nástroj zásuvného modulu). Akce report a tool potřebují
|
||||
v PARAMETRY zadat parametr -p .
|
||||
|
||||
PARAMETRY by měly splňovat následující kritéria:
|
||||
Nesmí obsahovat žádné mezery. Pokud některý argument potřebuje
|
||||
mezeru, musí být řetězec uzavřen v uvozovkách (držet se syntaxe
|
||||
příkazové řádky). Řetězec možností je seznam párů název=hod‐
|
||||
nota. Jednotlivé páry musí být odděleny čárkami.
|
||||
|
||||
Většina možností nástrojů a zpráv jsou specifickými pro
|
||||
konkrétní nástroj nebo zprávu. Existují ale i takové, které
|
||||
jsou společné.
|
||||
|
||||
**name=name**
|
||||
Povinná předvolba určující který nástroj nebo zpráva bude
|
||||
spuštěna. Pokud zadané name neodpovídá žádné dostupné
|
||||
funkčnosti, vypíše se chybové hlášení následované seznamem dos‐
|
||||
tupných nástrojů a zpráv (záleží na AKCE).
|
||||
|
||||
**show=all**
|
||||
Vytvoří seznam názvů všech předvoleb dostupných pro danou zprávu
|
||||
nebo nástroj.
|
||||
|
||||
**show=optionname**
|
||||
Vypíše popis všech funkcionalit poskytnutých optionname, ale
|
||||
také všechny přijatelné typy a hodnoty pro tuto volbu.
|
||||
|
||||
Použijte výše popsané volby pro zjištění všech možností dané
|
||||
zprávy.
|
||||
|
||||
|
||||
Pokud je zadána jedna nebo více výstupních akcí, každá musí být uvozena
|
||||
předvolbou -a. Akce jsou prováděny jedna za druhou v zadaném pořadí.
|
||||
|
||||
|
||||
**-d** , **--debug=** *LOGGER_NAME*
|
||||
Zapne ladicí výstup pro vývoj a testování. Detaily najdete ve
|
||||
zdrojovém kódu.
|
||||
|
||||
**--version**
|
||||
Vytiskne číslo verze gramps a skončí
|
||||
|
||||
|
||||
|
||||
|
||||
**Chování**
|
||||
Pokud první parametr příkazové řádky nezačíná pomlčkou, pokusí se
|
||||
gramps otevřít soubor s názvem daným prvním argumentem na příkazové
|
||||
řádce a spustit interaktivní relaci. Zbytek argumentů na příkazové
|
||||
řádce je v tomto případě ignorován.
|
||||
|
||||
|
||||
Pokud je zadán parametr -O, pak se gramps snaží otevřít zadanou
|
||||
databázi a pracovat s jejími daty podle instrukcí dalších parametrů
|
||||
příkazové řádky.
|
||||
|
||||
|
||||
S nebo bez použití parametru -O může být provedeno více importů,
|
||||
exportů, případně akcí daných argumenty příkazové řádky (-i, -e a -a).
|
||||
|
||||
|
||||
Na pořadí parametrů -i, -e, nebo -a nezáleží. Aktuální pořadí zpra‐
|
||||
cování je vždy: všechny importy (pokud jsou nějaké) -> všechny akce
|
||||
(pokud jsou nějaké) -> všechny exporty (pokud jsou nějaké). Parametr
|
||||
otevření musí být ale vždy první!
|
||||
|
||||
|
||||
Pokud nejsou zadány -O nebo -i, gramps otevře své hlavní okno a spustí
|
||||
se v obvyklém interaktivním módu s prázdnou databází.
|
||||
|
||||
|
||||
Pokud nejsou zadány -e nebo -a, gramps otevře své hlavní okno a spustí
|
||||
se v ovbyklém interaktnivním módu s databází vzniklou výsledkem všech
|
||||
importů. Tato databáze je umístěna v souboru import_db.grdb v adresáři
|
||||
~/.gramps/import.
|
||||
|
||||
|
||||
Chyba vzniklá při importu, exportu nebo akci bude vypsána na stdout
|
||||
(pokud se jedná o vyjímku ošetřenou gramps) nebo na stderr (pokud
|
||||
problém není ošetřen). Pro uložení zpráv a chyb do souboru použijte
|
||||
obvyklá přesměrování výstupů stdout a stderr příkazové řádky.
|
||||
|
||||
|
||||
**PŘÍKLADY**
|
||||
Otevření existujícího rodokmenu a import xml souboru do něho může být
|
||||
proveden takto:
|
||||
|
||||
gramps -O 'Můj rodokmen' -i ~/db3.gramps
|
||||
|
||||
To samé, jen s importem do dočasné databáze a otevřením interaktivní
|
||||
relace:
|
||||
|
||||
gramps -i 'My Family Tree' -i ~/db3.gramps
|
||||
|
||||
Import čtyř databází (jejichž formáty jsou stanoveny podle názvů sou‐
|
||||
borů) a následná kontrola bezchybnosti výsledné databáze může být
|
||||
provedena takto:
|
||||
|
||||
gramps -i file1.ged -i file2.tgz -i ~/db3.gramps -i file4.wft -a
|
||||
check
|
||||
|
||||
Explicitní specifikace formátu databází předchozího příkladu přidáním
|
||||
příslušného parametru -f za název souboru:
|
||||
|
||||
gramps -i file1.ged -f gedcom -i file2.tgz -f gramps-pkg -i
|
||||
~/db3.gramps -f gramps-xml -i file4.wft -f wft -a check
|
||||
|
||||
Zapsání výsledné databáze vytvořené ze všech importů zajistí parametr
|
||||
-e (použijte -f pokud nelze uhodnout formát z názvu souboru):
|
||||
|
||||
gramps -i file1.ged -i file2.tgz -e ~/nový-balíček -f gramps-pkg
|
||||
|
||||
Import tří databází a start interaktivní gramps relace nad výsledkem:
|
||||
|
||||
gramps -i file1.ged -i file2.tgz -i ~/db3.gramps
|
||||
|
||||
Spuštění nástroje kontroly z příkazové řádky s výstupem na stdout:
|
||||
|
||||
gramps -O 'Můj rodokmen' -a tool -p name=verify
|
||||
|
||||
A konečně spuštění normální interaktivní relace aplikace:
|
||||
|
||||
gramps
|
||||
|
||||
|
||||
**PROMĚNNÉ PROSTŘEDÍ**
|
||||
Program kontroluje, zda jsou nastaveny následující proměnné:
|
||||
|
||||
**LANG** - popisuje, který jazyk bude použit: Příklad: pro češtinu musí mít
|
||||
proměnná hodnotu cs_CZ.utf8.
|
||||
|
||||
**GRAMPSHOME** - pokud je nastavena, Gramps použije její hodnotu jako
|
||||
adresář v němž jsou uložena nastavení a databáze. Ve výchozím stavu,
|
||||
kdy proměnná není nastavena gramps předpokládá že adresář s databázemi
|
||||
a nastavením bude vytvořen v adresáři s uživatelským profile (popsán
|
||||
proměnnou prostředí HOME v Linuxu nebo USERPROFILE ve Windows 2000/XP).
|
||||
|
||||
|
||||
**KONCEPTY**
|
||||
gramps podporuje systém zásuvných modulů založených na jazyku python
|
||||
jehož prostřednictvím umožňuje přidání import/export modulů, modulů
|
||||
pro vytváření zpráv, nástrojů a zobrazovacích filtrů bez nutnosti
|
||||
zásahu do hlavního programu.
|
||||
|
||||
Dále, krom možnosti přímého tisku, dovoluje směřovat výstup také k
|
||||
ostatním systémům a aplikacím jako např. OpenOffice.org, AbiWord, HTML,
|
||||
nebo LaTeX. Tím dává možnost přizpůsobit formát požadavku uživatelů.
|
||||
|
||||
|
||||
**ZNÁMÉ CHYBY A OMEZENÍ**
|
||||
nejsou
|
||||
|
||||
|
||||
**SOUBORY**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
**AUTOŘI**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
Originální manuálovou stránku vytvořil:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
pro zařazení do systému Debian GNU/Linux.
|
||||
|
||||
Tuto manuálovou stránku přeložil a v současné době spravuje:
|
||||
Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
|
||||
|
||||
**DOKUMENTACE**
|
||||
Uživatelská dokumentace je k dispozici prostřednictvím standardního
|
||||
prohlížeče nápovědy GNOME ve formě příručky Gramps. Příručka je také
|
||||
dostupná ve formátu XML jako gramps-manual.xml v adresáři doc/gramps-
|
||||
manual/$LANG v oficiální distribuci zdrojového kódu.
|
||||
|
||||
Dokumentace pro vývojáře je k dispozici na webu
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
|
||||
|
||||
|
||||
Leden 2012 3.4.0 gramps(1)
|
||||
+299
@@ -0,0 +1,299 @@
|
||||
English
|
||||
=======
|
||||
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
|
||||
**NAME**
|
||||
gramps - Genealogical Research and Analysis Management Programming Sys‐
|
||||
tem.
|
||||
|
||||
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *DATABASE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-e** | **--export=** *FILE* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *OPTION‐
|
||||
STRING*]] [*FILE*] [**--version**]
|
||||
|
||||
|
||||
**DESCRIPTION**
|
||||
Gramps is a Free/OpenSource genealogy program. It is written in Python,
|
||||
using the GTK+/GNOME interface. Gramps should seem familiar to anyone
|
||||
who has used other genealogy programs before such as Family Tree Maker
|
||||
(TM), Personal Ancestral Files (TM), or the GNU Geneweb. It supports
|
||||
importing of the ever popular GEDCOM format which is used world wide by
|
||||
almost all other genealogy software.
|
||||
|
||||
|
||||
**OPTIONS**
|
||||
**gramps** *FILE*
|
||||
When *FILE* is given (without any flags) as a family tree name or
|
||||
as a family tree database directory, then it is opened and an
|
||||
interactive session is started. If *FILE* is a file format under‐
|
||||
stood by Gramps, an empty family tree is created whose name is
|
||||
based on the *FILE* name and the data is imported into it. The
|
||||
rest of the options is ignored. This way of launching is suit‐
|
||||
able for using gramps as a handler for genealogical data in e.g.
|
||||
web browsers. This invocation can accept any data format native
|
||||
to gramps, see below.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMAT*
|
||||
Explicitly specify format of *FILE* given by preceding **-i** ,
|
||||
or **-e** option. If the **-f** option is not given for any
|
||||
*FILE* , the format of that file is guessed according to its extension
|
||||
or MIME-type.
|
||||
|
||||
Formats available for export are **gramps-xml** (guessed if *FILE*
|
||||
ends with **.gramps** ), **gedcom** (guessed if *FILE* ends with
|
||||
**.ged** ), or any file export available through the Gramps plugin
|
||||
system.
|
||||
|
||||
Formats available for import are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** (guessed if *FILE* ends with **.gpkg** ),
|
||||
and **geneweb** (guessed if *FILE* ends with **.gw** ).
|
||||
|
||||
Formats available for export are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** , **wft** (guessed if *FILE* ends with **.wft** ),
|
||||
**geneweb**.
|
||||
|
||||
|
||||
**-l**
|
||||
Print a list of known family trees.
|
||||
|
||||
|
||||
**-L**
|
||||
Print a detailed list of known family trees.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Unlock a locked database.
|
||||
|
||||
|
||||
**-O** , **--open=** *DATABASE*
|
||||
Open *DATABASE* which must be an existing database directory or
|
||||
existing family tree name. If no action, import or export
|
||||
options are given on the command line then an interactive ses‐
|
||||
sion is started using that database.
|
||||
|
||||
|
||||
**-i** , **--import=** *FILE*
|
||||
Import data from *FILE* . If you haven't specified a database then
|
||||
a temporary database is used; this is deleted when you exit
|
||||
gramps.
|
||||
|
||||
When more than one input file is given, each has to be preceded
|
||||
by **-i** flag. The files are imported in the specified order, i.e.
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
might produce different gramps IDs in the resulting database.
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Export data into *FILE* . For **gramps-xml** , **gedcom**
|
||||
, **wft** , **gramps-pkg** , et **geneweb** , the *FILE* is the
|
||||
name of the resulting file.
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
by **-e** flag. The files are written one by one, in the specified order.
|
||||
|
||||
|
||||
**-a** , **--action=** *ACTION*
|
||||
Perform *ACTION* on the imported data. This is done after all
|
||||
imports are successfully completed. Currently available actions
|
||||
are **summary** (same as Reports->View->Summary), **check** (same as
|
||||
Tools->Database Processing->Check and Repair), **report** (generates
|
||||
report), and tool (runs a plugin tool). Both **report** and **tool**
|
||||
need the *OPTIONSTRING* supplied by the **-p** flag).
|
||||
|
||||
The *OPTIONSTRING* should satisfy the following conditions:
|
||||
It must not contain any spaces. If some arguments need to
|
||||
include spaces, the string should be enclosed with quotation
|
||||
marks, i.e., follow the shell syntax. Option string is a list
|
||||
of pairs with name and value (separated by the equality sign).
|
||||
The name and value pairs must be separated by commas.
|
||||
|
||||
Most of the report or tools options are specific for each report
|
||||
or tool. However, there are some common options.
|
||||
|
||||
**name=name**
|
||||
This mandatory option determines which report or tool will be
|
||||
run. If the supplied name does not correspond to any available
|
||||
report or tool, an error message will be printed followed by the
|
||||
list of available reports or tools (depending on the *ACTION* ).
|
||||
|
||||
**show=all**
|
||||
This will produce the list of names for all options available
|
||||
for a given report or tool.
|
||||
|
||||
**show=optionname**
|
||||
This will print the description of the functionality supplied by
|
||||
*optionname*, as well as what are the acceptable types and values
|
||||
for this option.
|
||||
|
||||
Use the above options to find out everything about a given
|
||||
report.
|
||||
|
||||
|
||||
When more than one output action is given, each has to be preceded by
|
||||
**-a** flag. The actions are performed one by one, in the specified order.
|
||||
|
||||
|
||||
**-d** , **--debug=** *LOGGER_NAME*
|
||||
Enables debug logs for development and testing. Look at the
|
||||
source code for details
|
||||
|
||||
**--version**
|
||||
Prints the version number of gramps and then exits
|
||||
|
||||
|
||||
|
||||
|
||||
**Operation**
|
||||
If the first argument on the command line does not start with dash
|
||||
(i.e. no flag), gramps will attempt to open the file with the name
|
||||
given by the first argument and start interactive session, ignoring the
|
||||
rest of the command line arguments.
|
||||
|
||||
|
||||
If the **-O** flag is given, then gramps will try opening the supplied
|
||||
database and then work with that data, as instructed by the further
|
||||
command line parameters.
|
||||
|
||||
|
||||
With or without the **-O** flag, there could be multiple imports, exports,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
**-e** , and **-a** flags.
|
||||
|
||||
|
||||
The order of **-i** , **-e** , or **-a** options does not matter. The actual order
|
||||
always is: all imports (if any) -> all actions (if any) -> all exports
|
||||
(if any). But opening must always be first!
|
||||
|
||||
|
||||
If no **-O** or **-i** option is given, gramps will launch its main window and
|
||||
start the usual interactive session with the empty database, since
|
||||
there is no data to process, anyway.
|
||||
|
||||
|
||||
If no **-e** or **-a** options are given, gramps will launch its main window
|
||||
and start the usual interactive session with the database resulted from
|
||||
all imports. This database resides in the **import_db.grdb** under
|
||||
**~/.gramps/import** directory.
|
||||
|
||||
|
||||
The error encountered during import, export, or action, will be either
|
||||
dumped to stdout (if these are exceptions handled by gramps) or to
|
||||
*stderr* (if these are not handled). Use usual shell redirections of
|
||||
*stdout* and *stderr* to save messages and errors in files.
|
||||
|
||||
|
||||
**EXAMPLES**
|
||||
To open an existing family tree and import an xml file into it, one
|
||||
may type:
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
The above changes the opened family tree, to do the same, but import
|
||||
both in a temporary family tree and start an interactive session, one
|
||||
may type:
|
||||
|
||||
**gramps -i** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
To import four databases (whose formats can be determined from their
|
||||
names) and then check the resulting database for errors, one may type:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
To explicitly specify the formats in the above example, append file‐
|
||||
names with appropriate **-f** options:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
To record the database resulting from all imports, supply **-e** flag (use
|
||||
**-f** if the filename does not allow gramps to guess the format):
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
To import three databases and start interactive gramps session with the
|
||||
result:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
To run the Verify tool from the commandline and output the result to
|
||||
stdout:
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Finally, to start normal interactive session type:
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
**ENVIRONMENT VARIABLES**
|
||||
The program checks whether these environment variables are set:
|
||||
|
||||
**LANG** - describe, which language to use: Ex.: for polish language this
|
||||
variable has to be set to pl_PL.UTF-8.
|
||||
|
||||
**GRAMPSHOME** - if set, force Gramps to use the specified directory to
|
||||
keep program settings and databases there. By default, this variable is
|
||||
not set and gramps assumes that the folder with all databases and pro‐
|
||||
file settings should be created within the user profile folder
|
||||
(described by environment variable HOME for Linux or USERPROFILE for
|
||||
Windows 2000/XP).
|
||||
|
||||
|
||||
**CONCEPTS**
|
||||
Supports a python-based plugin system, allowing import and export writ‐
|
||||
ers, report generators, tools, and display filters to be added without
|
||||
modification of the main program.
|
||||
|
||||
In addition to generating direct printer output, report generators also
|
||||
target other systems, such as *LibreOffice.org* , *AbiWord* , *HTML*,
|
||||
or *LaTeX* to allow the users to modify the format to suit their needs.
|
||||
|
||||
|
||||
**KNOWN BUGS AND LIMITATIONS**
|
||||
|
||||
**FILES**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
**AUTHORS**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
This man page was originally written by:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
for inclusion in the Debian GNU/Linux system.
|
||||
|
||||
This man page is currently maintained by:
|
||||
Gramps project <xxx@gramps-project.org>
|
||||
|
||||
|
||||
**DOCUMENTATION**
|
||||
The user documentation is available through standard web browser
|
||||
in the form of Gramps Manual.
|
||||
|
||||
The developer documentation can be found on the
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
portal.
|
||||
|
||||
|
||||
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'fr'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0-alpha2'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%d %B %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('fr', 'gramps', u'Gramps Documentation',
|
||||
['Jerome Rapinat'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,300 @@
|
||||
French
|
||||
=======
|
||||
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
**NOM**
|
||||
gramps - Gramps est une application de généalogie. Gramps est
|
||||
l'acronyme de Genealogical Research and Analysis Management Programming
|
||||
System (Systeme de Programmation pour Recherche, Analyse et Gestion de
|
||||
données généalogiques)
|
||||
|
||||
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *BASE_DE_DONNEES*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-e** | **--export=** *FICHIER* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *CHAÎNE‐
|
||||
OPTION*]] [*FICHIER*] [**--version**]
|
||||
|
||||
|
||||
**DESCRIPTION**
|
||||
Gramps est un programme Libre/OpenSource de généalogie. Il est écrit en
|
||||
python, et utilise une interface GTK+/GNOME. Gramps est semblable à
|
||||
d'autres programmes de généalogie tel que Family Tree Maker (FTM),
|
||||
Personal Ancestral Files, ou le programme GNU Geneweb. Il peut
|
||||
importer/exporter le format le plus utilisé par les autres logiciels de
|
||||
généalogie : GEDCOM.
|
||||
|
||||
|
||||
**OPTIONS**
|
||||
**gramps** *FICHIER*
|
||||
Si *FICHIER* est désigné (sans autres commandes) comme arbre
|
||||
familial ou comme répertoire d'arbre familial, alors une session
|
||||
interactive est ouverte. Si *FICHIER* est un format de fichier
|
||||
supporté par Gramps, une base vide est créée dont le nom est
|
||||
celui du *FICHIER* et les données y seront importées. Les autres
|
||||
options sont ignorées. Ce type de lancement permet d'utiliser
|
||||
gramps pour manipuler des données comme dans un navigateur web.
|
||||
Les formats natifs de gramps sont acceptés, voir ci-dessous.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMAT*
|
||||
Le format spécifique du *FICHIER* est précédé par les arguments
|
||||
**-i** , ou **-e** . Si l'option **-f** n'est pas donnée pour le *FICHIER* ,
|
||||
alors le format sera celui de l'extension ou du type-MIME.
|
||||
|
||||
Les formats de sortie disponibles sont **gramps-xml** (deviné si
|
||||
*FICHIER* se termine par **.gramps** ), et **gedcom** (deviné si *FICHIER* se
|
||||
termine par **.ged** ), ou tout autre fichier d'exportation
|
||||
disponible dans le système de plugin Gramps.
|
||||
|
||||
Les formats disponibles pour l'importation sont **grdb** ,
|
||||
**gramps-xml** , **gedcom** , **gramps-pkg** (deviné si *FICHIER* se termine par
|
||||
**.gpkg** ), et **geneweb** (deviné si *FICHIER* se termine par **.gw** ).
|
||||
|
||||
Les formats disponibles pour l'exportation sont **gramps-xml** , **ged‐
|
||||
com** , **gramps-pkg** , **wft** (deviné si *FICHIER* se termine par **.wft** ),
|
||||
**geneweb** .
|
||||
|
||||
|
||||
**-l**
|
||||
Imprime une liste des arbres familiaux disponibles.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Débloquer une base de données verrouillée.
|
||||
|
||||
|
||||
**-O** , **--open=** *BASE_DE_DONNEES*
|
||||
Ouvrir une *BASE_DE_DONNEES* qui doit être une base présente dans
|
||||
le répertoire des bases ou le nom d'un arbre familial existant.
|
||||
Si aucune action n'est définie, les options d'import ou d'export
|
||||
sont données par la ligne de commande puis une session interactive
|
||||
est ouverte, utilisant cette base de données.
|
||||
|
||||
Seulement une base peut être ouverte. Si vous utilisez plusieurs
|
||||
sources, vous devez utiliser l'option d'import.
|
||||
|
||||
|
||||
**-i** , **--import=** *FICHIER*
|
||||
Importer des données depuis un *FICHIER* . Si vous n'avez pas
|
||||
spécifié de base de données alors une base de données temporaire
|
||||
est utilisée; elle sera effacée quand vous quitterez gramps.
|
||||
|
||||
Quand plus d'un fichier doit être importé, chacun doit être
|
||||
précédé par la commande **-i** . Ces fichiers sont importés dans le
|
||||
même ordre, **-i** *FICHIER1* **-i** *FICHIER2* et **-i** *FICHIER2* **-i**
|
||||
*FICHIER1* vont tous les deux produire différents IDs gramps.
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Exporter des données dans un *FICHIER* . Pour les fichiers **gramps-xml**
|
||||
, **gedcom** , **wft** , **gramps-pkg** , et **geneweb** , le
|
||||
*FICHIER* est le nom du fichier de sortie.
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être
|
||||
précédé par la commande **-e** . Ces fichiers sont importés dans le
|
||||
même ordre.
|
||||
|
||||
|
||||
**-a** , **--action=** *ACTION*
|
||||
Accomplir une *ACTION* sur les données importées. C'est effectué à
|
||||
la fin de l'importation. Les actions possibles sont **summary**
|
||||
(comme le rapport -> Afficher -> Statistiques sur la base),
|
||||
**check** (comme l'outil -> Réparation de la base -> Vérifier et
|
||||
réparer), **report** (produit un rapport) et **tool** (utilise un
|
||||
outil), ces derniers ont besoin de *OPTION* précédé par la commande -p.
|
||||
|
||||
L' *OPTION* doit satisfaire ces conditions:
|
||||
Il ne doit pas y avoir d'espace. Si certains arguments doivent
|
||||
utiliser des espaces, la chaîne doit être encadrée par des
|
||||
guillemets. Les options vont par paire nom et valeur. Une
|
||||
paire est séparée par un signe égal. Différentes paires sont
|
||||
séparées par une virgule.
|
||||
|
||||
La plupart des options sont spécifiques à chaque rapport. Même
|
||||
s'il existe des options communes.
|
||||
|
||||
**name=name**
|
||||
Cette option est obligatoire, elle détermine quel rapport ou
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
module disponible, un message d'erreur sera ajouté.
|
||||
|
||||
**show=all**
|
||||
Cette option produit une liste avec les noms des options
|
||||
disponibles pour un rapport donné.
|
||||
|
||||
**show=optionname**
|
||||
Cette option affiche une description de toutes les fonctionnalités
|
||||
proposées par optionname, aussi bien les types que les valeurs pour une option.
|
||||
|
||||
Utiliser les options ci-dessus pour trouver tout sur un rapport
|
||||
choisi.
|
||||
|
||||
|
||||
Quand plus d'une action doit être effectuée, chacune doit être précédée
|
||||
par la commande **-a** . Les actions seront réalisées une à une, dans
|
||||
l'ordre spécifié.
|
||||
|
||||
|
||||
**-d** , **--debug=** *NOM_LOGGER*
|
||||
Permet les logs de debug pour le développement et les tests.
|
||||
Regarder le code source pour les détails.
|
||||
|
||||
**--version**
|
||||
Imprime le numéro de version pour gramps puis quitte.
|
||||
|
||||
|
||||
|
||||
|
||||
**Opération**
|
||||
Si le premier argument de la ligne de commande ne commence pas par un
|
||||
tiret (i.e. pas d'instruction), gramps va essayer d'ouvrir la base de
|
||||
données avec le nom donné par le premier argument et démarrer une ses‐
|
||||
sion interactive, en ignorant le reste de la ligne de commande.
|
||||
|
||||
|
||||
Si la commande **-O** est notée, alors gramps va essayer le fichier défini
|
||||
et va travailler avec ses données, comme pour les autres paramètres de
|
||||
la ligne de commande.
|
||||
|
||||
|
||||
Avec ou sans la commande **-O** , il peut y avoir plusieurs imports,
|
||||
exports, et actions dans la ligne de commande **-i** , **-e** , et **-a** .
|
||||
|
||||
|
||||
L'ordre des options **-i** , **-e** , ou **-a** n'a pas de sens. L'ordre actuel est
|
||||
toujours : imports -> actions -> exports. Mais l'ouverture doit toujours
|
||||
être la première !
|
||||
|
||||
|
||||
Si aucune option **-O** ou **-i** n'est donnée, gramps lancera sa propre
|
||||
fenêtre et demarrera avec une base vide, puisqu'il n'y a pas données.
|
||||
|
||||
|
||||
Si aucune option **-e** ou **-a** n'est donnée, gramps lancera sa propre
|
||||
fenêtre et démarrera avec la base de données issue de tout les imports.
|
||||
Cette base sera **import_db.grdb** dans le répertoire **~/.gramps/import**.
|
||||
|
||||
|
||||
Les erreurs rencontrées lors d'importation, d'exportation, ou d'action, seront
|
||||
mémorisées en *stdout* (si elles sont le fait de la manipulation par
|
||||
gramps) ou en *stderr* (si elles ne sont pas le fait d'une manipulation).
|
||||
Utilisez les shell de redirection de *stdout* et *stderr* pour sauver
|
||||
les messages et les erreurs dans les fichiers.
|
||||
|
||||
|
||||
**EXEMPLES**
|
||||
Pour ouvrir un arbre familial et y importer un fichier XML, on peut
|
||||
saisir:
|
||||
|
||||
**gramps -O** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Ceci ouvre un arbre familial, pour faire la même chose, mais importer
|
||||
dans un arbre familial temporaire et démarrer une session interactive,
|
||||
on peut saisir :
|
||||
|
||||
**gramps -i** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Lecture de quatre bases de données dont les formats peuvent être
|
||||
devinés d'après les noms, puis vérification des données:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
Si vous voulez préciser lesformats de fichiers dans l'exemple ci-
|
||||
dessus, complétez les noms de fichiers par les options -f appropriées:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
Pour enregistrer le résultat des lectures, donnez l'option **-e**
|
||||
(utiliser -f si le nom de fichier ne permet pas à gramps de deviner le
|
||||
format):
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
interactive de gramps sur le tout :
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
Pour lancer l'outil de vérification de la base de données depuis la
|
||||
ligne de commande et obtenir le résultat :
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
**VARIABLES D'ENVIRONMENT**
|
||||
Le programme vérifie si ces variables d'environnement sont déclarées:
|
||||
|
||||
**LANG** - décrit, quelle langue est utilisée: Ex.: pour le français on
|
||||
peut définir fr_FR.UTF-8.
|
||||
|
||||
**GRAMPSHOME** - si défini, force Gramps à utiliser un répertoire
|
||||
spécifique pour y conserver ses préférences et bases de données. Par
|
||||
défaut, cette variable n'est pas active et Gramps sait que les options
|
||||
et bases de données doivent être créées dans le répertoire par défaut
|
||||
de l'utilisateur (la variable d'environnement HOME pour Linux ou USER‐
|
||||
PROFILE pour Windows 2000/XP).
|
||||
|
||||
|
||||
**CONCEPTS**
|
||||
Gramps est un système basé sur le support de plugin-python, permettant
|
||||
d'importer et d'exporter, la saisie, générer des rapports, des outils,
|
||||
et afficher des filtres pouvant être ajoutés sans modifier le programme.
|
||||
|
||||
Par ailleurs, gramps permet la génération directe : impression, rap‐
|
||||
ports avec sortie vers d'autres formats, comme *LibreOffice.org* ,
|
||||
*HTML* , ou *LaTeX* pour permettre à l'utilisateur de choisir selon ses
|
||||
besoins
|
||||
|
||||
|
||||
**BUGS CONNUS ET LIMITATIONS**
|
||||
|
||||
**FICHIERS**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
**AUTEURS**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
Cette page man a d'abord été écrite par :
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
pour Debian GNU/Linux système.
|
||||
|
||||
Cette page man est maintenue par :
|
||||
Gramps project <xxx@gramps-project.org>
|
||||
|
||||
La traduction française :
|
||||
Jérôme Rapinat <romjerome@yahoo.fr>
|
||||
|
||||
|
||||
**DOCUMENTATION**
|
||||
La documentation-utilisateur est disponible par un navigateur
|
||||
standard sous la forme du manuel Gramps.
|
||||
|
||||
La documentation pour développeur est disponible sur le site
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers .
|
||||
|
||||
|
||||
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
+329
-277
@@ -1,290 +1,342 @@
|
||||
.TH gramps 1 "@VERSION@" "Mars 2009" "@VERSION@"
|
||||
.SH NOM
|
||||
gramps \- Gramps est une application de généalogie. Gramps est l'acronyme de Genealogical Research and Analysis Management Programming System (Systeme de Programmation pour Recherche, Analyse et Gestion de données généalogiques)
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B gramps
|
||||
.RB [ \-?|\-\^\-help ]
|
||||
.RB [ \-\^\-usage ]
|
||||
.RB [ \-\^\-version ]
|
||||
.RB [ \-l]
|
||||
.RB [ \-u|\-\^\-force-unlock ]
|
||||
.RB [ \-O|\-\^\-open=
|
||||
.IR BASE_DE_DONNEES
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR FICHIER
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR ... ]
|
||||
.RB [ \-e|\-\^\-export=
|
||||
.IR FICHIER
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-a|\-\^\-action=
|
||||
.IR ACTION ]
|
||||
.RB [ \-p|\-\^\-options=
|
||||
.IR OPTION ]]
|
||||
.RB [
|
||||
.IR FICHIER
|
||||
.RB ]
|
||||
.if 0 .RB [ bonobo\ options ]
|
||||
.if 0 .RB [ sound\ options ]
|
||||
.RB [ \-\-version ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\fIGramps\fP est un programme Libre/OpenSource de généalogie. Il est écrit en python,
|
||||
et utilise une interface GTK+/GNOME.
|
||||
Gramps est semblable à d'autres programmes de généalogie tel que \fIFamily Tree Maker (FTM)\fR, \fIPersonal Ancestral
|
||||
Files\fR, ou le programme GNU Geneweb.
|
||||
Il peut importer/exporter le format le plus utilisé par les autres logiciels de généalogie : GEDCOM.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI gramps " FICHIER"
|
||||
Si \fIFICHIER\fR est désigné (sans autres commandes) comme arbre familial ou comme répertoire d'arbre familial, alors une session interactive est ouverte. Si FICHIER est un format de fichier supporté par Gramps, une base vide est créée dont le nom est celui du \fIFICHIER\fP et les données y seront importées. Les autres options sont ignorées. Ce type de lancement permet d'utiliser gramps pour manipuler des données comme dans un navigateur web. Les formats natifs de gramps sont acceptés, voir ci-dessous.
|
||||
.br
|
||||
|
||||
.TP
|
||||
.BI \-f,\-\^\-format= " FORMAT"
|
||||
Le format spécifique du \fIFICHIER\fR est précédé par les arguments
|
||||
.ig
|
||||
\fB\-O\fR,
|
||||
.TH "GRAMPS" "1" "28 December 2012" "4.0" "Gramps"
|
||||
.SH NAME
|
||||
gramps \- Gramps Documentation
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
.de1 rstReportMargin
|
||||
\\$1 \\n[an-margin]
|
||||
level \\n[rst2man-indent-level]
|
||||
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
-
|
||||
\\n[rst2man-indent0]
|
||||
\\n[rst2man-indent1]
|
||||
\\n[rst2man-indent2]
|
||||
..
|
||||
\fB\-i\fR, ou
|
||||
\fB\-e\fR. Si l'option \fB\-f\fR n'est pas donnée pour le \fIFICHIER\fR, alors le format sera celui de l'extension ou du type-MIME.
|
||||
.br
|
||||
|
||||
Les formats de sortie disponibles sont \fBgramps\-xml\fR (deviné si \fIFICHIER\fR se termine par
|
||||
\fB.gramps\fR), et \fBgedcom\fR (deviné si \fIFICHIER\fR se termine par \fB.ged\fR), ou
|
||||
tout autre fichier d'exportation disponible dans le système de plugin Gramps.
|
||||
.br
|
||||
|
||||
Les formats disponibles pour l'importation sont \fBgrdb\fR, \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR (deviné si \fIFICHIER\fR se termine par \fB.gpkg\fR), et
|
||||
\fBgeneweb\fR (deviné si \fIFICHIER\fR se termine par \fB.gw\fR).
|
||||
.br
|
||||
|
||||
Les formats disponibles pour l'exportation sont
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
.de1 INDENT
|
||||
.\" .rstReportMargin pre:
|
||||
. RS \\$1
|
||||
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
||||
. nr rst2man-indent-level +1
|
||||
.\" .rstReportMargin post:
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR, \fBwft\fR (deviné si \fIFICHIER\fR se termine par \fB.wft\fR),
|
||||
\fBgeneweb\fR, et \fBiso\fR (jamais deviné, toujours spécifié avec l'option
|
||||
\fB\-f\fR).
|
||||
|
||||
.TP
|
||||
.BI \-l
|
||||
.de UNINDENT
|
||||
. RE
|
||||
.\" indent \\n[an-margin]
|
||||
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.nr rst2man-indent-level -1
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \fBNOM\fP
|
||||
gramps \- Gramps est une application de généalogie. Gramps est
|
||||
l\(aqacronyme de Genealogical Research and Analysis Management Programming
|
||||
System (Systeme de Programmation pour Recherche, Analyse et Gestion de
|
||||
données généalogiques)
|
||||
.TP
|
||||
.B \fBSYNOPSIS\fP
|
||||
\fBgramps\fP [\fB\-?\fP | \fB\-\-help\fP] [\fB\-\-usage\fP] [\fB\-\-version\fP]
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fIFILE\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fI...\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFICHIER\fP [\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP] [\fI\-p\fP | \fB\-\-options=\fP \fICHAÎNE‐
|
||||
OPTION\fP]] [\fIFICHIER\fP] [\fB\-\-version\fP]
|
||||
.TP
|
||||
.B \fBDESCRIPTION\fP
|
||||
Gramps est un programme Libre/OpenSource de généalogie. Il est écrit en
|
||||
python, et utilise une interface GTK+/GNOME. Gramps est semblable à
|
||||
d\(aqautres programmes de généalogie tel que Family Tree Maker (FTM),
|
||||
Personal Ancestral Files, ou le programme GNU Geneweb. Il peut
|
||||
importer/exporter le format le plus utilisé par les autres logiciels de
|
||||
généalogie : GEDCOM.
|
||||
.TP
|
||||
.B \fBOPTIONS\fP
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
.B \fBgramps\fP \fIFICHIER\fP
|
||||
Si \fIFICHIER\fP est désigné (sans autres commandes) comme arbre
|
||||
familial ou comme répertoire d\(aqarbre familial, alors une session
|
||||
interactive est ouverte. Si \fIFICHIER\fP est un format de fichier
|
||||
supporté par Gramps, une base vide est créée dont le nom est
|
||||
celui du \fIFICHIER\fP et les données y seront importées. Les autres
|
||||
options sont ignorées. Ce type de lancement permet d\(aqutiliser
|
||||
gramps pour manipuler des données comme dans un navigateur web.
|
||||
Les formats natifs de gramps sont acceptés, voir ci\-dessous.
|
||||
.TP
|
||||
.B \fB\-f\fP , \fB\-\-format=\fP \fIFORMAT\fP
|
||||
Le format spécifique du \fIFICHIER\fP est précédé par les arguments
|
||||
\fB\-i\fP , ou \fB\-e\fP . Si l\(aqoption \fB\-f\fP n\(aqest pas donnée pour le \fIFICHIER\fP ,
|
||||
alors le format sera celui de l\(aqextension ou du type\-MIME.
|
||||
.sp
|
||||
Les formats de sortie disponibles sont \fBgramps\-xml\fP (deviné si
|
||||
\fIFICHIER\fP se termine par \fB.gramps\fP ), et \fBgedcom\fP (deviné si \fIFICHIER\fP se
|
||||
termine par \fB.ged\fP ), ou tout autre fichier d\(aqexportation
|
||||
disponible dans le système de plugin Gramps.
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqimportation sont \fBgrdb\fP ,
|
||||
\fBgramps\-xml\fP , \fBgedcom\fP , \fBgramps\-pkg\fP (deviné si \fIFICHIER\fP se termine par
|
||||
\fB.gpkg\fP ), et \fBgeneweb\fP (deviné si \fIFICHIER\fP se termine par \fB.gw\fP ).
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqexportation sont \fBgramps\-xml\fP , \fBged‐
|
||||
com\fP , \fBgramps\-pkg\fP , \fBwft\fP (deviné si \fIFICHIER\fP se termine par \fB.wft\fP ),
|
||||
\fBgeneweb\fP .
|
||||
.TP
|
||||
.B \fB\-l\fP
|
||||
Imprime une liste des arbres familiaux disponibles.
|
||||
|
||||
.TP
|
||||
.BI \-u,\-\^\-force-unlock
|
||||
.B \fB\-u\fP , \fB\-\-force\-unlock\fP
|
||||
Débloquer une base de données verrouillée.
|
||||
|
||||
.TP
|
||||
.BI \-O,\-\^\-open= " BASE_DE_DONNEES"
|
||||
Ouvrir une \fIBASE_DE_DONNEES\fR qui doit être une base présente dans le répertoire des bases ou le nom d'un arbre familial existant.
|
||||
Si aucune action n'est définie, les options d'import ou d'export sont données par la ligne de commande puis une session interactive est ouverte, utilisant cette base de données.
|
||||
.br
|
||||
|
||||
Seulement une base peut être ouverte. Si vous utilisez plusieurs sources, vous devez utiliser l'option d'import.
|
||||
|
||||
.TP
|
||||
.BI \-i,\-\^\-import= " FICHIER"
|
||||
Importer des données depuis un \fIFICHIER\fR. Si vous n'avez pas spécifié de base de données alors une base de données temporaire est utilisée; elle sera effacée quand vous quitterez gramps.
|
||||
.br
|
||||
|
||||
Quand plus d'un fichier doit être importé, chacun doit être précédé par la commande \fB\-i\fR. Ces fichiers sont importés dans le même ordre,
|
||||
i.e. \fB\-i\fR \fIFICHIER1\fR \fB\-i\fR \fIFICHIER2\fR
|
||||
et \fB\-i\fR \fIFICHIER2\fR \fB\-i\fR \fIFICHIER1\fR vont tous les deux produire différents IDs gramps.
|
||||
|
||||
.TP
|
||||
.BI \-e,\-\^\-export= " FICHIER"
|
||||
Exporter des données dans un \fIFICHIER\fR. Pour le format \fBiso\fR, le \fIFICHIER\fR est le nom du répertoire dans lequel la base de données gramps est écrite.
|
||||
Pour
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR, \fBwft\fR, \fBgramps\-pkg\fR,
|
||||
et \fBgeneweb\fR, le \fIFICHIER\fR est le nom du fichier de sortie
|
||||
.br
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être précédé par la commande \fB\-e\fR. Ces fichiers sont importés dans le même ordre.
|
||||
|
||||
.TP
|
||||
.BI \-a,\-\^\-action= " ACTION"
|
||||
Accomplir une \fIACTION\fR sur les données importées. C'est effectué à la fin de l'importation. Les actions possibles sont \fBsummary\fR
|
||||
(comme le rapport -> Afficher -> Statistiques sur la base), \fBcheck\fR (comme l'outil -> Réparation de la base -> Vérifier et réparer), \fBreport\fR (produit un rapport) et
|
||||
\fBtool\fR (utilise un outil), ces derniers ont besoin
|
||||
de \fIOPTION\fR précédé par la commande \fB\-p\fR.
|
||||
.br
|
||||
|
||||
L'\fIOPTION\fR doit satisfaire ces conditions:
|
||||
.br
|
||||
Il ne doit pas y avoir d'espace.
|
||||
Si certains arguments doivent utiliser des espaces, la chaîne doit être encadrée par des guillemets.
|
||||
Les options vont par paire nom et valeur.
|
||||
Une paire est séparée par un signe égal.
|
||||
Différentes paires sont séparées par une virgule.
|
||||
.br
|
||||
|
||||
La plupart des options sont spécifiques à chaque rapport. Même s'il existe des options communes.
|
||||
|
||||
.BI "name=name"
|
||||
.br
|
||||
Cette option est obligatoire, elle détermine quel rapport ou outil sera utilisé. Si le \fIname\fR saisi ne correspond à aucun module disponible, un message d'erreur sera ajouté.
|
||||
|
||||
.BI "show=all"
|
||||
.br
|
||||
Cette option produit une liste avec les noms des options disponibles pour un rapport donné.
|
||||
|
||||
.BI "show="optionname
|
||||
.br
|
||||
Cette option affiche une description de toutes les fonctionnalités proposées par \fIoptionname\fR, aussi bien les types que les valeurs pour une option.
|
||||
|
||||
.br
|
||||
Utiliser les options ci-dessus pour trouver tout sur un rapport choisi.
|
||||
|
||||
.LP
|
||||
Quand plus d'une action doit être effectuée, chacune doit être précédée par la commande \fB\-a\fR. Les actions seront réalisées une à une, dans l'ordre spécifié.
|
||||
|
||||
.TP
|
||||
.BI \-d,\-\^\-debug= " NOM_LOGGER"
|
||||
Permet les logs de debug pour le développement et les tests. Regarder le code source pour les détails.
|
||||
.TP
|
||||
.BI \-\^\-version
|
||||
.B \fB\-O\fP , \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP
|
||||
Ouvrir une \fIBASE_DE_DONNEES\fP qui doit être une base présente dans
|
||||
le répertoire des bases ou le nom d\(aqun arbre familial existant.
|
||||
Si aucune action n\(aqest définie, les options d\(aqimport ou d\(aqexport
|
||||
sont données par la ligne de commande puis une session interactive
|
||||
est ouverte, utilisant cette base de données.
|
||||
.sp
|
||||
Seulement une base peut être ouverte. Si vous utilisez plusieurs
|
||||
sources, vous devez utiliser l\(aqoption d\(aqimport.
|
||||
.TP
|
||||
.B \fB\-i\fP , \fB\-\-import=\fP \fIFICHIER\fP
|
||||
Importer des données depuis un \fIFICHIER\fP . Si vous n\(aqavez pas
|
||||
spécifié de base de données alors une base de données temporaire
|
||||
est utilisée; elle sera effacée quand vous quitterez gramps.
|
||||
.sp
|
||||
Quand plus d\(aqun fichier doit être importé, chacun doit être
|
||||
précédé par la commande \fB\-i\fP . Ces fichiers sont importés dans le
|
||||
même ordre, \fB\-i\fP \fIFICHIER1\fP \fB\-i\fP \fIFICHIER2\fP et \fB\-i\fP \fIFICHIER2\fP \fB\-i\fP
|
||||
\fIFICHIER1\fP vont tous les deux produire différents IDs gramps.
|
||||
.TP
|
||||
.B \fB\-e\fP , \fB\-\-export=\fP \fIFICHIER\fP
|
||||
Exporter des données dans un \fIFICHIER\fP . Pour les fichiers \fBgramps\-xml\fP
|
||||
, \fBgedcom\fP , \fBwft\fP , \fBgramps\-pkg\fP , et \fBgeneweb\fP , le
|
||||
\fIFICHIER\fP est le nom du fichier de sortie.
|
||||
.sp
|
||||
Quand plus d\(aqun fichier doit être exporté, chacun doit être
|
||||
précédé par la commande \fB\-e\fP . Ces fichiers sont importés dans le
|
||||
même ordre.
|
||||
.TP
|
||||
.B \fB\-a\fP , \fB\-\-action=\fP \fIACTION\fP
|
||||
Accomplir une \fIACTION\fP sur les données importées. C\(aqest effectué à
|
||||
la fin de l\(aqimportation. Les actions possibles sont \fBsummary\fP
|
||||
(comme le rapport \-> Afficher \-> Statistiques sur la base),
|
||||
\fBcheck\fP (comme l\(aqoutil \-> Réparation de la base \-> Vérifier et
|
||||
réparer), \fBreport\fP (produit un rapport) et \fBtool\fP (utilise un
|
||||
outil), ces derniers ont besoin de \fIOPTION\fP précédé par la commande \-p.
|
||||
.sp
|
||||
L\(aq \fIOPTION\fP doit satisfaire ces conditions:
|
||||
Il ne doit pas y avoir d\(aqespace. Si certains arguments doivent
|
||||
utiliser des espaces, la chaîne doit être encadrée par des
|
||||
guillemets. Les options vont par paire nom et valeur. Une
|
||||
paire est séparée par un signe égal. Différentes paires sont
|
||||
séparées par une virgule.
|
||||
.sp
|
||||
La plupart des options sont spécifiques à chaque rapport. Même
|
||||
s\(aqil existe des options communes.
|
||||
.sp
|
||||
\fBname=name\fP
|
||||
Cette option est obligatoire, elle détermine quel rapport ou
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
module disponible, un message d\(aqerreur sera ajouté.
|
||||
.sp
|
||||
\fBshow=all\fP
|
||||
Cette option produit une liste avec les noms des options
|
||||
disponibles pour un rapport donné.
|
||||
.sp
|
||||
\fBshow=optionname\fP
|
||||
Cette option affiche une description de toutes les fonctionnalités
|
||||
proposées par optionname, aussi bien les types que les valeurs pour une option.
|
||||
.sp
|
||||
Utiliser les options ci\-dessus pour trouver tout sur un rapport
|
||||
choisi.
|
||||
.UNINDENT
|
||||
.sp
|
||||
Quand plus d\(aqune action doit être effectuée, chacune doit être précédée
|
||||
par la commande \fB\-a\fP . Les actions seront réalisées une à une, dans
|
||||
l\(aqordre spécifié.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
.B \fB\-d\fP , \fB\-\-debug=\fP \fINOM_LOGGER\fP
|
||||
Permet les logs de debug pour le développement et les tests.
|
||||
Regarder le code source pour les détails.
|
||||
.TP
|
||||
.B \fB\-\-version\fP
|
||||
Imprime le numéro de version pour gramps puis quitte.
|
||||
\" changer 0 par 1 pour permettre la sortie des options OAF
|
||||
.if 0 \{
|
||||
.PP
|
||||
Les options suivantes seront utilisées pour l'activation Bonobo.
|
||||
.TP
|
||||
.BI \-\^\-oaf-ior-fd= "FD"
|
||||
Le descripteur de fichier pour imprimer OAF IOR
|
||||
.TP
|
||||
.BI \-\^\-oaf-activate-iid= " IID"
|
||||
OAF IID à activer
|
||||
.TP
|
||||
.BI \-\^\-oaf-private
|
||||
Prévenir de l'enregistrement du serveur avec OAF
|
||||
\}
|
||||
\" changer 0 par 1 pour permettre la sortie des options son de GNOME
|
||||
.if 0 \{
|
||||
.PP
|
||||
Les options suivantes seront utilisées pour contrôler le son avec les librairies GNOME.
|
||||
.UNINDENT
|
||||
.TP
|
||||
.BI \-\^\-disable-sound
|
||||
Désactive l'utilisation du server son
|
||||
.B \fBOpération\fP
|
||||
Si le premier argument de la ligne de commande ne commence pas par un
|
||||
tiret (i.e. pas d\(aqinstruction), gramps va essayer d\(aqouvrir la base de
|
||||
données avec le nom donné par le premier argument et démarrer une ses‐
|
||||
sion interactive, en ignorant le reste de la ligne de commande.
|
||||
.sp
|
||||
Si la commande \fB\-O\fP est notée, alors gramps va essayer le fichier défini
|
||||
et va travailler avec ses données, comme pour les autres paramètres de
|
||||
la ligne de commande.
|
||||
.sp
|
||||
Avec ou sans la commande \fB\-O\fP , il peut y avoir plusieurs imports,
|
||||
exports, et actions dans la ligne de commande \fB\-i\fP , \fB\-e\fP , et \fB\-a\fP .
|
||||
.sp
|
||||
L\(aqordre des options \fB\-i\fP , \fB\-e\fP , ou \fB\-a\fP n\(aqa pas de sens. L\(aqordre actuel est
|
||||
toujours : imports \-> actions \-> exports. Mais l\(aqouverture doit toujours
|
||||
être la première !
|
||||
.sp
|
||||
Si aucune option \fB\-O\fP ou \fB\-i\fP n\(aqest donnée, gramps lancera sa propre
|
||||
fenêtre et demarrera avec une base vide, puisqu\(aqil n\(aqy a pas données.
|
||||
.sp
|
||||
Si aucune option \fB\-e\fP ou \fB\-a\fP n\(aqest donnée, gramps lancera sa propre
|
||||
fenêtre et démarrera avec la base de données issue de tout les imports.
|
||||
Cette base sera \fBimport_db.grdb\fP dans le répertoire \fB~/.gramps/import\fP.
|
||||
.sp
|
||||
Les erreurs rencontrées lors d\(aqimportation, d\(aqexportation, ou d\(aqaction, seront
|
||||
mémorisées en \fIstdout\fP (si elles sont le fait de la manipulation par
|
||||
gramps) ou en \fIstderr\fP (si elles ne sont pas le fait d\(aqune manipulation).
|
||||
Utilisez les shell de redirection de \fIstdout\fP et \fIstderr\fP pour sauver
|
||||
les messages et les erreurs dans les fichiers.
|
||||
.TP
|
||||
.BI \-\^\-enable-sound
|
||||
Active l'utilisation du server son
|
||||
.B \fBEXEMPLES\fP
|
||||
Pour ouvrir un arbre familial et y importer un fichier XML, on peut
|
||||
saisir:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-O\fP \fI\(aqMon Arbre Familial\(aq\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Ceci ouvre un arbre familial, pour faire la même chose, mais importer
|
||||
dans un arbre familial temporaire et démarrer une session interactive,
|
||||
on peut saisir :
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fI\(aqMon Arbre Familial\(aq\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Lecture de quatre bases de données dont les formats peuvent être
|
||||
devinés d\(aqaprès les noms, puis vérification des données:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
\fB\-i\fP \fIfile4.wft\fP \fB\-a\fP \fIcheck\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Si vous voulez préciser lesformats de fichiers dans l\(aqexemple ci\-
|
||||
dessus, complétez les noms de fichiers par les options \-f appropriées:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-f\fP \fIgedcom\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-f\fP
|
||||
\fIgramps\-pkg\fP \fB\-i\fP \fI~/db3.gramps\fP \fB\-f\fP \fIgramps\-xml\fP \fB\-i\fP \fIfile4.wft\fP
|
||||
\fB\-f\fP \fIwft\fP \fB\-a\fP \fIcheck\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Pour enregistrer le résultat des lectures, donnez l\(aqoption \fB\-e\fP
|
||||
(utiliser \-f si le nom de fichier ne permet pas à gramps de deviner le
|
||||
format):
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-e\fP \fI~/new\-package\fP
|
||||
\fB\-f\fP \fIgramps\-pkg\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
interactive de gramps sur le tout :
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Pour lancer l\(aqoutil de vérification de la base de données depuis la
|
||||
ligne de commande et obtenir le résultat :
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-O\fP \fI\(aqMy Family Tree\(aq\fP \fB\-a\fP \fItool\fP \fB\-p name=\fP \fIverify\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.TP
|
||||
.BI \-\^\-espeaker= " HOSTNAME:PORT"
|
||||
Host:port sur lequel le serveur son sera utilisé
|
||||
\}
|
||||
|
||||
.SH "Operation"
|
||||
.br
|
||||
Si le premier argument de la ligne de commande ne commence pas par un tiret (i.e. pas
|
||||
d'instruction), gramps va essayer d'ouvrir la base de données avec le nom donné par le premier argument et démarrer une session interactive, en ignorant le reste de la ligne de commande.
|
||||
|
||||
.LP
|
||||
Si la commande \fB\-O\fR est notée, alors gramps va essayer le fichier défini et va travailler avec ses données, comme pour les autres paramètres de la ligne de commande.
|
||||
|
||||
.LP
|
||||
Avec ou sans la commande \fB\-O\fR, il peut y avoir plusieurs imports, exports, et actions dans la ligne de commande \fB\-i\fR,
|
||||
\fB\-e\fR, et \fB\-a\fR.
|
||||
|
||||
.LP
|
||||
L'ordre des options \fB\-i\fR, \fB\-e\fR, ou \fB\-a\fR n'a pas de sens. L'ordre actuel est toujours : imports -> actions -> exports. Mais l'ouverture doit toujours être la première!
|
||||
|
||||
.LP
|
||||
Si aucune option \fB\-O\fR ou \fB\-i\fR n'est donnée, gramps lancera sa propre fenêtre et demarrera avec une base vide, puisqu'il n'y a pas données.
|
||||
|
||||
.LP
|
||||
Si aucune option \fB\-e\fR ou \fB\-a\fR n'est donnée, gramps lancera sa propre fenêtre et démarrera avec la base de données issue de tout les imports. Cette base sera \fBimport_db.grdb\fR sous le répertoire \fB~/.gramps/import\fR.
|
||||
|
||||
.LP
|
||||
Les erreurs rencontrées lors d'import, export, ou action, seront mémorisées en \fIstdout\fR (si elles sont le fait de la manipulation par gramps) ou
|
||||
en \fIstderr\fR (si elles ne sont pas le fait d'une manipulation). Utilisez les shell de redirection de
|
||||
\fIstdout\fR et \fIstderr\fR pour sauver les messages et les erreurs dans les fichiers.
|
||||
|
||||
.SH EXEMPLES
|
||||
.B \fBVARIABLES D\(aqENVIRONMENT\fP
|
||||
Le programme vérifie si ces variables d\(aqenvironnement sont déclarées:
|
||||
.sp
|
||||
\fBLANG\fP \- décrit, quelle langue est utilisée: Ex.: pour le français on
|
||||
peut définir fr_FR.UTF\-8.
|
||||
.sp
|
||||
\fBGRAMPSHOME\fP \- si défini, force Gramps à utiliser un répertoire
|
||||
spécifique pour y conserver ses préférences et bases de données. Par
|
||||
défaut, cette variable n\(aqest pas active et Gramps sait que les options
|
||||
et bases de données doivent être créées dans le répertoire par défaut
|
||||
de l\(aqutilisateur (la variable d\(aqenvironnement HOME pour Linux ou USER‐
|
||||
PROFILE pour Windows 2000/XP).
|
||||
.TP
|
||||
Pour ouvrir un arbre familial et y importer un fichier XML, on peut saisir:
|
||||
\fBgramps\fR \fB\-O\fR \fI'Mon Arbre Familal'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Ceci ouvre un arbre familal, pour faire la même chose, mais importer dans un arbre familial temporaire et démarrer une session interactive, on peut saisir:
|
||||
\fBgramps\fR \fB\-i\fR \fI'Mon Arbre Familal'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Lecture de quatre bases de données dont les formats peuvent être devinés d'après les noms, puis vérification des données:
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-i\fR \fIfile4.wft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Si vous voulez préciser les formats de fichiers dans l'exemple ci-dessus, complétez les noms de fichiers par les options \fB\-f\fR appropriées:
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-f\fR \fIgedcom\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-f\fR \fIgramps-pkg\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-f\fR \fIgramps-xml\fR \fB\-i\fR \fIfile4.wft\fR \fB\-f\fR \fIwft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Pour enregistrer le résultat des lectures, donnez l'option \fB\-e\fR (utiliser \fB\-f\fR si le nom de fichier ne permet pas à gramps de deviner le format):
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-e\fR \fI~/new-package\fR \fB\-f\fR \fIgramps-pkg\fR
|
||||
.TP
|
||||
Pour lire trois ensembles de données puis lancer une session interactive de gramps sur le tout :
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Pour lancer l'outil de vérification de la base de données depuis la ligne de commande et obtenir le résultat:
|
||||
\fBgramps\fR \fB\-O\fR \fIfile.grdb\fR \fB-a\fR \fItool\fR \fB-p\fR \fBname\fR=\fIverify\fR
|
||||
.B \fBCONCEPTS\fP
|
||||
Gramps est un système basé sur le support de plugin\-python, permettant
|
||||
d\(aqimporter et d\(aqexporter, la saisie, générer des rapports, des outils,
|
||||
et afficher des filtres pouvant être ajoutés sans modifier le programme.
|
||||
.sp
|
||||
Par ailleurs, gramps permet la génération directe : impression, rap‐
|
||||
ports avec sortie vers d\(aqautres formats, comme \fILibreOffice.org\fP ,
|
||||
\fIHTML\fP , ou \fILaTeX\fP pour permettre à l\(aqutilisateur de choisir selon ses
|
||||
besoins
|
||||
.UNINDENT
|
||||
.sp
|
||||
\fBBUGS CONNUS ET LIMITATIONS\fP
|
||||
.sp
|
||||
\fBFICHIERS\fP
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.sp
|
||||
\fI${PREFIX}/lib/python/dist\-packages/gramps/\fP
|
||||
.sp
|
||||
\fI${PREFIX}/share/\fP
|
||||
.sp
|
||||
\fI${HOME}/.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
Enfin, pour lancer une session interactive normale, entrer : \fBgramps\fR
|
||||
|
||||
.SH VARIABLES D'ENVIRONMENT
|
||||
Le programme vérifie si ces variables d'environnement sont déclarées:
|
||||
|
||||
\fBLANG\fR - décrit, quelle langue est utilisée:
|
||||
Ex.: pour le français on peut définir fr_FR.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - si défini, force Gramps à utiliser un répertoire spécifique pour y conserver ses préférences et bases de données. Par défaut, cette variable n'est pas active et Gramps sait que les options et bases de données doivent être créées
|
||||
dans le répertoire par défaut de l'utilisateur (la variable d'environnement HOME pour Linux ou USERPROFILE pour Windows 2000/XP).
|
||||
|
||||
.SH CONCEPTS
|
||||
Gramps est un système basé sur le support de plugin-python, permettant d'importer et d'exporter, la saisie,
|
||||
générer des rapports, des outils, et afficher des filtres pouvant être ajoutés sans modifier le programme.
|
||||
.LP
|
||||
Par ailleurs, gramps permet la génération directe : impression, rapports avec sortie vers d'autres formats, comme \fIOpenOffice.org\fR, \fIAbiWord\fR, HTML,
|
||||
ou LaTeX pour permettre à l'utilisateur de choisir selon ses besoins
|
||||
|
||||
.SH BUGS CONNUS ET LIMITATIONS
|
||||
|
||||
.SH FICHIERS
|
||||
.LP
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.br
|
||||
\fI${PREFIX}/share/gramps\fP
|
||||
.br
|
||||
\fI${HOME}/.gramps\fP
|
||||
|
||||
.SH AUTEURS
|
||||
Donald Allingham \fI<don@gramps-project.org>\fR
|
||||
.br
|
||||
\fIhttp://gramps.sourceforge.net\fR
|
||||
.LP
|
||||
Cette page man a d'abord été écrite par:
|
||||
.br
|
||||
Brandon L. Griffith \fI<brandon@debian.org>\fR
|
||||
.br
|
||||
.B \fBAUTEURS\fP
|
||||
Donald Allingham <\fI\%don@gramps-project.org\fP>
|
||||
\fI\%http://gramps-project.org/\fP
|
||||
.sp
|
||||
Cette page man a d\(aqabord été écrite par :
|
||||
Brandon L. Griffith <\fI\%brandon@debian.org\fP>
|
||||
pour Debian GNU/Linux système.
|
||||
.LP
|
||||
Cette page man est maintenue par:
|
||||
.br
|
||||
Gramps project \fI<xxx@gramps-project.org>\fR
|
||||
.LP
|
||||
La traduction française:
|
||||
.br
|
||||
Jérôme Rapinat \fI<romjerome@yahoo.fr>\fR
|
||||
.br
|
||||
|
||||
.SH DOCUMENTATION
|
||||
La documentation-utilisateur est disponible par le navigateur d'aide de GNOME sous la forme du manuel Gramps. Ce manuel est également disponible sous format XML comme \fBgramps-manual.xml\fR sous \fIdoc/gramps-manual/$LANG\fR dans les sources officielles.
|
||||
.LP
|
||||
La documentation pour développeur est disponible sur le site \fIhttp://developers.gramps-project.org\fR.
|
||||
.sp
|
||||
Cette page man est maintenue par :
|
||||
Gramps project <\fI\%xxx@gramps-project.org\fP>
|
||||
.sp
|
||||
La traduction française :
|
||||
Jérôme Rapinat <\fI\%romjerome@yahoo.fr\fP>
|
||||
.TP
|
||||
.B \fBDOCUMENTATION\fP
|
||||
La documentation\-utilisateur est disponible par un navigateur
|
||||
standard sous la forme du manuel Gramps.
|
||||
.sp
|
||||
La documentation pour développeur est disponible sur le site
|
||||
\fI\%http://www.gramps-project.org/wiki/index.php?title=Portal:Developers\fP .
|
||||
.UNINDENT
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.SH AUTHOR
|
||||
Jerome Rapinat
|
||||
.SH COPYRIGHT
|
||||
2012, Gramps project
|
||||
.\" Generated by docutils manpage writer.
|
||||
.
|
||||
|
||||
+15
-3
@@ -1,4 +1,4 @@
|
||||
.TH gramps 1 "@VERSION@" "January 2008" "@VERSION@"
|
||||
.TH gramps 1 "@VERSION@" "December 2012" "@VERSION@"
|
||||
.SH NAME
|
||||
gramps \- Genealogical Research and Analysis Management Programming System.
|
||||
|
||||
@@ -113,6 +113,16 @@ i.e. \fB\-i\fR \fIFILE1\fR \fB\-i\fR \fIFILE2\fR
|
||||
and \fB\-i\fR \fIFILE2\fR \fB\-i\fR \fIFILE1\fR might produce different
|
||||
gramps IDs in the resulting database.
|
||||
|
||||
.TP
|
||||
.BI \-e,\-\^\-export= " FILE"
|
||||
Export data into \fIFILE\fR. For \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBwft\fR, \fBgramps\-pkg\fR, and \fBgeneweb\fR, the \fIFILE\fR is
|
||||
the name of the resulting file.
|
||||
.br
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
by \fB\-e\fR flag. The files are written one by one, in the specified order.
|
||||
|
||||
.TP
|
||||
.BI \-a,\-\^\-action= " ACTION"
|
||||
Perform \fIACTION\fR on the imported data. This is done after all imports
|
||||
@@ -288,9 +298,11 @@ or LaTeX to allow the users to modify the format to suit their needs.
|
||||
|
||||
.SH FILES
|
||||
.LP
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.br
|
||||
\fI${PREFIX}/share/gramps\fP
|
||||
\fI${PREFIX}/lib/python/dist\-packages/gramps/\fP
|
||||
.br
|
||||
\fI${PREFIX}/share/\fP
|
||||
.br
|
||||
\fI${HOME}/.gramps\fP
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
.. Gramps documentation master file, created by
|
||||
sphinx-quickstart on Sat Dec 1 00:07:37 2012.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Welcome to Gramps' command line documentation!
|
||||
==============================================
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
en
|
||||
cs/cs
|
||||
fr/fr
|
||||
nl/nl
|
||||
pl/pl
|
||||
pt_BR/pt_BR
|
||||
sv/sv
|
||||
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'nl'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('nl', 'gramps', u'Gramps Documentation',
|
||||
[u'.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,266 @@
|
||||
Dutch
|
||||
======
|
||||
|
||||
gramps(1) 3.4.0 gramps(1)
|
||||
|
||||
|
||||
|
||||
**NAAM**
|
||||
gramps - Genealogisch Onderzoek en Analyse Beheersysteem.
|
||||
|
||||
|
||||
**SAMENVATTING**
|
||||
gramps [-?|--help] [--usage] [--version] [-O|--open= GEGEVENSBESTAND
|
||||
[-f|--format= FORMAAT]] [-i|--import= BESTAND [-f|--format= FORMAAT]]
|
||||
[-i|--import= ...] [-e|--export= BESTAND [-f|--format= FORMAAT]]
|
||||
[-a|--action= ACTIE] [-p|--options= OPTIESTRING]] [ BESTAND ] [--ver‐
|
||||
sion]
|
||||
|
||||
|
||||
**BESCHRIJVING**
|
||||
Gramps is een Free/OpenSource genealogisch programma dat in Python,
|
||||
geschreven is en gebruik maakt van de GTK+/GNOME interface. Gramps zal
|
||||
voor iedereen die al gewerkt heeft met andere genealogische programma's
|
||||
zoals Family Tree Maker (TM), Personal Ancestral Files (TM) of GNU
|
||||
Geneweb. Importeren vanuit het gekende GEDCOM-formaat wordt onderste‐
|
||||
und. Dit formaat wordt wereldwijd gebruikt door bijna alle genealogis‐
|
||||
che software.
|
||||
|
||||
|
||||
**OPTIES**
|
||||
**gramps** *BESTAND*
|
||||
Wanneer *BESTAND* opgegeven wordt (zonder vlaggen) als een famili‐
|
||||
estamboom of als een familistamboommap, dan wordt dit bestand
|
||||
geopend en een interactieve sessie wordt gestart. Indien BESTAND
|
||||
een bestandsformaat dat door Gramps herkent wordt, zal een lege
|
||||
familiestamboom aangemaakt worden. De bestandsnaam wordt
|
||||
gebaseerd op de *BESTAND* naam en de gegevens worden in dit
|
||||
bestand geïmporteerd. Met resterende opties wordt geen rekening
|
||||
gehouden. Deze wijze van opstarten is zeer bruikbaar om Gramps
|
||||
te gebruiken voor genealogische gegevens via een webbrowser.
|
||||
Deze opstartmethode kan gelijk welk gegevensformaat eigen aan
|
||||
Gramps behandelen, zie onder.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMAAT*
|
||||
Expliciet een formaat opgeven voor BESTAND door de optie -i, of
|
||||
-e mee te geven. Indien de -f optie niet opgegeven wordt voor
|
||||
BESTAND, wordt het formaat gebaseerd op de bestandsextensie of
|
||||
het MIME-type.
|
||||
|
||||
Formaten beschikbaar voor uitvoer zijn gramps-xml (guessed if
|
||||
FILE ends with .gramps), gedcom (guessed if FILE ends with
|
||||
.ged), or any file export available through the Gramps plugin
|
||||
system.
|
||||
|
||||
Formats available for import are grdb, gramps-xml, gedcom,
|
||||
gramps-pkg (guessed if FILE ends with .gpkg), and geneweb
|
||||
(guessed if FILE ends with .gw).
|
||||
|
||||
Formats available for export are gramps-xml, gedcom, gramps-pkg,
|
||||
wft (guessed if FILE ends with .wft), geneweb, and iso (never
|
||||
guessed, always specify with -f option).
|
||||
|
||||
|
||||
**-O** , **--open=** *DATABASE*
|
||||
Open *DATABASE* which must be an existing database directory or
|
||||
existing family tree name. If no action, import or export
|
||||
options are given on the command line then an interactive ses‐
|
||||
sion is started using that database.
|
||||
|
||||
|
||||
**-i** , **--import=** *FILE*
|
||||
Import data from *FILE* . If you haven't specified a database then
|
||||
a temporary database is used; this is deleted when you exit
|
||||
gramps.
|
||||
|
||||
When more than one input file is given, each has to be preceded
|
||||
by **-i** flag. The files are imported in the specified order, i.e.
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
might produce different gramps IDs in the resulting database.
|
||||
|
||||
|
||||
**-a** , **--action=** *ACTION*
|
||||
Perform *ACTION* on the imported data. This is done after all
|
||||
imports are successfully completed. Currently available actions
|
||||
are **summary** (same as Reports->View->Summary), **check** (same as
|
||||
Tools->Database Processing->Check and Repair), **report** (generates
|
||||
report), and tool (runs a plugin tool). Both **report** and **tool**
|
||||
need the *OPTIONSTRING* supplied by the **-p** flag).
|
||||
|
||||
The *OPTIONSTRING* should satisfy the following conditions:
|
||||
It must not contain any spaces. If some arguments need to
|
||||
include spaces, the string should be enclosed with quotation
|
||||
marks, i.e., follow the shell syntax. Option string is a list
|
||||
of pairs with name and value (separated by the equality sign).
|
||||
The name and value pairs must be separated by commas.
|
||||
|
||||
Most of the report or tools options are specific for each report
|
||||
or tool. However, there are some common options.
|
||||
|
||||
**name=name**
|
||||
This mandatory option determines which report or tool will be
|
||||
run. If the supplied name does not correspond to any available
|
||||
report or tool, an error message will be printed followed by the
|
||||
list of available reports or tools (depending on the *ACTION* ).
|
||||
|
||||
**show=all**
|
||||
This will produce the list of names for all options available
|
||||
for a given report or tool.
|
||||
|
||||
**show=optionname**
|
||||
This will print the description of the functionality supplied by
|
||||
*optionname*, as well as what are the acceptable types and values
|
||||
for this option.
|
||||
|
||||
Use the above options to find out everything about a given
|
||||
report.
|
||||
|
||||
|
||||
When more than one output action is given, each has to be preceded by
|
||||
**-a** flag. The actions are performed one by one, in the specified order.
|
||||
|
||||
|
||||
**-d** , **--debug=** *LOGGER_NAME*
|
||||
Enables debug logs for development and testing. Look at the
|
||||
source code for details
|
||||
|
||||
**--version**
|
||||
Prints the version number of gramps and then exits
|
||||
|
||||
|
||||
|
||||
|
||||
**werking**
|
||||
Indien het eerste argument in de opdrachtregel niet start met dash (dus
|
||||
geen vlag) dan zal Gramps trachten om het bestand te openen met een
|
||||
naam die in het eerste argument werd opgegeven. Vervolgens wordt een
|
||||
interactieve sessie gestart en de overige argumenten van de
|
||||
opdrachtregel worden genegeerd.
|
||||
|
||||
If the **-O** flag is given, then gramps will try opening the supplied
|
||||
database and then work with that data, as instructed by the further
|
||||
command line parameters.
|
||||
|
||||
|
||||
With or without the **-O** flag, there could be multiple imports, exports,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
**-e** , and **-a** flags.
|
||||
|
||||
|
||||
The order of **-i** , **-e** , or **-a** options does not matter. The actual order
|
||||
always is: all imports (if any) -> all actions (if any) -> all exports
|
||||
(if any). But opening must always be first!
|
||||
|
||||
|
||||
If no **-O** or **-i** option is given, gramps will launch its main window and
|
||||
start the usual interactive session with the empty database, since
|
||||
there is no data to process, anyway.
|
||||
|
||||
|
||||
If no **-e** or **-a** options are given, gramps will launch its main window
|
||||
and start the usual interactive session with the database resulted from
|
||||
all imports. This database resides in the **import_db.grdb** under
|
||||
**~/.gramps/import** directory.
|
||||
|
||||
|
||||
The error encountered during import, export, or action, will be either
|
||||
dumped to stdout (if these are exceptions handled by gramps) or to
|
||||
*stderr* (if these are not handled). Use usual shell redirections of
|
||||
*stdout* and *stderr* to save messages and errors in files.
|
||||
|
||||
|
||||
**EXAMPLES**
|
||||
To open an existing family tree and import an xml file into it, one
|
||||
may type:
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
The above changes the opened family tree, to do the same, but import
|
||||
both in a temporary family tree and start an interactive session, one
|
||||
may type:
|
||||
|
||||
**gramps -i** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
To import four databases (whose formats can be determined from their
|
||||
names) and then check the resulting database for errors, one may type:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
To explicitly specify the formats in the above example, append file‐
|
||||
names with appropriate **-f** options:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
To record the database resulting from all imports, supply **-e** flag (use
|
||||
**-f** if the filename does not allow gramps to guess the format):
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
To import three databases and start interactive gramps session with the
|
||||
result:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
To run the Verify tool from the commandline and output the result to
|
||||
stdout:
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Finally, to start normal interactive session type:
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
**CONCEPTEN**
|
||||
Ondersteuning van een op python-gebaseerd plugin systeem. Dit laat toe
|
||||
om verslagen, hulpgereedschappen en vensterfilters toe te voegen zonder
|
||||
dat het hoofdprogramma dient aangepast.
|
||||
|
||||
De klassieke uitdrukken zijn mogelijk, maar daar bovenover kunnen de
|
||||
meeste verslagen ook gebruik maken van OpenOffice.org, AbiWord, HTML,
|
||||
of LaTeX. Zo kunnen gebruikers het formaat wijzigen naar eigen wens.
|
||||
|
||||
|
||||
**GEKENDE BUGS EN BEPERKINGEN**
|
||||
|
||||
**BESTANDEN**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
**AUTEURS**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
Deze man pagina werd oorspronkelijk geschreven door:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
voor het Debian GNU/Linux systeem.
|
||||
|
||||
Deze man pagina wordt momenteel onderhouden door:
|
||||
Alex Roitman <shura@gramps-project.org>
|
||||
|
||||
Deze nederlandstalige man pagina wordt momenteel onderhouden door:
|
||||
Erik De Richter <frederik.de.richter@pandora.be>
|
||||
|
||||
|
||||
**DOCUMENTATIE**
|
||||
De gebruikersdocumentatie is beschikbaar via browser in de webstek.
|
||||
|
||||
De ontwikkelingsdocumentatie kan gevonden worden op de
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
webstek.
|
||||
|
||||
|
||||
|
||||
August 2005 4.0.0 gramps(1)
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'pl'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('pl', 'gramps', u'Gramps Documentation',
|
||||
[u'.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,308 @@
|
||||
Polish
|
||||
=======
|
||||
|
||||
gramps(1) 3.4.0 gramps(1)
|
||||
|
||||
|
||||
|
||||
**NAME**
|
||||
gramps - Genealogical Research and Analysis Management Programming Sys‐
|
||||
tem.
|
||||
(w wolnym tłumaczeniu: System Wspomagania Badań Genealogicznych i Pro‐
|
||||
gramowego Zarządzania Tą Informacją)
|
||||
|
||||
|
||||
**SYNOPSIS**
|
||||
gramps [-?|--help] [--usage] [--version] [-l] [-u|--force-unlock]
|
||||
[-O|--open= BAZA_DANYCH [-f|--format= FORMAT]] [-i|--import= PLIK
|
||||
[-f|--format= FORMAT]] [-i|--import= ...] [-e|--export= PLIK
|
||||
[-f|--format= FORMAT]] [-a|--action= AKCJA] [-p|--options= CIĄG_OPCJI]]
|
||||
[ PLIK ] [--version]
|
||||
|
||||
|
||||
**OPIS**
|
||||
Gramps jest wolnym, darmowym programem genealogicznym OpenSource. Jest
|
||||
napisany w Python, przy użyciu interfejsu GTK+/GNOME. Dla każdego, kto
|
||||
wcześniej używał innego programu genealogicznego (np. Family Tree
|
||||
Maker (TM), Personal Ancestral Files (TM), lub GNU Geneweb), zapoz‐
|
||||
nanie się z interfejsem Gramps'a będzie natychmiastowe. Program
|
||||
obsługuje także import i eksport w popularnym formacie GEDCOM, który
|
||||
jest używany przez większość programów genealogicznych na świecie.
|
||||
|
||||
|
||||
**OPCJE**
|
||||
**gramps** *PLIK*
|
||||
Kiedy *PLIK* jest podany (bez żadnych flag) jako nazwa drzewa
|
||||
rodzinnego albo nazwa katalogu z drzewem, to wybrane drzewo jest
|
||||
otwierane i rozpoczynana jest sesja interaktywna. Jeśli PLIK
|
||||
jest formatem rozpoznawanym przez Gramps, to tworzone jest puste
|
||||
drzewo, którego nazwa bazuje na nazwie PLIKU i dane są do niego
|
||||
importowane. Pozostałe opcje są wtedy ignorowane. Jest to
|
||||
sposób na używanie programu jako uchwytu obsługującego dane
|
||||
genealogiczne, np. w przeglądarce internetowej. Takie wywołanie
|
||||
akceptuje każdy format natywny dla grampsa, zobacz poniżej.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMAT*
|
||||
Jawne określenie formatu PLIKU przez poprzedzenie opcji -i, lub
|
||||
-e. Jeśli opcja -f nie jest podana dla żadnego PLIKU, to format
|
||||
pliku jest określany na podstawie rozszerzenia albo typu MIME.
|
||||
|
||||
Dostępne formaty wyjściowe to:
|
||||
gramps-xml (używany jeśli PLIK kończy się na .gramps),
|
||||
gedcom (przyjmowany jeśli PLIK kończy się na .ged),
|
||||
lub dowolny plik eksportu obsługiwany przez system wtyczek
|
||||
Gramps.
|
||||
|
||||
Formaty dostępne dla importu to: grdb, gramps-xml, gedcom,
|
||||
gramps-pkg (przyjmowany jeśli PLIK kończy się na .gpkg),
|
||||
oraz geneweb (przyjmowany jeśli PLIK ma rozszerzenie .gw).
|
||||
|
||||
Formats dostępne dla eksportu to: gramps-xml, gedcom,
|
||||
gramps-pkg, wft (jeśli rozszerzenie PLIKU to .wft), geneweb, i
|
||||
iso (używany tylko, jeśli jawnie określony przez parametr -f ).
|
||||
|
||||
|
||||
**-l**
|
||||
Wyświetla listę dosŧępnych drzew genealogicznych.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Wymusza odblokowanie bazy danych.
|
||||
|
||||
|
||||
**-O** , **--open=** *BAZA_DANYCH*
|
||||
Otwiera *BAZĘ_DANYCH* , która musi istnieć w katalogu baz lub być
|
||||
nazwą istniejącego drzewa rodzinnego. Jeśli nie podano akcji, to
|
||||
opcje eksportu albo importu są wykonywane, a następnie jest
|
||||
uruchamiana sesja interaktywna z otwarciem wybranej bazy.
|
||||
|
||||
|
||||
**-i** , **--import=** *PLIK*
|
||||
Importuje dane z *PLIKU* . Jeśli nie określono bazy danych, to
|
||||
tworzona jest tymczasowa baza kasowana po zamknięciu programu.
|
||||
|
||||
Kiedy podany jest więcej niż jeden plik do importu, to każdy z
|
||||
nich musi być poprzedzony flagą -i. Pliki są importowane w kole‐
|
||||
jności podanej w linii poleceń, np.: -i PLIK1 -i PLIK2 oraz -i
|
||||
PLIK2 -i PLIK1 mogą utworzyć inne identyfikatory (gramps ID) w
|
||||
bazie wynikowej.
|
||||
|
||||
|
||||
**-e** , **--export=** *PLIK*
|
||||
Eksportuje dane do *PLIKU* . Dla formatu iso, PLIK natomiast nazwą
|
||||
katalogu, do którego baza danych gramps zostanie zapisana. Dla
|
||||
gramps-xml, gedcom, wft, gramps-pkg, oraz geneweb, PLIK jest
|
||||
nazwą pliku wynikowego.
|
||||
|
||||
Kiedy więcej niż jeden plik wyjściowy jest podany, każdy musi
|
||||
być poprzedzony flagą -e. Pliki będą zapisywane kolejno, w
|
||||
podanej przez parametry kolejności.
|
||||
|
||||
|
||||
**-a** , **--action=** *AKCJA*
|
||||
Wykonuje AKCJĘ na zaimportowanych danych. Działanie to jest
|
||||
wykonywane dopiero, gdy wszystkie określone importy zakończą się
|
||||
powodzeniem. Aktualnie dostępne akcje to:
|
||||
summary (taka sama jak Raporty->Wyświetl->Podsumowanie bazy
|
||||
danych),
|
||||
check (tożsama z Narzędzia->Naprawa bazy danych->Sprawdź i
|
||||
napraw bazę),
|
||||
report (generuje raport), oraz
|
||||
tool (uruchamia narzędzie/wtyczkę). Zarówno report jak i tool
|
||||
wymagają podania CIĄGU_OPCJI poprzedzonego flagą -p ).
|
||||
|
||||
CIĄG_OPCJI powinien spełniać następujące warunki:
|
||||
Nie może zawierać spacji. Jeśli niektóre argumenty wymagają
|
||||
spacji, ciąg powinien być enkapsulowany w znakach cudzysłowu,
|
||||
(zobacz składnię powłoki). Ciąg opcji jest listą parametrów z
|
||||
nazwą i wartością oddzielonymi znakiem równości. Kolejne parame‐
|
||||
try muszą być oddzielone od siebie znakiem przecinka.
|
||||
|
||||
Większość opcji dla raportów czy narzędzi jest specyficzna dla
|
||||
konkretnej opcji, jednak część z opcji jest wspólna, szczególnie
|
||||
dla raportów.
|
||||
|
||||
**name=nazwa**
|
||||
Opcja wymagana, określający który raport czy narzędzie będzie
|
||||
uruchamiane. Jeśli podana wartość nazwy nie pasuje do żadnego
|
||||
dostępnego raportu czy narzędzia, zostanie wyświetlony komunikat
|
||||
o błędzie oraz lista dostępnych raportów albo opcji (w
|
||||
zależności od wartości parametru AKCJA).
|
||||
|
||||
**show=all**
|
||||
Wyświetla listę wszystkich nazw dostępnych opcji wraz z krótkim
|
||||
opisem dla danego raportu albo narzędzia.
|
||||
|
||||
**show=nazwa_opcji**
|
||||
Wyświetla opis funkcji udostępnianej przez daną nazwę_opcji, jak
|
||||
również listę parametrów, które akceptuje dana opcja.
|
||||
|
||||
Używając powyższych opcji jesteś w stanie dowiedzieć się o
|
||||
wszystkich możliwościach danego raportu.
|
||||
|
||||
|
||||
Kiedy więcej niż jeden akcja wyjściowa jest podana, każda musi być
|
||||
poprzedzona flagą -a. Akcje są wykonywane jedna po drugiej, w kole‐
|
||||
jności w jakiej występują w linii poleceń.
|
||||
|
||||
|
||||
**-d** , **--debug=** *NAZWA_LOGGERA*
|
||||
Włącza logi debuggowania dla celów programistycznych i
|
||||
testowych. Zobacz do kodu źródłowego po szczegóły.
|
||||
|
||||
|
||||
**--version**
|
||||
Wyświetla wersję programu i kończy działanie.
|
||||
|
||||
|
||||
**Działanie**
|
||||
Jeśli pierwszy argument nie rozpoczyna się znakiem myślnik, (nie jest
|
||||
flagą), to gramps będzie próbował otworzyć plik podany przez pierwszy
|
||||
argument, a następnie sesję interaktywną a pozostałą część parametrów w
|
||||
linii poleceń zignoruje.
|
||||
|
||||
|
||||
Jeśli podana jest flaga -O, będzie próbował otworzyć podaną bazę i pra‐
|
||||
cować na danych w niej zawartych realizując podane później polecenia z
|
||||
linii komend.
|
||||
|
||||
|
||||
Z flagą -O czy bez, może występować wiele importów, eksportów oraz
|
||||
akcji określonych za pomocą flag -i, -e, oraz -a .
|
||||
|
||||
|
||||
Kolejność podawania opcji -i, -e, czy -a nie ma znaczenia. Wykonywane
|
||||
są one zawsze w kolejności: wszystkie importy (jeśli podane) -> wszys‐
|
||||
tkie akcje (jeśli podane) -> wszystkie eksporty (jeśli podane) Ale
|
||||
otwarcie bazy zawsze musi być na pierwszym parametrem !
|
||||
|
||||
|
||||
Jeśli nie podano opcji -O lub -i, gramps uruchomi swoje główne okno i
|
||||
rozpocznie normalną sesję interaktywną z pustą bazą danych (ponieważ
|
||||
nie zdołał przetworzyć do niej żadnych danych).
|
||||
|
||||
|
||||
Jeśli nie podano opcji-e albo -a gramps uruchomi swoje głowne okno i
|
||||
rozpocznie normalną sesję interaktywną z bazą będącą wynikiem wszyst‐
|
||||
kich importów. Ta baza będzie znajdować się w pliku import_db.grdb w
|
||||
katalogu ~/.gramps/import.
|
||||
|
||||
|
||||
Błąd podczas importu, eksportu albo dowolnej akcji będzie przekierowany
|
||||
na stdout (jeśli wyjątek zostanie obsłużony przez gramps) albo na
|
||||
stderr (jeśli nie jest obsłużony). Użyj standardowych przekierowań
|
||||
strumieni stdout oraz stderr jeśli chcesz zapisać wyświetlane informa‐
|
||||
cje i błędy do pliku.
|
||||
|
||||
|
||||
**PRZYKŁADY**
|
||||
Aby otworzyć istniejące drzewo rodzinne i zaimportować dane do niego,
|
||||
można wpisać:
|
||||
|
||||
gramps -O 'Moje drzewo' -i ~/db3.gramps
|
||||
|
||||
Powyższa opcja otwiera istniejące drzewo, ale gdy chcesz zrobić wykonać
|
||||
taką samą akcję tworząc tymczasowe drzewo: wystarczy wpisać:
|
||||
|
||||
gramps -i 'Moje drzewo' -i ~/db3.gramps
|
||||
|
||||
Aby zaimportować cztery bazy (których formaty zostaną określone na pod‐
|
||||
stawie ich nazw) i następnie sprawdić powstałą bazę pod kątem błędów,
|
||||
należy wpisać:
|
||||
|
||||
gramps -i plik1.ged -i plik2.tgz -i ~/db3.gramps
|
||||
-i plik4.wft -a check
|
||||
|
||||
Aby jawnie określić formaty w powyższym przykładzie, należy dodać nazwy
|
||||
plików z odpowiednimi opcjami -f options:
|
||||
|
||||
gramps -i plik1.ged -f gedcom -i plik2.tgz -f gramps-pkg -i
|
||||
~/db3.gramps -f gramps-xml -i plik4.wft -f wft -a check
|
||||
|
||||
Aby zachować bazę z wynikami wszystkich importów, należy dodać flagę -e
|
||||
(należy użyć -f jeśli nazwa pliku nie pozwala gramps'owi na odgadnięcie
|
||||
formatu wyjściowego):
|
||||
|
||||
gramps -i plik1.ged -i plik2.tgz -e ~/nowy-pakiet -f gramps-pkg
|
||||
|
||||
W celu zaimportwania trzech baz i rozpoczęcia sesji interaktywnej z
|
||||
wynikiem importu należy użyć polecenia podobnego do poniższego:
|
||||
|
||||
gramps -i plik1.ged -i plik22.tgz -i ~/db3.gramps
|
||||
|
||||
Aby uruchomić narzędzie weryfikacji z linii poleceń i wyświetlić wyniki
|
||||
na stdout:
|
||||
|
||||
gramps -O 'Moje drzewo' -a tool -p name=verify
|
||||
|
||||
Zawsze można też po prostu uruchomić sesję interaktywną wpisująć:
|
||||
|
||||
gramps
|
||||
|
||||
|
||||
**ZMIENNE ŚRODOWISKOWE**
|
||||
|
||||
Program sprawdza w systemie istnienie i wartości następujących zmien‐
|
||||
nych:
|
||||
|
||||
**LANG** - określa ustawienia, jaki język zostanie wybrany. Np.: polski to
|
||||
pl_PL.UTF-8.
|
||||
|
||||
**GRAMPSHOME** - określa folder, w którym będzie zapisywane ustawienia i
|
||||
bazy programu. Domyślnie jest on nieustawiony, a program przyjmuje, że
|
||||
katalog z danymi zostanie utworzony w profilu użytkownika (zmienna HOME
|
||||
pod Linuxem albo USERPROFILE pod Windows 2000/XP).
|
||||
|
||||
|
||||
|
||||
**KONCEPCJA**
|
||||
Obsługa systemu rozszerzeń bazującego na pythonie, pozwalającego na
|
||||
dodawanie formatów importu i eksportu zapisów, generatorów raportów,
|
||||
narzędzi i filtrów wyświetlania bez modyfikowania głównego programu
|
||||
|
||||
Dodatkowo oprócz generowania standardowego wyjścia na drukarkę, raporty
|
||||
mogą także być generowane dla innch systemów i do innych formatów,
|
||||
takich jak: OpenOffice.org, AbiWord, HTML, lub LaTeX aby umożliwić
|
||||
użytkownikm wybór formatu wyjściowego w zależności od ich potrzeb.
|
||||
|
||||
|
||||
**ZNANE BŁĘDY I OGRANICZENIA**
|
||||
Prawdopodobne. Lista błędów i propozycji znajduje się na:
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers .
|
||||
|
||||
|
||||
**PLIKI**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps (jeśli nie użyta została zmienna środowiskowa GRAMP‐
|
||||
SHOME)*
|
||||
|
||||
|
||||
**AUTORZY**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
Ta strona man jest tłumaczeniem strony man napisanej przez:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
dla systemu Debian GNU/Linux.
|
||||
|
||||
Ta strona aktualnie jest pod opeką:
|
||||
Projekt Gramps<xxx@gramps-project.org>
|
||||
Tłumaczenie na polski: Łukasz Rymarczyk <yenidai@poczta.onet.pl>
|
||||
|
||||
|
||||
**DOCUMENTATION**
|
||||
Dokumentacja użytkownika jest dostępna poprzez standardową przeglądarkę.
|
||||
|
||||
Dokumentacja dla programistów jest dostępna na stronie projektu:
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
|
||||
|
||||
|
||||
January 2008 4.0.0 gramps(1)
|
||||
@@ -0,0 +1,14 @@
|
||||
# This is the data/pt_BR level Makefile for Gramps
|
||||
# $Id: Makefile.am 16377 2011-01-13 18:32:42Z matlas $
|
||||
|
||||
man_IN_FILES = gramps.1.in
|
||||
man_MANS = $(man_IN_FILES:.1.in=.1)
|
||||
|
||||
mandir = @mandir@/pt_BR
|
||||
|
||||
EXTRA_DIST = $(man_MANS) $(man_IN_FILES)
|
||||
|
||||
gramps.1: $(top_builddir)/config.status gramps.1.in
|
||||
cd $(top_builddir) && CONFIG_FILES=data/man/pt_BR/$@ $(SHELL) ./config.status
|
||||
|
||||
CLEANFILES=$(man_MANS)
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'pt_BR'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('pt_BR', 'gramps', u'Gramps Documentation',
|
||||
[u'.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,325 @@
|
||||
.TH gramps 1 "@VERSION@" "Janeiro de 2008" "@VERSION@"
|
||||
.SH NOME
|
||||
gramps \- Programa para pesquisa genealógica.
|
||||
|
||||
.SH RESUMO
|
||||
.B gramps
|
||||
.RB [ \-?|\-\^\-help ]
|
||||
.RB [ \-\^\-usage ]
|
||||
.RB [ \-\^\-version ]
|
||||
.RB [ \-l ]
|
||||
.RB [ \-u|\-\^\-force-unlock ]
|
||||
.RB [ \-O|\-\^\-open=
|
||||
.IR BANCODEDADOS
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMATO ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR ARQUIVO
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMATO ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR ... ]
|
||||
.RB [ \-e|\-\^\-export=
|
||||
.IR ARQUIVO
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMATO ]]
|
||||
.RB [ \-a|\-\^\-action=
|
||||
.IR AÇÃO ]
|
||||
.RB [ \-p|\-\^\-options=
|
||||
.IR OPÇÕES ]]
|
||||
.RB [
|
||||
.IR ARQUIVO
|
||||
.RB ]
|
||||
.if 0 .RB [ bonobo\ options ]
|
||||
.if 0 .RB [ sound\ options ]
|
||||
.RB [ \-\-version ]
|
||||
|
||||
.SH DESCRIÇÃO
|
||||
.PP
|
||||
\fIGramps\fP é um programa de genealogia livre e de código aberto. Ele é escrito
|
||||
em Python e usa a interface GTK+/GNOME.
|
||||
Gramps deve parecer familiar a qualquer pessoa que já tenha usado outro programa
|
||||
de genealogia, tais como o \fIFamily Tree Maker (TM)\fR, \fIPersonal Ancestral
|
||||
Files (TM)\fR, ou o GNU Geneweb.
|
||||
Ele suporta a importação do formato GEDCOM, que é amplamente usado por quase
|
||||
todos os outros programas de genealogia.
|
||||
|
||||
.SH OPÇÕES
|
||||
.TP
|
||||
.BI gramps " ARQUIVO"
|
||||
Quando \fIARQUIVO\fR for indicado (sem qualquer outra opção) como um nome de
|
||||
árvore genealógica ou como pasta do banco de dados, ela será aberta e iniciada
|
||||
uma sessão interativa. Se ARQUIVO for um formato compreendido pelo Gramps, será
|
||||
criada uma árvore genealógica vazia com o nome baseado no \fIARQUIVO\fP
|
||||
e os dados são importados para ela. As demais opções serão ignoradas. Esta forma
|
||||
de execução é apropriada para usar o Gramps como manipulador de dados genealógicos
|
||||
em, por exemplo, navegadores Web. Este método aceita qualquer formato de dados
|
||||
nativo do Gramps, conforme abaixo.
|
||||
.br
|
||||
|
||||
.TP
|
||||
.BI \-f,\-\^\-format= " FORMATO"
|
||||
Indica expressamente o formato do \fIARQUIVO\fR, precedente das opções
|
||||
.ig
|
||||
\fB\-O\fR,
|
||||
..
|
||||
\fB\-i\fR ou
|
||||
\fB\-e\fR. Se a opção \fB\-f\fR não for fornecida para um \fIARQUIVO\fR,
|
||||
o formato será identificado de acordo com a sua extensão ou tipo MIME.
|
||||
.br
|
||||
|
||||
Os formatos disponíveis para exportação são \fBgramps\-xml\fR (se o \fIARQUIVO\fR
|
||||
terminar com \fB.gramps\fR), \fBgedcom\fR (se o \fIARQUIVO\fR terminar com \fB.ged\fR)
|
||||
ou qualquer outro formato de arquivo disponível através do sistema de plugins do
|
||||
Gramps.
|
||||
.br
|
||||
|
||||
Os formatos disponíveis para importação são \fBgrdb\fR, \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR (se o \fIARQUIVO\fR terminar com \fB.gpkg\fR), e \fBgeneweb\fR
|
||||
(se o \fIARQUIVO\fR terminar com \fB.gw\fR).
|
||||
.br
|
||||
|
||||
Os formatos disponíveis para exportação são
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR, \fBwft\fR (se o \fIARQUIVO\fR terminar com \fB.wft\fR),
|
||||
\fBgeneweb\fR, e \fBiso\fR (deve sempre ser indicado com a opção
|
||||
\fB\-f\fR).
|
||||
|
||||
.TP
|
||||
.BI \-l
|
||||
Exibe uma lista com as árvores genealógicas conhecidas.
|
||||
|
||||
.TP
|
||||
.BI \-u,\-\^\-force-unlock
|
||||
Desbloqueia um banco de dados previamente bloqueado.
|
||||
|
||||
.TP
|
||||
.BI \-O,\-\^\-open= " BANCODEDADOS"
|
||||
Abre o \fIBANCODEDADOS\fR, que deve ser uma pasta de banco de dados ou um nome de árvore
|
||||
genealógica existentes.
|
||||
Se não forem indicadas opções de ação, importação ou exportação na linha de comando,
|
||||
será iniciada uma sessão interativa usando este banco de dados.
|
||||
|
||||
.TP
|
||||
.BI \-i,\-\^\-import= " ARQUIVO"
|
||||
Importa os dados do \fIARQUIVO\fR. Se não for indicado um banco de dados, o Gramps usará
|
||||
um arquivo temporário, que será excluído ao sair do programa.
|
||||
.br
|
||||
|
||||
Quando mais de um arquivo de origem for indicado, cada um deles deve ser precedido da
|
||||
opção \fB\-i\fR. Os arquivos são importados na ordem indicada, por exemplo,
|
||||
\fB\-i\fR \fIARQUIVO1\fR \fB\-i\fR \fIARQUIVO2\fR
|
||||
e \fB\-i\fR \fIARQUIVO2\fR \fB\-i\fR \fIARQUIVO1\fR poderá produzir diferentes gramps IDs
|
||||
no banco de dados resultante.
|
||||
|
||||
.TP
|
||||
.BI \-a,\-\^\-action= " AÇÃO"
|
||||
Executa a \fIAÇÃO\fR nos dados importados. Isto será executado após a conclusão de todas
|
||||
as importações. Até o momento, as ações disponíveis são \fBsummary\fR (o mesmo que
|
||||
Relatórios->Exibir->Resumo),
|
||||
\fBcheck\fR (o mesmo que Ferramentas->Processamento do banco de dados->Verificar e reparar),
|
||||
\fBreport\fR (gera o relatório), e
|
||||
\fBtool\fR (executa uma ferramenta de plugin).
|
||||
Para o \fBreport\fR e \fBtool\fR é necessário fornecer \fIOPÇÕES\fR (com uso da opção
|
||||
\fB\-p\fR).
|
||||
.br
|
||||
|
||||
As \fIOPÇÕES\fR devem satisfazer as seguintes condições:
|
||||
.br
|
||||
Não podem conter espaços.
|
||||
Se alguns argumentos precisam incluir espaços, a string deve
|
||||
ser colocada entre aspas, ou seja, seguir a sintaxe do shell.
|
||||
String de opção é uma lista de pares com o nome e o valor (separados por
|
||||
sinal de igual). Os pares de nome e valor devem ser separados por vírgula.
|
||||
.br
|
||||
|
||||
Muitas opções são específicas de cada relatório ou ferramenta.
|
||||
Entretanto, algumas opções são comuns.
|
||||
|
||||
.BI "name=nome"
|
||||
.br
|
||||
Esta opção obrigatória determina qual relatório ou ferramenta será executado.
|
||||
Se o \fInome\fR fornecido não corresponder a um relatório ou ferramenta, será
|
||||
exibida uma mensagem de erro seguida de uma lista de relatórios e ferramentas
|
||||
disponíveis (dependendo da \fIAÇÃO\fR).
|
||||
|
||||
.BI "show=all"
|
||||
.br
|
||||
Isto irá gerar uma lista com os nomes para todas as opções disponíveis de um determinado
|
||||
relatório ou ferramenta.
|
||||
|
||||
.BI "show="nome_opção
|
||||
.br
|
||||
Isto irá exibir a descrição da funcionalidade indicada por \fInome_opção\fR, bem
|
||||
como quais são os tipos aceitáveis e os valores para esta opção.
|
||||
|
||||
.br
|
||||
Use as opções acima para descobrir
|
||||
tudo sobre um determinado relatório.
|
||||
|
||||
.LP
|
||||
Quando mais de uma ação de saída for indicada, cada uma deve ser precedida da opção
|
||||
\fB\-a\fR. As ações são realizadas uma a uma, na ordem indicada.
|
||||
|
||||
.TP
|
||||
.BI \-d,\-\^\-debug= " ARQUIVO_REGISTRO"
|
||||
Ativa os registros para desenvolvimento e testes. Veja o código-fonte para mais detalhes.
|
||||
.TP
|
||||
.BI \-\^\-version
|
||||
Exibe o número da versão do Gramps e finaliza.
|
||||
\" altera de 0 para 1 para ativar a saída das opções OAF
|
||||
.if 0 \{
|
||||
.PP
|
||||
As opções a seguir são usadas para ativação do Bonobo.
|
||||
.TP
|
||||
.BI \-\^\-oaf-ior-fd= "FD"
|
||||
Descritor do arquivo para exibir o OAF IOR em
|
||||
.TP
|
||||
.BI \-\^\-oaf-activate-iid= " IID"
|
||||
OAF IID para ativar
|
||||
.TP
|
||||
.BI \-\^\-oaf-private
|
||||
Impedir o registro do servidor com OAF
|
||||
\}
|
||||
\" altera de 0 para 1 para ativar a saída das opções de som do Gnome
|
||||
.if 0 \{
|
||||
.PP
|
||||
As opções a seguir são usadas para controlar o som usando a biblioteca do Gnome.
|
||||
.TP
|
||||
.BI \-\^\-disable-sound
|
||||
Desativa o servidor de som
|
||||
.TP
|
||||
.BI \-\^\-enable-sound
|
||||
Ativa o servidor de som
|
||||
.TP
|
||||
.BI \-\^\-espeaker= " HOSTNAME:PORT"
|
||||
Máquina:porta que o servidor de som utiliza para execução
|
||||
\}
|
||||
|
||||
.SH "Operação"
|
||||
.br
|
||||
Se o primeiro argumento da linha de comando não começar com um traço (isto é,
|
||||
sem uma opção), o Gramps tentará abrir o arquivo com o nome fornecido pelo primeiro
|
||||
argumento e iniciar a sessão interativa, ignorando o resto dos argumentos da
|
||||
linha de comando.
|
||||
|
||||
.LP
|
||||
Se for fornecida a opção \fB\-O\fR, então o Gramps tentará abrir o banco de dados
|
||||
indicado e trabalhar com estes dados, de acordo com as instruções dos parâmetros
|
||||
adicionais da linha de comando.
|
||||
|
||||
.LP
|
||||
Com ou sem a opção \fB\-O\fR, pode haver múltiplas importações, exportações e
|
||||
ações indicadas pela linha de comando usando as opções \fB\-i\fR,
|
||||
\fB\-e\fR e \fB\-a\fR.
|
||||
|
||||
.LP
|
||||
A ordem das opções \fB\-i\fR, \fB\-e\fR ou \fB\-a\fR não importa. A ordem
|
||||
utilizada será sempre esta: todas as importações (se existirem) -> todas
|
||||
as ações (se existirem) -> todas as exportações (se existirem). Mas a abertura
|
||||
deve estar sempre em primeiro lugar!
|
||||
|
||||
.LP
|
||||
Se as opções \fB\-O\fR ou \fB\-i\fR não forem fornecidas, o Gramps será aberto
|
||||
com a sua janela principal e iniciará a sessão interativa padrão com um banco
|
||||
de dados vazio, uma vez que não há nada a processar.
|
||||
|
||||
.LP
|
||||
Se as opções \fB\-e\fR ou \fB\-a\fR não forem fornecidas, o Gramps será aberto
|
||||
com a sua janela principal e iniciará a sessão interativa padrão com um banco
|
||||
de dados resultante de todas as importações. Este banco de dados está localizado
|
||||
no arquivo \fBimport_db.grdb\fR da pasta \fB~/.gramps/import\fR.
|
||||
|
||||
.LP
|
||||
Os erros encontrados durante a importação, exportação ou ação, serão direcionados
|
||||
para \fIstdout\fR (se forem exceções tratadas pelo Gramps) ou para \fIstderr\fR
|
||||
(se não forem tratadas). Use redirecionamentos usuais de \fIstdout\fR e
|
||||
\fIstderr\fR do shell para salvar mensagens e erros em arquivos.
|
||||
|
||||
.SH EXEMPLOS
|
||||
.TP
|
||||
Abrir uma árvore genealógica existente e importar um arquivo xml para ela:
|
||||
\fBgramps\fR \fB\-O\fR \fI'Minha árvore genealógica'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Fazer as mesmas alterações da árvore genealógica do comando anterior, mas importar a árvore genealógica temporária e iniciar uma sessão interativa:
|
||||
\fBgramps\fR \fB\-i\fR \fI'Minha árvore genealógica'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Importar quatro bancos de dados (cujos formatos podem ser reconhecidos pelos nomes) e verificar a existência de erros no banco de dados resultante:
|
||||
\fBgramps\fR \fB\-i\fR \fIarquivo1.ged\fR \fB\-i\fR \fIarquivo2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-i\fR \fIarquivo4.wft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Indicar de forma explícita os formatos do exemplo acima, atribuindo os nomes dos arquivos com as opções \fB\-f\fR apropriadas:
|
||||
\fBgramps\fR \fB\-i\fR \fIarquivo1.ged\fR \fB\-f\fR \fIgedcom\fR \fB\-i\fR \fIarquivo2.tgz\fR \fB\-f\fR \fIgramps-pkg\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-f\fR \fIgramps-xml\fR \fB\-i\fR \fIarquivo4.wft\fR \fB\-f\fR \fIwft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
Gravar o banco de dados resultante de todas as importações, indicando a opção \fB\-e\fR (use \fB\-f\fR se o nome do arquivo não permirtir que o gramps reconheça o formato automaticamente):
|
||||
\fBgramps\fR \fB\-i\fR \fIarquivo1.ged\fR \fB\-i\fR \fIarquivo2.tgz\fR \fB\-e\fR \fI~/novo-pacote\fR \fB\-f\fR \fIgramps-pkg\fR
|
||||
.TP
|
||||
Importar três bancos de dados e iniciar a sessão interativa do Gramps com o resultado:
|
||||
\fBgramps\fR \fB\-i\fR \fIarquivo1.ged\fR \fB\-i\fR \fIarquivo2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
Executar a ferramenta de verificação a partir da linha de comando e direcionar o resultado para stdout:
|
||||
\fBgramps\fR \fB\-O\fR \fI'Minha árvore genealógica'\fR \fB-a\fR \fItool\fR \fB-p\fR \fBname\fR=\fIverify\fR
|
||||
.TP
|
||||
Finalmente, para iniciar uma sessão interativa normal, digite:
|
||||
\fBgramps\fR
|
||||
|
||||
.SH VARIÁVEIS DE AMBIENTE
|
||||
O programa verifica se estas variáveis de ambiente estão definidas:
|
||||
|
||||
\fBLANG\fR - identifica o idioma a ser usado.
|
||||
Ex.: Para o idioma português do Brasil, a variável deve ser definida como pt_BR.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - se definida, força o Gramps a usar a pasta indicada para armazenar
|
||||
as configurações e os bancos de dados do programa. Por padrão, esta variável não é
|
||||
definida e o Gramps assume que a pasta com todos os bancos de dados e configurações
|
||||
do perfil devem ser criadas na pasta do usuário (descrita na variável de ambiente
|
||||
HOME no Linux ou USERPROFILE no Windows 2000/XP).
|
||||
|
||||
.SH CONCEITOS
|
||||
Suporta um sistema de plugins baseado em Python, permitindo acrescentar importações
|
||||
e exportações adicionais, geradores de relatórios, ferramentas e filtros de exibição,
|
||||
sem modificação do programa principal.
|
||||
.LP
|
||||
Além da impressão direta, é possível gerar relatórios em diversos formatos de
|
||||
arquivo, tais como \fIOpenOffice.org\fR, \fIAbiWord\fR, HTML ou LaTeX, para permitir
|
||||
aos usuários a modificação de acordo com suas necessidades.
|
||||
|
||||
.SH LIMITAÇÕES E ERROS CONHECIDOS
|
||||
|
||||
.SH ARQUIVOS
|
||||
.LP
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.br
|
||||
\fI${PREFIX}/share/gramps\fP
|
||||
.br
|
||||
\fI${HOME}/.gramps\fP
|
||||
|
||||
.SH AUTORES
|
||||
Donald Allingham \fI<don@gramps-project.org>\fR
|
||||
.br
|
||||
\fIhttp://gramps.sourceforge.net\fR
|
||||
.LP
|
||||
Este manual foi originalmente escrito por:
|
||||
.br
|
||||
Brandon L. Griffith \fI<brandon@debian.org>\fR
|
||||
.br
|
||||
para inclusão na distribuição Debian GNU/Linux.
|
||||
.LP
|
||||
Este manual é atualmente mantido pelo:
|
||||
.br
|
||||
Projeto Gramps \fI<xxx@gramps-project.org>\fR
|
||||
.br
|
||||
|
||||
.SH DOCUMENTAÇÃO
|
||||
A documentação para usuários está disponível através da opção de ajuda padrão
|
||||
do GNOME, na forma de Manual do Gramps. O Manual também está disponível no
|
||||
formato XML como \fBgramps-manual.xml\fR em \fIdoc/gramps-manual/$LANG\fR
|
||||
nas fontes oficiais da sua distribuição.
|
||||
.LP
|
||||
A documentação para desenvolvedores pode ser encontrada na página
|
||||
\fIhttp://developers.gramps-project.org\fR.
|
||||
|
||||
.SH TRADUÇÃO
|
||||
\&\fR\&\f(CWAndré Marcelo Alvarenga <andrealvarenga@gmx.net> em 05/08/2012\fR
|
||||
@@ -0,0 +1,293 @@
|
||||
Portuguese (Brazil)
|
||||
===================
|
||||
|
||||
gramps(1) 4.0.0 gramps(1)
|
||||
|
||||
|
||||
**NOME**
|
||||
|
||||
gramps - Programa para pesquisa genealógica.
|
||||
|
||||
|
||||
**RESUMO**
|
||||
|
||||
gramps [-?|--help] [--usage] [--version] [-l] [-u|--force-unlock]
|
||||
[-O|--open= BANCODEDADOS [-f|--format= FORMATO]] [-i|--import= ARQUIVO
|
||||
[-f|--format= FORMATO]] [-i|--import= ...] [-e|--export= ARQUIVO
|
||||
[-f|--format= FORMATO]] [-a|--action= AÇÃO] [-p|--options= OPÇÕES]]
|
||||
[ ARQUIVO ] [--version]
|
||||
|
||||
|
||||
**DESCRIÇÃO**
|
||||
|
||||
Gramps é um programa de genealogia livre e de código aberto.
|
||||
Ele é escrito em Python e usa a interface GTK+/GNOME.
|
||||
Gramps deve parecer familiar a qualquer pessoa que já tenha usado
|
||||
outro programa de genealogia, tais como o Family Tree Maker (TM),
|
||||
Personal Ancestral Files (TM), ou o GNU Geneweb. Ele suporta a
|
||||
importação do formato GEDCOM, que é amplamente usado por quase
|
||||
todos os outros programas de genealogia.
|
||||
|
||||
|
||||
**OPÇÕES**
|
||||
|
||||
**gramps** *ARQUIVO*
|
||||
Quando *ARQUIVO* for indicado (sem qualquer outra opção) como um
|
||||
nome de árvore genealógica ou como pasta do banco de dados,
|
||||
ela será aberta e iniciada uma sessão interativa. Se *ARQUIVO* for
|
||||
um formato compreendido pelo Gramps, será criada uma árvore
|
||||
genealógica vazia com o nome baseado no ARQUIVO e os dados são
|
||||
importados para ela. As demais opções serão ignoradas. Esta
|
||||
forma de execução é apropriada para usar o Gramps como manipulador
|
||||
de dados genealógicos em, por exemplo, navegadores Web. Este método
|
||||
aceita qualquer formato de dados nativo do Gramps, conforme abaixo.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMATO*
|
||||
Indica expressamente o formato do *ARQUIVO*, precedente das opções
|
||||
-i ou -e. Se a opção -f não for fornecida para um ARQUIVO, o
|
||||
formato será identificado de acordo com a sua extensão ou tipo MIME.
|
||||
|
||||
Os formatos disponíveis para exportação são gramps-xml (se o ARQUIVO
|
||||
terminar com .gramps), gedcom (se o ARQUIVO terminar com .ged) ou
|
||||
qualquer outro formato de arquivo disponível através do sistema de
|
||||
plugins do Gramps.
|
||||
|
||||
|
||||
Os formatos disponíveis para importação são grdb, gramps-xml, gedcom,
|
||||
gramps-pkg (se o ARQUIVO terminar com .gpkg), e geneweb
|
||||
(se o ARQUIVO terminar com .gw).
|
||||
|
||||
|
||||
Os formatos disponíveis para exportação são gramps-xml, gedcom,
|
||||
gramps-pkg, wft (se o ARQUIVO terminar com .wft), geneweb.
|
||||
|
||||
**-l**
|
||||
Exibe uma lista com as árvores genealógicas conhecidas.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Desbloqueia um banco de dados previamente bloqueado.
|
||||
|
||||
|
||||
**-O** , **--open=** *BANCODEDADOS*
|
||||
Abre o *BANCODEDADOS* , que deve ser uma pasta de banco de dados
|
||||
ou um nome de árvore genealógica existentes. Se não forem indicadas
|
||||
opções de ação, importação ou exportação na linha de comando,
|
||||
será iniciada uma sessão interativa usando este banco de dados.
|
||||
|
||||
|
||||
**-i** , **--import=** *ARQUIVO*
|
||||
Importa os dados do ARQUIVO. Se não for indicado um banco de dados,
|
||||
o Gramps usará um arquivo temporário, que será excluído ao sair
|
||||
do programa.
|
||||
|
||||
|
||||
Quando mais de um arquivo de origem for indicado, cada um deles
|
||||
deve ser precedido da opção -i. Os arquivos são importados na ordem
|
||||
indicada, por exemplo, -i ARQUIVO1 -i ARQUIVO2 e -i ARQUIVO2 -i
|
||||
ARQUIVO1 poderá produzir diferentes gramps IDs no banco de dados
|
||||
resultante.
|
||||
|
||||
|
||||
**-a** , **--action=** *AÇÃO*
|
||||
Executa a *AÇÃO* nos dados importados. Isto será executado após a
|
||||
conclusão de todas as importações. Até o momento, as ações
|
||||
disponíveis são summary (o mesmo que Relatórios->Exibir->Resumo),
|
||||
check (o mesmo que Ferramentas->Processamento do banco de dados->
|
||||
Verificar e reparar), report (gera o relatório), e tool (executa
|
||||
uma ferramenta de plugin). Para o report e tool é necessário
|
||||
fornecer OPÇÕES (com uso da opção -p).
|
||||
|
||||
|
||||
As OPÇÕES devem satisfazer as seguintes condições:
|
||||
Não podem conter espaços. Se alguns argumentos precisam incluir
|
||||
espaços, a string deve ser colocada entre aspas, ou seja, seguir
|
||||
a sintaxe do shell. String de opção é uma lista de pares com o
|
||||
nome e o valor (separados por sinal de igual). Os pares de nome
|
||||
e valor devem ser separados por vírgula.
|
||||
|
||||
|
||||
Muitas opções são específicas de cada relatório ou ferramenta.
|
||||
Entretanto, algumas opções são comuns.
|
||||
|
||||
**name=nome**
|
||||
Esta opção obrigatória determina qual relatório ou ferramenta
|
||||
será executado. Se o nome fornecido não corresponder a um
|
||||
relatório ou ferramenta, será exibida uma mensagem de erro
|
||||
seguida de uma lista de relatórios e ferramentas disponíveis
|
||||
dependendo da AÇÃO).
|
||||
|
||||
**show=all**
|
||||
Isto irá gerar uma lista com os nomes para todas as opções
|
||||
disponíveis de um determinado relatório ou ferramenta.
|
||||
|
||||
**show=nome_opção**
|
||||
Isto irá exibir a descrição da funcionalidade indicada por nome_opção,
|
||||
bem como quais são os tipos aceitáveis e os valores para esta opção.
|
||||
|
||||
|
||||
Use as opções acima para descobrir tudo sobre um determinado relatório.
|
||||
|
||||
Quando mais de uma ação de saída for indicada, cada uma deve ser
|
||||
precedida da opção -a. As ações são realizadas uma a uma, na ordem
|
||||
indicada.
|
||||
|
||||
**-d** , **--debug=** *ARQUIVO_REGISTRO*
|
||||
Ativa os registros para desenvolvimento e testes. Veja o código-fonte
|
||||
para mais detalhes.
|
||||
|
||||
**--version**
|
||||
Exibe o número da versão do Gramps e finaliza.
|
||||
|
||||
**Operação**
|
||||
Se o primeiro argumento da linha de comando não começar com um
|
||||
traço (isto é, sem uma opção), o Gramps tentará abrir o arquivo
|
||||
com o nome fornecido pelo primeiro argumento e iniciar a sessão
|
||||
interativa, ignorando o resto dos argumentos da linha de comando.
|
||||
|
||||
|
||||
Se for fornecida a opção -O, então o Gramps tentará abrir o banco
|
||||
de dados indicado e trabalhar com estes dados, de acordo com as
|
||||
instruções dos parâmetros adicionais da linha de comando.
|
||||
|
||||
|
||||
Com ou sem a opção -O, pode haver múltiplas importações, exportações
|
||||
e ações indicadas pela linha de comando usando as opções -i, -e e -a.
|
||||
|
||||
|
||||
A ordem das opções -i, -e ou -a não importa. A ordem utilizada
|
||||
será sempre esta: todas as importações (se existirem) -> todas
|
||||
as ações (se existirem) -> todas as exportações (se existirem).
|
||||
Mas a abertura deve estar sempre em primeiro lugar!
|
||||
|
||||
|
||||
Se as opções -O ou -i não forem fornecidas, o Gramps será aberto
|
||||
com a sua janela principal e iniciará a sessão interativa padrão
|
||||
com um banco de dados vazio, uma vez que não há nada a processar.
|
||||
|
||||
|
||||
Se as opções -e ou -a não forem fornecidas, o Gramps será aberto
|
||||
com a sua janela principal e iniciará a sessão interativa padrão
|
||||
com um banco de dados resultante de todas as importações. Este
|
||||
banco de dados está localizado no arquivo import_db.grdb da
|
||||
pasta ~/.gramps/import.
|
||||
|
||||
|
||||
Os erros encontrados durante a importação, exportação ou ação,
|
||||
serão direcionados para stdout (se forem exceções tratadas pelo
|
||||
Gramps) ou para stderr (se não forem tratadas). Use redirecionamentos
|
||||
usuais de stdout e stderr do shell para salvar mensagens e erros
|
||||
em arquivos.
|
||||
|
||||
|
||||
|
||||
**EXEMPLOS**
|
||||
|
||||
Abrir uma árvore genealógica existente e importar um arquivo xml para
|
||||
ela:
|
||||
|
||||
gramps -O 'Minha árvore genealógica' -i ~/db3.gramps
|
||||
|
||||
Fazer as mesmas alterações da árvore genealógica do comando anterior,
|
||||
mas importar a árvore genealógica temporária e iniciar uma sessão
|
||||
interativa:
|
||||
|
||||
gramps -i 'Minha árvore genealógica' -i ~/db3.gramps
|
||||
|
||||
Importar quatro bancos de dados (cujos formatos podem ser
|
||||
reconhecidos pelos nomes) e verificar a existência de erros no
|
||||
banco de dados resultante:
|
||||
|
||||
gramps -i arquivo1.ged -i arquivo2.tgz -i ~/db3.gramps -i
|
||||
arquivo4.wft -a check
|
||||
|
||||
Indicar de forma explícita os formatos do exemplo acima, atribuindo
|
||||
os nomes dos arquivos com as opções -f apropriadas:
|
||||
|
||||
gramps -i arquivo1.ged -f gedcom -i arquivo2.tgz -f gramps-pkg
|
||||
-i ~/db3.gramps -f gramps-xml -i arquivo4.wft -f wft -a check
|
||||
|
||||
Gravar o banco de dados resultante de todas as importações,
|
||||
indicando a opção -e (use -f se o nome do arquivo não permirtir
|
||||
que o gramps reconheça o formato automaticamente):
|
||||
|
||||
gramps -i arquivo1.ged -i arquivo2.tgz -e ~/novo-pacote -f gramps-pkg
|
||||
|
||||
Importar três bancos de dados e iniciar a sessão interativa do
|
||||
Gramps com o resultado:
|
||||
|
||||
gramps -i arquivo1.ged -i arquivo2.tgz -i ~/db3.gramps
|
||||
|
||||
Executar a ferramenta de verificação a partir da linha de
|
||||
comando e direcionar o resultado para stdout:
|
||||
|
||||
gramps -O 'Minha árvore genealógica' -a tool -p name=verify
|
||||
|
||||
Finalmente, para iniciar uma sessão interativa normal, digite:
|
||||
|
||||
gramps
|
||||
|
||||
**VARIÁVEIS DE AMBIENTE**
|
||||
|
||||
O programa verifica se estas variáveis de ambiente estão definidas:
|
||||
**LANG** - identifica o idioma a ser usado. Ex.: Para o idioma português do Brasil, a variável deve ser definida como pt_BR.UTF-8.
|
||||
|
||||
**GRAMPSHOME** - se definida, força o Gramps a usar a pasta indicada para armazenar as configurações e os bancos de dados do programa. Por padrão, esta variável não é definida e o Gramps assume que a pasta com todos os bancos de dados e configurações do perfil devem ser criadas na pasta do usuário (descrita na variável de ambiente HOME no Linux ou USERPROFILE no Windows 2000/XP).
|
||||
|
||||
|
||||
|
||||
**CONCEITOS**
|
||||
|
||||
Suporta um sistema de plugins baseado em Python, permitindo acrescentar
|
||||
importações e exportações adicionais, geradores de relatórios,
|
||||
ferramentas e filtros de exibição, sem modificação do programa principal.
|
||||
|
||||
Além da impressão direta, é possível gerar relatórios em diversos
|
||||
formatos de arquivo, tais como OpenOffice.org, AbiWord, HTML ou
|
||||
LaTeX, para permitir aos usuários a modificação de acordo com
|
||||
suas necessidades.
|
||||
|
||||
|
||||
|
||||
**LIMITAÇÕES E ERROS CONHECIDOS**
|
||||
|
||||
*ARQUIVOS**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
*AUTORES*
|
||||
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps.sourceforge.net
|
||||
Este manual foi originalmente escrito por:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
para inclusão na distribuição Debian GNU/Linux.
|
||||
|
||||
Este manual é atualmente mantido pelo:
|
||||
Projeto Gramps <xxx@gramps-project.org>
|
||||
|
||||
|
||||
**DOCUMENTAÇÃO**
|
||||
|
||||
A documentação para usuários está disponível através da
|
||||
opção de ajuda.
|
||||
|
||||
A documentação para desenvolvedores pode ser encontrada na
|
||||
página http://developers.gramps-project.org.
|
||||
|
||||
|
||||
|
||||
**TRADUÇÃO**
|
||||
|
||||
André Marcelo Alvarenga <andrealvarenga@gmx.net> em 05/08/2012
|
||||
|
||||
January 2013 4.0.0 gramps(1)
|
||||
|
||||
@@ -0,0 +1,243 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Gramps documentation build configuration file, created by
|
||||
# sphinx-quickstart on Sat Dec 1 14:38:29 2012.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'sv'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2012, Gramps project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
locale_dirs = './locale'
|
||||
gettext_compact = True
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'default'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
#html_theme_path = []
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
#html_logo = None
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
#html_favicon = None
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
#html_static_path = ['_static']
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Grampsdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
latex_documents = [
|
||||
('index', 'Gramps.tex', u'Gramps Documentation',
|
||||
u'.', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('sv', 'gramps', u'Gramps Documentation',
|
||||
[u'.'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'Gramps', u'Gramps Documentation',
|
||||
u'.', 'Gramps', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
@@ -0,0 +1,281 @@
|
||||
Swedish
|
||||
=======
|
||||
|
||||
Gramps(1) 3.4.0 Gramps(1)
|
||||
|
||||
|
||||
|
||||
**NAMN**
|
||||
Gramps - Genealogical Research and Analysis Management Programming Sys‐
|
||||
tem.
|
||||
|
||||
|
||||
**SAMMANFATTNING**
|
||||
Gramps [-?|--help] [--usage] [--version] [-l] [-u|--force-unlock]
|
||||
[-O|--open= DATABAS [-f|--format= FORMAT]] [-i|--import= FIL [-f|--for‐
|
||||
mat= FORMAT]] [-i|--import= ...] [-e|--export= FIL [-f|--format= FOR‐
|
||||
MAT]] [-a|--action= ÅTGÄRD] [-p|--options= ALTERNATIVSTRÄNG]] [ FIL ]
|
||||
[--version]
|
||||
|
||||
|
||||
**BESKRIVNING**
|
||||
Gramps är ett Free/OpenSource släktforskningsprogram. Det är skrivet i
|
||||
Python, med hjälp av GTK+/GNOME gränssnittet. Gramps bör kännas bekant
|
||||
för de flesta, som har använt andra släktforskningsprogram tidigare,
|
||||
som Family Tree Maker (TM), Personal Ancestral Files (TM), DISGEN eller
|
||||
GNU Geneweb. Det stöder import via det populära GEDCOM-formatet, som
|
||||
används över hela världen av nästan all släktforskningsprogramvara.
|
||||
|
||||
|
||||
**ALTERNATIV**
|
||||
**Gramps** *FIL*
|
||||
När *FIL* ges (utan några flaggor) som namn på ett familjeträd
|
||||
eller som en mapp med familjeträd, så öppnas detta och en inter‐
|
||||
aktiv session startas. Om FIL är en fil, vars format förstås av
|
||||
Gramps, skapas ett tomt famljeträd, vars namn är grundat på nam‐
|
||||
net FIL och vars data importeras till det. Resterande alterna‐
|
||||
tiv ignoreras. Detta sätt att starta passar vid användning av
|
||||
Gramps som en hanterare för släktforskningsdata i t. ex. en web-
|
||||
läsare. Detta startsätt accepterar alla inbyggda dataformat för
|
||||
Gramps, se nedan.
|
||||
|
||||
|
||||
**-f** , **--format=** *FORMAT*
|
||||
Uttryckligen specificera format på FIL givet av föregående -i
|
||||
eller -e-alternativ. Om -f-alternativet inte ges för någon FIL,
|
||||
gissas filformat för den filen utgående från dess filändelse
|
||||
eller dess MIME-typ.
|
||||
|
||||
De format, som är tillgängliga för utmatnig, är Gramps-xml (gis‐
|
||||
sas om FIL slutar på .Gramps), gedcom (gissas om FIL slutar med
|
||||
.ged) eller någon filexport, som är tillgänglig via Gramps
|
||||
tilläggsprogramsystem.
|
||||
|
||||
De format, som är tillgängliga för inmatnig, är grdb,
|
||||
Gramps-xml, gedcom, Gramps-pkg (gissas om FIL slutar med .gpkg)
|
||||
och geneweb (gissas om FIL slutar med .gw).
|
||||
|
||||
De format, som är tillgängliga för export är Gramps-xml, gedcom,
|
||||
Gramps-pkg, wft (gissas om FIL slutar med .wft), geneweb och iso
|
||||
(gissas aldrig, specificeras alltid med -f-alternativ).
|
||||
|
||||
|
||||
**-l**
|
||||
Listar alla databaser/familjeträd.
|
||||
|
||||
|
||||
**-u** , **--force-unlock**
|
||||
Tvingar upplåsning av databas.
|
||||
|
||||
|
||||
**-O** , **--open=** *DATABAS*
|
||||
Öppnar *DATABAS* , som måste vara en befitlig databasmapp eller ett
|
||||
befintligt familjeträd. Om ingen åtgärd, import eller export-
|
||||
alternativ anges på kommandoraden så startas en interaktiv ses‐
|
||||
sion med den angivna databasen.
|
||||
|
||||
|
||||
**-i** , **--import=** *FIL*
|
||||
Importera data från FIL. Om du inte har specificerat en databas,
|
||||
skapas en temporär sådan, som tas bort när Gramps avslutas.
|
||||
|
||||
Om mer är en indatafil anges, måste varje föregås av en -i-
|
||||
flagga. Filerna importeras i den givna ordningen, t.ex. -i FIL1
|
||||
-i FIL2 och -i FIL2 -i FIL1 kan skapa skilda Gramps IDs i den
|
||||
resulterande databasen.
|
||||
|
||||
|
||||
**-e** , **--export=** *FIL*
|
||||
Exporterar data till *FIL* . För iso-format, är *FIL* i själva verket
|
||||
namnet på den mapp, som Gramps databas kommer att skrivas till.
|
||||
För Gramps-xml, gedcom, wft, Gramps-pkg och geneweb, är *FIL* nam‐
|
||||
net på resultatfilen.
|
||||
|
||||
Om mer är en utdatafil anges, måste varje föregås av en -e-
|
||||
flagga. Filerna skrivs en efter en i den givna ordningen.
|
||||
|
||||
|
||||
**-a** , **--action=** *ÅTGÄRD*
|
||||
Utför ÅTGÄRD på importerade data. Detta görs efter att all
|
||||
import har avslutats felfritt. F. n. är följand åtgärder möjliga
|
||||
summary (samma som Rapporter->Visa->Sammanfattning av
|
||||
databasen) , check (samma som Verktyg->Reparera databas ->Kon‐
|
||||
trollera och reparera) samt report ( skapar report, kräver
|
||||
en *ALTERNATIVSTRÄNG* lämnad via **-p** flaggan ) .
|
||||
|
||||
*ALTERNATIVSTRÄNG* -en måste uppfylla följand villkor:
|
||||
Får ej innehålla några mellanslag. Om några argument behöver
|
||||
inbegripa mellanslag, måste strängen omslutas av anföring‐
|
||||
stecken. Alternativsträngen är en lista med par av namn och
|
||||
värden (åtskiljda av likhetstecken). Namn och värde måste
|
||||
åtskiljas med komma.
|
||||
|
||||
De flesta rapportalternativ är unika för varje rapport eller
|
||||
verktyg. Emellertid finns det gemensamm alternativ.
|
||||
|
||||
**name=rapportnamn**
|
||||
Detta är obligatoriskt och bestämmer vilken rapport som skall
|
||||
skapas. Om det givna namn inte motsvarar någon möjlig rapport
|
||||
eller verktyg, kommer ett felmeddelande att skrivas ut, följt av
|
||||
möjliga namn på rapporter eller verktyg.
|
||||
|
||||
**show=all**
|
||||
Detta ger en lista med namn på alla möjliga alternativ för en
|
||||
bestämd rapport eller verktyg.
|
||||
|
||||
**show=optionname**
|
||||
Detta skriver ut beskrivningen av den funktion, som optionname
|
||||
innebär, likväl vad som är godkända typer och värden för detta
|
||||
alternativ.
|
||||
|
||||
Använd alternativen ovan för att ta reda på all om en viss rap‐
|
||||
port.
|
||||
|
||||
|
||||
Om mer än en utdataåtgärd givits måste varje föregås av en -a-flagga.
|
||||
Åtgärderna utförs en och en i den givna turordningen.
|
||||
|
||||
|
||||
**-d** , **--debug=** *LOGGER_NAME*
|
||||
Kopplar på avlusningshjälpmedel för utveckling och tester. För
|
||||
detaljer hänvisas till källkoder
|
||||
|
||||
**--version**
|
||||
Skriver ur Gramps versionsnummer och avslutar
|
||||
|
||||
|
||||
**Operation**
|
||||
Om första argumentet på kommandoraden inte inledds med ett minustecken
|
||||
(d. v. s. ingen flagga), kommer Gramps att försöka öppna den fil, vars
|
||||
namn givits av det första argumentet samt påbörja en interaktiv session
|
||||
utan att ta hänsyn till resten av argumenten på kommandoraden.
|
||||
|
||||
|
||||
Om -O-flagga givits, kommer Gramps att försöka öppna den omnämnda
|
||||
databasen och sedan arbeta med dess data, enligt ytterligare instruk‐
|
||||
tioner på kommandoraden.
|
||||
|
||||
|
||||
Med eller utan -Oflagga, kan det ske många importeringar, exporteringar
|
||||
och åtgärder beskrivna ytterligare på kommanodraden genom att använda
|
||||
-i-, -e- samt -a-flaggor.
|
||||
|
||||
|
||||
Ordningen på -i-, -e- eller -a-alternativen spelar ingen roll. Den
|
||||
gällande ordningen är alltid: all import (om någon) -> alla åtgärder
|
||||
(om några) -> all export (om någon). Men öppning måste alltid ske
|
||||
först!
|
||||
|
||||
|
||||
Om inget -O- eller -i-alternativ givits, kommer Gramps att starta sitt
|
||||
huvudfönster samt påbörja den vanliga interaktiva sessionen med en tom
|
||||
databas, då hur som helst inget data finns att bearbeta.
|
||||
|
||||
|
||||
Om inget -e- eller -a-alternativ givits, kommer Gramps att starta sitt
|
||||
huvudfönster samt påbörja den vanliga interaktiva sessionen med den
|
||||
databas, som blev resultet från all import. Denna databas återfinns i
|
||||
import_db.grdb under ~/.Gramps/import-mappen.
|
||||
|
||||
|
||||
De fel som inträffar under import, export eller vid åtgärder kommer
|
||||
antingen att skrivas till stdout (om dessa avbrott hanteras av Gramps)
|
||||
eller till stderr (om dessa inte hanteras). Använd vanliga skalkomman‐
|
||||
don för att styra om stdout och stderr till att spara medelanden och
|
||||
fel i filer.
|
||||
|
||||
|
||||
**EXAMPEL**
|
||||
För att öppna ett befintligt familjeträd och importera en xml-fil till
|
||||
det, kan man skriva:
|
||||
|
||||
Gramps -O 'Mitt familjeträd' -i ~/db3.Gramps
|
||||
|
||||
Ovanstående ändrar det öppnade familjeträdet, för att göra samma sak,
|
||||
men importera bägge till ett tillfälligt familjeträd och påbörja en
|
||||
interaktiv session, kan man skriva:
|
||||
|
||||
Gramps -i 'My Family Tree' -i ~/db3.Gramps
|
||||
|
||||
För att importera fyra databaser (vars format kan avgöras av deras
|
||||
namn) och sedan felkontrollera den resulterande databasen, kan man
|
||||
skriva:
|
||||
|
||||
Gramps -i FIL1.ged -i FIL2.tgz -i ~/db3.Gramps -i FIL4.wft -a
|
||||
check
|
||||
|
||||
För att uttryckligen specificera formaten i examplet ovan, lägg till
|
||||
filnamn med passande -f-alternativ:
|
||||
|
||||
Gramps -i FIL1.ged -f gedcom -i FIL2.tgz -f Gramps-pkg -i
|
||||
~/db3.Gramps -f Gramps-xml -i FIL4.wft -f wft -a check
|
||||
|
||||
För att spara den databas, som är resultat av all import, ange -e-
|
||||
flagga (använd -f om filnamnet inte tillåter Gramps att gissa dess for‐
|
||||
mat):
|
||||
|
||||
Gramps -i FIL1.ged -i FIL2.tgz -e ~/new-package -f Gramps-pkg
|
||||
|
||||
För att importera tre databaser och påbörja en interaklive Gramps-ses‐
|
||||
sion med importresultatet:
|
||||
|
||||
Gramps -i FIL1.ged -i FIL2.tgz -i ~/db3.Gramps
|
||||
|
||||
För att köra verifieringsverktyget från kommandoraden och mata ut
|
||||
resultatet till stdout:
|
||||
|
||||
Gramps -O file.grdb -a tool -p name=verify
|
||||
|
||||
Slutligen, för att påbörja en normal interaktiv session skriv bara:
|
||||
|
||||
Gramps
|
||||
|
||||
|
||||
**BEGREPP**
|
||||
Stöder ett python-baserat system för tilläggsprogram, som möjliggör att
|
||||
import- och export-funktioner, rapportgeneratorer, verktyg samt vis‐
|
||||
ningsfilter, kan komplettera Gramps utan ändringar i huvudprogrammet.
|
||||
|
||||
Förutom att skapa utskrift på skrivare direkt, kan rapportgeneratorer
|
||||
ha andra målsystem som OpenOffice.org, AbiWord, HTML eller LaTeX så att
|
||||
användaren kan tillåtas att ändra format för att passa behoven.
|
||||
|
||||
|
||||
**KÄNDA FEL OCH BEGRÄNSNINGAR**
|
||||
**FILER**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
**FÖRFATTARE**
|
||||
Donald Allingham <don@gramps-project.org>
|
||||
http://gramps-project.org/
|
||||
|
||||
Denna man-sida skrevs ursprungligen av:
|
||||
Brandon L. Griffith <brandon@debian.org>
|
||||
till att ingå i Debians GNU/Linux-system.
|
||||
|
||||
Denna man-sida underhålls f. n. av:
|
||||
Alex Roitman <shura@gramps-project.org>
|
||||
|
||||
Denna man-sida har översatts till svenska av:
|
||||
Peter Landgren <peter.talken@telia.com>
|
||||
|
||||
|
||||
**DOCUMENTATION**
|
||||
Användardokumentationen är tillgänglig genom GNOME's standard hjälp-
|
||||
bläddrare i form av Gramps-handboken. Handboken finns även i XML-format
|
||||
som gramps-manual.xml under doc/gramps-manual/$LANG i den officiella
|
||||
källdistributionen. Dock ej på svenska.
|
||||
|
||||
Utvecklingsdokumentationen kan hittas på
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
|
||||
|
||||
Januari 2013 4.0.0 Gramps(1)
|
||||
@@ -0,0 +1,183 @@
|
||||
#! /usr/bin/env python
|
||||
#
|
||||
# update_po - a gramps tool to update translations
|
||||
#
|
||||
# Copyright (C) 2006-2006 Kees Bakker
|
||||
# Copyright (C) 2006 Brian Matherly
|
||||
# Copyright (C) 2008 Stephen George
|
||||
# Copyright (C) 2012
|
||||
#
|
||||
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
"""
|
||||
update_man.py for command line documentation.
|
||||
|
||||
Examples:
|
||||
python update_man.py -t
|
||||
|
||||
Tests if 'sphinx' and 'python' are well configured.
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
from argparse import ArgumentParser
|
||||
|
||||
DOCUTILS = True
|
||||
try:
|
||||
import docutils.core, docutils.writers
|
||||
except:
|
||||
DOCUTILS = False
|
||||
|
||||
LANGUAGES = ['sv', 'nl', 'pl', 'cs', 'pt_BR', 'fr']
|
||||
VERSION = '4.0.0'
|
||||
DATE = ''
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXBUILD = 'sphinx-build'
|
||||
|
||||
if sys.platform == 'win32':
|
||||
pythonCmd = os.path.join(sys.prefix, 'bin', 'python.exe')
|
||||
sphinxCmd = os.path.join(sys.prefix, 'bin', 'sphinx-build.exe')
|
||||
elif sys.platform == 'linux2' or os.name == 'darwin':
|
||||
pythonCmd = os.path.join(sys.prefix, 'bin', 'python')
|
||||
sphinxCmd = SPHINXBUILD
|
||||
else:
|
||||
print ("ERROR: unknown system, don't know sphinx, ... commands")
|
||||
sys.exit(0)
|
||||
|
||||
def tests():
|
||||
"""
|
||||
Testing installed programs.
|
||||
We made tests (-t flag) by displaying versions of tools if properly
|
||||
installed. Cannot run all commands without 'sphinx' and 'python'.
|
||||
"""
|
||||
try:
|
||||
print("\n=================='python'=============================\n")
|
||||
os.system('''%(program)s -V''' % {'program': pythonCmd})
|
||||
except:
|
||||
print ('Please, install python')
|
||||
|
||||
try:
|
||||
print("\n=================='Shpinx-build'=============================\n")
|
||||
os.system('''%(program)s''' % {'program': sphinxCmd})
|
||||
except:
|
||||
print ('Please, install sphinx')
|
||||
|
||||
if not DOCUTILS:
|
||||
print('\nNo docutils support, cannot use -m/--man and -o/--odt arguments.')
|
||||
|
||||
def main():
|
||||
"""
|
||||
The utility for handling documentation stuff.
|
||||
What is need by Gramps, nothing more.
|
||||
"""
|
||||
|
||||
parser = ArgumentParser(
|
||||
description='This program aims to handle documentation'
|
||||
' and realted translated versions.',
|
||||
)
|
||||
|
||||
parser.add_argument("-t", "--test",
|
||||
action="store_true", dest="test", default=True,
|
||||
help="test if 'python' and 'sphinx' are properly installed")
|
||||
|
||||
parser.add_argument("-b", "--build",
|
||||
action="store_true", dest="build", default=False,
|
||||
help="build man documentation (via sphinx-build)")
|
||||
|
||||
parser.add_argument("-m", "--man",
|
||||
action="store_true", dest="man", default=False,
|
||||
help="build man documentation (via docutils)")
|
||||
|
||||
parser.add_argument("-o", "--odt",
|
||||
action="store_true", dest="odt", default=False,
|
||||
help="build odt documentation (via docutils)")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.test:
|
||||
tests()
|
||||
|
||||
if args.build:
|
||||
build()
|
||||
|
||||
if args.man and DOCUTILS:
|
||||
man()
|
||||
|
||||
if args.odt and DOCUTILS:
|
||||
odt()
|
||||
|
||||
def build():
|
||||
"""
|
||||
Build documentation.
|
||||
"""
|
||||
|
||||
# testing stage
|
||||
|
||||
os.system('''%(program)s -b html . _build/html''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b htmlhelp . _build/htmlhelp''' % {'program': sphinxCmd})
|
||||
if DOCUTILS:
|
||||
os.system('''%(program)s -b man . .''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b text . _build/text''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b changes . _build/changes''' % {'program': sphinxCmd})
|
||||
#os.system('''%(program)s -b linkcheck . _build/linkcheck''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b gettext . _build/gettext''' % {'program': sphinxCmd})
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''%(program)s -b html -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
os.system('''%(program)s -b htmlhelp -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
if DOCUTILS:
|
||||
os.system('''%(program)s -b man %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
os.system('''%(program)s -b text -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
# for update/migration
|
||||
os.system('''%(program)s -b gettext -D language="%(lang)s" master_doc="%(lang)s" . _build/gettext/%(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
|
||||
def man():
|
||||
"""
|
||||
man file generation via docutils (python)
|
||||
|
||||
from docutils.core import publish_cmdline, default_description
|
||||
from docutils.writers import manpage
|
||||
"""
|
||||
|
||||
os.system('''rst2man en.rst gramps.1''')
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''rst2man %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.1'''
|
||||
% {'lang': lang})
|
||||
|
||||
def odt():
|
||||
"""
|
||||
odt file generation via docutils (python)
|
||||
|
||||
from docutils.core import publish_cmdline_to_binary, default_description
|
||||
from docutils.writers.odf_odt import Writer, Reader
|
||||
"""
|
||||
|
||||
os.system('''rst2odt en.rst gramps.odt''')
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''rst2odt %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.odt'''
|
||||
% {'lang': lang})
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+1
-1
@@ -15,6 +15,7 @@ Contents:
|
||||
:maxdepth: 2
|
||||
|
||||
gen/gen_lib
|
||||
gen/gen
|
||||
gen/gen_db
|
||||
gen/gen_display
|
||||
gen/gen_plug
|
||||
@@ -34,7 +35,6 @@ Contents:
|
||||
date
|
||||
relationship
|
||||
simple
|
||||
utils
|
||||
|
||||
Usefull snippets
|
||||
===================
|
||||
|
||||
+4
-4
@@ -19,7 +19,7 @@ import sys, os
|
||||
#sys.path.append(os.path.abspath('.'))
|
||||
|
||||
#documentation in root/docs, allow import from root/src where GRAMPS modules life
|
||||
sourcedir = (os.path.abspath('.')).split(os.sep)[:-1] + ['src']
|
||||
sourcedir = (os.path.abspath('.')).split(os.sep)[:-1] + ['gramps']
|
||||
sys.path.append((os.sep).join(sourcedir))
|
||||
#make it possible to add plugins --> walk the plugin dir and add to sys.path.append
|
||||
for (dirpath, dirnames, filenames) in os.walk((os.sep).join(sourcedir + ['plugins'])):
|
||||
@@ -46,16 +46,16 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Gramps'
|
||||
copyright = u'2011, The Gramps Project'
|
||||
copyright = u'2012, The Gramps Project'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '3.3'
|
||||
version = '4.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '3.3.0'
|
||||
release = '4.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
||||
@@ -43,3 +43,12 @@ Gramps CLI
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
User
|
||||
*****************************
|
||||
.. automodule:: cli.user
|
||||
.. autoclass:: User
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
+86
-11
@@ -1,13 +1,22 @@
|
||||
##########################
|
||||
The :mod:`gui` Module
|
||||
The :mod:`gramps.gui` Module
|
||||
##########################
|
||||
|
||||
.. automodule:: gui
|
||||
.. automodule:: gramps.gui
|
||||
|
||||
*****************************
|
||||
Gramps
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.grampsgui
|
||||
.. autoclass:: Gramps
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
About Dialog
|
||||
*****************************
|
||||
.. automodule:: gui.aboutdialog
|
||||
.. automodule:: gramps.gui.aboutdialog
|
||||
.. autoclass:: AuthorParser
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -20,7 +29,7 @@ About Dialog
|
||||
*****************************
|
||||
Base Sidebar
|
||||
*****************************
|
||||
.. automodule:: gui.basesidebar
|
||||
.. automodule:: gramps.gui.basesidebar
|
||||
.. autoclass:: BaseSidebar
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -29,7 +38,7 @@ Base Sidebar
|
||||
*****************************
|
||||
Column Order
|
||||
*****************************
|
||||
.. automodule:: gui.columnorder
|
||||
.. automodule:: gramps.gui.columnorder
|
||||
.. autoclass:: ColumnOrder
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -38,7 +47,7 @@ Column Order
|
||||
*****************************
|
||||
Configuration
|
||||
*****************************
|
||||
.. automodule:: gui.configure
|
||||
.. automodule:: gramps.gui.configure
|
||||
.. autoclass:: ConfigureDialog
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -55,7 +64,7 @@ Configuration
|
||||
*****************************
|
||||
GUI Element (DB)
|
||||
*****************************
|
||||
.. automodule:: gui.dbguielement
|
||||
.. automodule:: gramps.gui.dbguielement
|
||||
.. autoclass:: DbGUIElement
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -64,7 +73,7 @@ GUI Element (DB)
|
||||
*****************************
|
||||
DB Loader
|
||||
*****************************
|
||||
.. automodule:: gui.dbloader
|
||||
.. automodule:: gramps.gui.dbloader
|
||||
.. autoclass:: DbLoader
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -77,7 +86,7 @@ DB Loader
|
||||
*****************************
|
||||
DB Manager
|
||||
*****************************
|
||||
.. automodule:: gui.dbman
|
||||
.. automodule:: gramps.gui.dbman
|
||||
.. autoclass:: DbManager
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -86,7 +95,7 @@ DB Manager
|
||||
*****************************
|
||||
Filter Editor
|
||||
*****************************
|
||||
.. automodule:: gui.filtereditor
|
||||
.. automodule:: gramps.gui.editors.filtereditor
|
||||
.. autoclass:: EditFilter
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -145,5 +154,71 @@ Filter Editor
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Todo
|
||||
Gramps Bar
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.grampsbar
|
||||
.. autoclass:: DetachedWindow
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: GrampsBar
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: TabGramplet
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Navigator
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.navigator
|
||||
.. autoclass:: Navigator
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Plugins Manager
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.pluginmanager
|
||||
.. autoclass:: GuiPluginManager
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
User
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.user
|
||||
.. autoclass:: User
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Utils
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.utils
|
||||
.. autoclass:: CLIDialog
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: CLIVbox
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: ProgressMeter
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Views Manager
|
||||
*****************************
|
||||
.. automodule:: gramps.gui.viewmanager
|
||||
.. autoclass:: ViewManager
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
+43
-43
@@ -4,7 +4,7 @@ The :class:`Date Handler` Classes
|
||||
|
||||
DateParser
|
||||
====================================
|
||||
.. automodule:: DateHandler._DateParser
|
||||
.. automodule:: gen.datehandler._dateparser
|
||||
.. autoclass:: DateParser
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -12,7 +12,7 @@ DateParser
|
||||
|
||||
DateDisplay
|
||||
====================================
|
||||
.. automodule:: DateHandler._DateDisplay
|
||||
.. automodule:: gen.datehandler._datedisplay
|
||||
.. autoclass:: DateDisplay
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -24,14 +24,14 @@ DateDisplay
|
||||
|
||||
DateUtils
|
||||
====================================
|
||||
.. automodule:: DateHandler._DateUtils
|
||||
.. automodule:: gen.datehandler._dateutils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
DateHandler
|
||||
====================================
|
||||
.. automodule:: DateHandler._DateHandler
|
||||
.. automodule:: gen.datehandler._datehandler
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -42,11 +42,11 @@ Localized Date Handlers
|
||||
*****************************
|
||||
DateHandler (Bulgarian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_bg.DateParserBG
|
||||
.. autoclass:: gen.datehandler._date_bg.DateParserBG
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_bg.DateDisplayBG
|
||||
.. autoclass:: gen.datehandler._date_bg.DateDisplayBG
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -54,11 +54,11 @@ DateHandler (Bulgarian)
|
||||
*****************************
|
||||
DateHandler (Catalan)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_ca.DateParserCA
|
||||
.. autoclass:: gen.datehandler._date_ca.DateParserCA
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_ca.DateDisplayCA
|
||||
.. autoclass:: gen.datehandler._date_ca.DateDisplayCA
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -66,11 +66,11 @@ DateHandler (Catalan)
|
||||
*****************************
|
||||
DateHandler (Czech)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_cs.DateParserCZ
|
||||
.. autoclass:: gen.datehandler._date_cs.DateParserCZ
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_cs.DateDisplayCZ
|
||||
.. autoclass:: gen.datehandler._date_cs.DateDisplayCZ
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -78,11 +78,11 @@ DateHandler (Czech)
|
||||
*****************************
|
||||
DateHandler (German)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_de.DateParserDE
|
||||
.. autoclass:: gen.datehandler._date_de.DateParserDE
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_de.DateDisplayDE
|
||||
.. autoclass:: gen.datehandler._date_de.DateDisplayDE
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -90,11 +90,11 @@ DateHandler (German)
|
||||
*****************************
|
||||
DateHandler (Spanish)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_es.DateParserES
|
||||
.. autoclass:: gen.datehandler._date_es.DateParserES
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_es.DateDisplayES
|
||||
.. autoclass:: gen.datehandler._date_es.DateDisplayES
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -102,11 +102,11 @@ DateHandler (Spanish)
|
||||
*****************************
|
||||
DateHandler (Finnish)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_fi.DateParserFI
|
||||
.. autoclass:: gen.datehandler._date_fi.DateParserFI
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_fi.DateDisplayFI
|
||||
.. autoclass:: gen.datehandler._date_fi.DateDisplayFI
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -114,11 +114,11 @@ DateHandler (Finnish)
|
||||
*****************************
|
||||
DateHandler (French)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_fr.DateParserFR
|
||||
.. autoclass:: gen.datehandler._date_fr.DateParserFR
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_fr.DateDisplayFR
|
||||
.. autoclass:: gen.datehandler._date_fr.DateDisplayFR
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -126,11 +126,11 @@ DateHandler (French)
|
||||
*****************************
|
||||
DateHandler (Croatian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_hr.DateParserHR
|
||||
.. autoclass:: gen.datehandler._date_hr.DateParserHR
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_hr.DateDisplayHR
|
||||
.. autoclass:: gen.datehandler._date_hr.DateDisplayHR
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -138,11 +138,11 @@ DateHandler (Croatian)
|
||||
*****************************
|
||||
DateHandler (Italian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_it.DateParserIT
|
||||
.. autoclass:: gen.datehandler._date_it.DateParserIT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_it.DateDisplayIT
|
||||
.. autoclass:: gen.datehandler._date_it.DateDisplayIT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -150,11 +150,11 @@ DateHandler (Italian)
|
||||
*****************************
|
||||
DateHandler (Lituanian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_lt.DateParserLT
|
||||
.. autoclass:: gen.datehandler._date_lt.DateParserLT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_lt.DateDisplayLT
|
||||
.. autoclass:: gen.datehandler._date_lt.DateDisplayLT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -162,11 +162,11 @@ DateHandler (Lituanian)
|
||||
*****************************
|
||||
DateHandler (Norwegian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_nb.DateParserNb
|
||||
.. autoclass:: gen.datehandler._date_nb.DateParserNb
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_nb.DateDisplayNb
|
||||
.. autoclass:: gen.datehandler._date_nb.DateDisplayNb
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -174,11 +174,11 @@ DateHandler (Norwegian)
|
||||
*****************************
|
||||
DateHandler (Dutch)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_nl.DateParserNL
|
||||
.. autoclass:: gen.datehandler._date_nl.DateParserNL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_nl.DateDisplayNL
|
||||
.. autoclass:: gen.datehandler._date_nl.DateDisplayNL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -186,11 +186,11 @@ DateHandler (Dutch)
|
||||
*****************************
|
||||
DateHandler (Polish)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_pl.DateParserPL
|
||||
.. autoclass:: gen.datehandler._date_pl.DateParserPL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_pl.DateDisplayPL
|
||||
.. autoclass:: gen.datehandler._date_pl.DateDisplayPL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -198,11 +198,11 @@ DateHandler (Polish)
|
||||
*****************************
|
||||
DateHandler (Portuguese)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_pt.DateParserPT
|
||||
.. autoclass:: gen.datehandler._date_pt.DateParserPT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_pt.DateDisplayPT
|
||||
.. autoclass:: gen.datehandler._date_pt.DateDisplayPT
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -210,11 +210,11 @@ DateHandler (Portuguese)
|
||||
*****************************
|
||||
DateHandler (Russian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_ru.DateParserRU
|
||||
.. autoclass:: gen.datehandler._date_ru.DateParserRU
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_ru.DateDisplayRU
|
||||
.. autoclass:: gen.datehandler._date_ru.DateDisplayRU
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -222,11 +222,11 @@ DateHandler (Russian)
|
||||
*****************************
|
||||
DateHandler (Slovak)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_sk.DateParserSK
|
||||
.. autoclass:: gen.datehandler._date_sk.DateParserSK
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_sk.DateDisplaySK
|
||||
.. autoclass:: gen.datehandler._date_sk.DateDisplaySK
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -234,11 +234,11 @@ DateHandler (Slovak)
|
||||
*****************************
|
||||
DateHandler (Slovenian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_sl.DateParserSL
|
||||
.. autoclass:: gen.datehandler._date_sl.DateParserSL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_sl.DateDisplaySL
|
||||
.. autoclass:: gen.datehandler._date_sl.DateDisplaySL
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -246,11 +246,11 @@ DateHandler (Slovenian)
|
||||
*****************************
|
||||
DateHandler (Serbian)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_sr.DateParserSR
|
||||
.. autoclass:: gen.datehandler._date_sr.DateParserSR
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_sr.DateDisplaySR_latin
|
||||
.. autoclass:: gen.datehandler._date_sr.DateDisplaySR_latin
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -258,11 +258,11 @@ DateHandler (Serbian)
|
||||
*****************************
|
||||
DateHandler (Swedish)
|
||||
*****************************
|
||||
.. autoclass:: DateHandler._Date_sv.DateParserSv
|
||||
.. autoclass:: gen.datehandler._date_sv.DateParserSv
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateHandler._Date_sv.DateDisplaySv
|
||||
.. autoclass:: gen.datehandler._date_sv.DateDisplaySv
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
@@ -273,7 +273,7 @@ The :class:`Date Edition` Classes
|
||||
|
||||
DateEdit
|
||||
====================================
|
||||
.. automodule:: DateEdit
|
||||
.. automodule:: gramps.gui.editors.editdate
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
##########################
|
||||
The :mod:`gen` Module
|
||||
##########################
|
||||
|
||||
.. automodule:: gen
|
||||
|
||||
*****************************
|
||||
Database State
|
||||
*****************************
|
||||
.. automodule:: gen.dbstate
|
||||
.. autoclass:: DbState
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Errors
|
||||
*****************************
|
||||
.. automodule:: gen.errors
|
||||
.. autoclass:: DatabaseError
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DateError
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: DbError
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
TODO
|
||||
|
||||
*****************************
|
||||
Recent Files
|
||||
*****************************
|
||||
.. automodule:: gen.recentfiles
|
||||
.. autoclass:: RecentFiles
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: RecentItem
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. autoclass:: RecentParser
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Sort
|
||||
*****************************
|
||||
.. automodule:: gen.sort
|
||||
.. autoclass:: Sort
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Update callback
|
||||
*****************************
|
||||
.. automodule:: gen.updatecallback
|
||||
.. autoclass:: UpdateCallback
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
User
|
||||
*****************************
|
||||
.. automodule:: gen.user
|
||||
.. autoclass:: User
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
+29
-16
@@ -31,6 +31,14 @@ AttributeBase
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
CitationBase
|
||||
====================================
|
||||
.. automodule:: gen.lib.citationbase
|
||||
.. autoclass:: CitationBase
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
DateBase
|
||||
====================================
|
||||
@@ -96,14 +104,6 @@ RefBase
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
SourceBase
|
||||
====================================
|
||||
.. automodule:: gen.lib.srcbase
|
||||
.. autoclass:: SourceBase
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
SurnameBase
|
||||
====================================
|
||||
.. automodule:: gen.lib.surnamebase
|
||||
@@ -187,6 +187,14 @@ Source
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Citation
|
||||
====================================
|
||||
.. automodule:: gen.lib.citation
|
||||
.. autoclass:: Citation
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Media Object
|
||||
====================================
|
||||
.. automodule:: gen.lib.mediaobj
|
||||
@@ -323,14 +331,6 @@ RepoRef
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
SourceRef
|
||||
====================================
|
||||
.. automodule:: gen.lib.srcref
|
||||
.. autoclass:: SourceRef
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Table object
|
||||
*****************************
|
||||
@@ -513,3 +513,16 @@ UrlType
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Privacy
|
||||
*****************************
|
||||
|
||||
PrivateSourceNote
|
||||
============
|
||||
|
||||
.. automodule:: gen.lib.privsrcnote
|
||||
.. autoclass:: PrivateSourceNote
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
+99
-87
@@ -18,13 +18,6 @@ BaseManager
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Docgen
|
||||
====================================
|
||||
.. automodule:: gen.plug._docgenplugin
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Export
|
||||
====================================
|
||||
.. automodule:: gen.plug._export
|
||||
@@ -46,87 +39,12 @@ Import
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Options
|
||||
====================================
|
||||
.. automodule:: gen.plug._options
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Register
|
||||
====================================
|
||||
.. automodule:: gen.plug._pluginreg
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Utils
|
||||
====================================
|
||||
.. automodule:: gen.plug.utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Docbackend
|
||||
====================================
|
||||
.. automodule:: gen.plug.docbackend.cairobackend
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docbackend.docbackend
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
DocGen
|
||||
====================================
|
||||
.. automodule:: gen.plug.docgen.basedoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.drawdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.fontscale
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.fontstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.graphdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.graphicstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.paperstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.paragraphstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.stylesheet
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.tablestyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.textdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Menu
|
||||
====================================
|
||||
.. automodule:: gen.plug.menu._menu
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.menu._boolean
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -200,8 +118,20 @@ Menu
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Report
|
||||
*****************************
|
||||
Options
|
||||
*****************************
|
||||
.. automodule:: gen.plug._options
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Reports
|
||||
====================================
|
||||
.. automodule:: gen.plug.report._options
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.report._bibliography
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -227,3 +157,85 @@ Report
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Docgen
|
||||
*****************************
|
||||
.. automodule:: gen.plug._docgenplugin
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Generators
|
||||
*****************************
|
||||
.. automodule:: gen.plug.docgen.basedoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.drawdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.fontscale
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.fontstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.graphdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.graphicstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.paperstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.paragraphstyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.stylesheet
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.tablestyle
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docgen.textdoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
*****************************
|
||||
Doc Backend
|
||||
*****************************
|
||||
.. automodule:: gen.plug.docbackend.cairobackend
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.plug.docbackend.docbackend
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Register
|
||||
====================================
|
||||
.. automodule:: gen.plug._pluginreg
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Utils
|
||||
====================================
|
||||
.. automodule:: gen.plug.utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
|
||||
@@ -34,10 +34,6 @@ Private
|
||||
|
||||
References
|
||||
====================================
|
||||
.. automodule:: gen.proxy.referenced
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.proxy.referencedbyselection
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
+53
-1
@@ -6,6 +6,10 @@ The :mod:`gen.utils` Module
|
||||
|
||||
Utils
|
||||
====================================
|
||||
.. automodule:: gen.utils.alive
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.callback
|
||||
:members:
|
||||
:undoc-members:
|
||||
@@ -14,11 +18,59 @@ Utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.cast
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.config
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.configmanager
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.fallback
|
||||
.. automodule:: gen.utils.db
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.file
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.id
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.image
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.keyword
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.lds
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.mactrans
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.place
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.string
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.trans
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
.. automodule:: gen.utils.unknown
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
The :class:`RelationshipCalculator` Class
|
||||
#########################################
|
||||
|
||||
.. automodule:: Relationship
|
||||
.. automodule:: gen.relationship
|
||||
.. autoclass:: RelationshipCalculator
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
+4
-4
@@ -2,25 +2,25 @@
|
||||
The :class:`Simple` Classes
|
||||
###########################
|
||||
|
||||
.. automodule:: Simple
|
||||
.. automodule:: gen.simple
|
||||
|
||||
Simple Access
|
||||
====================================
|
||||
.. automodule:: Simple._SimpleAccess
|
||||
.. automodule:: gen.simple._simpleaccess
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Simple Doc
|
||||
====================================
|
||||
.. automodule:: Simple._SimpleDoc
|
||||
.. automodule:: gen.simple._simpledoc
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
Simple Table
|
||||
====================================
|
||||
.. automodule:: Simple._SimpleTable
|
||||
.. automodule:: gen.simple._simpletable
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
#! /usr/bin/env python
|
||||
#
|
||||
# update_po - a gramps tool to update translations
|
||||
#
|
||||
# Copyright (C) 2006-2006 Kees Bakker
|
||||
# Copyright (C) 2006 Brian Matherly
|
||||
# Copyright (C) 2008 Stephen George
|
||||
# Copyright (C) 2012
|
||||
#
|
||||
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
"""
|
||||
update_doc.py for Gramps API(s) documentation.
|
||||
|
||||
Examples:
|
||||
python update_doc.py -t
|
||||
|
||||
Tests if 'sphinx' and 'python' are well configured.
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
from argparse import ArgumentParser
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXBUILD = 'sphinx-build'
|
||||
|
||||
if sys.platform == 'win32':
|
||||
pythonCmd = os.path.join(sys.prefix, 'bin', 'python.exe')
|
||||
sphinxCmd = os.path.join(sys.prefix, 'bin', 'sphinx-build.exe')
|
||||
elif sys.platform == 'linux2' or os.name == 'darwin':
|
||||
pythonCmd = os.path.join(sys.prefix, 'bin', 'python')
|
||||
sphinxCmd = SPHINXBUILD
|
||||
else:
|
||||
print ("ERROR: unknown system, don't know sphinx, ... commands")
|
||||
sys.exit(0)
|
||||
|
||||
def tests():
|
||||
"""
|
||||
Testing installed programs.
|
||||
We made tests (-t flag) by displaying versions of tools if properly
|
||||
installed. Cannot run all commands without 'sphinx' and 'python'.
|
||||
"""
|
||||
try:
|
||||
print("\n=================='python'=============================\n")
|
||||
os.system('''%(program)s -V''' % {'program': pythonCmd})
|
||||
except:
|
||||
print ('Please, install python')
|
||||
|
||||
try:
|
||||
print("\n=================='Shpinx-build'=============================\n")
|
||||
os.system('''%(program)s''' % {'program': sphinxCmd})
|
||||
except:
|
||||
print ('Please, install sphinx')
|
||||
|
||||
def main():
|
||||
"""
|
||||
The utility for handling documentation stuff.
|
||||
What is need by Gramps, nothing more.
|
||||
"""
|
||||
|
||||
parser = ArgumentParser(
|
||||
description='This program aims to handle manual'
|
||||
' and translated version.',
|
||||
)
|
||||
|
||||
parser.add_argument("-t", "--test",
|
||||
action="store_true", dest="test", default=True,
|
||||
help="test if 'python' and 'sphinx' are properly installed")
|
||||
|
||||
parser.add_argument("-b", "--build",
|
||||
action="store_true", dest="build", default=True,
|
||||
help="build documentation")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.test:
|
||||
tests()
|
||||
|
||||
if args.build:
|
||||
build()
|
||||
|
||||
def build():
|
||||
"""
|
||||
Build documentation.
|
||||
"""
|
||||
|
||||
# testing stage
|
||||
|
||||
os.system('''%(program)s -b html . _build/html''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b changes . _build/changes''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b linkcheck . _build/linkcheck''' % {'program': sphinxCmd})
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,12 +0,0 @@
|
||||
############################
|
||||
The :mod:`Utils` Module
|
||||
############################
|
||||
|
||||
Contents:
|
||||
|
||||
.. automodule:: Utils
|
||||
:members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
SUBDIRS = gramps
|
||||
@@ -1,12 +0,0 @@
|
||||
# This is the src/data/templates level Makefile
|
||||
pkgdata_DATA = \
|
||||
data.gramps\
|
||||
O0.jpg\
|
||||
O1.jpg\
|
||||
O2.jpg\
|
||||
O3.jpg\
|
||||
O4.jpg\
|
||||
O5.jpg
|
||||
|
||||
pkgdatadir = ${datadir}/@PACKAGE@/example
|
||||
EXTRA_DIST = ${pkgdata_DATA}
|
||||
+2854
-2854
File diff suppressed because it is too large
Load Diff
@@ -1,316 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
# $Id$
|
||||
|
||||
#name of package
|
||||
PKG_NAME=${PKG_NAME:-Package}
|
||||
srcdir=${srcdir:-.}
|
||||
|
||||
# default version requirements ...
|
||||
REQUIRED_AUTOCONF_VERSION=${REQUIRED_AUTOCONF_VERSION:-2.53}
|
||||
REQUIRED_AUTOMAKE_VERSION=${REQUIRED_AUTOMAKE_VERSION:-1.4}
|
||||
REQUIRED_GLIB_GETTEXT_VERSION=${REQUIRED_GLIB_GETTEXT_VERSION:-2.2.0}
|
||||
REQUIRED_INTLTOOL_VERSION=${REQUIRED_INTLTOOL_VERSION:-0.25}
|
||||
|
||||
# a list of required m4 macros. Package can set an initial value
|
||||
REQUIRED_M4MACROS=${REQUIRED_M4MACROS:-}
|
||||
FORBIDDEN_M4MACROS=${FORBIDDEN_M4MACROS:-}
|
||||
|
||||
# Not all echo versions allow -n, so we check what is possible. This test is
|
||||
# based on the one in autoconf.
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ;;
|
||||
*c*,* ) ECHO_N=-n ;;
|
||||
*) ECHO_N= ;;
|
||||
esac
|
||||
|
||||
# some terminal codes ...
|
||||
boldface="`tput bold 2>/dev/null`"
|
||||
normal="`tput sgr0 2>/dev/null`"
|
||||
printbold() {
|
||||
echo $ECHO_N "$boldface"
|
||||
echo "$@"
|
||||
echo $ECHO_N "$normal"
|
||||
}
|
||||
|
||||
printerr() {
|
||||
echo "$@" >&2
|
||||
}
|
||||
|
||||
autogen_options ()
|
||||
{
|
||||
if test "x$1" = "x"; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
printbold "Checking command line options..."
|
||||
while test "x$1" != "x" ; do
|
||||
optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
|
||||
case "$1" in
|
||||
--noconfigure)
|
||||
NOCONFIGURE=defined
|
||||
AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure"
|
||||
echo " configure run disabled"
|
||||
shift
|
||||
;;
|
||||
--nocheck)
|
||||
AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck"
|
||||
NOCHECK=defined
|
||||
echo " autotools version check disabled"
|
||||
shift
|
||||
;;
|
||||
--debug)
|
||||
DEBUG=defined
|
||||
AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug"
|
||||
echo " debug output enabled"
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
echo "autogen.sh (autogen options) -- (configure options)"
|
||||
echo "autogen.sh help options: "
|
||||
echo " --noconfigure don't run the configure script"
|
||||
# echo " --nocheck don't do version checks"
|
||||
echo " --debug debug the autogen process"
|
||||
echo
|
||||
echo " --with-autoconf PATH use autoconf in PATH"
|
||||
echo " --with-automake PATH use automake in PATH"
|
||||
echo
|
||||
echo "Any argument either not in the above list or after a '--' will be "
|
||||
echo "passed to ./configure."
|
||||
exit 1
|
||||
;;
|
||||
--with-automake=*)
|
||||
AUTOMAKE=$optarg
|
||||
echo " using alternate automake in $optarg"
|
||||
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE"
|
||||
shift
|
||||
;;
|
||||
--with-autoconf=*)
|
||||
AUTOCONF=$optarg
|
||||
echo " using alternate autoconf in $optarg"
|
||||
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF"
|
||||
shift
|
||||
;;
|
||||
--) shift ; break ;;
|
||||
*)
|
||||
echo " passing argument $1 to configure"
|
||||
CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done
|
||||
if test ! -z "$CONFIGURE_EXT_OPT"
|
||||
then
|
||||
echo " options passed to configure: $CONFIGURE_EXT_OPT"
|
||||
fi
|
||||
}
|
||||
|
||||
# Usage:
|
||||
# compare_versions MIN_VERSION ACTUAL_VERSION
|
||||
# returns true if ACTUAL_VERSION >= MIN_VERSION
|
||||
compare_versions() {
|
||||
ch_min_version=$1
|
||||
ch_actual_version=$2
|
||||
ch_status=0
|
||||
IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="."
|
||||
set $ch_actual_version
|
||||
for ch_min in $ch_min_version; do
|
||||
ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
|
||||
if [ -z "$ch_min" ]; then break; fi
|
||||
if [ -z "$ch_cur" ]; then ch_status=1; break; fi
|
||||
if [ $ch_cur -gt $ch_min ]; then break; fi
|
||||
if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
|
||||
done
|
||||
IFS="$ch_save_IFS"
|
||||
return $ch_status
|
||||
}
|
||||
|
||||
# Usage:
|
||||
# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE
|
||||
# checks to see if the package is available
|
||||
version_check() {
|
||||
vc_package=$1
|
||||
vc_variable=$2
|
||||
vc_checkprogs=$3
|
||||
vc_min_version=$4
|
||||
vc_source=$5
|
||||
vc_status=1
|
||||
|
||||
vc_checkprog=`eval echo "\\$$vc_variable"`
|
||||
if [ -n "$vc_checkprog" ]; then
|
||||
printbold "using $vc_checkprog for $vc_package"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if test "x$vc_package" = "xautomake" -a "x$vc_min_version" = "x1.4"; then
|
||||
vc_comparator="="
|
||||
else
|
||||
vc_comparator=">="
|
||||
fi
|
||||
printbold "Checking for $vc_package $vc_comparator $vc_min_version..."
|
||||
for vc_checkprog in $vc_checkprogs; do
|
||||
echo $ECHO_N " testing $vc_checkprog... "
|
||||
if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then
|
||||
vc_actual_version=`$vc_checkprog --version | head -n 1 | \
|
||||
sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'`
|
||||
if compare_versions $vc_min_version $vc_actual_version; then
|
||||
echo "found $vc_actual_version"
|
||||
# set variables
|
||||
eval "$vc_variable=$vc_checkprog; \
|
||||
${vc_variable}_VERSION=$vc_actual_version"
|
||||
vc_status=0
|
||||
break
|
||||
else
|
||||
echo "too old (found version $vc_actual_version)"
|
||||
fi
|
||||
else
|
||||
echo "not found."
|
||||
fi
|
||||
done
|
||||
if [ "$vc_status" != 0 ]; then
|
||||
printerr "***Error***: You must have $vc_package $vc_comparator $vc_min_version installed"
|
||||
printerr " to build $PKG_NAME. Download the appropriate package for"
|
||||
printerr " from your distribution or get the source tarball at"
|
||||
printerr " $vc_source"
|
||||
printerr
|
||||
fi
|
||||
return $vc_status
|
||||
}
|
||||
|
||||
debug ()
|
||||
# print out a debug message if DEBUG is a defined variable
|
||||
{
|
||||
if test ! -z "$DEBUG"
|
||||
then
|
||||
echo "DEBUG: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Usage:
|
||||
# require_m4macro filename.m4
|
||||
# adds filename.m4 to the list of required macros
|
||||
require_m4macro() {
|
||||
case "$REQUIRED_M4MACROS" in
|
||||
$1\ * | *\ $1\ * | *\ $1) ;;
|
||||
*) REQUIRED_M4MACROS="$REQUIRED_M4MACROS $1" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
forbid_m4macro() {
|
||||
case "$FORBIDDEN_M4MACROS" in
|
||||
$1\ * | *\ $1\ * | *\ $1) ;;
|
||||
*) FORBIDDEN_M4MACROS="$FORBIDDEN_M4MACROS $1" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Usage:
|
||||
# add_to_cm_macrodirs dirname
|
||||
# Adds the dir to $cm_macrodirs, if it's not there yet.
|
||||
add_to_cm_macrodirs() {
|
||||
case $cm_macrodirs in
|
||||
"$1 "* | *" $1 "* | *" $1") ;;
|
||||
*) cm_macrodirs="$cm_macrodirs $1";;
|
||||
esac
|
||||
}
|
||||
|
||||
# Usage:
|
||||
# check_m4macros
|
||||
# Checks that all the requested macro files are in the aclocal macro path
|
||||
# Uses REQUIRED_M4MACROS and ACLOCAL variables.
|
||||
check_m4macros() {
|
||||
# construct list of macro directories
|
||||
cm_macrodirs=`$ACLOCAL --print-ac-dir`
|
||||
# aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.9
|
||||
# but it contains only Automake's own macros, so we can ignore it.
|
||||
|
||||
# Read the dirlist file, supported by Automake >= 1.7.
|
||||
if compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then
|
||||
cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist`
|
||||
if [ -n "$cm_dirlist" ] ; then
|
||||
for cm_dir in $cm_dirlist; do
|
||||
if [ -d $cm_dir ]; then
|
||||
add_to_cm_macrodirs $cm_dir
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Parse $ACLOCAL_FLAGS
|
||||
set - $ACLOCAL_FLAGS
|
||||
while [ $# -gt 0 ]; do
|
||||
if [ "$1" = "-I" ]; then
|
||||
add_to_cm_macrodirs "$2"
|
||||
shift
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
cm_status=0
|
||||
if [ -n "$REQUIRED_M4MACROS" ]; then
|
||||
printbold "Checking for required M4 macros..."
|
||||
# check that each macro file is in one of the macro dirs
|
||||
for cm_macro in $REQUIRED_M4MACROS; do
|
||||
cm_macrofound=false
|
||||
for cm_dir in $cm_macrodirs; do
|
||||
if [ -f "$cm_dir/$cm_macro" ]; then
|
||||
cm_macrofound=true
|
||||
break
|
||||
fi
|
||||
# The macro dir in Cygwin environments may contain a file
|
||||
# called dirlist containing other directories to look in.
|
||||
if [ -f "$cm_dir/dirlist" ]; then
|
||||
for cm_otherdir in `cat $cm_dir/dirlist`; do
|
||||
if [ -f "$cm_otherdir/$cm_macro" ]; then
|
||||
cm_macrofound=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
if $cm_macrofound; then
|
||||
:
|
||||
else
|
||||
printerr " $cm_macro not found"
|
||||
cm_status=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -n "$FORBIDDEN_M4MACROS" ]; then
|
||||
printbold "Checking for forbidden M4 macros..."
|
||||
# check that each macro file is in one of the macro dirs
|
||||
for cm_macro in $FORBIDDEN_M4MACROS; do
|
||||
cm_macrofound=false
|
||||
for cm_dir in $cm_macrodirs; do
|
||||
if [ -f "$cm_dir/$cm_macro" ]; then
|
||||
cm_macrofound=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
if $cm_macrofound; then
|
||||
printerr " $cm_macro found (should be cleared from macros dir)"
|
||||
cm_status=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ "$cm_status" != 0 ]; then
|
||||
printerr "***Error***: some autoconf macros required to build $PKG_NAME"
|
||||
printerr " were not found in your aclocal path, or some forbidden"
|
||||
printerr " macros were found. Perhaps you need to adjust your"
|
||||
printerr " ACLOCAL_FLAGS?"
|
||||
printerr
|
||||
fi
|
||||
return $cm_status
|
||||
}
|
||||
|
||||
toplevel_check()
|
||||
{
|
||||
srcfile=$1
|
||||
test -f $srcfile || {
|
||||
echo "You must run this script in the top-level $PKG_NAME directory"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
#! /bin/sh
|
||||
# @configure_input@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||
#
|
||||
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
prefix=@prefix@
|
||||
PACKAGE=@PACKAGE@
|
||||
|
||||
export GRAMPSDIR=@datadir@/@PACKAGE@
|
||||
|
||||
exec @PYTHON@ -O $GRAMPSDIR/gramps.py "$@"
|
||||
@@ -17,14 +17,14 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# webapp/grampsdb/admin.py
|
||||
# gen/__init__.py
|
||||
# $Id$
|
||||
#
|
||||
|
||||
from webapp.grampsdb.models import *
|
||||
from django.contrib import admin
|
||||
"""
|
||||
The core gramps module provides the different packages
|
||||
|
||||
for type_name in get_tables("all"):
|
||||
admin.site.register(type_name[1])
|
||||
Plugins are loaded dynamically, so they the plugin directory is not included
|
||||
"""
|
||||
|
||||
admin.site.register(Profile)
|
||||
__all__ = ["gen", "cli", "gui"]
|
||||
@@ -36,23 +36,26 @@ Module responsible for handling the command line arguments for GRAMPS.
|
||||
# Standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
from gen.ggettext import gettext as _
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import RecentFiles
|
||||
import Utils
|
||||
import gen
|
||||
from clidbman import CLIDbManager, NAME_FILE, find_locker_name
|
||||
from gramps.gen.recentfiles import recent_files
|
||||
from gramps.gen.utils.file import (rm_tempdir, get_empty_tempdir,
|
||||
get_unicode_path_from_env_var)
|
||||
from gramps.gen.db import DbBsddb
|
||||
from .clidbman import CLIDbManager, NAME_FILE, find_locker_name
|
||||
|
||||
from gen.plug import BasePluginManager
|
||||
from gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE
|
||||
from cli.plug import cl_report
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE, BookList
|
||||
from .plug import cl_report, cl_book
|
||||
from .user import User
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -182,9 +185,9 @@ class ArgHandler(object):
|
||||
else:
|
||||
# Need to convert to system file encoding before printing
|
||||
# For non latin characters in path/file/user names
|
||||
print >> sys.stderr, msg1.encode(sys.getfilesystemencoding())
|
||||
print(msg1.encode(sys.getfilesystemencoding()), file=sys.stderr)
|
||||
if msg2 is not None:
|
||||
print >> sys.stderr, msg2.encode(sys.getfilesystemencoding())
|
||||
print(msg2.encode(sys.getfilesystemencoding()), file=sys.stderr)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Argument parser: sorts out given arguments
|
||||
@@ -206,7 +209,7 @@ class ArgHandler(object):
|
||||
"""
|
||||
if value is None:
|
||||
return None
|
||||
value = Utils.get_unicode_path_from_env_var(value)
|
||||
value = get_unicode_path_from_env_var(value)
|
||||
db_path = self.__deduce_db_path(value)
|
||||
|
||||
if db_path:
|
||||
@@ -236,7 +239,7 @@ class ArgHandler(object):
|
||||
"""
|
||||
# Need to convert path/filename to unicode before opening
|
||||
# For non latin characters in Windows path/file/user names
|
||||
value = Utils.get_unicode_path_from_env_var(value)
|
||||
value = get_unicode_path_from_env_var(value)
|
||||
fname = value
|
||||
fullpath = os.path.abspath(os.path.expanduser(fname))
|
||||
if fname != '-' and not os.path.exists(fullpath):
|
||||
@@ -273,7 +276,7 @@ class ArgHandler(object):
|
||||
return
|
||||
# Need to convert path/filename to unicode before opening
|
||||
# For non latin characters in Windows path/file/user names
|
||||
value = Utils.get_unicode_path_from_env_var(value)
|
||||
value = get_unicode_path_from_env_var(value)
|
||||
fname = value
|
||||
if fname == '-':
|
||||
fullpath = '-'
|
||||
@@ -286,16 +289,21 @@ class ArgHandler(object):
|
||||
answer = None
|
||||
while not answer:
|
||||
try:
|
||||
ans = raw_input(_('OK to overwrite? (yes/no) ') \
|
||||
if sys.version_info[0] < 3:
|
||||
ask = raw_input
|
||||
else:
|
||||
ask = input
|
||||
ans = ask(_('OK to overwrite? (yes/no) ') \
|
||||
.encode(sys.getfilesystemencoding()))
|
||||
except EOFError:
|
||||
print
|
||||
print()
|
||||
sys.exit(0)
|
||||
if ans.upper() in ('Y', 'YES', _('YES').upper()):
|
||||
self.__error( _("Will overwrite the existing file: %s")
|
||||
% fullpath)
|
||||
answer = "ok"
|
||||
else:
|
||||
sys.exit(0)
|
||||
if ans.upper() in ('Y', 'YES', _('YES').upper()):
|
||||
self.__error( _("Will overwrite the existing file: %s")
|
||||
% fullpath)
|
||||
else:
|
||||
sys.exit(0)
|
||||
|
||||
if family_tree_format is None:
|
||||
# Guess the file format based on the file extension.
|
||||
@@ -376,7 +384,7 @@ class ArgHandler(object):
|
||||
ifile.close()
|
||||
except:
|
||||
title = db_path
|
||||
RecentFiles.recent_files(db_path, title)
|
||||
recent_files(db_path, title)
|
||||
self.open = db_path
|
||||
self.__open_action()
|
||||
else:
|
||||
@@ -399,32 +407,36 @@ class ArgHandler(object):
|
||||
"""
|
||||
|
||||
if self.list:
|
||||
print _('List of known family trees in your database path\n')
|
||||
print(_('List of known family trees in your database path\n').\
|
||||
encode(sys.getfilesystemencoding()))
|
||||
for name, dirname in sorted(self.dbman.family_tree_list(),
|
||||
key=lambda pair: pair[0].lower()):
|
||||
print _("%(full_DB_path)s with name \"%(f_t_name)s\"") % \
|
||||
|
||||
print((_("%(full_DB_path)s with name \"%(f_t_name)s\"") % \
|
||||
{'full_DB_path' : dirname,
|
||||
'f_t_name' : name.encode(sys.getfilesystemencoding())}
|
||||
'f_t_name' : name}).encode(sys.getfilesystemencoding()))
|
||||
sys.exit(0)
|
||||
|
||||
if self.list_more:
|
||||
print _('Gramps Family Trees:')
|
||||
print(_('Gramps Family Trees:').encode(sys.getfilesystemencoding()))
|
||||
summary_list = self.dbman.family_tree_summary()
|
||||
for summary in sorted(summary_list,
|
||||
key=lambda sum: sum["Family tree"].lower()):
|
||||
print _("Family Tree \"%s\":") % summary["Family tree"]
|
||||
print(_("Family Tree \"%s\":").\
|
||||
encode(sys.getfilesystemencoding()) % summary["Family tree"])
|
||||
for item in sorted(summary):
|
||||
if item != "Family tree":
|
||||
print " %s: %s" % (item, summary[item])
|
||||
print((" %s: %s" % (item, summary[item])).\
|
||||
encode(sys.getfilesystemencoding()))
|
||||
sys.exit(0)
|
||||
|
||||
self.__open_action()
|
||||
self.__import_action()
|
||||
|
||||
for (action, op_string) in self.actions:
|
||||
print >> sys.stderr, _("Performing action: %s.") % action
|
||||
print(_("Performing action: %s.") % action, file=sys.stderr)
|
||||
if op_string:
|
||||
print >> sys.stderr, _("Using options string: %s") % op_string
|
||||
print(_("Using options string: %s") % op_string, file=sys.stderr)
|
||||
self.cl_action(action, op_string)
|
||||
|
||||
for expt in self.exports:
|
||||
@@ -432,23 +444,23 @@ class ArgHandler(object):
|
||||
# For non latin characters in Windows path/file/user names
|
||||
fn = expt[0].encode(sys.getfilesystemencoding())
|
||||
fmt = str(expt[1])
|
||||
print >> sys.stderr, _("Exporting: file %(filename)s, "
|
||||
print(_("Exporting: file %(filename)s, "
|
||||
"format %(format)s.") % \
|
||||
{'filename' : fn,
|
||||
'format' : fmt}
|
||||
'format' : fmt}, file=sys.stderr)
|
||||
self.cl_export(expt[0], expt[1])
|
||||
|
||||
if cleanup:
|
||||
self.cleanup()
|
||||
print >> sys.stderr, _("Exiting.")
|
||||
print(_("Exiting."), file=sys.stderr)
|
||||
sys.exit(0)
|
||||
|
||||
def cleanup(self):
|
||||
print >> sys.stderr, _("Cleaning up.")
|
||||
print(_("Cleaning up."), file=sys.stderr)
|
||||
# remove files in import db subdir after use
|
||||
self.dbstate.db.close()
|
||||
if self.imp_db_path:
|
||||
Utils.rm_tempdir(self.imp_db_path)
|
||||
rm_tempdir(self.imp_db_path)
|
||||
|
||||
def __import_action(self):
|
||||
"""
|
||||
@@ -467,18 +479,18 @@ class ArgHandler(object):
|
||||
if self.gui:
|
||||
self.imp_db_path, title = self.dbman.create_new_db_cli()
|
||||
else:
|
||||
self.imp_db_path = Utils.get_empty_tempdir("import_dbdir") \
|
||||
self.imp_db_path = get_empty_tempdir("import_dbdir") \
|
||||
.encode(sys.getfilesystemencoding())
|
||||
newdb = gen.db.DbBsddb()
|
||||
newdb = DbBsddb()
|
||||
newdb.write_version(self.imp_db_path)
|
||||
|
||||
try:
|
||||
self.sm.open_activate(self.imp_db_path)
|
||||
msg = _("Created empty family tree successfully")
|
||||
print >> sys.stderr, msg
|
||||
print(msg, file=sys.stderr)
|
||||
except:
|
||||
print >> sys.stderr, _("Error opening the file.")
|
||||
print >> sys.stderr, _("Exiting...")
|
||||
print(_("Error opening the file."), file=sys.stderr)
|
||||
print(_("Exiting..."), file=sys.stderr)
|
||||
sys.exit(0)
|
||||
|
||||
for imp in self.imports:
|
||||
@@ -486,7 +498,7 @@ class ArgHandler(object):
|
||||
fmt = str(imp[1])
|
||||
msg = _("Importing: file %(filename)s, format %(format)s.") % \
|
||||
{'filename' : fn, 'format' : fmt}
|
||||
print >> sys.stderr, msg
|
||||
print(msg, file=sys.stderr)
|
||||
self.cl_import(imp[0], imp[1])
|
||||
|
||||
def __open_action(self):
|
||||
@@ -502,10 +514,10 @@ class ArgHandler(object):
|
||||
# we load this file for use
|
||||
try:
|
||||
self.sm.open_activate(self.open)
|
||||
print >> sys.stderr, _("Opened successfully!")
|
||||
print(_("Opened successfully!"), file=sys.stderr)
|
||||
except:
|
||||
print >> sys.stderr, _("Error opening the file.")
|
||||
print >> sys.stderr, _("Exiting...")
|
||||
print(_("Error opening the file."), file=sys.stderr)
|
||||
print(_("Exiting..."), file=sys.stderr)
|
||||
sys.exit(0)
|
||||
|
||||
def check_db(self, dbpath, force_unlock = False):
|
||||
@@ -538,7 +550,7 @@ class ArgHandler(object):
|
||||
for plugin in pmgr.get_import_plugins():
|
||||
if family_tree_format == plugin.get_extension():
|
||||
import_function = plugin.get_import_function()
|
||||
import_function(self.dbstate.db, filename, None)
|
||||
import_function(self.dbstate.db, filename, User())
|
||||
|
||||
if not self.cl:
|
||||
if self.imp_db_path:
|
||||
@@ -560,7 +572,7 @@ class ArgHandler(object):
|
||||
for plugin in pmgr.get_export_plugins():
|
||||
if family_tree_format == plugin.get_extension():
|
||||
export_function = plugin.get_export_function()
|
||||
export_function(self.dbstate.db, filename, self.__error)
|
||||
export_function(self.dbstate.db, filename, User(error=self.__error))
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -577,7 +589,7 @@ class ArgHandler(object):
|
||||
options_str_dict = _split_options(options_str)
|
||||
except:
|
||||
options_str_dict = {}
|
||||
print >> sys.stderr, _("Ignoring invalid options string.")
|
||||
print(_("Ignoring invalid options string."), file=sys.stderr)
|
||||
|
||||
name = options_str_dict.pop('name', None)
|
||||
_cl_list = pmgr.get_reg_reports(gui=False)
|
||||
@@ -606,25 +618,24 @@ class ArgHandler(object):
|
||||
"Please use one of %(donottranslate)s=reportname") % \
|
||||
{'donottranslate' : '[-p|--options] name'}
|
||||
|
||||
print >> sys.stderr, _("%s\n Available names are:") % msg
|
||||
print(_("%s\n Available names are:") % msg, file=sys.stderr)
|
||||
for pdata in sorted(_cl_list, key= lambda pdata: pdata.id.lower()):
|
||||
# Print cli report name ([item[0]), GUI report name (item[4])
|
||||
if len(pdata.id) <= 25:
|
||||
print >> sys.stderr, \
|
||||
" %s%s- %s" % ( pdata.id, " " * (26 - len(pdata.id)),
|
||||
pdata.name.encode(sys.getfilesystemencoding()))
|
||||
print(" %s%s- %s" % ( pdata.id, " " * (26 - len(pdata.id)),
|
||||
pdata.name.encode(sys.getfilesystemencoding())), file=sys.stderr)
|
||||
else:
|
||||
print >> sys.stderr, " %s\t- %s" % (pdata.id,
|
||||
pdata.name.encode(sys.getfilesystemencoding()))
|
||||
print(" %s\t- %s" % (pdata.id,
|
||||
pdata.name.encode(sys.getfilesystemencoding())), file=sys.stderr)
|
||||
|
||||
elif action == "tool":
|
||||
from gui.plug import tool
|
||||
from gramps.gui.plug import tool
|
||||
try:
|
||||
options_str_dict = dict( [ tuple(chunk.split('=')) for
|
||||
chunk in options_str.split(',') ] )
|
||||
except:
|
||||
options_str_dict = {}
|
||||
print >> sys.stderr, _("Ignoring invalid options string.")
|
||||
print(_("Ignoring invalid options string."), file=sys.stderr)
|
||||
|
||||
name = options_str_dict.pop('name', None)
|
||||
_cli_tool_list = pmgr.get_reg_tools(gui=False)
|
||||
@@ -647,17 +658,41 @@ class ArgHandler(object):
|
||||
"Please use one of %(donottranslate)s=toolname.") % \
|
||||
{'donottranslate' : '[-p|--options] name'}
|
||||
|
||||
print >> sys.stderr, _("%s\n Available names are:") % msg
|
||||
print(_("%s\n Available names are:") % msg, file=sys.stderr)
|
||||
for pdata in sorted(_cli_tool_list,
|
||||
key=lambda pdata: pdata.id.lower()):
|
||||
# Print cli report name ([item[0]), GUI report name (item[4])
|
||||
if len(pdata.id) <= 25:
|
||||
print >> sys.stderr, \
|
||||
" %s%s- %s" % ( pdata.id, " " * (26 - len(pdata.id)),
|
||||
pdata.name.encode(sys.getfilesystemencoding()))
|
||||
print(" %s%s- %s" % ( pdata.id, " " * (26 - len(pdata.id)),
|
||||
pdata.name.encode(sys.getfilesystemencoding())), file=sys.stderr)
|
||||
else:
|
||||
print >> sys.stderr, " %s\t- %s" % (pdata.id,
|
||||
pdata.name.encode(sys.getfilesystemencoding()))
|
||||
print(" %s\t- %s" % (pdata.id,
|
||||
pdata.name.encode(sys.getfilesystemencoding())), file=sys.stderr)
|
||||
|
||||
elif action == "book":
|
||||
try:
|
||||
options_str_dict = _split_options(options_str)
|
||||
except:
|
||||
options_str_dict = {}
|
||||
print(_("Ignoring invalid options string."), file=sys.stderr)
|
||||
|
||||
name = options_str_dict.pop('name', None)
|
||||
book_list = BookList('books.xml', self.dbstate.db)
|
||||
if name:
|
||||
if name in book_list.get_book_names():
|
||||
cl_book(self.dbstate.db, name, book_list.get_book(name),
|
||||
options_str_dict)
|
||||
return
|
||||
msg = _("Unknown book name.")
|
||||
else:
|
||||
msg = _("Book name not given. "
|
||||
"Please use one of %(donottranslate)s=bookname.") % \
|
||||
{'donottranslate' : '[-p|--options] name'}
|
||||
|
||||
print(_("%s\n Available names are:") % msg, file=sys.stderr)
|
||||
for name in sorted(book_list.get_book_names()):
|
||||
print(" %s" % name, file=sys.stderr)
|
||||
|
||||
else:
|
||||
print >> sys.stderr, _("Unknown action: %s.") % action
|
||||
print(_("Unknown action: %s.") % action, file=sys.stderr)
|
||||
sys.exit(0)
|
||||
@@ -36,9 +36,10 @@ Module responsible for handling the command line arguments for GRAMPS.
|
||||
# Standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
import getopt
|
||||
from gen.ggettext import gettext as _
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
import logging
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -46,10 +47,10 @@ import logging
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import const
|
||||
import config
|
||||
from gen.utils.configmanager import safe_eval
|
||||
import Utils
|
||||
from gramps.gen.const import LONGOPTS, SHORTOPTS
|
||||
from gramps.gen.config import config
|
||||
from gramps.gen.utils.configmanager import safe_eval
|
||||
from gramps.gen.utils.file import get_unicode_path_from_env_var
|
||||
|
||||
# Note: Make sure to edit const.py.in POPT_TABLE too!
|
||||
_HELP = _("""
|
||||
@@ -216,10 +217,10 @@ class ArgParser(object):
|
||||
# -Ärik is '-\xc3\x84rik' and getopt will respond :
|
||||
# option -\xc3 not recognized
|
||||
for arg in range(len(self.args) - 1):
|
||||
self.args[arg+1] = Utils.get_unicode_path_from_env_var(self.args[arg + 1])
|
||||
self.args[arg+1] = get_unicode_path_from_env_var(self.args[arg + 1])
|
||||
options, leftargs = getopt.getopt(self.args[1:],
|
||||
const.SHORTOPTS, const.LONGOPTS)
|
||||
except getopt.GetoptError, msg:
|
||||
SHORTOPTS, LONGOPTS)
|
||||
except getopt.GetoptError as msg:
|
||||
# Extract the arguments in the list.
|
||||
# The % operator replaces the list elements with repr() of the list elemements
|
||||
# which is OK for latin characters, but not for non latin characters in list elements
|
||||
@@ -228,7 +229,7 @@ class ArgParser(object):
|
||||
cliargs += self.args[arg + 1] + " "
|
||||
cliargs += "]"
|
||||
# Must first do str() of the msg object.
|
||||
msg = unicode(str(msg))
|
||||
msg = str(msg)
|
||||
self.errors += [(_('Error parsing the arguments'),
|
||||
msg + '\n' +
|
||||
_("Error parsing the arguments: %s \n"
|
||||
@@ -240,7 +241,7 @@ class ArgParser(object):
|
||||
# if there were an argument without option,
|
||||
# use it as a file to open and return
|
||||
self.open_gui = leftargs[0]
|
||||
print >> sys.stderr, "Trying to open: %s ..." % leftargs[0]
|
||||
print ("Trying to open: %s ..." % leftargs[0], file=sys.stderr)
|
||||
#see if force open is on
|
||||
for opt_ix in range(len(options)):
|
||||
option, value = options[opt_ix]
|
||||
@@ -272,8 +273,8 @@ class ArgParser(object):
|
||||
self.exports.append((value, family_tree_format))
|
||||
elif option in ( '-a', '--action' ):
|
||||
action = value
|
||||
if action not in ( 'report', 'tool' ):
|
||||
print >> sys.stderr, "Unknown action: %s. Ignoring." % action
|
||||
if action not in ('report', 'tool', 'book'):
|
||||
print ("Unknown action: %s. Ignoring." % action, file=sys.stderr)
|
||||
continue
|
||||
options_str = ""
|
||||
if opt_ix < len(options)-1 \
|
||||
@@ -281,7 +282,7 @@ class ArgParser(object):
|
||||
options_str = options[opt_ix+1][1]
|
||||
self.actions.append((action, options_str))
|
||||
elif option in ('-d', '--debug'):
|
||||
print >> sys.stderr, 'setup debugging', value
|
||||
print ('setup debugging', value, file=sys.stderr)
|
||||
logger = logging.getLogger(value)
|
||||
logger.setLevel(logging.DEBUG)
|
||||
cleandbg += [opt_ix]
|
||||
@@ -290,14 +291,14 @@ class ArgParser(object):
|
||||
elif option in ('-L'):
|
||||
self.list_more = True
|
||||
elif option in ('-s','--show'):
|
||||
print "Gramps config settings from %s:" % \
|
||||
config.config.filename.encode(sys.getfilesystemencoding())
|
||||
for section in config.config.data:
|
||||
for setting in config.config.data[section]:
|
||||
print "%s.%s=%s" % (
|
||||
print ("Gramps config settings from %s:" % \
|
||||
config.filename.encode(sys.getfilesystemencoding()))
|
||||
for section in config.data:
|
||||
for setting in config.data[section]:
|
||||
print ("%s.%s=%s" % (
|
||||
section, setting,
|
||||
repr(config.config.data[section][setting]))
|
||||
print
|
||||
repr(config.data[section][setting])))
|
||||
print ('')
|
||||
sys.exit(0)
|
||||
elif option in ('-c', '--config'):
|
||||
setting_name = value
|
||||
@@ -308,24 +309,24 @@ class ArgParser(object):
|
||||
set_value = True
|
||||
if config.has_default(setting_name):
|
||||
setting_value = config.get(setting_name)
|
||||
print >> sys.stderr, "Current Gramps config setting: " \
|
||||
"%s:%s" % (setting_name, repr(setting_value))
|
||||
print ("Current Gramps config setting: " \
|
||||
"%s:%s" % (setting_name, repr(setting_value)), file=sys.stderr)
|
||||
if set_value:
|
||||
if new_value == "DEFAULT":
|
||||
new_value = config.get_default(setting_name)
|
||||
else:
|
||||
new_value = safe_eval(new_value)
|
||||
config.set(setting_name, new_value)
|
||||
print >> sys.stderr, " New Gramps config " \
|
||||
"setting: %s:%s" % (
|
||||
print (" New Gramps config " \
|
||||
"setting: %s:%s" % (
|
||||
setting_name,
|
||||
repr(config.get(setting_name))
|
||||
)
|
||||
), file=sys.stderr)
|
||||
else:
|
||||
need_to_quit = True
|
||||
else:
|
||||
print >> sys.stderr, "Gramps: no such config setting:" \
|
||||
" '%s'" % setting_name
|
||||
print ("Gramps: no such config setting:" \
|
||||
" '%s'" % setting_name, file=sys.stderr)
|
||||
need_to_quit = True
|
||||
cleandbg += [opt_ix]
|
||||
elif option in ('-h', '-?', '--help'):
|
||||
@@ -350,7 +351,7 @@ class ArgParser(object):
|
||||
# but not for non-latin characters in list elements
|
||||
cliargs = "[ "
|
||||
for arg in range(len(self.args) - 1):
|
||||
cliargs += Utils.get_unicode_path_from_env_var(self.args[arg + 1]) + " "
|
||||
cliargs += get_unicode_path_from_env_var(self.args[arg + 1]) + " "
|
||||
cliargs += "]"
|
||||
self.errors += [(_('Error parsing the arguments'),
|
||||
_("Error parsing the arguments: %s \n"
|
||||
@@ -401,7 +402,7 @@ class ArgParser(object):
|
||||
"""
|
||||
if self.help:
|
||||
# Convert Help messages to file system encoding before printing
|
||||
print _HELP.encode(sys.getfilesystemencoding())
|
||||
print (_HELP.encode(sys.getfilesystemencoding()))
|
||||
sys.exit(0)
|
||||
|
||||
def print_usage(self):
|
||||
@@ -410,5 +411,5 @@ class ArgParser(object):
|
||||
"""
|
||||
if self.usage:
|
||||
# Convert Help messages to file system encoding before printing
|
||||
print _USAGE.encode(sys.getfilesystemencoding())
|
||||
print (_USAGE.encode(sys.getfilesystemencoding()))
|
||||
sys.exit(0)
|
||||
@@ -32,13 +32,19 @@ creating, and deleting of databases.
|
||||
# Standard python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import urllib2
|
||||
import urlparse
|
||||
if sys.version_info[0] < 3:
|
||||
from urlparse import urlparse
|
||||
from urllib2 import urlopen, url2pathname
|
||||
else:
|
||||
from urllib.parse import urlparse
|
||||
from urllib.request import urlopen, url2pathname
|
||||
import tempfile
|
||||
from gen.ggettext import gettext as _
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# set up logging
|
||||
@@ -52,10 +58,10 @@ LOG = logging.getLogger(".clidbman")
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gen.db
|
||||
from gen.plug import BasePluginManager
|
||||
import config
|
||||
import constfunc
|
||||
from gramps.gen.db import DbBsddb
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.config import config
|
||||
from gramps.gen.constfunc import win, conv_to_unicode
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# constants
|
||||
@@ -75,7 +81,9 @@ def _errordialog(title, errormessage):
|
||||
"""
|
||||
Show the error. A title for the error and an errormessage
|
||||
"""
|
||||
print _('ERROR: %s \n %s') % (title, errormessage)
|
||||
print(_('ERROR: %(title)s \n %(message)s') % {
|
||||
'title': title,
|
||||
'message': errormessage})
|
||||
sys.exit()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -132,11 +140,11 @@ class CLIDbManager(object):
|
||||
Returns (people_count, version_number) of current DB.
|
||||
Returns ("Unknown", "Unknown") if invalid DB or other error.
|
||||
"""
|
||||
if config.get('preferences.use-bsddb3'):
|
||||
if config.get('preferences.use-bsddb3') or sys.version_info[0] >= 3:
|
||||
from bsddb3 import dbshelve, db
|
||||
else:
|
||||
from bsddb import dbshelve, db
|
||||
from gen.db import META, PERSON_TBL
|
||||
from gramps.gen.db import META, PERSON_TBL
|
||||
env = db.DBEnv()
|
||||
flags = db.DB_CREATE | db.DB_PRIVATE |\
|
||||
db.DB_INIT_MPOOL | db.DB_INIT_LOCK |\
|
||||
@@ -182,7 +190,10 @@ class CLIDbManager(object):
|
||||
else:
|
||||
retval["Locked?"] = "no"
|
||||
retval["DB version"] = version
|
||||
retval["Family tree"] = name.encode(sys.getfilesystemencoding())
|
||||
if sys.version_info[0] < 3:
|
||||
retval["Family tree"] = name.encode(sys.getfilesystemencoding())
|
||||
else:
|
||||
retval["Family tree"] = name
|
||||
retval["Path"] = dirpath
|
||||
retval["Last accessed"] = time.strftime('%x %X',
|
||||
time.localtime(tval))
|
||||
@@ -194,27 +205,29 @@ class CLIDbManager(object):
|
||||
"""
|
||||
# make the default directory if it does not exist
|
||||
dbdir = os.path.expanduser(config.get('behavior.database-path'))
|
||||
dbdir = dbdir.encode(sys.getfilesystemencoding())
|
||||
make_dbdir(dbdir)
|
||||
if sys.version_info[0] < 3:
|
||||
dbdir = dbdir.encode(sys.getfilesystemencoding())
|
||||
db_ok = make_dbdir(dbdir)
|
||||
|
||||
self.current_names = []
|
||||
|
||||
for dpath in os.listdir(dbdir):
|
||||
dirpath = os.path.join(dbdir, dpath)
|
||||
path_name = os.path.join(dirpath, NAME_FILE)
|
||||
if os.path.isfile(path_name):
|
||||
name = file(path_name).readline().strip()
|
||||
if db_ok:
|
||||
for dpath in os.listdir(dbdir):
|
||||
dirpath = os.path.join(dbdir, dpath)
|
||||
path_name = os.path.join(dirpath, NAME_FILE)
|
||||
if os.path.isfile(path_name):
|
||||
file = open(path_name)
|
||||
name = file.readline().strip()
|
||||
|
||||
(tval, last) = time_val(dirpath)
|
||||
(enable, stock_id) = self.icon_values(dirpath, self.active,
|
||||
self.dbstate.db.is_open())
|
||||
(tval, last) = time_val(dirpath)
|
||||
(enable, stock_id) = self.icon_values(dirpath, self.active,
|
||||
self.dbstate.db.is_open())
|
||||
|
||||
if (stock_id == 'gramps-lock'):
|
||||
last = find_locker_name(dirpath)
|
||||
if (stock_id == 'gramps-lock'):
|
||||
last = find_locker_name(dirpath)
|
||||
|
||||
self.current_names.append(
|
||||
(name, os.path.join(dbdir, dpath), path_name,
|
||||
last, tval, enable, stock_id))
|
||||
self.current_names.append(
|
||||
(name, os.path.join(dbdir, dpath), path_name,
|
||||
last, tval, enable, stock_id))
|
||||
|
||||
self.current_names.sort()
|
||||
|
||||
@@ -238,13 +251,13 @@ class CLIDbManager(object):
|
||||
"""
|
||||
Do needed things to start import visually, eg busy cursor
|
||||
"""
|
||||
print _('Starting Import, %s') % msg
|
||||
print(_('Starting Import, %s') % msg)
|
||||
|
||||
def __end_cursor(self):
|
||||
"""
|
||||
Set end of a busy cursor
|
||||
"""
|
||||
print _('Import finished...')
|
||||
print(_('Import finished...'))
|
||||
|
||||
def create_new_db_cli(self, title=None):
|
||||
"""
|
||||
@@ -264,7 +277,7 @@ class CLIDbManager(object):
|
||||
name_file.close()
|
||||
|
||||
# write the version number into metadata
|
||||
newdb = gen.db.DbBsddb()
|
||||
newdb = DbBsddb()
|
||||
newdb.write_version(new_path)
|
||||
|
||||
(tval, last) = time_val(new_path)
|
||||
@@ -279,23 +292,29 @@ class CLIDbManager(object):
|
||||
"""
|
||||
return self.create_new_db_cli(title)
|
||||
|
||||
def import_new_db(self, filename, callback):
|
||||
def import_new_db(self, filename, user):
|
||||
"""
|
||||
Attempt to import the provided file into a new database.
|
||||
A new database will only be created if an appropriate importer was
|
||||
found.
|
||||
|
||||
@param filename: a fully-qualified path, filename, and
|
||||
extension to open.
|
||||
|
||||
@param user: a cli.User or gui.User instance for managing user
|
||||
interaction.
|
||||
|
||||
@return: A tuple of (new_path, name) for the new database
|
||||
or (None, None) if no import was performed.
|
||||
"""
|
||||
pmgr = BasePluginManager.get_instance()
|
||||
# Allow URL names here; make temp file if necessary
|
||||
url = urlparse.urlparse(filename)
|
||||
url = urlparse(filename)
|
||||
if url.scheme != "":
|
||||
if url.scheme == "file":
|
||||
filename = urllib2.url2pathname(filename[7:])
|
||||
filename = url2pathname(filename[7:])
|
||||
else:
|
||||
url_fp = urllib2.urlopen(filename) # open URL
|
||||
url_fp = urlopen(filename) # open URL
|
||||
# make a temp local file:
|
||||
ext = os.path.splitext(url.path)[1]
|
||||
fd, filename = tempfile.mkstemp(suffix=ext)
|
||||
@@ -317,12 +336,12 @@ class CLIDbManager(object):
|
||||
|
||||
# Create a new database
|
||||
self.__start_cursor(_("Importing data..."))
|
||||
dbclass = gen.db.DbBsddb
|
||||
dbclass = DbBsddb
|
||||
dbase = dbclass()
|
||||
dbase.load(new_path, callback)
|
||||
dbase.load(new_path, user.callback)
|
||||
|
||||
import_function = plugin.get_import_function()
|
||||
import_function(dbase, filename, callback)
|
||||
import_function(dbase, filename, user)
|
||||
|
||||
# finish up
|
||||
self.__end_cursor()
|
||||
@@ -359,7 +378,7 @@ class CLIDbManager(object):
|
||||
name_file = open(filepath, "w")
|
||||
name_file.write(new_text)
|
||||
name_file.close()
|
||||
except (OSError, IOError), msg:
|
||||
except (OSError, IOError) as msg:
|
||||
CLIDbManager.ERROR(_("Could not rename family tree"),
|
||||
str(msg))
|
||||
return None, None
|
||||
@@ -393,9 +412,13 @@ def make_dbdir(dbdir):
|
||||
try:
|
||||
if not os.path.isdir(dbdir):
|
||||
os.makedirs(dbdir)
|
||||
except (IOError, OSError), msg:
|
||||
msg = unicode(str(msg), sys.getfilesystemencoding())
|
||||
LOG.error(_("Could not make database directory: ") + msg)
|
||||
except (IOError, OSError) as msg:
|
||||
msg = conv_to_unicode(str(msg), sys.getfilesystemencoding())
|
||||
LOG.error(_("\nERROR: Wrong database path in Edit Menu->Preferences.\n"
|
||||
"Open preferences and set correct database path.\n\n"
|
||||
"Details: Could not make database directory:\n %s\n\n") % msg)
|
||||
return False
|
||||
return True
|
||||
|
||||
def find_next_db_name(name_list):
|
||||
"""
|
||||
@@ -418,7 +441,8 @@ def find_next_db_dir():
|
||||
while True:
|
||||
base = "%x" % int(time.time())
|
||||
dbdir = os.path.expanduser(config.get('behavior.database-path'))
|
||||
dbdir = dbdir.encode(sys.getfilesystemencoding())
|
||||
if sys.version_info[0] < 3:
|
||||
dbdir = dbdir.encode(sys.getfilesystemencoding())
|
||||
new_path = os.path.join(dbdir, base)
|
||||
if not os.path.isdir(new_path):
|
||||
break
|
||||
@@ -434,7 +458,7 @@ def time_val(dirpath):
|
||||
if os.path.isfile(meta):
|
||||
tval = os.stat(meta)[9]
|
||||
# This gives creation date in Windows, but correct date in Linux
|
||||
if constfunc.win():
|
||||
if win():
|
||||
# Try to use last modified date instead in Windows
|
||||
# and check that it is later than the creation date.
|
||||
tval_mod = os.stat(meta)[8]
|
||||
@@ -456,12 +480,13 @@ def find_locker_name(dirpath):
|
||||
"""
|
||||
try:
|
||||
fname = os.path.join(dirpath, "lock")
|
||||
ifile = open(fname)
|
||||
ifile = open(fname, 'rb')
|
||||
username = ifile.read().strip()
|
||||
# Convert username to unicode according to system encoding
|
||||
# Otherwise problems with non ASCII characters in
|
||||
# username in Windows
|
||||
username = unicode(username, sys.getfilesystemencoding())
|
||||
username = conv_to_unicode(username, sys.getfilesystemencoding())
|
||||
# feature request 2356: avoid genitive form
|
||||
last = _("Locked by %s") % username
|
||||
ifile.close()
|
||||
except (OSError, IOError):
|
||||
@@ -33,7 +33,9 @@ Provides also two small base classes: CLIDbLoader, CLIManager
|
||||
# Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.ggettext import gettext as _
|
||||
from __future__ import print_function
|
||||
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
import os
|
||||
import sys
|
||||
|
||||
@@ -45,16 +47,17 @@ LOG = logging.getLogger(".grampscli")
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.display.name import displayer as name_displayer
|
||||
import config
|
||||
import const
|
||||
import Errors
|
||||
import DbState
|
||||
from gen.db import DbBsddb
|
||||
import gen.db.exceptions
|
||||
from gen.plug import BasePluginManager
|
||||
from Utils import get_researcher
|
||||
import RecentFiles
|
||||
from gramps.gen.display.name import displayer as name_displayer
|
||||
from gramps.gen.config import config
|
||||
from gramps.gen.const import PLUGINS_DIR, USER_PLUGINS
|
||||
from gramps.gen.errors import DbError
|
||||
from gramps.gen.dbstate import DbState
|
||||
from gramps.gen.db import DbBsddb
|
||||
from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
|
||||
DbVersionError)
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.utils.config import get_researcher
|
||||
from gramps.gen.recentfiles import recent_files
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -73,14 +76,14 @@ class CLIDbLoader(object):
|
||||
"""
|
||||
Issue a warning message. Inherit for GUI action
|
||||
"""
|
||||
print _('WARNING: %s') % warnmessage
|
||||
print(_('WARNING: %s') % warnmessage)
|
||||
|
||||
def _errordialog(self, title, errormessage):
|
||||
"""
|
||||
Show the error. A title for the error and an errormessage
|
||||
Inherit for GUI action
|
||||
"""
|
||||
print _('ERROR: %s') % errormessage
|
||||
print(_('ERROR: %s') % errormessage)
|
||||
sys.exit(1)
|
||||
|
||||
def _dberrordialog(self, msg):
|
||||
@@ -154,17 +157,17 @@ class CLIDbLoader(object):
|
||||
try:
|
||||
self.dbstate.db.load(filename, self._pulse_progress, mode)
|
||||
self.dbstate.db.set_save_path(filename)
|
||||
except gen.db.exceptions.DbUpgradeRequiredError, msg:
|
||||
except gen.db.exceptions.DbUpgradeRequiredError as msg:
|
||||
self.dbstate.no_database()
|
||||
self._errordialog( _("Cannot open database"), str(msg))
|
||||
except gen.db.exceptions.DbVersionError, msg:
|
||||
except gen.db.exceptions.DbVersionError as msg:
|
||||
self.dbstate.no_database()
|
||||
self._errordialog( _("Cannot open database"), str(msg))
|
||||
except OSError, msg:
|
||||
except OSError as msg:
|
||||
self.dbstate.no_database()
|
||||
self._errordialog(
|
||||
_("Could not open file: %s") % filename, str(msg))
|
||||
except Errors.DbError, msg:
|
||||
except Errors.DbError as msg:
|
||||
self.dbstate.no_database()
|
||||
self._dberrordialog(msg)
|
||||
except Exception:
|
||||
@@ -204,7 +207,7 @@ class CLIManager(object):
|
||||
"""
|
||||
Show the error. A title for the error and an errormessage
|
||||
"""
|
||||
print _('ERROR: %s') % errormessage
|
||||
print(_('ERROR: %s') % errormessage)
|
||||
sys.exit(1)
|
||||
|
||||
def _read_recent_file(self, filename):
|
||||
@@ -213,7 +216,7 @@ class CLIManager(object):
|
||||
"""
|
||||
# A recent database should already have a directory If not, do nothing,
|
||||
# just return. This can be handled better if family tree delete/rename
|
||||
# also updated the recent file menu info in DisplayState.py
|
||||
# also updated the recent file menu info in displaystate.py
|
||||
if not os.path.isdir(filename):
|
||||
self._errordialog(
|
||||
_("Could not load a recent Family Tree."),
|
||||
@@ -273,16 +276,15 @@ class CLIManager(object):
|
||||
|
||||
config.set('paths.recent-file', filename)
|
||||
|
||||
RecentFiles.recent_files(filename, name)
|
||||
recent_files(filename, name)
|
||||
self.file_loaded = True
|
||||
|
||||
def do_reg_plugins(self, dbstate, uistate):
|
||||
"""
|
||||
Register the plugins at initialization time.
|
||||
"""
|
||||
self._pmgr.reg_plugins(const.PLUGINS_DIR, dbstate, uistate)
|
||||
self._pmgr.reg_plugins(const.USER_PLUGINS, dbstate, uistate,
|
||||
append=False, load_on_reg=True)
|
||||
self._pmgr.reg_plugins(PLUGINS_DIR, dbstate, uistate)
|
||||
self._pmgr.reg_plugins(USER_PLUGINS, dbstate, uistate, load_on_reg=True)
|
||||
|
||||
def startcli(errors, argparser):
|
||||
"""
|
||||
@@ -295,10 +297,10 @@ def startcli(errors, argparser):
|
||||
# Convert error message to file system encoding before print
|
||||
errmsg = _('Error encountered: %s') % errors[0][0]
|
||||
errmsg = errmsg.encode(sys.getfilesystemencoding())
|
||||
print errmsg
|
||||
print(errmsg)
|
||||
errmsg = _(' Details: %s') % errors[0][1]
|
||||
errmsg = errmsg.encode(sys.getfilesystemencoding())
|
||||
print errmsg
|
||||
print(errmsg)
|
||||
sys.exit(1)
|
||||
|
||||
if argparser.errors:
|
||||
@@ -306,20 +308,20 @@ def startcli(errors, argparser):
|
||||
errmsg = _('Error encountered in argument parsing: %s') \
|
||||
% argparser.errors[0][0]
|
||||
errmsg = errmsg.encode(sys.getfilesystemencoding())
|
||||
print errmsg
|
||||
print(errmsg)
|
||||
errmsg = _(' Details: %s') % argparser.errors[0][1]
|
||||
errmsg = errmsg.encode(sys.getfilesystemencoding())
|
||||
print errmsg
|
||||
print(errmsg)
|
||||
sys.exit(1)
|
||||
|
||||
#we need to keep track of the db state
|
||||
dbstate = DbState.DbState()
|
||||
dbstate = DbState()
|
||||
#we need a manager for the CLI session
|
||||
climanager = CLIManager(dbstate, True)
|
||||
#load the plugins
|
||||
climanager.do_reg_plugins(dbstate, uistate=None)
|
||||
# handle the arguments
|
||||
from arghandler import ArgHandler
|
||||
from .arghandler import ArgHandler
|
||||
handler = ArgHandler(dbstate, argparser, climanager)
|
||||
# create a manager to manage the database
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# Copyright (C) 2008 Raphael Ackermann
|
||||
# Copyright (C) 2008-2011 Brian G. Matherly
|
||||
# Copyright (C) 2010 Jakim Friant
|
||||
# Copyright (C) 2011 Paul Franklin
|
||||
# Copyright (C) 2011-2012 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
|
||||
@@ -33,7 +33,9 @@
|
||||
# Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.ggettext import gettext as _
|
||||
from __future__ import print_function
|
||||
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
import traceback
|
||||
import os
|
||||
import sys
|
||||
@@ -46,23 +48,24 @@ log = logging.getLogger(".")
|
||||
# Gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import Utils
|
||||
from gen.plug import BasePluginManager
|
||||
from gen.plug.docgen import (StyleSheet, StyleSheetList, PaperStyle,
|
||||
from gramps.gen.plug import BasePluginManager
|
||||
from gramps.gen.plug.docgen import (StyleSheet, StyleSheetList, PaperStyle,
|
||||
PAPER_PORTRAIT, PAPER_LANDSCAPE, graphdoc)
|
||||
from gen.plug.menu import (FamilyOption, PersonOption, NoteOption,
|
||||
from gramps.gen.plug.menu import (FamilyOption, PersonOption, NoteOption,
|
||||
MediaOption, PersonListOption, NumberOption,
|
||||
BooleanOption, DestinationOption, StringOption,
|
||||
TextOption, EnumeratedListOption, Option)
|
||||
from gen.display.name import displayer as name_displayer
|
||||
from Errors import ReportError
|
||||
from gen.plug.report import (CATEGORY_TEXT, CATEGORY_DRAW, CATEGORY_BOOK,
|
||||
CATEGORY_GRAPHVIZ, CATEGORY_CODE)
|
||||
from gen.plug.report._paper import paper_sizes
|
||||
import const
|
||||
import DbState
|
||||
from cli.grampscli import CLIManager
|
||||
import cli.user
|
||||
from gramps.gen.display.name import displayer as name_displayer
|
||||
from gramps.gen.errors import ReportError, FilterError
|
||||
from gramps.gen.plug.report import (CATEGORY_TEXT, CATEGORY_DRAW, CATEGORY_BOOK,
|
||||
CATEGORY_GRAPHVIZ, CATEGORY_CODE,
|
||||
ReportOptions, create_style_sheet)
|
||||
from gramps.gen.plug.report._paper import paper_sizes
|
||||
from gramps.gen.const import USER_HOME
|
||||
from gramps.gen.dbstate import DbState
|
||||
from gramps.gen.constfunc import STRTYPE, conv_to_unicode_direct
|
||||
from ..grampscli import CLIManager
|
||||
from ..user import User
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -76,26 +79,26 @@ def _convert_str_to_match_type(str_val, type_val):
|
||||
str_val = str_val.strip()
|
||||
ret_type = type(type_val)
|
||||
|
||||
if ret_type in (str, unicode):
|
||||
if isinstance(type_val, STRTYPE):
|
||||
if ( str_val.startswith("'") and str_val.endswith("'") ) or \
|
||||
( str_val.startswith('"') and str_val.endswith('"') ):
|
||||
# Remove enclosing quotes
|
||||
return unicode(str_val[1:-1])
|
||||
return conv_to_unicode_direct(str_val[1:-1])
|
||||
else:
|
||||
return unicode(str_val)
|
||||
return conv_to_unicode_direct(str_val)
|
||||
|
||||
elif ret_type == int:
|
||||
if str_val.isdigit():
|
||||
return int(str_val)
|
||||
else:
|
||||
print "'%s' is not an integer number" % str_val
|
||||
print("'%s' is not an integer number" % str_val)
|
||||
return 0
|
||||
|
||||
elif ret_type == float:
|
||||
try:
|
||||
return float(str_val)
|
||||
except ValueError:
|
||||
print "'%s' is not a decimal number" % str_val
|
||||
print("'%s' is not a decimal number" % str_val)
|
||||
return 0.0
|
||||
|
||||
elif ret_type == bool:
|
||||
@@ -104,13 +107,13 @@ def _convert_str_to_match_type(str_val, type_val):
|
||||
elif str_val == str(False):
|
||||
return False
|
||||
else:
|
||||
print "'%s' is not a boolean-- try 'True' or 'False'" % str_val
|
||||
print("'%s' is not a boolean-- try 'True' or 'False'" % str_val)
|
||||
return False
|
||||
|
||||
elif ret_type == list:
|
||||
ret_val = []
|
||||
if not ( str_val.startswith("[") and str_val.endswith("]") ):
|
||||
print "'%s' is not a list-- try: [%s]" % (str_val, str_val)
|
||||
print("'%s' is not a list-- try: [%s]" % (str_val, str_val))
|
||||
return ret_val
|
||||
|
||||
entry = ""
|
||||
@@ -160,12 +163,12 @@ def _validate_options(options, dbase):
|
||||
person = dbase.get_default_person()
|
||||
if not person:
|
||||
try:
|
||||
phandle = dbase.iter_person_handles().next()
|
||||
phandle = next(dbase.iter_person_handles())
|
||||
except StopIteration:
|
||||
phandle = None
|
||||
person = dbase.get_person_from_handle(phandle)
|
||||
if not person:
|
||||
print _("ERROR: Please specify a person")
|
||||
print(_("ERROR: Please specify a person"))
|
||||
if person:
|
||||
option.set_value(person.get_gramps_id())
|
||||
|
||||
@@ -182,14 +185,14 @@ def _validate_options(options, dbase):
|
||||
family_handle = family_list[0]
|
||||
else:
|
||||
try:
|
||||
family_handle = dbase.iter_family_handles().next()
|
||||
family_handle = next(dbase.iter_family_handles())
|
||||
except StopIteration:
|
||||
family_handle = None
|
||||
if family_handle:
|
||||
family = dbase.get_family_from_handle(family_handle)
|
||||
option.set_value(family.get_gramps_id())
|
||||
else:
|
||||
print _("ERROR: Please specify a family")
|
||||
print(_("ERROR: Please specify a family"))
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -221,6 +224,7 @@ class CommandLineReport(object):
|
||||
self.database = database
|
||||
self.category = category
|
||||
self.format = None
|
||||
self.raw_name = name
|
||||
self.option_class = option_class(name, database)
|
||||
if category == CATEGORY_GRAPHVIZ:
|
||||
# Need to include GraphViz options
|
||||
@@ -238,6 +242,7 @@ class CommandLineReport(object):
|
||||
self.init_standard_options(noopt)
|
||||
self.init_report_options()
|
||||
self.parse_options()
|
||||
self.init_report_options_help()
|
||||
self.show_options()
|
||||
|
||||
def init_standard_options(self, noopt):
|
||||
@@ -275,7 +280,7 @@ class CommandLineReport(object):
|
||||
if noopt:
|
||||
return
|
||||
|
||||
self.options_help['of'][2] = os.path.join(const.USER_HOME,
|
||||
self.options_help['of'][2] = os.path.join(USER_HOME,
|
||||
"whatever_name")
|
||||
|
||||
if self.category == CATEGORY_TEXT:
|
||||
@@ -305,7 +310,7 @@ class CommandLineReport(object):
|
||||
"%d\tPortrait" % PAPER_PORTRAIT,
|
||||
"%d\tLandscape" % PAPER_LANDSCAPE ]
|
||||
|
||||
self.options_help['css'][2] = os.path.join(const.USER_HOME,
|
||||
self.options_help['css'][2] = os.path.join(USER_HOME,
|
||||
"whatever_name.css")
|
||||
|
||||
if self.category in (CATEGORY_TEXT, CATEGORY_DRAW):
|
||||
@@ -337,6 +342,17 @@ class CommandLineReport(object):
|
||||
for name in menu.get_all_option_names():
|
||||
option = menu.get_option_by_name(name)
|
||||
self.options_dict[name] = option.get_value()
|
||||
|
||||
def init_report_options_help(self):
|
||||
"""
|
||||
Initialize help for the options that are defined by each report.
|
||||
(And also any docgen options, if defined by the docgen.)
|
||||
"""
|
||||
if not hasattr(self.option_class, "menu"):
|
||||
return
|
||||
menu = self.option_class.menu
|
||||
for name in menu.get_all_option_names():
|
||||
option = menu.get_option_by_name(name)
|
||||
self.options_help[name] = [ "", option.get_help() ]
|
||||
|
||||
if isinstance(option, PersonOption):
|
||||
@@ -400,12 +416,12 @@ class CommandLineReport(object):
|
||||
elif isinstance(option, Option):
|
||||
self.options_help[name].append(option.get_help())
|
||||
else:
|
||||
print _("Unknown option: %s") % option
|
||||
print _(" Valid options are:"), ", ".join(
|
||||
self.options_dict.keys())
|
||||
print (_(" Use '%(donottranslate)s' to see description "
|
||||
print(_("Unknown option: %s") % option)
|
||||
print(_(" Valid options are:"),
|
||||
", ".join(list(self.options_dict.keys())))
|
||||
print((_(" Use '%(donottranslate)s' to see description "
|
||||
"and acceptable values") %
|
||||
{'donottranslate' : "show=option"})
|
||||
{'donottranslate' : "show=option"}))
|
||||
|
||||
def parse_options(self):
|
||||
"""
|
||||
@@ -416,56 +432,33 @@ class CommandLineReport(object):
|
||||
else:
|
||||
menu = self.option_class.menu
|
||||
menu_opt_names = menu.get_all_option_names()
|
||||
for opt in self.options_str_dict:
|
||||
if opt in self.options_dict:
|
||||
self.options_dict[opt] = \
|
||||
_convert_str_to_match_type(self.options_str_dict[opt],
|
||||
self.options_dict[opt])
|
||||
|
||||
self.option_class.handler.options_dict[opt] = \
|
||||
self.options_dict[opt]
|
||||
|
||||
if menu and opt in menu_opt_names:
|
||||
option = menu.get_option_by_name(opt)
|
||||
option.set_value(self.options_dict[opt])
|
||||
|
||||
else:
|
||||
print _("Ignoring unknown option: %s") % opt
|
||||
print _(" Valid options are:"), ", ".join(
|
||||
self.options_dict.keys())
|
||||
print (_(" Use '%(donottranslate)s' to see description "
|
||||
"and acceptable values") %
|
||||
{'donottranslate' : "show=option"})
|
||||
_format_str = self.options_str_dict.pop('off', None)
|
||||
if _format_str:
|
||||
self.options_dict['off'] = _format_str
|
||||
|
||||
self.option_class.handler.output = self.options_dict['of']
|
||||
|
||||
self.css_filename = None
|
||||
_chosen_format = None
|
||||
if self.category == CATEGORY_TEXT:
|
||||
for plugin in self.__textdoc_plugins:
|
||||
if plugin.get_extension() == self.options_dict['off']:
|
||||
self.format = plugin.get_basedoc()
|
||||
self.css_filename = self.options_dict['css']
|
||||
|
||||
self.doc_option_class = None
|
||||
if self.category in [CATEGORY_TEXT, CATEGORY_DRAW, CATEGORY_BOOK]:
|
||||
if self.category == CATEGORY_TEXT:
|
||||
plugins = self.__textdoc_plugins
|
||||
self.css_filename = self.options_dict['css']
|
||||
elif self.category == CATEGORY_DRAW:
|
||||
plugins = self.__drawdoc_plugins
|
||||
elif self.category == CATEGORY_BOOK:
|
||||
plugins = self.__bookdoc_plugins
|
||||
for plugin in plugins:
|
||||
if plugin.get_extension() == self.options_dict['off']:
|
||||
self.format = plugin.get_basedoc()
|
||||
self.doc_option_class = plugin.get_doc_option_class()
|
||||
if self.format is None:
|
||||
# Pick the first one as the default.
|
||||
self.format = self.__textdoc_plugins[0].get_basedoc()
|
||||
_chosen_format = self.__textdoc_plugins[0].get_extension()
|
||||
elif self.category == CATEGORY_DRAW:
|
||||
for plugin in self.__drawdoc_plugins:
|
||||
if plugin.get_extension() == self.options_dict['off']:
|
||||
self.format = plugin.get_basedoc()
|
||||
if self.format is None:
|
||||
# Pick the first one as the default.
|
||||
self.format = self.__drawdoc_plugins[0].get_basedoc()
|
||||
_chosen_format = self.__drawdoc_plugins[0].get_extension()
|
||||
elif self.category == CATEGORY_BOOK:
|
||||
for plugin in self.__bookdoc_plugins:
|
||||
if plugin.get_extension() == self.options_dict['off']:
|
||||
self.format = plugin.get_basedoc()
|
||||
if self.format is None:
|
||||
# Pick the first one as the default.
|
||||
self.format = self.__bookdoc_plugins[0].get_basedoc()
|
||||
_chosen_format = self.__bookdoc_plugins[0].get_extension()
|
||||
plugin = plugins[0]
|
||||
self.format = plugin.get_basedoc()
|
||||
self.doc_option_class = plugin.get_doc_option_class()
|
||||
_chosen_format = plugin.get_extension()
|
||||
elif self.category == CATEGORY_GRAPHVIZ:
|
||||
for graph_format in graphdoc.FORMATS:
|
||||
if graph_format['ext'] == self.options_dict['off']:
|
||||
@@ -477,14 +470,39 @@ class CommandLineReport(object):
|
||||
_chosen_format = graphdoc.FORMATS[0]["ext"]
|
||||
else:
|
||||
self.format = None
|
||||
if _chosen_format and self.options_str_dict.has_key('off'):
|
||||
print (_("Ignoring '%(notranslate1)s=%(notranslate2)s' "
|
||||
if _chosen_format and _format_str:
|
||||
print((_("Ignoring '%(notranslate1)s=%(notranslate2)s' "
|
||||
"and using '%(notranslate1)s=%(notranslate3)s'.") %
|
||||
{'notranslate1' : "off",
|
||||
'notranslate2' : self.options_dict['off'],
|
||||
'notranslate3' : _chosen_format})
|
||||
print (_("Use '%(notranslate)s' to see valid values.") %
|
||||
{'notranslate' : "show=off"})
|
||||
'notranslate3' : _chosen_format}))
|
||||
print((_("Use '%(notranslate)s' to see valid values.") %
|
||||
{'notranslate' : "show=off"}))
|
||||
|
||||
self.do_doc_options()
|
||||
|
||||
for opt in self.options_str_dict:
|
||||
if opt in self.options_dict:
|
||||
self.options_dict[opt] = \
|
||||
_convert_str_to_match_type(self.options_str_dict[opt],
|
||||
self.options_dict[opt])
|
||||
|
||||
self.option_class.handler.options_dict[opt] = \
|
||||
self.options_dict[opt]
|
||||
|
||||
if menu and opt in menu_opt_names:
|
||||
option = menu.get_option_by_name(opt)
|
||||
option.set_value(self.options_dict[opt])
|
||||
|
||||
else:
|
||||
print(_("Ignoring unknown option: %s") % opt )
|
||||
print(_(" Valid options are:"),
|
||||
", ".join(list(self.options_dict.keys())))
|
||||
print(_(" Use '%(donottranslate)s' to see description "
|
||||
"and acceptable values") %
|
||||
{'donottranslate' : "show=option"})
|
||||
|
||||
self.option_class.handler.output = self.options_dict['of']
|
||||
|
||||
for paper in paper_sizes:
|
||||
if paper.get_name() == self.options_dict['papers']:
|
||||
@@ -510,6 +528,34 @@ class CommandLineReport(object):
|
||||
style_name = self.option_class.handler.get_default_stylesheet_name()
|
||||
self.selected_style = self.style_list.get_style_sheet(style_name)
|
||||
|
||||
def do_doc_options(self):
|
||||
self.doc_options = None
|
||||
if not self.doc_option_class:
|
||||
return # this docgen type has no options
|
||||
try:
|
||||
if issubclass(self.doc_option_class, object):
|
||||
self.doc_options = self.doc_option_class(self.raw_name,
|
||||
self.database)
|
||||
doc_options_dict = self.doc_options.options_dict
|
||||
except TypeError:
|
||||
self.doc_options = self.doc_option_class
|
||||
self.doc_options.load_previous_values()
|
||||
docgen_menu = self.doc_options.menu
|
||||
report_menu = self.option_class.menu # "help" checks the option type
|
||||
for oname in docgen_menu.get_option_names('Document Options'):
|
||||
docgen_opt = docgen_menu.get_option('Document Options', oname)
|
||||
if oname in self.options_str_dict and oname in doc_options_dict:
|
||||
doc_options_dict[oname] = \
|
||||
_convert_str_to_match_type(self.options_str_dict[oname],
|
||||
doc_options_dict[oname])
|
||||
self.options_str_dict.pop(oname)
|
||||
if oname in doc_options_dict:
|
||||
docgen_opt.set_value(doc_options_dict[oname])
|
||||
report_menu.add_option('Document Options', oname, docgen_opt)
|
||||
for oname in doc_options_dict: # enable "help"
|
||||
self.options_dict[oname] = doc_options_dict[oname]
|
||||
self.options_help[oname] = self.doc_options.options_help[oname][:3]
|
||||
|
||||
def show_options(self):
|
||||
"""
|
||||
Print available options on the CLI.
|
||||
@@ -517,39 +563,40 @@ class CommandLineReport(object):
|
||||
if not self.show:
|
||||
return
|
||||
elif self.show == 'all':
|
||||
print _(" Available options:")
|
||||
print(_(" Available options:"))
|
||||
for key in sorted(self.options_dict.keys()):
|
||||
if key in self.options_help:
|
||||
opt = self.options_help[key]
|
||||
# Make the output nicer to read, assume a tab has 8 spaces
|
||||
tabs = '\t\t' if len(key) < 10 else '\t'
|
||||
optmsg = " %s%s%s (%s)" % (key, tabs, opt[1], opt[0])
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
print(optmsg.encode(sys.getfilesystemencoding()))
|
||||
else:
|
||||
optmsg = " %s" % key
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
print (_(" Use '%(donottranslate)s' to see description "
|
||||
optmsg = " %s%s%s" % (key, tabs,
|
||||
_('(no help available)'))
|
||||
print(optmsg.encode(sys.getfilesystemencoding()))
|
||||
print((_(" Use '%(donottranslate)s' to see description "
|
||||
"and acceptable values") %
|
||||
{'donottranslate' : "show=option"})
|
||||
{'donottranslate' : "show=option"}))
|
||||
elif self.show in self.options_help:
|
||||
opt = self.options_help[self.show]
|
||||
tabs = '\t\t' if len(self.show) < 10 else '\t'
|
||||
print ' %s%s%s (%s)' % (self.show, tabs, opt[1], opt[0])
|
||||
print _(" Available values are:")
|
||||
print(' %s%s%s (%s)' % (self.show, tabs, opt[1], opt[0]))
|
||||
print(_(" Available values are:"))
|
||||
vals = opt[2]
|
||||
if isinstance(vals, (list, tuple)):
|
||||
for val in vals:
|
||||
optmsg = " %s" % val
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
print(optmsg.encode(sys.getfilesystemencoding()))
|
||||
else:
|
||||
optmsg = " %s" % opt[2]
|
||||
print optmsg.encode(sys.getfilesystemencoding())
|
||||
print(optmsg.encode(sys.getfilesystemencoding()))
|
||||
|
||||
else:
|
||||
#there was a show option given, but the option is invalid
|
||||
print (_("option '%(optionname)s' not valid. "
|
||||
print((_("option '%(optionname)s' not valid. "
|
||||
"Use '%(donottranslate)s' to see all valid options.") %
|
||||
{'optionname' : self.show, 'donottranslate' : "show=all"})
|
||||
{'optionname' : self.show, 'donottranslate' : "show=all"}))
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -570,10 +617,17 @@ def cl_report(database, name, category, report_class, options_class,
|
||||
# write report
|
||||
try:
|
||||
if category in [CATEGORY_TEXT, CATEGORY_DRAW, CATEGORY_BOOK]:
|
||||
clr.option_class.handler.doc = clr.format(
|
||||
clr.selected_style,
|
||||
PaperStyle(clr.paper,clr.orien,clr.marginl,
|
||||
clr.marginr,clr.margint,clr.marginb))
|
||||
if clr.doc_options:
|
||||
clr.option_class.handler.doc = clr.format(
|
||||
clr.selected_style,
|
||||
PaperStyle(clr.paper,clr.orien,clr.marginl,
|
||||
clr.marginr,clr.margint,clr.marginb),
|
||||
clr.doc_options)
|
||||
else:
|
||||
clr.option_class.handler.doc = clr.format(
|
||||
clr.selected_style,
|
||||
PaperStyle(clr.paper,clr.orien,clr.marginl,
|
||||
clr.marginr,clr.margint,clr.marginb))
|
||||
elif category == CATEGORY_GRAPHVIZ:
|
||||
clr.option_class.handler.doc = clr.format(
|
||||
clr.option_class,
|
||||
@@ -582,23 +636,23 @@ def cl_report(database, name, category, report_class, options_class,
|
||||
if clr.css_filename is not None and \
|
||||
hasattr(clr.option_class.handler.doc, 'set_css_filename'):
|
||||
clr.option_class.handler.doc.set_css_filename(clr.css_filename)
|
||||
MyReport = report_class(database, clr.option_class, cli.user.User())
|
||||
MyReport = report_class(database, clr.option_class, User())
|
||||
MyReport.doc.init()
|
||||
MyReport.begin_report()
|
||||
MyReport.write_report()
|
||||
MyReport.end_report()
|
||||
return clr
|
||||
except ReportError, msg:
|
||||
except ReportError as msg:
|
||||
(m1, m2) = msg.messages()
|
||||
print err_msg
|
||||
print m1
|
||||
print(err_msg)
|
||||
print(m1)
|
||||
if m2:
|
||||
print m2
|
||||
print(m2)
|
||||
except:
|
||||
if len(log.handlers) > 0:
|
||||
log.error(err_msg, exc_info=True)
|
||||
else:
|
||||
print >> sys.stderr, err_msg
|
||||
print(err_msg, file=sys.stderr)
|
||||
## Something seems to eat the exception above.
|
||||
## Hack to re-get the exception:
|
||||
try:
|
||||
@@ -627,7 +681,7 @@ def run_report(db, name, **options_str_dict):
|
||||
options and values used in clr.option_class.options_dict
|
||||
filename in clr.option_class.get_output()
|
||||
"""
|
||||
dbstate = DbState.DbState()
|
||||
dbstate = DbState()
|
||||
climanager = CLIManager(dbstate, False) # don't load db
|
||||
climanager.do_reg_plugins(dbstate, None)
|
||||
pmgr = BasePluginManager.get_instance()
|
||||
@@ -651,3 +705,73 @@ def run_report(db, name, **options_str_dict):
|
||||
options_str_dict)
|
||||
return clr
|
||||
return clr
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Function to write books from command line
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def cl_book(database, name, book, options_str_dict):
|
||||
|
||||
clr = CommandLineReport(database, name, CATEGORY_BOOK,
|
||||
ReportOptions, options_str_dict)
|
||||
|
||||
# Exit here if show option was given
|
||||
if clr.show:
|
||||
return
|
||||
|
||||
# write report
|
||||
doc = clr.format(None,
|
||||
PaperStyle(clr.paper, clr.orien, clr.marginl,
|
||||
clr.marginr, clr.margint, clr.marginb))
|
||||
user = User()
|
||||
rptlist = []
|
||||
for item in book.get_item_list():
|
||||
|
||||
# The option values were loaded magically by the book parser.
|
||||
# But they still need to be applied to the menu options.
|
||||
opt_dict = item.option_class.options_dict
|
||||
menu = item.option_class.menu
|
||||
for optname in opt_dict:
|
||||
menu_option = menu.get_option_by_name(optname)
|
||||
if menu_option:
|
||||
menu_option.set_value(opt_dict[optname])
|
||||
|
||||
item.option_class.set_document(doc)
|
||||
report_class = item.get_write_item()
|
||||
obj = write_book_item(database,
|
||||
report_class, item.option_class, user)
|
||||
style_sheet = create_style_sheet(item)
|
||||
rptlist.append((obj, style_sheet))
|
||||
|
||||
doc.open(clr.option_class.get_output())
|
||||
doc.init()
|
||||
newpage = 0
|
||||
for rpt, style_sheet in rptlist:
|
||||
doc.set_style_sheet(style_sheet)
|
||||
if newpage:
|
||||
doc.page_break()
|
||||
newpage = 1
|
||||
rpt.begin_report()
|
||||
rpt.write_report()
|
||||
doc.close()
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Generic task function for book
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def write_book_item(database, report_class, options, user):
|
||||
"""Write the report using options set.
|
||||
All user dialog has already been handled and the output file opened."""
|
||||
try:
|
||||
return report_class(database, options, user)
|
||||
except ReportError as msg:
|
||||
(m1, m2) = msg.messages()
|
||||
print("ReportError", m1, m2)
|
||||
except FilterError as msg:
|
||||
(m1, m2) = msg.messages()
|
||||
print("FilterError", m1, m2)
|
||||
except:
|
||||
log.error("Failed to write book item.", exc_info=True)
|
||||
return None
|
||||
@@ -29,6 +29,8 @@ The User class provides basic interaction with the user.
|
||||
# Python Modules
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
@@ -36,7 +38,8 @@ import sys
|
||||
# Gramps Modules
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
import gen.user
|
||||
from gramps.gen.ggettext import gettext as _
|
||||
from gramps.gen.user import User
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -50,14 +53,16 @@ _SPINNER = ['|', '/', '-', '\\']
|
||||
# User class
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class User(gen.user.User):
|
||||
class User(User):
|
||||
"""
|
||||
This class provides a means to interact with the user via CLI.
|
||||
It implements the interface in gen.user.User()
|
||||
It implements the interface in gramps.gen.user.User()
|
||||
"""
|
||||
def __init__(self):
|
||||
def __init__(self, callback=None, error=None):
|
||||
self.steps = 0;
|
||||
self.current_step = 0;
|
||||
self.callback_function = callback
|
||||
self.error_function = error
|
||||
|
||||
def begin_progress(self, title, message, steps):
|
||||
"""
|
||||
@@ -67,13 +72,13 @@ class User(gen.user.User):
|
||||
@type title: str
|
||||
@param message: the message associated with the progress meter
|
||||
@type message: str
|
||||
@param steps: the total number of steps for the progress meter. a value
|
||||
of 0 indicates that the ending is unknown and the meter should just
|
||||
show activity.
|
||||
@param steps: the total number of steps for the progress meter.
|
||||
a value of 0 indicates that the ending is unknown and the
|
||||
meter should just show activity.
|
||||
@type steps: int
|
||||
@returns: none
|
||||
"""
|
||||
print message
|
||||
print(message)
|
||||
self.steps = steps
|
||||
self.current_step = 0;
|
||||
if self.steps == 0:
|
||||
@@ -92,7 +97,22 @@ class User(gen.user.User):
|
||||
else:
|
||||
percent = int((float(self.current_step) / self.steps) * 100)
|
||||
sys.stdout.write("\r%02d%%" % percent)
|
||||
|
||||
|
||||
def callback(self, percentage, text=None):
|
||||
"""
|
||||
Display the precentage.
|
||||
"""
|
||||
if self.callback_function:
|
||||
if text:
|
||||
self.callback_function(percentage, text)
|
||||
else:
|
||||
self.callback_function(percentage)
|
||||
else:
|
||||
if text is None:
|
||||
sys.stdout.write("\r%02d%%" % percentage)
|
||||
else:
|
||||
sys.stdout.write("\r%02d%% %s" % (percentage, text))
|
||||
|
||||
def end_progress(self):
|
||||
"""
|
||||
Stop showing the progress indicator to the user.
|
||||
@@ -101,8 +121,8 @@ class User(gen.user.User):
|
||||
|
||||
def prompt(self, title, question):
|
||||
"""
|
||||
Ask the user a question. The answer must be "yes" or "no". The user will
|
||||
be forced to answer the question before proceeding.
|
||||
Ask the user a question. The answer must be "yes" or "no".
|
||||
The user will be forced to answer the question before proceeding.
|
||||
|
||||
@param title: the title of the question
|
||||
@type title: str
|
||||
@@ -113,7 +133,7 @@ class User(gen.user.User):
|
||||
"""
|
||||
return False
|
||||
|
||||
def warn(self, title, warning):
|
||||
def warn(self, title, warning=""):
|
||||
"""
|
||||
Warn the user.
|
||||
|
||||
@@ -123,9 +143,9 @@ class User(gen.user.User):
|
||||
@type warning: str
|
||||
@returns: none
|
||||
"""
|
||||
print "%s %s" % (title, warning)
|
||||
print("%s %s" % (title, warning))
|
||||
|
||||
def notify_error(self, title, error):
|
||||
def notify_error(self, title, error=""):
|
||||
"""
|
||||
Notify the user of an error.
|
||||
|
||||
@@ -135,4 +155,29 @@ class User(gen.user.User):
|
||||
@type error: str
|
||||
@returns: none
|
||||
"""
|
||||
print "%s %s" % (title, warning)
|
||||
if self.error_function:
|
||||
self.error_function(title, error)
|
||||
else:
|
||||
print("%s %s" % (title, error))
|
||||
|
||||
def notify_db_error(self, error):
|
||||
"""
|
||||
Notify the user of a DB error.
|
||||
|
||||
@param error: the error message
|
||||
@type error: str
|
||||
@returns: none
|
||||
"""
|
||||
self.notify_error(
|
||||
_("Low level database corruption detected"),
|
||||
_("Gramps has detected a problem in the underlying "
|
||||
"Berkeley database. This can be repaired from "
|
||||
"the Family Tree Manager. Select the database and "
|
||||
'click on the Repair button') + '\n\n' + error)
|
||||
|
||||
def info(self, msg1, infotext, parent=None, monospaced=False):
|
||||
"""
|
||||
Displays information to the CLI
|
||||
"""
|
||||
print(msg1)
|
||||
print(infotext)
|
||||
@@ -136,4 +136,7 @@
|
||||
<author uid="kulath" title="author">
|
||||
Tim G L Lyons <<html:a href="mailto:tim.g.lyons@gmail.com">tim.g.lyons@gmail.com</html:a>>
|
||||
</author>
|
||||
<author uid="jralls" title="author">
|
||||
John Ralls <<html:a href="mailto:jralls@ceridwen.us">jralls@ceridwen.us</html:a>>
|
||||
</author>
|
||||
</authors>
|
||||
@@ -0,0 +1,22 @@
|
||||
{% extends "admin/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{{ title }} | My New Title{% endblock %}
|
||||
|
||||
{% block branding %}
|
||||
<h1 id="site-name">My new title for the Admin site!</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% block nav-global %}
|
||||
{% if user.is_staff %}
|
||||
<style type="text/css">
|
||||
.ml {margin:0 10px 10px;display:block;float:left}
|
||||
</style>
|
||||
|
||||
<a href="/" clas="ml">Website home</a>
|
||||
<a href="/admin/" class="ml">Admin home</a>
|
||||
<a href="/admin/members/invoice/" class="ml">Invoices</a>
|
||||
<a href="/admin/auth/user/?is_active__exact=0" class="ml">New Users</a>
|
||||
<a href="/admin/auth/user/" class="ml">All Users</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,8 +1,8 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}Gramps-Connect{% endblock %}
|
||||
{% block heading %}Gramps-Connect{% endblock %}
|
||||
{% block title %}{{sitename}}{% endblock %}
|
||||
{% block heading %}{{sitename}}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{% load my_tags %}
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse" %}||
|
||||
{% format "/%s/%s|%s" view args tviews %}
|
||||
{% if object.gramps_id %}
|
||||
|| {% format "/%s/%s|%s [%s]" view object.handle tview object.gramps_id %}
|
||||
{% else %}
|
||||
{% if object.name %}
|
||||
|| {% format "/%s/%s|%s [%s]" view object.handle tview object.name %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfilter %}
|
||||
@@ -0,0 +1,399 @@
|
||||
{% load my_tags %}
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
|
||||
<head>
|
||||
<title>{% block title %}{{sitename}}{% endblock %}</title>
|
||||
{% block meta %}
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta name="generator" content="Gramps 3.2.0-0.SVN12859M http://gramps-project.org/" />
|
||||
<meta name="author" content="" />
|
||||
{% endblock %}
|
||||
<link href="/images/ped24.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
{% block css %}
|
||||
<link media="screen" href="/styles/css/{{css_theme}}" type="text/css" rel="stylesheet" />
|
||||
<link media="print" href="/styles/css/Web_Print-Default.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/styles/javascript/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="/styles/javascript/jquery-ui-1.7.2.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/styles/jhtmlarea/scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="/styles/jhtmlarea/style/jHtmlArea.css" />
|
||||
<script type="text/javascript" src="/styles/javascript/jquery.flexbox.min.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="/styles/css/jquery.flexbox.css" />
|
||||
{% endblock %}
|
||||
|
||||
<style type="text/css">
|
||||
table td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.content {
|
||||
background: none;
|
||||
}
|
||||
.content {
|
||||
padding: 0px 0px 10px;
|
||||
}
|
||||
.browsecell {
|
||||
display: block;
|
||||
}
|
||||
#subtitle {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
border-top: 1px solid;
|
||||
}
|
||||
td.ColumnAttribute {
|
||||
text-align: right;
|
||||
}
|
||||
#error {
|
||||
color: red;
|
||||
}
|
||||
{% if action == "edit" or action == "add" %}
|
||||
{% else %}
|
||||
#rowspace {
|
||||
height: 3px;
|
||||
}
|
||||
#data {
|
||||
border: 1px solid;
|
||||
background-color: white;
|
||||
color: brown;
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
/* Component containers */
|
||||
.ui-widget {
|
||||
font-family: Georgia,serif;
|
||||
font-size: small;
|
||||
}
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
|
||||
font-family: Georgia,serif;
|
||||
font-size: small;
|
||||
}
|
||||
.ui-widget-content {
|
||||
border: 1px solid #7D5925;
|
||||
color: #7D5925;
|
||||
float: left;
|
||||
width: 98%;
|
||||
}
|
||||
.ui-widget-content a {
|
||||
color: #7D5925;
|
||||
}
|
||||
.ui-widget-header {
|
||||
color: #ffffff;
|
||||
}
|
||||
.ui-widget-header a {
|
||||
color: #7D5925;
|
||||
}
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa;
|
||||
opacity: .30;
|
||||
}
|
||||
|
||||
.ui-widget-shadow {
|
||||
margin: -8px 0 0 -8px;
|
||||
padding: 8px;
|
||||
opacity: .30;
|
||||
-webkit-border-radius: 8px;
|
||||
}
|
||||
|
||||
/* Interaction states */
|
||||
.ui-state-default {
|
||||
border: 1px solid #7D5925;
|
||||
background: #FFF2C6;
|
||||
font-weight: normal;
|
||||
color: #7D5925;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
|
||||
color: #7D5925;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-hover, .ui-state-focus {
|
||||
border: 1px solid #f5ad66;
|
||||
background: #f5f0e5;
|
||||
font-weight: normal;
|
||||
color: #a46313;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-hover a, .ui-state-hover a:hover {
|
||||
color: #a46313;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-active {
|
||||
border: 1px solid #7D5925;
|
||||
background: #f4f0ec;
|
||||
font-weight: normal;
|
||||
color: #b85700;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
|
||||
color: #b85700;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Interaction Cues */
|
||||
.ui-state-highlight {
|
||||
border: 1px solid #d9bb73;
|
||||
background: #f5f5b5;
|
||||
color: #060200;
|
||||
}
|
||||
.ui-state-highlight a {
|
||||
color: #060200;
|
||||
}
|
||||
.ui-state-error {
|
||||
border: 1px solid #f8893f;
|
||||
background: #fee4bd;
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-error a {
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-error-text {
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-disabled {
|
||||
opacity: .35;
|
||||
background-image: none;
|
||||
}
|
||||
.ui-priority-primary {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-priority-secondary {
|
||||
opacity: .7;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.ui-tabs {
|
||||
padding: .2em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
list-style: none;
|
||||
position: relative;
|
||||
padding: .2em .2em 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin: .2em .2em -1px 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a {
|
||||
float: left;
|
||||
text-decoration: none;
|
||||
padding: .5em 1em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
|
||||
padding-bottom: 1px;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
|
||||
cursor: text;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
|
||||
cursor: pointer;
|
||||
} /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
padding: 1em 1.4em;
|
||||
display: block;
|
||||
border-width: 0;
|
||||
background: none;
|
||||
}
|
||||
.ui-tabs .ui-tabs-hide {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<SCRIPT LANGUAGE="JavaScript">
|
||||
<!--
|
||||
var timerId=0 ;
|
||||
|
||||
function clearTimer() {
|
||||
if (timerId!=0) {
|
||||
clearTimeout(timerId); timerId=0; }}
|
||||
|
||||
function startTimer() {
|
||||
clearTimer(); timerId=setTimeout('timerId=0;hideMenus()',200);
|
||||
}
|
||||
|
||||
function showMenu(menuNum) {
|
||||
clearTimer(); hideMenus();
|
||||
document.getElementById('menu_'+menuNum).style.display="";
|
||||
}
|
||||
|
||||
function hideMenus() {
|
||||
document.getElementById('menu_browse').style.display="none";
|
||||
}
|
||||
|
||||
function hiLite(theOption) {
|
||||
clearTimer();
|
||||
document.getElementById('opt_'+theOption).style.background='#9090FF';
|
||||
}
|
||||
|
||||
function unLite(theOption) {
|
||||
startTimer();
|
||||
document.getElementById('opt_'+theOption).style.background='#D0D0FF';
|
||||
}
|
||||
|
||||
function optClick(theOption) {
|
||||
document.location.href=theOption;
|
||||
}
|
||||
|
||||
function setHasData(classname, value) {
|
||||
var elems = document.getElementsByTagName('*'), i;
|
||||
for (i in elems) {
|
||||
if((" " + elems[i].className + " ").indexOf(" " + classname + " ") > -1) {
|
||||
if (value) {
|
||||
elems[i].style.fontWeight = "bold";
|
||||
elems[i].style.fontStyle = "italic";
|
||||
} else {
|
||||
elems[i].style.fontWeight = "";
|
||||
elems[i].style.fontStyle = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setReturnValues() {
|
||||
var elems = document.getElementsByTagName('*'), i;
|
||||
for (i in elems) {
|
||||
if ((" " + elems[i].name + " ").indexOf("_return ") > -1) {
|
||||
var pos = (" " + elems[i].name + " ").indexOf("_return ");
|
||||
var s = elems[i].name.substring(0, pos - 1);
|
||||
var v = document.getElementsByName(s)[0];
|
||||
elems[i].value = v.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function buttonOver(button) {
|
||||
button.style.backgroundColor = "white";
|
||||
button.style.border = "1px solid gray";
|
||||
}
|
||||
|
||||
function buttonOut(button) {
|
||||
button.style.backgroundColor = "lightgray";
|
||||
button.style.border = "1px solid lightgray";
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
|
||||
<STYLE TYPE="text/css">
|
||||
<!--
|
||||
.popupMenu {
|
||||
// font-family : Verdana,Tahoma,Helvetica,sans-serif;
|
||||
// font-size : 12px;
|
||||
color : #111111;
|
||||
position : absolute;
|
||||
// top : 72px;
|
||||
border : 1px;
|
||||
padding : 3px;
|
||||
z-index : 16;
|
||||
background-color: #D0D0FF;
|
||||
cursor : pointer; }
|
||||
-->
|
||||
</STYLE>
|
||||
</head>
|
||||
<body onclick="hideMenus()"
|
||||
onload="if (document.getElementById('get_focus')) {document.getElementById('get_focus').focus();}"
|
||||
>
|
||||
<div id="header" style="padding-top: 1em; background-position:0px -32px;">
|
||||
<h1 id="SiteTitle" style="margin-left: 0em;">{% block heading %}{{sitename}}{% endblock %}</h1>
|
||||
</div>
|
||||
|
||||
<div class="wrapper" role="navigation" id="nav">
|
||||
{% block navigation %}
|
||||
<div class="container">
|
||||
<ul class="menu" id="dropmenu">
|
||||
<li {{ tview|currentSection:"home" }}><a href="/">Home</a></li>
|
||||
{% for title in menu %}
|
||||
{# (<Nice name>, /<path>/, <Model> | None, Need authentication ) #}
|
||||
{% if title.3 %}
|
||||
{% if user.is_authenticated %}
|
||||
<li {{tview|currentSection:title.1 }}>
|
||||
{% if title.1 %}
|
||||
<a href="/{{title.1}}/">{{title.0}}</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<a href="/">{{title.0}}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{# don't show #}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li {{tview|currentSection:title.1 }}>
|
||||
{% if title.1 %}
|
||||
<a href="/{{title.1}}/"
|
||||
onmouseover="showMenu('{{title.1}}')"
|
||||
onmouseout="startTimer()"
|
||||
style="cursor:pointer"
|
||||
href="/browse/">{{title.0}}</a>
|
||||
<DIV CLASS="popupMenu" ID="menu_browse" STYLE="display:none;">
|
||||
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
|
||||
<TR ID="opt_person"><TD><A ONMOUSEOVER="hiLite('person')" ONMOUSEOUT="unLite('person')" ONCLICK="optClick('/person/')">People</A></TD></TR>
|
||||
<TR ID="opt_family"><TD><A ONMOUSEOVER="hiLite('family')" ONMOUSEOUT="unLite('family')" ONCLICK="optClick('/family/')">Families</A></TD></TR>
|
||||
<TR ID="opt_event"><TD><A ONMOUSEOVER="hiLite('event')" ONMOUSEOUT="unLite('event')" ONCLICK="optClick('/event/')">Events</A></TD></TR>
|
||||
<TR ID="opt_note"><TD><A ONMOUSEOVER="hiLite('note')" ONMOUSEOUT="unLite('note')" ONCLICK="optClick('/note/')">Note</A></TD></TR>
|
||||
<TR ID="opt_media"><TD><A ONMOUSEOVER="hiLite('media')" ONMOUSEOUT="unLite('media')" ONCLICK="optClick('/media/')">Media</A></TD></TR>
|
||||
<TR ID="opt_citation"><TD><A ONMOUSEOVER="hiLite('citation')" ONMOUSEOUT="unLite('citation')" ONCLICK="optClick('/citation/')">Citations</A></TD></TR>
|
||||
<TR ID="opt_source"><TD><A ONMOUSEOVER="hiLite('source')" ONMOUSEOUT="unLite('source')" ONCLICK="optClick('/source/')">Sources</A></TD></TR>
|
||||
<TR ID="opt_place"><TD><A ONMOUSEOVER="hiLite('place')" ONMOUSEOUT="unLite('place')" ONCLICK="optClick('/place/')">Places</A></TD></TR>
|
||||
<TR ID="opt_repository"><TD><A ONMOUSEOVER="hiLite('repsoitory')" ONMOUSEOUT="unLite('repository')" ONCLICK="optClick('/repository/')">Repository</A></TD></TR>
|
||||
<TR ID="opt_tag"><TD><A ONMOUSEOVER="hiLite('tag')" ONMOUSEOUT="unLite('tag')" ONCLICK="optClick('/tag/')">Tags</A></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
</li>
|
||||
{% else %}
|
||||
<a href="/">{{title.0}}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if user.is_authenticated %}
|
||||
{% if next %}
|
||||
<li><a href="/logout/?next={{next}}">Logout</a></li>
|
||||
{% else %}
|
||||
<li><a href="/logout">Logout</a></li>
|
||||
{% endif %}
|
||||
{% if user.is_superuser %}
|
||||
<li><a href="/admin">Admin</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if next %}
|
||||
<li><a href="/login/?next={{next}}">Login</a></li>
|
||||
{% else %}
|
||||
<li><a href="/login/">Login</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="grampsweb">
|
||||
{% for message in messages %}
|
||||
<font color="red">{{message}}</font><br/>
|
||||
{% endfor %}
|
||||
{% if message %}
|
||||
<div id="system_message" class="{{ message_type }}">
|
||||
<font color="red">{{message}}</font><br/>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
<div class="content">
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
{% block footer %}
|
||||
<p id="createdate">
|
||||
<a href="http://www.gramps-project.org/wiki/index.php?title=Gramps-Connect">Gramps-Connect, version {{gramps_version}}</a>.
|
||||
</p>
|
||||
<p id="copyright">© 2009-2012 <a href="http://www.gramps-project.org/">www.gramps-project.org</a>
|
||||
</p>
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,14 +1,14 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}Gramps-Connect{% endblock %}
|
||||
{% block heading %}Gramps-Connect{% endblock %}
|
||||
{% block title %}{{sitename}}{% endblock %}
|
||||
{% block heading %}{{sitename}}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p id="description">Welcome to Gramps-Connect, a new web-based collaboration tool.
|
||||
<p id="description">Welcome to <b>{{sitename}}</b>, a new web-based collaboration tool.
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
You are now logged in
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="pagination">
|
||||
<span class="step-links">
|
||||
<form method="post">{% csrf_token %}
|
||||
<div id="alphanav" style="padding: 0pt 0 0pt 0;">
|
||||
<ul>
|
||||
{% ifequal page.number 1 %}
|
||||
<li><input type="button" value="<<" disabled="disabled"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value="<<" onclick="document.location.href='?page=1{{search_query}}'"></li>
|
||||
{% endifequal %}
|
||||
{% if page.has_previous %}
|
||||
<li><input type="button" value="<" onclick="document.location.href='?page={{page.previous_page_number}}{{search_query}}'"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value="<" disabled="disabled"></li>
|
||||
{% endif %}
|
||||
|
||||
<span class="current">
|
||||
<li>Page {{ page.number }} of {{ page.paginator.num_pages }}</li>
|
||||
</span>
|
||||
|
||||
{% if page.has_next %}
|
||||
<li><input type="button" value=">" onclick="document.location.href='?page={{page.next_page_number}}{{search_query}}'"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value=">" disabled="disabled"></li>
|
||||
{% endif %}
|
||||
{% ifequal page.number page.paginator.num_pages %}
|
||||
<li><input type="button" value=">>" disabled="disabled"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value=">>" onclick="document.location.href='?page={{page.paginator.num_pages}}{{search_query}}'"></li>
|
||||
{% endifequal %}
|
||||
<b>Matches</b>: {{page.paginator.count}}/{{total}} <b>Showing</b>: {{results_this_page}}
|
||||
</ul>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if pickform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{pickform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Pick:</td>
|
||||
{% if user.is_authenticated %}
|
||||
<td class="ColumnValue" id="data">{{pickform.picklist}}</td>
|
||||
{% else %}
|
||||
<td class="ColumnValue" id="data"></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% make_button "Cancel" "/%s/%s" object_type object_handle args %}
|
||||
<input type="hidden" name="action" value="save-share"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
<h2>Temporary Reference Detail</h2>
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<trbody>
|
||||
{% if form.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{form.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
|
||||
{% for f in form.forms %}
|
||||
<tr>
|
||||
{{f}}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% make_button "Go to reference" url %}
|
||||
{% make_button "Go back" referenced_by %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}Gramps-Connect - user page {% endblock %}
|
||||
{% block heading %}Gramps-Connect - user page {% endblock %}
|
||||
{% block title %}{{sitename}} - user page {% endblock %}
|
||||
{% block heading %}{{sitename}} - user page {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@@ -32,6 +33,14 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% make_button "Edit Profile" "/admin/grampsdb/profile/%s" user.id %}
|
||||
{% make_button "Edit User" "/admin/auth/user/%s" user.id %}
|
||||
{% else %}
|
||||
<em>User</em>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,179 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
$('#shared-tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
{% if citationform.errors or sourceform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{citationform.errors}}</div>
|
||||
<div id="error">{{sourceform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
|
||||
<!-- Tabs -->
|
||||
<h2>Citation information</h2>
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-general" href="#tab-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-data" href="#tab-data">Data</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-general" style="background-color: #f4f0ec;">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.text user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render citationform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{citationform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render citationform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.page.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.page user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.confidence.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.confidence user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table citation user action "/note/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table citation user action "/media/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-data" style="background-color: #f4f0ec;">
|
||||
{% data_table citation user action "/data/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% citation_reference_table citation user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table citation user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Note: Any changes in the shared citation information will be reflected
|
||||
in the citation itself, for all items that reference the citation.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Source information (shared)</h2>
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="shared-tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-shared-general" href="#tab-shared-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-notes" href="#tab-shared-notes">Notes</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-media" href="#tab-shared-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-repositories" href="#tab-shared-repositories">Repositories</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-references" href="#tab-shared-references">References</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-history" href="#tab-shared-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-shared-general" style="background-color: #f4f0ec;">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.title user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.author.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.author user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render sourceform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{sourceform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render sourceform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.abbrev.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.abbrev user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.pubinfo.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.pubinfo user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table source user action "/note/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-media" style="background-color: #f4f0ec;">
|
||||
{% media_table source user action "/media/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-repositories" style="background-color: #f4f0ec;">
|
||||
{% repository_table source user action "/repository/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-references" style="background-color: #f4f0ec;">
|
||||
{% citation_reference_table source user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-history" style="background-color: #f4f0ec;">
|
||||
{% history_table source user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Note: Any changes in the shared source information will be reflected
|
||||
in the source itself, for all items that reference the source.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/citation/%s" citation.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/citation/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Citation" "/citation/add" args %}
|
||||
{% make_button "?Edit Citation" "/citation/%s/edit" citation.handle args %}
|
||||
{% make_button "-Delete Citation" "/citation/%s/delete" citation.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,48 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="90%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Title</th>
|
||||
<th>Pub Info</th>
|
||||
<th>Author</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for source in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>
|
||||
<span class="grampsid">[{{source.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or source.public %}
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.title|escape|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.pubinfo|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.author|nbsp}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Citation" "/citation/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,135 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<trbody>
|
||||
{% if eventform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{eventform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setReturnValues()">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{eventform.event_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render eventform.event_type user action %}</td>
|
||||
<td class="ColumnAttribute">{{eventform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render eventform.text user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Description:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.description user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">ID:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.gramps_id user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Place:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#place').flexbox('/json/?field=place', {
|
||||
watermark: 'Place',
|
||||
width: 600,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{event.place.get_selection_string}}',
|
||||
initialId: '{{event.place.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="place"></div>
|
||||
{% else %}
|
||||
<a href="/place/?search={{event.place}}">{{event.place}}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.private user action %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tab-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tab-selected ui-state-active"><a class="tab-sources" href="#tab-sources">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom" id="tab-sources" style="background-color: #f4f0ec;">
|
||||
{% citation_table event user action "/citation/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table event user action "/note/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table event user action "/media/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table event user action "/attribute/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% event_reference_table event user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table event user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/event/%s" event.handle args %}
|
||||
<input type="hidden" id="place_return" name="place_return" value=""/>
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/event/" args %}
|
||||
<input type="hidden" id="place_return" name="place_return" value=""/>
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Event" "/event/add" args %}
|
||||
{% make_button "?Edit Event" "/event/%s/edit" event.handle args %}
|
||||
{% make_button "-Delete Event" "/event/%s/delete" event.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Event Type</th>
|
||||
<th>Description</th>
|
||||
<th>Date</th>
|
||||
<th>Place</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for event in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="noThumb browsecell">
|
||||
<span class="grampsid">[{{event.gramps_id}}]</span></a>
|
||||
|
||||
{% if user.is_authenticated or event.public %}
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.event_type|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.description|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event|date_as_text:user}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.place.title|nbsp}}</a>
|
||||
{% else %}
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Event" "/event/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,71 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Father</th>
|
||||
<th>Mother</th>
|
||||
<th>Relationship</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for family in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{ forloop.counter|row_count:page }}</a></td>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
><span class="grampsid">[{{family.gramps_id}}]</span></a>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.father|make_name:user|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.mother|make_name:user|nbsp}}</a>
|
||||
{% if user.is_authenticated or family.public %}
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.family_rel_type|escape|nbsp}}</a>
|
||||
{% else %}
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
{% if not family.public %}
|
||||
[Private]
|
||||
{% else %}
|
||||
{{family.family_rel_type}}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Family" "/family/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,204 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<h2><a href="/person/{{family.father.handle}}">{{family.father|render_name:user}}</a> and <a href="/person/{{family.mother.handle}}">{{family.mother|render_name:user}}</a></h2>
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if familyform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{familyform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setReturnValues()">{% csrf_token %}
|
||||
<tr>
|
||||
<th colspan="2">Father</th>
|
||||
<th colspan="2">Mother</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Name:</td>
|
||||
{% if user.is_authenticated or father.probably_alive %}
|
||||
<td class="ColumnValue" id="data">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#father').flexbox('/json/?field=father', {
|
||||
watermark: 'Father',
|
||||
width: 300,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{family.father.get_selection_string}}',
|
||||
initialId: '{{family.father.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="father"></div>
|
||||
{% else %}
|
||||
{{family.father|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% else %}
|
||||
{{family.father|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="ColumnAttribute">Name:</td>
|
||||
{% if user.is_authenticated or family.mother.probably_alive %}
|
||||
<td class="ColumnValue" id="data">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#mother').flexbox('/json/?field=mother', {
|
||||
watermark: 'Mother',
|
||||
width: 300,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{family.mother.get_selection_string}}',
|
||||
initialId: '{{family.mother.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="mother"></div>
|
||||
{% else %}
|
||||
{{family.mother|render_name:user}}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{family.mother|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if user.is_authenticated or not familyform.father.probably_alive %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Birth:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.birth|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Birth:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.birth|date_as_text:user}}</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.death|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.death|date_as_text:user}}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.death|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.death|date_as_text:user}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="infolist">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan="4">Relationship information</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{familyform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{familyform.family_rel_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.family_rel_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{familyform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.tags user action %}</td>
|
||||
<td class="ColumnAttribute">{{familyform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.private user action %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-children" href="#tab-children">Children</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-events" href="#tab-events">Event</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-lds" href="#tab-lds">LDS</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-children" style="background-color: #f4f0ec;">
|
||||
<!-- Events -->
|
||||
{% children_table family user action "/person/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-events" style="background-color: #f4f0ec;">
|
||||
{% event_table family user action "/event/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table family user action "/citation/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table family user action "/attribute/add/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table family user action "/note/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table family user action "/media/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-lds" style="background-color: #f4f0ec;">
|
||||
{% lds_table family user action "/lds/add/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table family user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/family/%s" family.handle args %}
|
||||
<input type="hidden" id="father_return" name="father_return" value=""/>
|
||||
<input type="hidden" id="mother_return" name="mother_return" value=""/>
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/family/" args %}
|
||||
<input type="hidden" id="father_return" name="father_return" value=""/>
|
||||
<input type="hidden" id="mother_return" name="mother_return" value=""/>
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Family" "/family/add" args %}
|
||||
{% make_button "?Edit Family" "/family/%s/edit" family.handle args %}
|
||||
{% make_button "-Delete Family" "/family/%s/delete" family.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Description</th>
|
||||
<th>File</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for media in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="noThumb browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
<span class="grampsid">[{{media.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or media.public %}
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{media.desc|escape}}</a>
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{media.path|escape}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Media" "/media/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,109 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tbody>
|
||||
{% if mediaform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{mediaform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.desc.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.desc user action %}</td>
|
||||
<td rowspan="5">{% media_link media.handle user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render mediaform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{mediaform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render mediaform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.text user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.path.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.path user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.tags user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-sources" href="#tab-sources" style=":hover {color: black;}">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-sources" style="background-color: #f4f0ec;">
|
||||
{% citation_table media user action "/citation/$act/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table media user action "/note/$act/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table media user action "/attribute/add/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% media_reference_table media user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table media user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/media/%s" media.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/media/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Media" "/media/add" args %}
|
||||
{% make_button "?Edit Media" "/media/%s/edit" media.handle args %}
|
||||
{% make_button "-Delete Media" "/media/%s/delete" media.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse" %} ||
|
||||
{% format "/person|People" %} ||
|
||||
{% format "/person/%s|Person [%s]" object.handle object.gramps_id %} ||
|
||||
{% format "/person/%s/name/%s|Name #%s" object.handle order order %}
|
||||
{% endfilter %}
|
||||
|
||||
<h3>{{nameform.model|make_name:user}} [{{person.gramps_id}}]</h3>
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
|
||||
{% for error in nameform.errors %}
|
||||
<p id="error">{{error}}</a><br>
|
||||
{% endfor %}
|
||||
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.name_origin_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.name_origin_type user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.name_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.name_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.surname.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.surname user action "get_focus" %}</td>
|
||||
<td class="ColumnAttribute">{{surnameform.prefix.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.prefix user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.first_name.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.first_name user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.nick.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.nick user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.title user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.suffix.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.suffix user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute"></td>
|
||||
<td class="ColumnValue" id="data"></td>
|
||||
<td class="ColumnAttribute">{{nameform.call.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.call user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.preferred.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.preferred user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.private user action %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-general" href="#tab-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-surnames" href="#tab-surnames">Surname</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-names" href="#tab-names">Alternate Names</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom"
|
||||
id="tab-general" style="background-color: #f4f0ec;">
|
||||
<div style="overflow: auto; height:150px;">
|
||||
<table border="1">
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.group_as.label}}: </td>
|
||||
<td>{% render nameform.group_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.sort_as.label}}: </td>
|
||||
<td>{% render nameform.sort_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.display_as.label}}: </td>
|
||||
<td>{% render nameform.display_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.text.label}}: </td>
|
||||
<td>{% render nameform.text user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-surnames" style="background-color: #f4f0ec;">
|
||||
{% surname_table person user action "/person/%s/name/%s/surname/add" person.handle nameform.model.order %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-names" style="background-color: #f4f0ec;">
|
||||
{% name_table person user action "/person/%s/name" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table nameform.model user action "/citation/add/person/%s/name/%s" person.handle nameform.model.order %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom
|
||||
ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table nameform.model user action "/note/$act/person/%s/name/%s" person.handle nameform.model.order %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/person/%s" person.handle args "#tab-names" %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
{% ifequal action "edit" %}
|
||||
{% make_button "Cancel" "/person/" args "#tab-names" %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Name" "/person/%s/name/add" person.handle args %}
|
||||
{% make_button "?Edit Name" "/person/%s/name/%s/edit" person.handle order args %}
|
||||
{% make_button "-Delete Name" "/person/%s/name/%s/delete" person.handle order args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endifequal %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
$('.wysiwyg').htmlarea({
|
||||
toolbar: [
|
||||
"bold", "italic", "underline",
|
||||
"|", "forecolor", "superscript", "p",
|
||||
"|", "link", "unlink",
|
||||
"|", "html"
|
||||
]
|
||||
});
|
||||
// FIXME: add font, fontsize, backcolor
|
||||
// FIXME: find easier way:
|
||||
$('.jHtmlArea').contents().find('iframe').contents().find('body').css({"background-color": "white"});
|
||||
});
|
||||
function setnotetext() {
|
||||
document.getElementById('notetext').value = $('.jHtmlArea').contents().find('iframe').contents().find('body').html();
|
||||
}
|
||||
</script>
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tbody>
|
||||
{% if noteform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{noteform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setnotetext()">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.notetext.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">
|
||||
{% if action == "edit" or action == "add" %}
|
||||
<input type="hidden" id="notetext" name="notetext" value=""></input>
|
||||
{% render noteform.notetext user action %}
|
||||
{% else %}
|
||||
<div style="overflow-y: scroll; height: 100px;">{{notetext|safe}}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="ColumnAttribute">{{noteform.preformatted.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render noteform.preformatted user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render noteform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{noteform.note_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render noteform.note_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="4">{% render noteform.tags user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% note_reference_table note user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table note user action %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/note/%s" note.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/note/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Note" "/note/add" args %}
|
||||
{% make_button "?Edit Note" "/note/%s/edit" note.handle args %}
|
||||
{% make_button "-Delete Note" "/note/%s/delete" note.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Note Type</th>
|
||||
<th>Text</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for note in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="noThumb browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
<span class="grampsid">[{{note.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or note.public %}
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{note.note_type|escape|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{note.text|preview:70|nbsp}}</a>
|
||||
{% else %}
|
||||
<td>[Private]</td>
|
||||
<td>[Private]</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Note" "/note/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,8 +1,8 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}Gramps-Connect: {{tview}} view {% endblock %}
|
||||
{% block heading %}Gramps-Connect: {{tview}} view {% endblock %}
|
||||
{% block title %}{{sitename}}: {{tview}} view {% endblock %}
|
||||
{% block heading %}{{sitename}}: {{tview}} view {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@@ -10,22 +10,19 @@
|
||||
<form name="SearchForm">
|
||||
{% if tview != "Report" %}
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse,/%s|%s" view tviews %}
|
||||
{% format "/browse|Browse" %} ||
|
||||
{% format "/%s|%s" view tviews %}
|
||||
{% endfilter %}
|
||||
{% endif %}
|
||||
<input type="submit" value="Search:"></input>
|
||||
<input autocomplete="off" name="search" id="get_focus" type="text" size="50" value="{{search}}"></input>
|
||||
<br/><i>Available search terms</i>: <b>{{search_terms}}</b>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% paginator %}
|
||||
|
||||
<div style="overflow:auto; height:500px;width:800px;">
|
||||
|
||||
<div style="overflow:auto; height:300px;width:800px;">
|
||||
{% block table_data %} <table></table> {% endblock %}
|
||||
|
||||
</div>
|
||||
|
||||
{% include "paginator.html" %}
|
||||
|
||||
{% block admin_functions %}{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,6 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
{% block title %}{{sitename}}: {{tview}} detail {% endblock %}
|
||||
{% block heading %}{{sitename}}: {{tview}} detail {% endblock %}
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,68 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Name</th>
|
||||
<th>ID</th>
|
||||
<th>Gender</th>
|
||||
<th>Birth Date</th>
|
||||
<th>Death Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}" style="">
|
||||
{% if name.person %}
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{ forloop.counter|row_count:page }}</a>
|
||||
</td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name|make_name:user}} </a>
|
||||
</td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="grampsid browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>[{{name.person.gramps_id}}]</a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.gender_type}} </a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.birth|date_as_text:user}} </a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.death|date_as_text:user}} </a></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Person" "/person/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 5 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if personform.errors or nameform.errors or surnameform.errors or logform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">
|
||||
{{personform.errors}}
|
||||
{{nameform.errors}}
|
||||
{{surnameform.errors}}
|
||||
{{logform.errors}}
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td colspan="4" id="subtitle">{{nameform|render_name:user}}</td>
|
||||
<td class="ColumnAttribute">{{nameform.name_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.name_type user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.title user action "get_focus" %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.nick.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.nick user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.call.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.call user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.first_name.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="4">{% render nameform.first_name user action None "/person/?search=given%%3D%s" nameform.model.first_name %}</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.suffix user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.surname.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.prefix user action %}
|
||||
<td class="ColumnValue" id="data" colspan="2">{% render surnameform.surname user action None "/person/?search=surname%%3D%s" surnameform.model.surname %}</td>
|
||||
<td class="ColumnAttribute">{{surnameform.name_origin_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="2">{% render surnameform.name_origin_type user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{personform.gender_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.gender_type user action None "/person/?search=gender%%3D%s" personform.model.gender_type %}</td>
|
||||
<td class="ColumnAttribute">{{personform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{personform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" rowspan="3">{% render personform.tags user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{personform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.private user action %}</td>
|
||||
<td class="ColumnAttribute">{{personform.probably_alive.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% if person.probably_alive %}Yes{% else %}No{% endif %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-events" href="#tab-events">Event</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Family</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-names" href="#tab-names">Name</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-addresses" href="#tab-addresses">Address</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-internet" href="#tab-internet">Internet</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-association" href="#tab-association">Association</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-lds" href="#tab-lds">LDS</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-events" style="background-color: #f4f0ec;">
|
||||
<!-- Events -->
|
||||
{% event_table person user action "/event/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-names" style="background-color: #f4f0ec;">
|
||||
{% name_table person user action "/person/%s/name" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table person user action "/citation/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table person user action "/attribute/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-addresses" style="background-color: #f4f0ec;">
|
||||
{% address_table person user action "/place/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom
|
||||
ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table person user action "/note/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table person user action "/media/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-internet" style="background-color: #f4f0ec;">
|
||||
{% internet_table person user action "/person/%s/$act/internet" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-association" style="background-color: #f4f0ec;">
|
||||
{% association_table person user action "/person/%s/$act/association" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-lds" style="background-color: #f4f0ec;">
|
||||
{% lds_table person user action "/person/%s/$act/lds" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% person_reference_table person user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table person user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if logform %}
|
||||
<table>
|
||||
{{logform.as_table}}
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/person/%s" person.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/person/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Person" "/person/add" args %}
|
||||
{% make_button "?Edit Person" "/person/%s/edit" person.handle args %}
|
||||
{% make_button "-Delete Person" "/person/%s/delete" person.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user