Progress bar upload for Django
Project description
========================
django-progressbarupload
========================
django-progressbarupload is a simple Django application that instantiates an HTML5 upload progress bar when the user submit a form with files (a form having basically FileField(s) and/or ImageField(s), and an enctype="multipart/form-data").
![ScreenShot](https://raw.github.com/ouhouhsami/django-progressbarupload/master/docs/img/admin_progress_bar_screenshot.png)
Quick start
-----------
Requirements :
* Django 1.4.3 (tested).
* django.contrib.staticfiles app to serve static files
1. Install the app
pypi version
```
pip install django-progressbarupload
```
development version
```
pip install -e git+http://github.com/ouhouhsami/django-progressbarupload.git#egg=django-progressbarupload
```
2. Add progressbarupload to your INSTALLED_APPS in your settings
```
INSTALLED_APPS += ('progressbarupload', )
```
3. Add "progressbarupload.uploadhandler.ProgressBarUploadHandler" to your FILE_UPLOAD_HANDLERS setting
```python
FILE_UPLOAD_HANDLERS = (
"progressbarupload.uploadhandler.ProgressBarUploadHandler",
"django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",
)
```
4. Include the progressbarupload URLconf in your project urls.py
```
(r'^progressbarupload/', include('progressbarupload.urls')),
```
Usage
-----
### ModelAdmin
Set the ```change_form_template``` and ```add_form_template``` attributes in your ModelAdmin to 'progressbarupload/change_form.html'.
from django.contrib import admin
from my_awesome_app.models import MyAwesomeModelWithFiles
class MyAwesomeModelWithFiles(admin.ModelAdmin):
change_form_template = 'progressbarupload/change_form.html'
add_form_template = 'progressbarupload/change_form.html'
admin.site.register(MyAwesomeModelWithFiles, UploadFileModelAdmin)
### Form and ModelForm
To use a progress bar in your custom ModelForm or Form, load the progress_bar template tag set ```{% load progress_bar %}``` in the template, and use the following template tags ```{% progress_bar_media %}``` between <head> tags to load javascript files and ```{% progress_bar %}``` where you and to display the progress bar.
{% load progress_bar %}
<!DOCTYPE html>
<html>
<head>
{% progress_bar_media %}
</head>
<body>
<form enctype="multipart/form-data" method="post" action=".">
{% csrf_token %}
{{ form }}
{% progress_bar %}
<input type="submit" />
</form>
</body>
</html>
Further information
-------------------
Make sure your browser renders HTML5 ```<progress>``` tag and uses data-* attribute (IE>10, FF>6.0, Chrome>8.0, Opera>11.0).
As Django has a unique TemporaryFileUploadHandler for all request.FILES. For ModelAdmin, if you have related models, using TabularInline, the upload progress will also be shown in the admin add/change form as soon as you use the right templates in your ModelAdmin (and even if your ModelAdmin doesn't contain any file upload).
Custom TemporaryFileUploadHandler copied from http://djangosnippets.org/snippets/678/
Launch tests
------------
It assumes you have installed virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/en/latest/)
```
# get the application code
git clone https://github.com/ouhouhsami/django-progressbarupload.git
cd django-progressbarupload
# create a virtualenv
mkvirtualenv progressbarupload
add2virtualenv .
# install requirements for tests
pip install -r requirements/tests.txt
# launch tests
django-admin.py test --settings=progressbarupload.test_settings progressbarupload
```
django-progressbarupload
========================
django-progressbarupload is a simple Django application that instantiates an HTML5 upload progress bar when the user submit a form with files (a form having basically FileField(s) and/or ImageField(s), and an enctype="multipart/form-data").
![ScreenShot](https://raw.github.com/ouhouhsami/django-progressbarupload/master/docs/img/admin_progress_bar_screenshot.png)
Quick start
-----------
Requirements :
* Django 1.4.3 (tested).
* django.contrib.staticfiles app to serve static files
1. Install the app
pypi version
```
pip install django-progressbarupload
```
development version
```
pip install -e git+http://github.com/ouhouhsami/django-progressbarupload.git#egg=django-progressbarupload
```
2. Add progressbarupload to your INSTALLED_APPS in your settings
```
INSTALLED_APPS += ('progressbarupload', )
```
3. Add "progressbarupload.uploadhandler.ProgressBarUploadHandler" to your FILE_UPLOAD_HANDLERS setting
```python
FILE_UPLOAD_HANDLERS = (
"progressbarupload.uploadhandler.ProgressBarUploadHandler",
"django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",
)
```
4. Include the progressbarupload URLconf in your project urls.py
```
(r'^progressbarupload/', include('progressbarupload.urls')),
```
Usage
-----
### ModelAdmin
Set the ```change_form_template``` and ```add_form_template``` attributes in your ModelAdmin to 'progressbarupload/change_form.html'.
from django.contrib import admin
from my_awesome_app.models import MyAwesomeModelWithFiles
class MyAwesomeModelWithFiles(admin.ModelAdmin):
change_form_template = 'progressbarupload/change_form.html'
add_form_template = 'progressbarupload/change_form.html'
admin.site.register(MyAwesomeModelWithFiles, UploadFileModelAdmin)
### Form and ModelForm
To use a progress bar in your custom ModelForm or Form, load the progress_bar template tag set ```{% load progress_bar %}``` in the template, and use the following template tags ```{% progress_bar_media %}``` between <head> tags to load javascript files and ```{% progress_bar %}``` where you and to display the progress bar.
{% load progress_bar %}
<!DOCTYPE html>
<html>
<head>
{% progress_bar_media %}
</head>
<body>
<form enctype="multipart/form-data" method="post" action=".">
{% csrf_token %}
{{ form }}
{% progress_bar %}
<input type="submit" />
</form>
</body>
</html>
Further information
-------------------
Make sure your browser renders HTML5 ```<progress>``` tag and uses data-* attribute (IE>10, FF>6.0, Chrome>8.0, Opera>11.0).
As Django has a unique TemporaryFileUploadHandler for all request.FILES. For ModelAdmin, if you have related models, using TabularInline, the upload progress will also be shown in the admin add/change form as soon as you use the right templates in your ModelAdmin (and even if your ModelAdmin doesn't contain any file upload).
Custom TemporaryFileUploadHandler copied from http://djangosnippets.org/snippets/678/
Launch tests
------------
It assumes you have installed virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/en/latest/)
```
# get the application code
git clone https://github.com/ouhouhsami/django-progressbarupload.git
cd django-progressbarupload
# create a virtualenv
mkvirtualenv progressbarupload
add2virtualenv .
# install requirements for tests
pip install -r requirements/tests.txt
# launch tests
django-admin.py test --settings=progressbarupload.test_settings progressbarupload
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for django-progressbarupload-0.1.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ab80809b844e6f2a7ffa71047f0a9bd505deff21a81bbe606f9346bfd4bb88e |
|
MD5 | e2dc7ebc2c113f1e58d9640501e65d09 |
|
BLAKE2b-256 | 3d90fc5a13189d5454ec21081321aff66deb3430ac37973bd49e8a4dd5512a79 |
Close
Hashes for django-progressbarupload-0.1.4.macosx-10.4-x86_64.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ccd0c74a253be4f2c25a513687aaac80e682b5726263177b8a31960d349f0df |
|
MD5 | 880cba252a8f3a355a7e892df46e6f7e |
|
BLAKE2b-256 | 4e24ece16410f795b30e5973fc5b0e184d092822d54d7eaadf0f170cd2587c97 |