Gramps webapp in four steps

View: New views
11 Messages — Rating Filter:   Alert me  

Gramps webapp in four steps

by Doug Blank-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Although we haven't integrated Kathy's add and edit capabilities yet,
you can get a glimpse of what is coming of the gramps on-line, web
application in four easy steps:

1) Install Django 1.1 - this is standard in many distros. Or go to
http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
know).

2) svn update trunk and ./autogen.sh - make sure you have up-to-date stuff

3) cd src/web and run "make run"

4) Point your web browser to http://127.0.0.1:8000/

That's it. But there is no data there. To get your data "on-line" just
use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
Django. You can then browse people and families "on line". Check out
the search function. That's about it so far.

Some notes:

- this is alpha code... be careful with your good data.

- if you export to django, it will first delete the data in the django database.

- the admin id is "admin" and password is "gramps". You can see admin
interface once you log in.

- the non-logged in view can be much slower than the logged in view.
This is because we are calling gramps probably_alive function. We're
not sure if this is the speed of converting back and forth between
django and bsddb, or if probably_alive is really slow... looking into
this.

- the default django-gramps data is currently stored in
src/web/sqlite.db, but you can change src/web/settings.py to put it in
mysql, postgresql, or other places.

- the "make run" is a simple way to "python manage.py runserver" ---
this is NOT a production webserver! But it is great for development.
It automatically auto-reloads any of your files that change that it
depends on. Just start it up, edit away, and the browser is always up
to date.

- to make a new admin: set PYTHONPATH to find gramps/src and "python
manage.py createsuperuser" in src/web.

If you have suggestions or ideas, please feel free to make notes here:

http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp

We know there is a lot to do, and would gladly welcome anyone wanting
to join in! Let us know what you are interested in.

-Doug

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Duncan Lithgow-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I got that working just as you explained, it looks very good, lots of
gaps of course, but from the placeholder texts it looks like you know
what's missing.

Thanks for this great work Doug, Kathy and whoever else.

Duncan

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Jerome :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Doug,


Thank you for this great work a promising start !

1918 people
874 families
4028 events
505 notes
662 media
332 sources
235 places
13 repositories

I suppose only two primary tables (person and family) are currently
displayed with stylesheet. But it gives a good sample.

> (Django 1.0 may work.. I don't know).

I do not know if this was a Django 1.0 problem but I started to test
GRAMPS Webapp with python-Django 1.0 provided by my distribution and I get :

   File
"/var/lib/python-support/python2.6/django/contrib/contenttypes/models.py",
line 1, in <module>
     from django.db import models
   File "/var/lib/python-support/python2.6/django/db/__init__.py", line
39, in <module>
     connection = backend.DatabaseWrapper(**settings.DATABASE_OPTIONS)
TypeError: type object argument after ** must be a mapping, not str

No problem with Django 1.1.1 :)

> We know there is a lot to do, and would gladly welcome anyone wanting
> to join in! Let us know what you are interested in.

I should be able to test it (performance, translation) maybe some
simples patchs (if need !) ...


Jérôme


Doug Blank a écrit :

> Although we haven't integrated Kathy's add and edit capabilities yet,
> you can get a glimpse of what is coming of the gramps on-line, web
> application in four easy steps:
>
> 1) Install Django 1.1 - this is standard in many distros. Or go to
> http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
> know).
>
> 2) svn update trunk and ./autogen.sh - make sure you have up-to-date stuff
>
> 3) cd src/web and run "make run"
>
> 4) Point your web browser to http://127.0.0.1:8000/
>
> That's it. But there is no data there. To get your data "on-line" just
> use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
> Django. You can then browse people and families "on line". Check out
> the search function. That's about it so far.
>
> Some notes:
>
> - this is alpha code... be careful with your good data.
>
> - if you export to django, it will first delete the data in the django database.
>
> - the admin id is "admin" and password is "gramps". You can see admin
> interface once you log in.
>
> - the non-logged in view can be much slower than the logged in view.
> This is because we are calling gramps probably_alive function. We're
> not sure if this is the speed of converting back and forth between
> django and bsddb, or if probably_alive is really slow... looking into
> this.
>
> - the default django-gramps data is currently stored in
> src/web/sqlite.db, but you can change src/web/settings.py to put it in
> mysql, postgresql, or other places.
>
> - the "make run" is a simple way to "python manage.py runserver" ---
> this is NOT a production webserver! But it is great for development.
> It automatically auto-reloads any of your files that change that it
> depends on. Just start it up, edit away, and the browser is always up
> to date.
>
> - to make a new admin: set PYTHONPATH to find gramps/src and "python
> manage.py createsuperuser" in src/web.
>
> If you have suggestions or ideas, please feel free to make notes here:
>
> http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp
>
> We know there is a lot to do, and would gladly welcome anyone wanting
> to join in! Let us know what you are interested in.
>
> -Doug
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Gramps-devel mailing list
> Gramps-devel@...
> https://lists.sourceforge.net/lists/listinfo/gramps-devel
>


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Jerome :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Environment:

Request Method: GET
Request URL: http://127.0.0.01:8000/person/a898fbc300e62f4458e/
Django Version: 1.1.1
Python Version: 2.6.2
Installed Applications:
['django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.sites',
  'django.contrib.admin',
  'web.grampsdb']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware')


Template error:
In template
/home/romjerome/trunk/src/data/templates/view_person_detail.html, error
at line 72
    Caught an exception while rendering: Note matching query does not exist.
    62 :     <li class="ui-corner-top ui-state-default"><a
href="#tab-internet">Internet</a></li>


    63 :     <li class="ui-corner-top ui-state-default"><a
href="#tab-association">Associations</a></li>


    64 :     <li class="ui-corner-top ui-state-default"><a
href="#tab-lds">LDS</a></li>


    65 :     <li class="ui-corner-top ui-state-default"><a
href="#tab-references">References</a></li>


    66 :   </ul>


    67 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom"
id="tab-events">


    68 :     <!-- Events -->


    69 :     {{ person|person_event_table:user|safe }}


    70 :   </div>


    71 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom
ui-tabs-hide" id="tab-names">


    72 :      {{ person|person_name_table:user|safe }}


    73 :   </div>


    74 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom
ui-tabs-hide" id="tab-sources">


    75 :     {{ person|person_source_table:user|safe }}


    76 :   </div>


    77 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom
ui-tabs-hide" id="tab-attributes">


    78 :     {{ person|person_attribute_table:user|safe }}


    79 :   </div>


    80 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom
ui-tabs-hide" id="tab-addresses">


    81 :     {{ person|person_address_table:user|safe }}


    82 :   </div>


Traceback:
File
"/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in
get_response
   92.                 response = callback(request, *callback_args,
**callback_kwargs)
File "/home/romjerome/trunk/src/web/grampsdb/views.py" in view_detail
   103.     return render_to_response(view_template, context)
File
"/usr/local/lib/python2.6/dist-packages/django/shortcuts/__init__.py" in
render_to_response
   20.     return HttpResponse(loader.render_to_string(*args, **kwargs),
**httpresponse_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py"
in render_to_string
   108.     return t.render(context_instance)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   178.         return self.nodelist.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   779.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py"
in render_node
   71.             result = node.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/loader_tags.py"
in render
   97.         return compiled_parent.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   178.         return self.nodelist.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   779.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py"
in render_node
   71.             result = node.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/loader_tags.py"
in render
   97.         return compiled_parent.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   178.         return self.nodelist.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   779.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py"
in render_node
   71.             result = node.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/loader_tags.py"
in render
   24.         result = self.nodelist.render(context)
File
"/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in
render
   779.                 bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.6/dist-packages/django/template/debug.py"
in render_node
   81.             raise wrapped

Exception Type: TemplateSyntaxError at /person/a898fbc300e62f4458e/
Exception Value: Caught an exception while rendering: Note matching
query does not exist.


I cannot provide a patch yet... but I confirm that to remove line 72 on
trunk/src/data/templates/view_person_detail.html will display
person_detail. I suppose we need to write a query for note and I know
that webapp is currently far away to be stable or finished (unstable
status).

It was the first time I get Django debug page after testing during a
week ! It was funny, for some secondes I thought I was walking throught
Gramps program (with Gtk) ! :)

First impression, is that GeneWeb users might try this webapp ...
I have a Geneanet account and an online family tree (powered by
GeneWeb). It is a great help for finding alive relatives.
But admin or edit into GeneWeb are not "so easy".
This webapp might be a good alternative.


Jérôme



Jérôme a écrit :

> Doug,
>
>
> Thank you for this great work a promising start !
>
> 1918 people
> 874 families
> 4028 events
> 505 notes
> 662 media
> 332 sources
> 235 places
> 13 repositories
>
> I suppose only two primary tables (person and family) are currently
> displayed with stylesheet. But it gives a good sample.
>
>> (Django 1.0 may work.. I don't know).
>
> I do not know if this was a Django 1.0 problem but I started to test
> GRAMPS Webapp with python-Django 1.0 provided by my distribution and I
> get :
>
>   File
> "/var/lib/python-support/python2.6/django/contrib/contenttypes/models.py",
> line 1, in <module>
>     from django.db import models
>   File "/var/lib/python-support/python2.6/django/db/__init__.py", line
> 39, in <module>
>     connection = backend.DatabaseWrapper(**settings.DATABASE_OPTIONS)
> TypeError: type object argument after ** must be a mapping, not str
>
> No problem with Django 1.1.1 :)
>
>> We know there is a lot to do, and would gladly welcome anyone wanting
>> to join in! Let us know what you are interested in.
>
> I should be able to test it (performance, translation) maybe some
> simples patchs (if need !) ...
>
>
> Jérôme
>
>
> Doug Blank a écrit :
>> Although we haven't integrated Kathy's add and edit capabilities yet,
>> you can get a glimpse of what is coming of the gramps on-line, web
>> application in four easy steps:
>>
>> 1) Install Django 1.1 - this is standard in many distros. Or go to
>> http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
>> know).
>>
>> 2) svn update trunk and ./autogen.sh - make sure you have up-to-date
>> stuff
>>
>> 3) cd src/web and run "make run"
>>
>> 4) Point your web browser to http://127.0.0.1:8000/
>>
>> That's it. But there is no data there. To get your data "on-line" just
>> use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
>> Django. You can then browse people and families "on line". Check out
>> the search function. That's about it so far.
>>
>> Some notes:
>>
>> - this is alpha code... be careful with your good data.
>>
>> - if you export to django, it will first delete the data in the django
>> database.
>>
>> - the admin id is "admin" and password is "gramps". You can see admin
>> interface once you log in.
>>
>> - the non-logged in view can be much slower than the logged in view.
>> This is because we are calling gramps probably_alive function. We're
>> not sure if this is the speed of converting back and forth between
>> django and bsddb, or if probably_alive is really slow... looking into
>> this.
>>
>> - the default django-gramps data is currently stored in
>> src/web/sqlite.db, but you can change src/web/settings.py to put it in
>> mysql, postgresql, or other places.
>>
>> - the "make run" is a simple way to "python manage.py runserver" ---
>> this is NOT a production webserver! But it is great for development.
>> It automatically auto-reloads any of your files that change that it
>> depends on. Just start it up, edit away, and the browser is always up
>> to date.
>>
>> - to make a new admin: set PYTHONPATH to find gramps/src and "python
>> manage.py createsuperuser" in src/web.
>>
>> If you have suggestions or ideas, please feel free to make notes here:
>>
>> http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp 
>>
>>
>> We know there is a lot to do, and would gladly welcome anyone wanting
>> to join in! Let us know what you are interested in.
>>
>> -Doug
>>
>> ------------------------------------------------------------------------------
>>
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day trial. Simplify your report design, integration and deployment
>> - and focus on what you do best, core application coding. Discover
>> what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> Gramps-devel mailing list
>> Gramps-devel@...
>> https://lists.sourceforge.net/lists/listinfo/gramps-devel
>>
>
>


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Doug Blank-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jérôme,

Thanks for the testing and feedback! The bug you discovered:

>   71 :   <div class="ui-tabs-panel ui-widget-content ui-corner-bottom
> ui-tabs-hide" id="tab-names">
>   72 :      {{ person|person_name_table:user|safe }}
>   73 :   </div>

is probably not enough error checking (perhaps not checking to see if
something is not None first). If you'd like to explore this bug, let
me use this opportunity to show you how you'd go about tracking it
down.

First, let me explain this line: {{ person|person_name_table:user|safe
}}. This says "pass the person object through a filter called
'person_name_table' with a second parameter of 'user', and then pass
that through the 'safe' filter (which makes it possible for filters to
generate HTML). These custom filters are registered in
src/web/grampsdb/templatetags/my_tags.py. The actual code resides in
src/web/utils.py and looks like:

def person_name_table(person, user):
    ...

In this case, person is a Django Person model instance, and user is
the User model (so we can check their permissions). Models are defined
in web/grampsdb/models.py.

So, if you wanted to track this, you can use print statements, or even
pdb in the src/web/utils.py person_name_table code.

> It was the first time I get Django debug page after testing during a week !
> It was funny, for some secondes I thought I was walking throught Gramps
> program (with Gtk) ! :)

I'm glad you find this to be true! We decided to replicate the gramps
gtk UI for a couple of reasons. One is that it is already thought-out,
and second it makes it so that we don't have two different ways of
doing things (and just one manual). A related point is that we haven't
spent any time on look and feel yet... we are just using existing CSS.
If someone knew CSS, it would be great to have a theme that matched
GTK and our CSS id/categories.

> First impression, is that GeneWeb users might try this webapp ...
> I have a Geneanet account and an online family tree (powered by GeneWeb). It
> is a great help for finding alive relatives.
> But admin or edit into GeneWeb are not "so easy".
> This webapp might be a good alternative.

We hope it is a good alternative for many kinds of users :)

We have translation on our list to do, so if you wanted to look into
how Django handles it, that would be quite useful. Thanks again,

-Doug

>
> Jérôme

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Doug Blank-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Gramps webapp status update:

1) We collected votes from users and developers (and passerbys), and
considered all of the name suggestions. We finally decided on "Gramps
Connect" as being the best. (We still have to correct the capitalized
GRAMPS throughout the code). It isn't the most flashy name, but it was
the best considering all of the constraints (short, meaningful,
non-confusing with other parts of gramps, etc).

2) For demonstration purposes, we have the DNS
http://gramps-connect.org and it is up and running. It is running
trunk, with some custom changes to work around
http://www.gramps-project.org/bugs/view.php?id=3365. (I'm working on
patches for the issue---more on that later.) Same login/password as
before (admin/gramps).

3) If anyone would like to begin to learn Django by, say, claiming a
page view (like Repositories) or a Tab under a page (like Media ->
Sources, please do! This could involve just HTML editing (see
src/data/templates/view_person_detail.html for example).

4) We still have many big design decisions to make. For example, how
will we handle private data? Gramps core has a proxy that
automatically sanitizes the data so developers don't have to think
about it. Can we do something similar in Django? If you would like to
work on part of this, just claim it on the GEP page:

http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp#Roadmap

5) We can now run some Gramps reports from the web using
src/web/djangodb.py. This code is the bare necessities to be able to
provide the interface to get data for reports. We still need an
interface to run the reports (will the browser be busy while the
reports run? Or will it run in background, and appear in a list of
reports available for download for the user?)

6) Need more brainstorming! There were many good ideas on the
gramps-users list. But some things we can do easily. For example, now
you can run a web browser inside Gramps, and could bring up a
gramps-connect site. It would be handy (and fairly easy) to have a
"Download Person" link to add to local gramps gtk. Or to have an RSS
feed of changes on the website. Wouldn't be cool to sync local and
website by clicking a button?

We can take this opportunity to really think outside the box and bring
genealogy into the 21st century. For example, Kathy is very interested
in incorporating "social networking" ideas into genealogy... to better
keep the living members of the tree informed, and collaborate.

-Doug

On Tue, Nov 10, 2009 at 9:54 AM, Doug Blank <doug.blank@...> wrote:

> Although we haven't integrated Kathy's add and edit capabilities yet,
> you can get a glimpse of what is coming of the gramps on-line, web
> application in four easy steps:
>
> 1) Install Django 1.1 - this is standard in many distros. Or go to
> http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
> know).
>
> 2) svn update trunk and ./autogen.sh - make sure you have up-to-date stuff
>
> 3) cd src/web and run "make run"
>
> 4) Point your web browser to http://127.0.0.1:8000/
>
> That's it. But there is no data there. To get your data "on-line" just
> use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
> Django. You can then browse people and families "on line". Check out
> the search function. That's about it so far.
>
> Some notes:
>
> - this is alpha code... be careful with your good data.
>
> - if you export to django, it will first delete the data in the django database.
>
> - the admin id is "admin" and password is "gramps". You can see admin
> interface once you log in.
>
> - the non-logged in view can be much slower than the logged in view.
> This is because we are calling gramps probably_alive function. We're
> not sure if this is the speed of converting back and forth between
> django and bsddb, or if probably_alive is really slow... looking into
> this.
>
> - the default django-gramps data is currently stored in
> src/web/sqlite.db, but you can change src/web/settings.py to put it in
> mysql, postgresql, or other places.
>
> - the "make run" is a simple way to "python manage.py runserver" ---
> this is NOT a production webserver! But it is great for development.
> It automatically auto-reloads any of your files that change that it
> depends on. Just start it up, edit away, and the browser is always up
> to date.
>
> - to make a new admin: set PYTHONPATH to find gramps/src and "python
> manage.py createsuperuser" in src/web.
>
> If you have suggestions or ideas, please feel free to make notes here:
>
> http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp
>
> We know there is a lot to do, and would gladly welcome anyone wanting
> to join in! Let us know what you are interested in.
>
> -Doug
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Benny Malengier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



2009/11/17 Doug Blank <doug.blank@...>
Gramps webapp status update:

1) We collected votes from users and developers (and passerbys), and
considered all of the name suggestions. We finally decided on "Gramps
Connect" as being the best. (We still have to correct the capitalized
GRAMPS throughout the code). It isn't the most flashy name, but it was
the best considering all of the constraints (short, meaningful,
non-confusing with other parts of gramps, etc).


I created a category gramps-connect for bugs/tickets in feature requests and trunk
 
2) For demonstration purposes, we have the DNS
http://gramps-connect.org and it is up and running. It is running
trunk, with some custom changes to work around
http://www.gramps-project.org/bugs/view.php?id=3365. (I'm working on
patches for the issue---more on that later.) Same login/password as
before (admin/gramps).
 
3) If anyone would like to begin to learn Django by, say, claiming a
page view (like Repositories) or a Tab under a page (like Media ->
Sources, please do! This could involve just HTML editing (see
src/data/templates/view_person_detail.html for example).

4) We still have many big design decisions to make. For example, how
will we handle private data? Gramps core has a proxy that
automatically sanitizes the data so developers don't have to think
about it. Can we do something similar in Django? If you would like to
work on part of this, just claim it on the GEP page:

http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp#Roadmap

5) We can now run some Gramps reports from the web using
src/web/djangodb.py. This code is the bare necessities to be able to
provide the interface to get data for reports. We still need an
interface to run the reports (will the browser be busy while the
reports run? Or will it run in background, and appear in a list of
reports available for download for the user?)

6) Need more brainstorming! There were many good ideas on the
gramps-users list. But some things we can do easily. For example, now
you can run a web browser inside Gramps, and could bring up a
gramps-connect site. It would be handy (and fairly easy) to have a
"Download Person" link to add to local gramps gtk. Or to have an RSS
feed of changes on the website. Wouldn't be cool to sync local and
website by clicking a button?

We can take this opportunity to really think outside the box and bring
genealogy into the 21st century. For example, Kathy is very interested
in incorporating "social networking" ideas into genealogy... to better
keep the living members of the tree informed, and collaborate.


All very interesting. If only I could clone myself :-)
As with all products, you will have to work to a 0.1 release, of which you now decide what should be in it, and then work towards that. It is the best way to obtain new developers.

It would be nice to release 3.2 in the beginning of 2010, and at the same time announce a 0.1 release of gramps-connect that can be used to 'browse' your data completely. For that, you would need to make sure the more experimental pieces can be switched off with a simple switch in the config.

Also look now into the problem of internationalization of django websites. GRAMPS is very international, with commercial genea apps most prolific in the anglosaxon world, so you need to cater to that public from the beginning.

Benny
 
-Doug

On Tue, Nov 10, 2009 at 9:54 AM, Doug Blank <doug.blank@...> wrote:
> Although we haven't integrated Kathy's add and edit capabilities yet,
> you can get a glimpse of what is coming of the gramps on-line, web
> application in four easy steps:
>
> 1) Install Django 1.1 - this is standard in many distros. Or go to
> http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
> know).
>
> 2) svn update trunk and ./autogen.sh - make sure you have up-to-date stuff
>
> 3) cd src/web and run "make run"
>
> 4) Point your web browser to http://127.0.0.1:8000/
>
> That's it. But there is no data there. To get your data "on-line" just
> use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
> Django. You can then browse people and families "on line". Check out
> the search function. That's about it so far.
>
> Some notes:
>
> - this is alpha code... be careful with your good data.
>
> - if you export to django, it will first delete the data in the django database.
>
> - the admin id is "admin" and password is "gramps". You can see admin
> interface once you log in.
>
> - the non-logged in view can be much slower than the logged in view.
> This is because we are calling gramps probably_alive function. We're
> not sure if this is the speed of converting back and forth between
> django and bsddb, or if probably_alive is really slow... looking into
> this.
>
> - the default django-gramps data is currently stored in
> src/web/sqlite.db, but you can change src/web/settings.py to put it in
> mysql, postgresql, or other places.
>
> - the "make run" is a simple way to "python manage.py runserver" ---
> this is NOT a production webserver! But it is great for development.
> It automatically auto-reloads any of your files that change that it
> depends on. Just start it up, edit away, and the browser is always up
> to date.
>
> - to make a new admin: set PYTHONPATH to find gramps/src and "python
> manage.py createsuperuser" in src/web.
>
> If you have suggestions or ideas, please feel free to make notes here:
>
> http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp
>
> We know there is a lot to do, and would gladly welcome anyone wanting
> to join in! Let us know what you are interested in.
>
> -Doug
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Doug Blank-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Nov 17, 2009 at 7:51 AM, Benny Malengier
<benny.malengier@...> wrote:

>
>
> 2009/11/17 Doug Blank <doug.blank@...>
>>
>> Gramps webapp status update:
>>
>> 1) We collected votes from users and developers (and passerbys), and
>> considered all of the name suggestions. We finally decided on "Gramps
>> Connect" as being the best. (We still have to correct the capitalized
>> GRAMPS throughout the code). It isn't the most flashy name, but it was
>> the best considering all of the constraints (short, meaningful,
>> non-confusing with other parts of gramps, etc).
>>
>
> I created a category gramps-connect for bugs/tickets in feature requests and
> trunk

Thanks! If people used that to list feature requests, bug issues, etc.
that would be great. If someone wanted to go through the user and dev
mailing list and enter ideas there, that would be quite useful.

>>
>> 2) For demonstration purposes, we have the DNS
>> http://gramps-connect.org and it is up and running. It is running
>> trunk, with some custom changes to work around
>> http://www.gramps-project.org/bugs/view.php?id=3365. (I'm working on
>> patches for the issue---more on that later.) Same login/password as
>> before (admin/gramps).
>>
>>
>> 3) If anyone would like to begin to learn Django by, say, claiming a
>> page view (like Repositories) or a Tab under a page (like Media ->
>> Sources, please do! This could involve just HTML editing (see
>> src/data/templates/view_person_detail.html for example).
>>
>> 4) We still have many big design decisions to make. For example, how
>> will we handle private data? Gramps core has a proxy that
>> automatically sanitizes the data so developers don't have to think
>> about it. Can we do something similar in Django? If you would like to
>> work on part of this, just claim it on the GEP page:
>>
>>
>> http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp#Roadmap
>>
>> 5) We can now run some Gramps reports from the web using
>> src/web/djangodb.py. This code is the bare necessities to be able to
>> provide the interface to get data for reports. We still need an
>> interface to run the reports (will the browser be busy while the
>> reports run? Or will it run in background, and appear in a list of
>> reports available for download for the user?)
>>
>> 6) Need more brainstorming! There were many good ideas on the
>> gramps-users list. But some things we can do easily. For example, now
>> you can run a web browser inside Gramps, and could bring up a
>> gramps-connect site. It would be handy (and fairly easy) to have a
>> "Download Person" link to add to local gramps gtk. Or to have an RSS
>> feed of changes on the website. Wouldn't be cool to sync local and
>> website by clicking a button?
>>
>> We can take this opportunity to really think outside the box and bring
>> genealogy into the 21st century. For example, Kathy is very interested
>> in incorporating "social networking" ideas into genealogy... to better
>> keep the living members of the tree informed, and collaborate.
>>
>
> All very interesting. If only I could clone myself :-)

Me too!

> As with all products, you will have to work to a 0.1 release, of which you
> now decide what should be in it, and then work towards that. It is the best
> way to obtain new developers.

Yes, great idea. We weren't sure how much we could do by 3.2, but I
think it is more clear now.

> It would be nice to release 3.2 in the beginning of 2010, and at the same
> time announce a 0.1 release of gramps-connect that can be used to 'browse'
> your data completely. For that, you would need to make sure the more
> experimental pieces can be switched off with a simple switch in the config.

That is an excellent goal: browse all of the data (in two modes:
logged in (all data) and non-logged in (protect private data)).

> Also look now into the problem of internationalization of django websites.
> GRAMPS is very international, with commercial genea apps most prolific in
> the anglosaxon world, so you need to cater to that public from the
> beginning.

Yes, that is one that I hope someone will volunteer to take charge of,
and we should aim to have it part of 0.1.

I think our path to March 2010 is fairly well defined now. Thanks again!

-Doug

> Benny
>
>>
>> -Doug
>>
>> On Tue, Nov 10, 2009 at 9:54 AM, Doug Blank <doug.blank@...> wrote:
>> > Although we haven't integrated Kathy's add and edit capabilities yet,
>> > you can get a glimpse of what is coming of the gramps on-line, web
>> > application in four easy steps:
>> >
>> > 1) Install Django 1.1 - this is standard in many distros. Or go to
>> > http://www.djangoproject.com/download/ (Django 1.0 may work.. I don't
>> > know).
>> >
>> > 2) svn update trunk and ./autogen.sh - make sure you have up-to-date
>> > stuff
>> >
>> > 3) cd src/web and run "make run"
>> >
>> > 4) Point your web browser to http://127.0.0.1:8000/
>> >
>> > That's it. But there is no data there. To get your data "on-line" just
>> > use the Django Exporter inside regular gramps gtk:  Menu -> Export ->
>> > Django. You can then browse people and families "on line". Check out
>> > the search function. That's about it so far.
>> >
>> > Some notes:
>> >
>> > - this is alpha code... be careful with your good data.
>> >
>> > - if you export to django, it will first delete the data in the django
>> > database.
>> >
>> > - the admin id is "admin" and password is "gramps". You can see admin
>> > interface once you log in.
>> >
>> > - the non-logged in view can be much slower than the logged in view.
>> > This is because we are calling gramps probably_alive function. We're
>> > not sure if this is the speed of converting back and forth between
>> > django and bsddb, or if probably_alive is really slow... looking into
>> > this.
>> >
>> > - the default django-gramps data is currently stored in
>> > src/web/sqlite.db, but you can change src/web/settings.py to put it in
>> > mysql, postgresql, or other places.
>> >
>> > - the "make run" is a simple way to "python manage.py runserver" ---
>> > this is NOT a production webserver! But it is great for development.
>> > It automatically auto-reloads any of your files that change that it
>> > depends on. Just start it up, edit away, and the browser is always up
>> > to date.
>> >
>> > - to make a new admin: set PYTHONPATH to find gramps/src and "python
>> > manage.py createsuperuser" in src/web.
>> >
>> > If you have suggestions or ideas, please feel free to make notes here:
>> >
>> >
>> > http://www.gramps-project.org/wiki/index.php?title=GEPS_013:_GRAMPS_Webapp
>> >
>> > We know there is a lot to do, and would gladly welcome anyone wanting
>> > to join in! Let us know what you are interested in.
>> >
>> > -Doug
>> >
>>
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and focus
>> on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> Gramps-devel mailing list
>> Gramps-devel@...
>> https://lists.sourceforge.net/lists/listinfo/gramps-devel
>
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Parent Message unknown Re: Gramps webapp in four steps

by Jerome :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Doug,

> So, if you wanted to track this, you can use print
> statements, or even
> pdb in the src/web/utils.py person_name_table code.

get_person_from_handle: a898fbc300e62f4458e
name object_id= 731
sourceq= False
note_refs= []
get_person_from_handle: a898fbc300e62f4458e
name object_id= 732
sourceq= True
note_refs= [<NoteRef: NoteRef to Note: N0197>]

The problem is that I do not know if this is related to more than one name, source on name or "also know as" name type !

Maybe I should try to add tests to not print all info if I get crash, or it occurs just after passing note_refs and I should look at note= "".

The objects are presents on tables (admin access). I added a screenshot of the data infos into gramps program.


Jérôme


--- En date de : Mar 17.11.09, Doug Blank <doug.blank@...> a écrit :

> De: Doug Blank <doug.blank@...>
> Objet: Re: [Gramps-devel] Gramps webapp in four steps
> À: romjerome@...
> Cc: "Gramps Development List" <gramps-devel@...>
> Date: Mardi 17 Novembre 2009, 12h35
> Jérôme,
>
> Thanks for the testing and feedback! The bug you
> discovered:
>
> >   71 :   <div class="ui-tabs-panel
> ui-widget-content ui-corner-bottom
> > ui-tabs-hide" id="tab-names">
> >   72 :      {{ person|person_name_table:user|safe
> }}
> >   73 :   </div>
>
> is probably not enough error checking (perhaps not checking
> to see if
> something is not None first). If you'd like to explore this
> bug, let
> me use this opportunity to show you how you'd go about
> tracking it
> down.
>
> First, let me explain this line: {{
> person|person_name_table:user|safe
> }}. This says "pass the person object through a filter
> called
> 'person_name_table' with a second parameter of 'user', and
> then pass
> that through the 'safe' filter (which makes it possible for
> filters to
> generate HTML). These custom filters are registered in
> src/web/grampsdb/templatetags/my_tags.py. The actual code
> resides in
> src/web/utils.py and looks like:
>
> def person_name_table(person, user):
>     ...
>
> In this case, person is a Django Person model instance, and
> user is
> the User model (so we can check their permissions). Models
> are defined
> in web/grampsdb/models.py.
>
> So, if you wanted to track this, you can use print
> statements, or even
> pdb in the src/web/utils.py person_name_table code.
>
> > It was the first time I get Django debug page after
> testing during a week !
> > It was funny, for some secondes I thought I was
> walking throught Gramps
> > program (with Gtk) ! :)
>
> I'm glad you find this to be true! We decided to replicate
> the gramps
> gtk UI for a couple of reasons. One is that it is already
> thought-out,
> and second it makes it so that we don't have two different
> ways of
> doing things (and just one manual). A related point is that
> we haven't
> spent any time on look and feel yet... we are just using
> existing CSS.
> If someone knew CSS, it would be great to have a theme that
> matched
> GTK and our CSS id/categories.
>
> > First impression, is that GeneWeb users might try this
> webapp ...
> > I have a Geneanet account and an online family tree
> (powered by GeneWeb). It
> > is a great help for finding alive relatives.
> > But admin or edit into GeneWeb are not "so easy".
> > This webapp might be a good alternative.
>
> We hope it is a good alternative for many kinds of users
> :)
>
> We have translation on our list to do, so if you wanted to
> look into
> how Django handles it, that would be quite useful. Thanks
> again,
>
> -Doug
>
> >
> > Jérôme
>



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Capture_gramps.png (8K) Download Attachment

Re: Gramps webapp in four steps

by Jerome :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Doug,

> We have translation on our list to do, so if you wanted to
> look into how Django handles it, that would be quite useful. Thanks again,

I have looked at Django documentation.
As most strings are already translated (program, reports), I suppose we do not need (yet) to retrieve translation strings for a having localized version !
Maybe a change on template code :
http://docs.djangoproject.com/en/dev/topics/i18n/#in-template-code
I will try this.



Jérôme

--- En date de : Mar 17.11.09, Doug Blank <doug.blank@...> a écrit :

> De: Doug Blank <doug.blank@...>
> Objet: Re: [Gramps-devel] Gramps webapp in four steps
> À: romjerome@...
> Cc: "Gramps Development List" <gramps-devel@...>
> Date: Mardi 17 Novembre 2009, 12h35
> Jérôme,
>
> Thanks for the testing and feedback! The bug you
> discovered:
>
> >   71 :   <div class="ui-tabs-panel
> ui-widget-content ui-corner-bottom
> > ui-tabs-hide" id="tab-names">
> >   72 :      {{ person|person_name_table:user|safe
> }}
> >   73 :   </div>
>
> is probably not enough error checking (perhaps not checking
> to see if
> something is not None first). If you'd like to explore this
> bug, let
> me use this opportunity to show you how you'd go about
> tracking it
> down.
>
> First, let me explain this line: {{
> person|person_name_table:user|safe
> }}. This says "pass the person object through a filter
> called
> 'person_name_table' with a second parameter of 'user', and
> then pass
> that through the 'safe' filter (which makes it possible for
> filters to
> generate HTML). These custom filters are registered in
> src/web/grampsdb/templatetags/my_tags.py. The actual code
> resides in
> src/web/utils.py and looks like:
>
> def person_name_table(person, user):
>     ...
>
> In this case, person is a Django Person model instance, and
> user is
> the User model (so we can check their permissions). Models
> are defined
> in web/grampsdb/models.py.
>
> So, if you wanted to track this, you can use print
> statements, or even
> pdb in the src/web/utils.py person_name_table code.
>
> > It was the first time I get Django debug page after
> testing during a week !
> > It was funny, for some secondes I thought I was
> walking throught Gramps
> > program (with Gtk) ! :)
>
> I'm glad you find this to be true! We decided to replicate
> the gramps
> gtk UI for a couple of reasons. One is that it is already
> thought-out,
> and second it makes it so that we don't have two different
> ways of
> doing things (and just one manual). A related point is that
> we haven't
> spent any time on look and feel yet... we are just using
> existing CSS.
> If someone knew CSS, it would be great to have a theme that
> matched
> GTK and our CSS id/categories.
>
> > First impression, is that GeneWeb users might try this
> webapp ...
> > I have a Geneanet account and an online family tree
> (powered by GeneWeb). It
> > is a great help for finding alive relatives.
> > But admin or edit into GeneWeb are not "so easy".
> > This webapp might be a good alternative.
>
> We hope it is a good alternative for many kinds of users
> :)
>
> We have translation on our list to do, so if you wanted to
> look into
> how Django handles it, that would be quite useful. Thanks
> again,
>
> -Doug
>
> >
> > Jérôme
>


     

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel

Re: Gramps webapp in four steps

by Doug Blank-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Nov 19, 2009 at 5:58 AM, jerome <romjerome@...> wrote:

> Doug,
>
>> We have translation on our list to do, so if you wanted to
>> look into how Django handles it, that would be quite useful. Thanks again,
>
> I have looked at Django documentation.
> As most strings are already translated (program, reports), I suppose we do not need (yet) to retrieve translation strings for a having localized version !
> Maybe a change on template code :
> http://docs.djangoproject.com/en/dev/topics/i18n/#in-template-code
> I will try this.

Great! It looks like the rest of that page has details on getting the
messages, compiling, and using. We'll need to do all of that, and have
some way in the interface for choosing which language, and then
finally storing that with the logged-in user's preferences.

-Doug

>
>
> Jérôme
>
> --- En date de : Mar 17.11.09, Doug Blank <doug.blank@...> a écrit :
>
>> De: Doug Blank <doug.blank@...>
>> Objet: Re: [Gramps-devel] Gramps webapp in four steps
>> À: romjerome@...
>> Cc: "Gramps Development List" <gramps-devel@...>
>> Date: Mardi 17 Novembre 2009, 12h35
>> Jérôme,
>>
>> Thanks for the testing and feedback! The bug you
>> discovered:
>>
>> >   71 :   <div class="ui-tabs-panel
>> ui-widget-content ui-corner-bottom
>> > ui-tabs-hide" id="tab-names">
>> >   72 :      {{ person|person_name_table:user|safe
>> }}
>> >   73 :   </div>
>>
>> is probably not enough error checking (perhaps not checking
>> to see if
>> something is not None first). If you'd like to explore this
>> bug, let
>> me use this opportunity to show you how you'd go about
>> tracking it
>> down.
>>
>> First, let me explain this line: {{
>> person|person_name_table:user|safe
>> }}. This says "pass the person object through a filter
>> called
>> 'person_name_table' with a second parameter of 'user', and
>> then pass
>> that through the 'safe' filter (which makes it possible for
>> filters to
>> generate HTML). These custom filters are registered in
>> src/web/grampsdb/templatetags/my_tags.py. The actual code
>> resides in
>> src/web/utils.py and looks like:
>>
>> def person_name_table(person, user):
>>     ...
>>
>> In this case, person is a Django Person model instance, and
>> user is
>> the User model (so we can check their permissions). Models
>> are defined
>> in web/grampsdb/models.py.
>>
>> So, if you wanted to track this, you can use print
>> statements, or even
>> pdb in the src/web/utils.py person_name_table code.
>>
>> > It was the first time I get Django debug page after
>> testing during a week !
>> > It was funny, for some secondes I thought I was
>> walking throught Gramps
>> > program (with Gtk) ! :)
>>
>> I'm glad you find this to be true! We decided to replicate
>> the gramps
>> gtk UI for a couple of reasons. One is that it is already
>> thought-out,
>> and second it makes it so that we don't have two different
>> ways of
>> doing things (and just one manual). A related point is that
>> we haven't
>> spent any time on look and feel yet... we are just using
>> existing CSS.
>> If someone knew CSS, it would be great to have a theme that
>> matched
>> GTK and our CSS id/categories.
>>
>> > First impression, is that GeneWeb users might try this
>> webapp ...
>> > I have a Geneanet account and an online family tree
>> (powered by GeneWeb). It
>> > is a great help for finding alive relatives.
>> > But admin or edit into GeneWeb are not "so easy".
>> > This webapp might be a good alternative.
>>
>> We hope it is a good alternative for many kinds of users
>> :)
>>
>> We have translation on our list to do, so if you wanted to
>> look into
>> how Django handles it, that would be quite useful. Thanks
>> again,
>>
>> -Doug
>>
>> >
>> > Jérôme
>>
>
>
>
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Gramps-devel mailing list
Gramps-devel@...
https://lists.sourceforge.net/lists/listinfo/gramps-devel