Package: django-reploc
django-replocis a project that allows you to install a Google Map on your
site to display and filter “representatives” for your site. These
representatives may be dealers/vendors for your products, your friends or
business associates, or just places you’ve been and want to advertise. I built
the application to be a dealer locator, but I realize the value in an
application like this and tried to make it as generic as possible.FeaturesUnlimited number of representatives.Unlimited number of locations _per_ representative.Automatic latitude/longitude determination for locations.  If there’s a
problem determining the coordinates to the address, you can enter them
manually.Locations can have “attributes.”  This is a way of specifying, for example,
which locations carry which lines of your products.You can decide whether you want to use JavaScript or Python to do the heavy
lifting.Users can search for locations within a radius of an address they specify.Offer your users driving directions to various representative locations.Requirementsdjango-replocrequires at least Django 1.0.  For automatic coordinate
determination,django-replocrequires thegeopylibrary.  This can be
installed usingeasy_install geopy.  The application also requires that you
have a Google Maps API key.  To get one of those, simply go tothe Google Maps
API pageand fill out the
necessary information.  Finally,django-replocrelies heavily upon jQuery
in order to operate.  I used the latest version of jQuery, which is currently
1.2.6.InstallationDownloaddjango-replocusingoneof the following methods:easy_installYou can download the package from theCheeseShopor use:easy_install django-replocto download and installdjango-reploc.pipInstalldjango-replocusing:pip install -U django-replocPackage DownloadDownload the latest.tar.gzfile from the downloads section and extract it
somewhere you’ll remember.  Usepython setup.py installto install it.Clone From Source ControlYou can get the latest copy of the source code from any of the these official
repositories:hg clone http://bitbucket.org/codekoala/django-reploc
hg clone http://django-reploc.googlecode.com/hg django-reploc
git clone http://github.com/codekoala/django-reploc.gitVerifying InstallationThe easiest way to ensure that you have successfully installed Pendulum is to
execute a command such as:python -c "import reploc; print reploc.get_version()"If that displays the version ofdjango-replocthat you tried to install,
you’re good to roll.  If you see something other than that, you probably need
to check yourPYTHONPATHenvironment variable.ConfigurationFirst of all, you must add this project to your list ofINSTALLED_APPSinsettings.py:INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    ...
    'reploc',
    ...
)Next you should add the context processor to yourTEMPLATE_CONTEXT_PROCESSORSsetting so the templates have access to the
Google Maps API key.  You don’t really need this step if you’re going to put
the API key straight into your template.TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.auth',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'reploc.context_processors.representatives',
)Define your Google Maps API key in yoursettings.pyfile:GOOGLE_MAPS_KEY = 'sdfsafasfdasfdasdf'Additionally, you may specify whether you would like the grunt work (distance
calculations and whatnot) handled by JavaScript or Python:REPLOC_USE_JS = FalseThis will probably never be used much, but it’s there just in case.  The
application defaults to using JavaScript.Runpython manage.py syncdb.  This creates a few tables in your database
that are necessary for operation.Next, you should add an entry to your mainurls.pyfile.  For example:from django.conf.urls.defaults import *

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
    (r'^locator/', include('reploc.urls')),
)Finally, you’ll probably want to copy the media files that I use indjango-reploc, unless you have some of your own.  Those files can be found
in the/media/directory of the project.  There are really only two files
that you should need to copy to your media directory:reploc/media/js/jquery-1.3.1.min.jsandreploc/media/img/ajax.gif(seehttp://code.google.com/p/django-reploc/source/browse/#hg%2Freploc%2Fmediafor the specific files).  Alternatively, you may just override the templates to
use whatever you want.  I make no guarantees that the application will still
work if you do that though ;)UsageAs soon as you have all of the configuration taken care of, simply fire up your
site (or restart it) and jump into the Django administration interface.  You
can add locations straight from the “Add Representative” page if you’d like.
When you’re done, head on over tohttp://www.yourwebsite.com/locator/(or
whatever it happens to be in your case) to see the application in action.Updating Location CoordinatesI’ve created a utility to help you update the location coordinates if you feel
the need.  They should be updated each time you save a location, but if you
want to update all of the locations in one swing, you can use the commandpython manage.py reploc_update_coords.