Django application that allows you to inline edition of some data from the database
Project description
Inplace Edit Form
Information
Inplace Edit Form is a Django application that allows you to inline edition of some data from the database
It is distributed under the terms of the GNU Lesser General Public License <http://www.gnu.org/licenses/lgpl.html>
Requeriments
Installation
Install in your base.html
{% load inplace_edit %} {% inplace_media %}
In your settings.py
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', #.....................# 'inplaceeditform', )
In your urls.py
(r'^inplaceeditform/', include('inplaceeditform.urls')),
Basic usage
{% inplace_edit "OBJ.FIELD_NAME" %} {% inplace_edit "OBJ.FIELD_NAME|FILTER1|FILTER2|...|FILTERN" %}
Examples
{% load inplace_edit %} <html> <head> ... <script src="{{ MEDIA_URL }}js/jquery.min.js" type="text/javascript"></script> {% inplace_media %} </head> <body> ... <div id="content"> ... {% inplace_edit "content.name" %} ... <div class="description"> {% inplace_edit "content.date_initial|date:'d m Y'" %} {% inplace_edit "content.description|safe" %} </div> <div class="body"> {% inplace_edit "content.body|safe|truncatewords_html:15" %} </div> </div> ... </body> </html>
Advanced usage
- Inplaceedit has some optionals parameters that the templatetag can receive to change its behavior:
auto_height: Adapt the height’s widget to the tag container.
auto_width: Adapt the width’s widget to the tag container.
class_inplace: Add a class to edit inline form.
tag_name_cover: The value is covered for a span. But it’s possible to change it.
filters_to_show: The server filters the value before to save. List separate for “|”
loads: If you use some filter that need a load, you set this option. List separate for “:”
Examples
{% inplace_edit "content.description|safe" auto_height=1, auto_width=1 %} {% inplace_edit "content.title" class_inplace="titleFormEditInline" %} {% inplace_edit "content.description|safe" filters_to_show="safe|truncatewords_html:30", tag_name_cover="div" %} {% inplace_edit "content.description|my_filter" loads="my_template_tag" %}
Adaptor API
You can create a adaptor to work with inplace edit form, the behavior is fully customizable. To default inplaceedit has 8 adaptors. These use the api, overwriting some methods for them.
First step
In your settings:
ADAPTOR_INPLACEEDIT = {'myadaptor': 'app_name.fields.MyAdaptor'}
In app_name.fields.MyAdaptor:
class MyAdaptor(BaseAdaptorField): @property def name(self): return 'myadaptor'
Python API
classes: Classes of tag cover. By default “inplaceedit” and “myadaptorinplaceedit”
get_config: Preprocessed of the configuration. By default, it does nothing.
get_form_class: It returns the form class.
get_form: It returns a instace of form class.
get_field: It returns a field of instance of form class.
render_value: It returns the render of the value. If you write {% inplace_edit “obj.name|filter1” %} it returns something like this {{ obj.name|filter1 }}.
render_value_edit: It returns the render value if you can edit. It returns by default the same of “render_value”, but if the value is None call to empty_value
empty_value: It returns an empty value for this adaptor. By default, ‘Dobleclick to edit’.
render_field: It returns the render of form, with a field.
render_media_field: It returns the media (scripts and css) of the field.
render_config: It returns the render of config.
can_edit: It returns a boolean that indicate if this user can edit inline this content or not.
get_value_editor: It returns a clean value to be saved in DB.
save: Save the value in DB.
treatment_height: Special treatment to widget’s height.
treatment_width: Special treatment to widget’s width.
If you want to use own options in your adaptor, you can do it. These options will be in self.config in the adaptor. {% inplace_edit "obj.field_name" my_opt1="value1", my_opt2="value2" %}
JavaScript API
Exist a hook, if the value is componing for various widgets, you can set the function get_value, to these DOM elements. Something like this:
<script type="text/javascript"> (function($){ $(document).ready(function () { function get_value(form, field_id) { return ""Something"" } $(".apply_myadaptor").data("get_value", get_value); }); })(jQuery); </script>
For example the adaptor datetime use this.
Overwriting a default adaptor
To overwrite a adaptor set in your settings add something like this:
ADAPTOR_INPLACEEDIT = {'text': 'app_name.fields.MyAdaptorText'}
For this case you overwrite the AdaptorText with MyAdaptorText.
Transmeta
This egg is compatible with Transmeta But it is not a requirement
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-inplaceedit-0.55.tar.gz
.
File metadata
- Download URL: django-inplaceedit-0.55.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f82cf29c51cb16736d9cec7e1b36e0b84b0ee76b07c4fef2f2c36ea262efbea |
|
MD5 | 2a72e7c4cfd170795cde4ec8b2930c29 |
|
BLAKE2b-256 | 814622ecea934225988a8f30f363222877069cef99410853b8c92fd7a7d13e7f |