Metadata-Version: 1.1
Name: django-highrise
Version: 0.1
Summary: Highrise CRM integration for Django projects.
Home-page: https://github.com/hugorodgerbrown/django-highrise
Author: Hugo Rodger-Brown
Author-email: hugo@yunojuno.com
License: Copyright (c) 2013, Hugo Rodger-Brown
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: 

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer. 
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Description: # Django-Highrise
        
        This app provides integration between Django and Highrise, which is used to
        provide CRM capabilities.
        
        Currently this supports only one operation - syncing a user to Highrise.
        
        It uses the (pyrise)[https://github.com/feedmagnet/pyrise] library.
        
        ## Why bother?
        
        Django is a great web app framework, it's not such a good CRM tool. Sometimes
        you need a little bit extra. Highrise is a simple CRM product from the guys
        behind Basecamp. It allows you to keep tabs on contacts (amongst a lot of
        other sales-related stuff), and has a great email integration feature. You can
        read more about it [here](http://highrisehq.com/signup).
        
        ## Tell me more
        
        This app simplifies the process of integrating with Highrise. It provides the
        API hooks to allow you to push django user records into Highrise, and to read
        a Highrise contact's feed (notes, emails, comments) back out. Where and when
        you use these hooks is up to you. It could be at the point of user registration,
        it could be through the Django admin site, it could even be from the command
        line, run as a batch job overnight.
        
        Under the hood django-highrise is a wrapper around pyrise, and so the objects
        returned are standard pyrise Person, Note, Email objects. This allows you to
        use them in your own code, for instance for adding additional attributes
        beyond just the core User attributes.
        
        The app does come with a single model - HighriseContact. This is used to track
        the fact that a User has been synced with Highrise, and to contain some basic
        utility attributes that make further integration easier.
        
        ## Network considerations
        
        It is very important to bear in mind that this app makes a number of calls
        across the public internet, and is therefore neither highly performant, nor
        immune to standard network connectivity issues. It should *not* therefore be
        integrated in any area of your application where an unexpected 30s network time-
        out would cause a problem. e.g. do not include this as a synchronous call in
        your registration process.
        
        When you sync a User to Highrise two network calls take place: first, a GET is
        issued to the API to fetch any possible matches, then, if none are found, a
        POST is issued to push the new contact to the API.
        If you wanted to add further attributes to the Person and save those back to
        Highrise, that would be three network calls. Caveat emptor.
        
        ## Show me some code
        
        Push a django user to Highrise
        
            >>> user = User.objects.create_user('bob', 'bob@example.com', 'password')
            >>> from django_highrise import sync_to_highrise as sync
            >>> contact = sync(user)
        
        Update a person in Highrise from django
        
            >>> contact = HighriseContact.get(user=user)
            >>> contact.fetch()  # fetches the latest Person from Highrise
            >>> contact.person.title = "CEO"
            >>> contact.person.save()
        
        Fetch the notes about a contact from Highrise
        
            >>> contact = sync(user)
            >>> len(contact.person.notes)
            2
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
