gramps/gramps/plugins/gramplet/faqgramplet.py
2016-06-01 23:53:28 +01:00

181 lines
7.5 KiB
Python

# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2007-2009 Douglas S. Blank <doug.blank@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#-------------------------------------------------------------------------
#
# Python modules
#
#-------------------------------------------------------------------------
#------------------------------------------------------------------------
#
# Gramps modules
#
#------------------------------------------------------------------------
from gramps.gen.plug import Gramplet
from gramps.gen.const import URL_MANUAL_PAGE
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
#------------------------------------------------------------------------
#
# Register Gramplet
#
#------------------------------------------------------------------------
class FAQGramplet(Gramplet):
def init(self):
self.set_use_markup(True)
self.clear_text()
"""
The "wiki" HTTP "anchor type" is gramps-specific, and causes
GuiGramplet's on_button_press method to invoke gui/display.py's
display_help method, which prepends URL_WIKISTRING before it then
calls gui/display.py's display_url method. So no URL_WIKISTRING
is needed in this code.
"""
faq_dict = {'bold_start': '<b>',
'bold_end': '</b>',
'gramps_wiki_html_start': "<a wiki='",
'gramps_manual_html_start':
"<a wiki='" + URL_MANUAL_PAGE + "_-_",
'gramps_FAQ_html_start':
"<a wiki='" + URL_MANUAL_PAGE + "_-_FAQ",
'html_middle': "'>",
'html_end': '</a>'}
self.render_text(
_("%(bold_start)s%(gramps_FAQ_html_start)s%(html_middle)s"
"Frequently Asked Questions"
"%(html_end)s%(bold_end)s"
"\n(needs a connection to the internet)\n") % faq_dict)
self.render_text("\n<b>%s</b>\n\n" % _("Editing Spouses"))
faq_dict.update(
{'faq_section': "#How_do_I_change_the_order_of_spouses.3F'>"})
self.render_text(
_(" 1. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do I change the order of spouses?"
"%(html_end)s\n") % faq_dict)
faq_dict.update(
{'faq_section': "#How_do_I_add_an_additional_spouse.3F'>"})
self.render_text(
_(" 2. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do I add an additional spouse?"
"%(html_end)s\n") % faq_dict)
faq_dict.update(
{'faq_section': "#How_do_I_remove_a_spouse.3F'>"})
self.render_text(
_(" 3. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do I remove a spouse?"
"%(html_end)s\n") % faq_dict)
self.render_text("\n<b>%s</b>\n\n" % _("Backups and Updates"))
faq_dict.update(
{'faq_section': "#How_do_I_keep_backups.3F'>"})
self.render_text(
_(" 4. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do I make backups safely?"
"%(html_end)s\n") % faq_dict)
faq_dict.update(
{'faq_section': "#How_do_I_upgrade_GRAMPS.3F'>"})
self.render_text(
_(" 5. %(gramps_FAQ_html_start)s%(faq_section)s"
"Is it necessary to update Gramps "
"every time an update is released?"
"%(html_end)s\n") % faq_dict)
self.render_text("\n<b>%s</b>\n\n" % _("Data Entry"))
faq_dict.update({'section':
"Entering_and_Editing_Data:_Detailed_-_part_1"
"#Editing_Information_About_Relationships'>"})
self.render_text(
_(" 6. %(gramps_manual_html_start)s%(section)s"
"How should information about marriages be entered?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'faq_section':
"#What_is_the_difference_"
"between_a_residence_and_an_address.3F'>"})
self.render_text(
_(" 7. %(gramps_FAQ_html_start)s%(faq_section)s"
"What's the difference between a residence and an address?"
"%(html_end)s\n") % faq_dict)
self.render_text("\n<b>%s</b>\n\n" % _("Media Files"))
faq_dict.update(
{'faq_section': "#How_do_you_add_photos_to_an_item.3F'>"})
self.render_text(
_(" 8. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do you add a photo of a person/source/event?"
"%(html_end)s\n") % faq_dict)
faq_dict.update(
{'faq_section': "#How_do_you_find_unused_media.3F'>"})
self.render_text(
_(" 9. %(gramps_FAQ_html_start)s%(faq_section)s"
"How do you find unused media objects?"
"%(html_end)s\n") % faq_dict)
self.render_text("\n<b>%s</b>\n\n" % _("Miscellaneous"))
faq_dict.update({'faq_section':
"#How_can_I_publish_web_sites_"
"generated_by_GRAMPS.3F'>"})
self.render_text(
_(" 10. %(gramps_FAQ_html_start)s%(faq_section)s"
"How can I make a website with Gramps and my tree?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'web_html_start':
"<a href='http://sourceforge.net/mailarchive"
"/message.php?msg_id=21487967'>"})
self.render_text(
_(" 11. %(web_html_start)s"
"How do I record one's occupation?"
"%(html_end)s\n") % faq_dict)
faq_dict.update(
{'faq_section': "#What_do_I_do_if_I_have_found_a_bug.3F'>"})
self.render_text(
_(" 12. %(gramps_FAQ_html_start)s%(faq_section)s"
"What do I do if I have found a bug?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'section': "Portal:Using_GRAMPS'>"})
self.render_text(
_(" 13. %(gramps_wiki_html_start)s%(section)s"
"Is there a manual for Gramps?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'section': "Category:Tutorials'>"})
self.render_text(
_(" 14. %(gramps_wiki_html_start)s%(section)s"
"Are there tutorials available?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'section': "Category:How_do_I...'>"})
self.render_text(
_(" 15. %(gramps_wiki_html_start)s%(section)s"
"How do I ...?"
"%(html_end)s\n") % faq_dict)
faq_dict.update({'section': "How_you_can_help'>"})
self.render_text(
_(" 16. %(gramps_wiki_html_start)s%(section)s"
"How can I help with Gramps?"
"%(html_end)s\n") % faq_dict)
self.append_text("", scroll_to='begin')
def post_init(self):
self.disconnect("active-changed")