Skip to content

GNIP 7 Django projects compatibility

Jeffrey Johnson edited this page Jun 21, 2013 · 2 revisions

GNIP 7 - Django Projects compatibility

Overview

In order to make it easy to setup a GeoNode instance with a variety of pluggable apps in an a la carte way (http://en.wikipedia.org/wiki/%C3%80_la_carte), it makes sense to align GeoNode with the Pinax project (http://pinaxproject.com/) as a way of composing sites with a standard set of re-usable django apps. It also makes sense to align work under this GNIP with new developments related to starter projects and the startproject management command in Django 1.4 (see below)

Proposed implementation here:

http://github.com/geonode/geonode-project

Proposed By

Jeffrey Johnson/Ariel Nunez

Assigned to Release

2.0

State

For Review and Comment

http://github.com/geonode/geonode-project

Motivation

Currently downstream projects add new django apps [whether purpose-built (like geonode-documents, modules in anzsm, mapstory, tsudat, risiko etc) or some of the many django pluggables that exist in the open source community] in an ad-hoc way rather than using a 'framework' for composing django applications (core settings.py, urls.py, sitemap.py etc) in an a la carte and reusable way.

Proposal

Align the GeoNodePy Module with Pinax standards for resuable apps and create several GeoNode 'starter projects' that allow an administrator to compose a geonode site from these reusable apps in addition to the core geonode.maps module.

Development under this GNIP should take note of new work in Django 1.4

https://docs.djangoproject.com/en/dev/releases/1.4/#updated-default-project-layout-and-manage-py https://docs.djangoproject.com/en/dev/releases/1.4-alpha-1/#custom-project-and-app-templates

Issues

Migrations (See GNIP 19)

There may also b some issues with app level changes needed to accomplish changes in what is now a branch. I.e. Making sure apps aren't written to assume another app is there that may not be (ie. maps in a vanilla project might can't have a link to a ratings app that is only in social project).

Testing

Adding several apps which may integrate directly against core GeoNodePy classes and modules will require extensive integration tests.

Alternatives

Do nothing. We can continue to add modules to INSTALLED_APPS in the master branch in an ad-hoc way in various forks of GeoNode.

Feedback

See discussion on the geonode-dev list here

https://groups.google.com/a/opengeo.org/group/geonode-dev/browse_thread/thread/fba0ce899888363f

Voting

+1 Jeffrey Johnson

Clone this wiki locally