Metadata-Version: 1.0
Name: django-kamasutra
Version: 0.2.8
Summary: A application to position objects anywhere on a page.
Home-page: https://github.com/callowayproject/django-kamasutra
Author: Jose Soares
Author-email: josefsoares@gmail.com
License: UNKNOWN
Description: |BUILD|_
        
        .. |BUILD| image::
           https://secure.travis-ci.org/callowayproject/django-kamasutra.png?branch=master
        .. _BUILD: http://travis-ci.org/#!/callowayproject/django-kamasutra
        
        
        Backwards incompatible changes made in version 0.2.2
        ====================================================
        
        **COMBINE_STRING** is now used to build the template list when using
        ``PositionContent.render`` or ``render_content`` template tag.
        
        Before:
        
        /positions/my_position/<app>__<model>.html
        
        New:
        
        /positions/my_position/<app> **<combine_string>** <model>.html
        
        
        Installation
        ============
        
        Using PIP::
        
        	pip install django-kamasutra
        
        or download the app `here <http://pypi.python.org/pypi/django-kamasutra/>`_ ::
        
        	python setup.py install
        
        
        Add **positions** to your settings **INSTALLED_APPS**::
        
            INSTALLED_APPS = (
                ...
                'positions',
                ...
            )
        
        Add **positions** to your URLS::
        
            import positions.urls
        
            urlpatterns += patterns('',
                url(r'^positions/', include(positions.urls)),
            )
        
        Run syncdb::
        
            >>> ./manage.py syncdb
        
        
        Getting Started
        ===============
        
        Creating your first position
        ----------------------------
        
        The minimum required arguments to create a positions is a `name`, which is a `SlugField`.
        
        ::
        
            from positions.models import Position
        
            position = Position.objects.create(name="MyPosition")
        
        
        Add something to your Position
        ------------------------------
        
        The position manager has a `add_object` method that takes, at minimum, 2 arguments, `position` and `obj`
        
        * **position** should be a `positions.Position` instance
        * **obj** can be any model instance
        
        ::
        
            from myapp.models import MyApp
        
            obj = MyApp.objects.get_latest()
        
            Position.objects.add_object(position=position, obj=obj)
        
        
        .. note::
        
            The `Position` model can define which types of objects that can be added.
            Therefore when adding objects to a position, make sure the content types
            is allowed by the `Position` instance.
        
        Retrieve your position content
        ------------------------------
        
        The position manager has a `get_content` method that takes at least 1 argument, `position`.
        
        * **position** should be a `positions.Position` instance
        
        ::
        
            position = Position.objects.get(name="MyPosition")
        
            content = Position.objects.get_content(position=position)
        
        
        Retrieve your position content via templatetag
        ----------------------------------------------
        
        ::
        
            {% get_position_content position as content %}
        
        `get_position_content` expects [position] [as] [varname]
        
        * **position** can be a positions.Position instance or a name of a position
        
        
        ::
        
            Position {{ position }} has the following content:<br/>
            <ul>
            {% for obj in content %}
                <li>{{ obj }}</li>
            {% endfor %}
            </ul>
        
        .. note::
        
            By default the object instance will be returned, although returning the positions.PositionContent instance, which holds the generic relation between position and the object, is also possible
        
            ::
        
                {% get_position_content position as content as_content_type=False %}
        
        
Platform: UNKNOWN
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
