gramps icon indicating copy to clipboard operation
gramps copied to clipboard

Make an easy way to start gramps for novices

Open SNoiraud opened this issue 3 years ago • 17 comments

This is related to: Novice user UX proposed solution

SNoiraud avatar Sep 10 '21 11:09 SNoiraud

Could add your 2021 credit to the Copyright headers?

emyoulation avatar Sep 10 '21 12:09 emyoulation

I just ran a test.

During my test, a lot of messages were sent to the console. Are any useful without the step-by-step?:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\GrampsAIO64 5.1.4>gramps~2.lnk
2021-09-10 07:54:39.295: WARNING: dummydb.py: line 405: database is closed
2021-09-10 07:55:24.703: WARNING: dummydb.py: line 604: database is closed
2021-09-10 07:56:27.710: WARNING: managedwindow.py: line 587: Tried to close a ManagedWindow more than once.
2021-09-10 07:56:39.338: WARNING: dummydb.py: line 405: database is closed
db changed:  <sqlite.SQLite object at 0x00000000008d4400>
C:\Program Files\GrampsAIO64-5.1.4\gramps\plugins\gramplet\persondetails.py:64: DeprecationWarning: Gtk.Widget.override_font is deprecated
  self.name.override_font(Pango.FontDescription('sans bold 12'))
C:\Program Files\GrampsAIO64-5.1.4\gramps\plugins\view\pedigreeview.py:266: DeprecationWarning: Gtk.StyleContext.get_font is deprecated
  font_desc = self.get_style_context().get_font(Gtk.StateFlags.NORMAL)
C:\Program Files\GrampsAIO64-5.1.4\gramps\plugins\view\pedigreeview.py:1458: DeprecationWarning: Gtk.Viewport.get_hadjustment is deprecated
  hadjustment = window.get_hadjustment()
C:\Program Files\GrampsAIO64-5.1.4\gramps\plugins\view\pedigreeview.py:1459: DeprecationWarning: Gtk.Viewport.get_vadjustment is deprecated
  vadjustment = window.get_vadjustment()
C:\Program Files\GrampsAIO64-5.1.4\gramps\gui\widgets\monitoredwidgets.py:189: DeprecationWarning: Gtk.Widget.override_color is deprecated
  self.obj.override_color(Gtk.StateType.NORMAL, rgba)
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '114587'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714eaf0' has no handler with id '106164'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad83c90' has no handler with id '98085'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad830b0' has no handler with id '90579'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1adc60' has no handler with id '82761'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1ad7a0' has no handler with id '73909'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '202998'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1ad7a0' has no handler with id '231674'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1ad7a0' has no handler with id '255224'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1adc60' has no handler with id '287329'
C:\Program Files\GrampsAIO64-5.1.4\gramps\gui\editors\editperson.py:1091: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "parent" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  type=Gtk.MessageType.QUESTION,
C:\Program Files\GrampsAIO64-5.1.4\gramps\gui\editors\editperson.py:1091: PyGTKDeprecationWarning: The keyword(s) "type" have been deprecated in favor of "message_type" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  type=Gtk.MessageType.QUESTION,
C:\Program Files\GrampsAIO64-5.1.4\gramps\gui\editors\editperson.py:1091: PyGTKDeprecationWarning: The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  type=Gtk.MessageType.QUESTION,
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\Gtk.py:541: PyGTKDeprecationWarning: The keyword(s) "parent" have been deprecated in favor of "transient_for" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1ad7a0' has no handler with id '278286'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '336650'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000f786d80' has no handler with id '409926'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000f785ce0' has no handler with id '392694'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad83c90' has no handler with id '384873'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '367467'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad830b0' has no handler with id '327882'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000d280f80' has no handler with id '534833'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000d27fa20' has no handler with id '517491'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000d27f7c0' has no handler with id '509601'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '501350'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad83c90' has no handler with id '493516'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad83c90' has no handler with id '638937'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000b1b0000' has no handler with id '621880'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000714fdf0' has no handler with id '613453'
C:\Program Files\GrampsAIO64-5.1.4\lib\python36.zip\gi\overrides\GObject.py:553: Warning: ../../glib-2.54.3/gobject/gsignal.c:2641: instance '000000000ad830b0' has no handler with id '484686'

emyoulation avatar Sep 10 '21 15:09 emyoulation

Tested again today and tried to import the sample GEDCOM file included with Gramps and got a permissions error:

1059849: ERROR: grampsapp.py: line 174: Unhandled exception Traceback (most recent call last): File "C:\Program Files\GrampsAIO64-5.1.4\gramps\gui\dbman.py", line 1382, in start os.unlink(file_to_load) PermissionError: [WinError 5] Access is denied: 'C:\Program Files\GrampsAIO64-5.1.4\share\doc\gramps\example\gedcom\sample.ged'

emyoulation avatar Jan 04 '22 16:01 emyoulation

Try copying it to your home directory and loading it from there.

jralls avatar Jan 04 '22 17:01 jralls

I can definitely load it from elsewhere. But this is a new symptom. The data imports but reports a failure. And it shows only 1 of 2 dialogs expected. It shows the "no errors" but not the import statistics.

Also I can successfully using the Import instead. The exact same sample.ged file in the same location imports with no error. (Although the Statistics window appears without any numbers.)

emyoulation avatar Jan 04 '22 17:01 emyoulation

Because it's trying to delete the file and it's in a protected directory. @SNoiraud don't you mean to close file_to_load, not delete it?

jralls avatar Jan 04 '22 18:01 jralls

Because it's trying to delete the file and it's in a protected directory. @SNoiraud don't you mean to close file_to_load, not delete it?

I only make an os.unlink. Do you speak about this statement ?If this is this statement, I think it's not at the good place. I wanted to delete the tmp file.

SNoiraud avatar Jan 05 '22 07:01 SNoiraud

You are deleting it in all cases; you only want to do that if you created a temp file, not if the user entered a GEDCOM file to load. Also, why is that a manual entry instead of a file chooser?

QuLogic avatar Jan 05 '22 09:01 QuLogic

It actually has both.

There is a file selector if you click the "Load a gedcom/gramps file?" button to populate the field. But you can paste in a filepath to bypass the GTK file selector.

It just does not do this conventionally, following the "label: field iconizedButton" pattern of the Preferences dialog:

EditPreferences-FamilyTree-tab-example-51.png

The GUI will need a bit refinement for language & presentation. (It would be nice if we could find Text Strings that already exist in the Weblate dictionary. So that the new feature world-wide accessibility won't be delayed by 48 translators noticing the new strings.)

emyoulation avatar Jan 05 '22 12:01 emyoulation

@emyoulation You can search the short msgids by grepping gnucash.pot. That's the input to weblate. Longer msgids are more difficult to search because msgmerge will break them up into ~70 character chunks on separate lines, but you can look for pieces of them.

jralls avatar Jan 06 '22 01:01 jralls

It actually has both.

Ah, that is good to see. There are a lot of extra labels added that seem to be empty and unused, which made it difficult to follow in code.

QuLogic avatar Jan 06 '22 01:01 QuLogic

There are a lot of extra labels added that seem to be empty and unused, which made it difficult to follow in code.

Can you explain ? All messages are necessary depending on your environment.

  • Really the first time.
  • You have already create an empty database

SNoiraud avatar Jan 06 '22 17:01 SNoiraud

For example, here is an empty label that is added to the window and then the variable is thrown away.

QuLogic avatar Feb 23 '22 06:02 QuLogic

is an empty label that is added to the window

This is to have a more readable window.

SNoiraud avatar Feb 24 '22 16:02 SNoiraud

If you want to do that, you should set a margin on the widgets, or the spacing on the vbox overall.

QuLogic avatar Feb 28 '22 00:02 QuLogic

Rebased.

Nick-Hall avatar Jul 24 '23 15:07 Nick-Hall

This still looks like a work in progress. Novice Selection The dialog still needs margins.

I'm not sure why the database path is mentioned to a new user. The default should be fine. Changing the path could create confusion.

The dialog doesn't describe what will be added to the database, or give an option to create an empty database.

After the database is created the user is given no information as to what to do next.

Nick-Hall avatar Jul 24 '23 16:07 Nick-Hall