{ "info": { "author": "ouhouhsami", "author_email": "samuel.goldszmidt@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "========================\ndjango-progressbarupload\n========================\n\n[![Build Status](https://travis-ci.org/ouhouhsami/django-progressbarupload.png?branch=master)](https://travis-ci.org/ouhouhsami/django-progressbarupload)\n\ndjango-progressbarupload is a simple Django application that instantiates an HTML5 upload progress bar when the user submits a form with files (a form having basically FileField(s) and/or ImageField(s), and an enctype=\"multipart/form-data\").\n\n![ScreenShot](https://raw.github.com/ouhouhsami/django-progressbarupload/master/docs/img/admin_progress_bar_screenshot.png)\n\n###Contributors\nThe following users have contributed:\n* [Iago Su\u00e1rez](https://github.com/iago-suarez)\n* [Andrew Brookins](https://github.com/abrookins)\n* [Callan Bryant](https://github.com/naggie)\n* [Mathieu Comandon](https://github.com/strycore)\n\nQuick start\n-----------\n\nRequirements :\n* Django 1.7.4 or above.\n* Python 2.7 or 3.4\n* django.contrib.staticfiles app to serve static files\n\n\n1. Install the app\n\n pypi version\n\n ```\n pip install django-progressbarupload\n ```\n\n development version\n\n ```\n pip install -e git+http://github.com/ouhouhsami/django-progressbarupload.git#egg=django-progressbarupload\n ```\n\n2. Add progressbarupload to your INSTALLED_APPS in your settings\n\n ```\n INSTALLED_APPS += ('progressbarupload', )\n ```\n\n3. Add \"progressbarupload.uploadhandler.ProgressBarUploadHandler\" to your FILE_UPLOAD_HANDLERS setting\n\n ```python\n FILE_UPLOAD_HANDLERS = (\n \"progressbarupload.uploadhandler.ProgressBarUploadHandler\",\n \"django.core.files.uploadhandler.MemoryFileUploadHandler\",\n \"django.core.files.uploadhandler.TemporaryFileUploadHandler\",\n )\n ```\n\n4. Include the progressbarupload URLconf in your project urls.py\n\n ```\n (r'^progressbarupload/', include('progressbarupload.urls')),\n ```\n\n5. In your settings file, if you don't want to include jquery with {% progress_bar_media %}, then set:\n\n ``` python\n PROGRESSBARUPLOAD_INCLUDE_JQUERY = False\n ```\n\nUsage\n-----\n\n### ModelAdmin\n\nSet the ```change_form_template``` and ```add_form_template``` attributes in your ModelAdmin to 'progressbarupload/change_form.html'.\n\n\n from django.contrib import admin\n from my_awesome_app.models import MyAwesomeModelWithFiles\n\n class MyAwesomeModelWithFiles(admin.ModelAdmin):\n change_form_template = 'progressbarupload/change_form.html'\n add_form_template = 'progressbarupload/change_form.html'\n\n admin.site.register(MyAwesomeModelWithFiles, UploadFileModelAdmin)\n\nDemo\n----\n\nThis app includes a demo app, just go inside testapp dir and run\n\n python manage.py migrate\n python manage.py runserver\n\nthen go to http://127.0.0.1:8000/admin or http://127.0.0.1:8000/admin http://127.0.0.1:8000/testapp/form or http://127.0.0.1:8000/testapp/modelform\n\n\n### Form and ModelForm\n\nTo 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 tags to load javascript files and ```{% progress_bar %}``` where you and to display the progress bar.\n\n\n {% load progress_bar %}\n\n \n \n \n {% progress_bar_media %}\n \n\n \n
\n {% csrf_token %}\n {{ form }}\n {% progress_bar %}\n \n
\n \n \n\n\nFurther information\n-------------------\n\nMake sure your browser renders HTML5 `````` tag and uses data-* attribute (IE>10, FF>6.0, Chrome>8.0, Opera>11.0).\n\nAs 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).\n\nCustom TemporaryFileUploadHandler copied from http://djangosnippets.org/snippets/678/\n\nLaunch tests\n------------\n\nIt assumes you have installed virtualenvwrapper (http://virtualenvwrapper.readthedocs.org/en/latest/)\n\n```\n# get the application code\ngit clone https://github.com/ouhouhsami/django-progressbarupload.git\ncd django-progressbarupload\n# create a virtualenv\nmkvirtualenv progressbarupload\nadd2virtualenv .\n# install requirements for tests and django (set the django version you want to use)\npip install -r requirements/tests.txt django==1.7.4\n# launch tests\ndjango-admin.py test --settings=progressbarupload.test_settings progressbarupload\n```\n\n=======\nNew: Use transparently with uwsgi/nginx\n---------------------------------------\nThe combination of uwsgi and nginx prevent django-progressbarupload from\nworking because nginx buffers the entire POST request until it is complete\nbefore sending it to uwsgi/django. This means your application runs faster as\nuwsgi threads are less tied up, but it also makes it impossible to view to\nprogress Django side.\n\nWhilst you could use XMLHttpRequest 2.0 to get the progress client-side, you\nmay not have the luxury if you need to support older browsers. This is where\n[RFC1867][2] comes in. By configuring the [nginx-upload-progress-module][1] in\nthe following way, it is possible to transparently support the native method as\nwell as the plugin:\n\n```\n\t...\n\tupload_progress uploadp 1m;\n\t# JSON document rather than JSONP callback, pls\n\tupload_progress_json_output;\n\t...\n\tlocation ^ upload/url/pattern/\n\t track_uploads uploadp 30s {\n\t}\n\t...\n\tlocation ^~ /progressbarupload/upload_progress {\n\t report_uploads uploadp;\n\t}\n\n```\n\nnginx-upload-progress-module is available on ubuntu in the `nginx-extras` package.\n\n[1]: https://github.com/masterzen/nginx-upload-progress-module\n[2]: http://www.rfcreader.com/#rfc1867\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ouhouhsami/django-progressbarupload", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "django-progressbarupload", "package_url": "https://pypi.org/project/django-progressbarupload/", "platform": "", "project_url": "https://pypi.org/project/django-progressbarupload/", "project_urls": { "Homepage": "https://github.com/ouhouhsami/django-progressbarupload" }, "release_url": "https://pypi.org/project/django-progressbarupload/0.1.7/", "requires_dist": null, "requires_python": "", "summary": "Progress bar upload for Django", "version": "0.1.7" }, "last_serial": 2443415, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2feb7935861447f043859bb1013a9ef1", "sha256": "166d4ddebeb288f99e7d5cb01f7e54bfe1eeac0329ab61f5a7ab38cdc9caf1ab" }, "downloads": -1, "filename": "django-progressbarupload-0.1.tar.gz", "has_sig": false, "md5_digest": "2feb7935861447f043859bb1013a9ef1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18802, "upload_time": "2013-01-11T13:44:07", "url": "https://files.pythonhosted.org/packages/e8/52/d06cb737008f04781b89e23de3d8ddc06eadddd9c965ec67999f69587232/django-progressbarupload-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fc3f014f3a96f3b1dfb842067d0653e5", "sha256": "ced65602efa5dd16d4f35bf5884fa1bff73d0d4132fb18ca2e48136c0922c257" }, "downloads": -1, "filename": "django-progressbarupload-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fc3f014f3a96f3b1dfb842067d0653e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19095, "upload_time": "2013-01-11T15:24:20", "url": "https://files.pythonhosted.org/packages/81/bd/24fa1a94875a197bcd1ae03a76650757fdd58b663b2b491f9dbab1bc0105/django-progressbarupload-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e59a11a85300c0de9d03fe0e42010775", "sha256": "4427efedf6b79660297745f48a73653dff43b95e6e3cd4631fd59983500d41c9" }, "downloads": -1, "filename": "django-progressbarupload-0.1.2.macosx-10.4-x86_64.exe", "has_sig": false, "md5_digest": "e59a11a85300c0de9d03fe0e42010775", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 71585, "upload_time": "2013-01-29T14:40:01", "url": "https://files.pythonhosted.org/packages/38/42/041611493a680e4cce18661da12dc63301e4d67c7859052ade3c89315b8b/django-progressbarupload-0.1.2.macosx-10.4-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "b711c5db04a26525568c6e72ab74c5a6", "sha256": "137b6aa5cdbe186a1d71d2c0f3c5b310a9f2a8c505f09e3b21875ca624c1b6f0" }, "downloads": -1, "filename": "django-progressbarupload-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b711c5db04a26525568c6e72ab74c5a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19233, "upload_time": "2013-01-29T14:39:56", "url": "https://files.pythonhosted.org/packages/e9/a0/3041719048f43c0702c35195995acd78fd31fbcfa5acddb0ee14939b453f/django-progressbarupload-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "34b17658dc75404b3b467ec393fc8f5b", "sha256": "3906e28c892e0fd226d140d1d8ecc64bb28f4d4bc24ff80b338ff84acffa8c4d" }, "downloads": -1, "filename": "django-progressbarupload-0.1.3.macosx-10.4-x86_64.exe", "has_sig": false, "md5_digest": "34b17658dc75404b3b467ec393fc8f5b", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 72212, "upload_time": "2013-01-29T14:46:26", "url": "https://files.pythonhosted.org/packages/fb/bb/e166c363dbac9a23ee1b7088101ef6a11432253e6731cebbdb7653e34970/django-progressbarupload-0.1.3.macosx-10.4-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "42f691ee9acc43530d84df93191756b8", "sha256": "3cc16e265ae6db4a8c53c54db4b9cb97e1e75071d8794da55e4f981ed651d935" }, "downloads": -1, "filename": "django-progressbarupload-0.1.3.tar.gz", "has_sig": false, "md5_digest": "42f691ee9acc43530d84df93191756b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19711, "upload_time": "2013-01-29T14:46:22", "url": "https://files.pythonhosted.org/packages/cf/2d/9ec57cc03c22f028aa739da4a6557a882e1b7a174fbe4d24367124673cf4/django-progressbarupload-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "880cba252a8f3a355a7e892df46e6f7e", "sha256": "3ccd0c74a253be4f2c25a513687aaac80e682b5726263177b8a31960d349f0df" }, "downloads": -1, "filename": "django-progressbarupload-0.1.4.macosx-10.4-x86_64.exe", "has_sig": false, "md5_digest": "880cba252a8f3a355a7e892df46e6f7e", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 74066, "upload_time": "2013-01-29T15:04:42", "url": "https://files.pythonhosted.org/packages/4e/24/ece16410f795b30e5973fc5b0e184d092822d54d7eaadf0f170cd2587c97/django-progressbarupload-0.1.4.macosx-10.4-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "e2dc7ebc2c113f1e58d9640501e65d09", "sha256": "0ab80809b844e6f2a7ffa71047f0a9bd505deff21a81bbe606f9346bfd4bb88e" }, "downloads": -1, "filename": "django-progressbarupload-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e2dc7ebc2c113f1e58d9640501e65d09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20756, "upload_time": "2013-01-29T15:04:39", "url": "https://files.pythonhosted.org/packages/3d/90/fc5a13189d5454ec21081321aff66deb3430ac37973bd49e8a4dd5512a79/django-progressbarupload-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d1259dfaa65d1a4aad3350fbf8151fec", "sha256": "695f8cdb984f8952afddb66c526d34560bfada4267ff7d65d7385418fcc2e1a5" }, "downloads": -1, "filename": "django-progressbarupload-0.1.5.macosx-10.4-x86_64.exe", "has_sig": false, "md5_digest": "d1259dfaa65d1a4aad3350fbf8151fec", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 74394, "upload_time": "2013-02-04T16:01:15", "url": "https://files.pythonhosted.org/packages/71/d1/42785207fb5cabf2461770794cb0f7354e06f5e59a45167d4f4ba6f9fec3/django-progressbarupload-0.1.5.macosx-10.4-x86_64.exe" }, { "comment_text": "", "digests": { "md5": "035897d8304d3f0c1cea7f394581141d", "sha256": "dfc12b07fe076890fbd093aa9d004cd6d8bcfd2ec076870780c5f8006547bef5" }, "downloads": -1, "filename": "django-progressbarupload-0.1.5.tar.gz", "has_sig": false, "md5_digest": "035897d8304d3f0c1cea7f394581141d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20874, "upload_time": "2013-02-04T16:01:03", "url": "https://files.pythonhosted.org/packages/0e/e7/1c8449d87b68fa16e6fb2a0bc60cb54d97d8852e7c39f31c32e94c60b8da/django-progressbarupload-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "44ff997199268e23f28e4087d39cdc78", "sha256": "fd42a99416fd435261a687682989c6d96924573149e77a4d46386a47ffce1a7b" }, "downloads": -1, "filename": "django-progressbarupload-0.1.6.tar.gz", "has_sig": false, "md5_digest": "44ff997199268e23f28e4087d39cdc78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22385, "upload_time": "2013-09-10T13:53:31", "url": "https://files.pythonhosted.org/packages/43/89/0ccd32f396ad66427076556686771281eb3a6cd6d863c0a53cf6812c2c40/django-progressbarupload-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "8a4f5865269ed2c79491af5aabf8551c", "sha256": "957ef23b0432421bd0629302e9a6efb546cdd97bac2fc55e2dd9d7af87937878" }, "downloads": -1, "filename": "django_progressbarupload-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a4f5865269ed2c79491af5aabf8551c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12480, "upload_time": "2016-11-04T21:56:21", "url": "https://files.pythonhosted.org/packages/eb/27/ad08de99e9dfe7dffc9056a7514af3d36db7118f2de3ca67c88896b99e0b/django_progressbarupload-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dece1e14fa91976fec641c78ada2c8e2", "sha256": "26ed611b189c674f86724c5f8714fd990a3f26c93401ff4cb62954aebda4e4c7" }, "downloads": -1, "filename": "django-progressbarupload-0.1.7.tar.gz", "has_sig": false, "md5_digest": "dece1e14fa91976fec641c78ada2c8e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21738, "upload_time": "2016-11-04T21:56:23", "url": "https://files.pythonhosted.org/packages/96/cd/bf26667abdeb868435a8cbb947cc0aaa1325e71f18047b84b56e91a28e87/django-progressbarupload-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8a4f5865269ed2c79491af5aabf8551c", "sha256": "957ef23b0432421bd0629302e9a6efb546cdd97bac2fc55e2dd9d7af87937878" }, "downloads": -1, "filename": "django_progressbarupload-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a4f5865269ed2c79491af5aabf8551c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12480, "upload_time": "2016-11-04T21:56:21", "url": "https://files.pythonhosted.org/packages/eb/27/ad08de99e9dfe7dffc9056a7514af3d36db7118f2de3ca67c88896b99e0b/django_progressbarupload-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dece1e14fa91976fec641c78ada2c8e2", "sha256": "26ed611b189c674f86724c5f8714fd990a3f26c93401ff4cb62954aebda4e4c7" }, "downloads": -1, "filename": "django-progressbarupload-0.1.7.tar.gz", "has_sig": false, "md5_digest": "dece1e14fa91976fec641c78ada2c8e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21738, "upload_time": "2016-11-04T21:56:23", "url": "https://files.pythonhosted.org/packages/96/cd/bf26667abdeb868435a8cbb947cc0aaa1325e71f18047b84b56e91a28e87/django-progressbarupload-0.1.7.tar.gz" } ] }