django-inplaceedit-bootstrap

Integration of django-inplaceedit and bootstrap


Keywords
django, inplace, inline, edit, bootstrap, form, ajax
License
LGPL-3.0
Install
pip install django-inplaceedit-bootstrap==0.2.1

Documentation

django-inplaceedit-bootstrap

Information

https://badge.fury.io/py/django-inplaceedit-bootstrap.png

Integration of django-inplaceedit with bootstrap 3

It is distributed under the terms of the GNU Lesser General Public License.

This egg would not have been possible without the help of Tyrdall

Requirements

Demo (this video use a very old version of django-inplaceedit and django-inplaceedit-extra-fields)

Video Demo, of django-inplaceedit, django-inplaceedit-extra-fields and django-inlinetrans (Set full screen mode to view it correctly)

https://github.com/django-inplaceedit/django-inplaceedit/raw/master/video-frame.png

Attention: This demo is not a demo of this package, in this video there are not any inegration with bootstrap. Please to see a demo use the testing django project.

Installation

After installing django-inplaceedit egg (1.4.1)

After installing django-inplaceedit-extra-fields egg (0.6.1, this is optional but recommended)

And after installing django-bootstrap3-datetimepicker egg (2.2.3, this is optional but recommended)

In your settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    #.....................#
    'inplaceeditform_bootstrap',  # it is very important that this app is before that inplaceeditform and inplaceeditform_extra_fields
    'inplaceeditform',
    'inplaceeditform_extra_fields',  # this is optional but recommended
    'bootstrap3_datetime', # this is optional but recommended
)

...
# Optional, but recommended

ADAPTOR_INPLACEEDIT = {}
if 'inplaceeditform_extra_fields' in INSTALLED_APPS:
    ADAPTOR_INPLACEEDIT['tiny'] = 'inplaceeditform_extra_fields.fields.AdaptorTinyMCEField'
    # You can add the other adaptors of inplaceeditform_extra_fields
    # https://pypi.python.org/pypi/django-inplaceedit-extra-fields#installation
if 'bootstrap3_datetime' in INSTALLED_APPS:
    ADAPTOR_INPLACEEDIT['date'] = 'inplaceeditform_bootstrap.fields.AdaptorDateBootStrapField'
    ADAPTOR_INPLACEEDIT['datetime'] = 'inplaceeditform_bootstrap.fields.AdaptorDateTimeBootStrapField'

INPLACEEDIT_EDIT_TOOLTIP_TEXT = 'Please doubleclick to edit'

If you want, you can register these fields in your settings with different keys:

...

if 'bootstrap3_datetime' in INSTALLED_APPS:
    ADAPTOR_INPLACEEDIT['date_bootstrap'] = 'inplaceeditform_bootstrap.fields.AdaptorDateBootStrapField'
    ADAPTOR_INPLACEEDIT['datetime_bootstrap'] = 'inplaceeditform_bootstrap.fields.AdaptorDateTimeBootStrapField'

And after that, to want use a specific adaptor you can pass it to the templatetag, e.g.:

{% inplace_edit "content.field_name" adaptor="date_bootstrap" %}
{% inplace_edit "content.field_name" adaptor="datetime_bootstrap" %}

Why this code is not in django-inplaceedit?

  • This code depends on the bootstrap
  • This is a specific solution

Testing

Exists a testing django project. This project can use as demo project.

This project overwrites the default options of django-inplaceedit and a default option of django-inplaceedit-bootstrap

INPLACEEDIT_AUTO_SAVE = True
INPLACEEDIT_EVENT = 'click'
INPLACEEDIT_EDIT_TOOLTIP_TEXT = 'Click to edit'  # This option is of django-inplaceedit-bootstrap

Development

You can get the bleeding edge version of django-inplaceedit-bootstrap by doing a clone of its git repository:

git clone git@github.com:django-inplaceedit/django-inplaceedit-bootstrap.git