{ "info": { "author": "Paul Grau", "author_email": "paul@graycoding.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "=============================\nprompt_responses\n=============================\n\n.. image:: https://badge.fury.io/py/django-prompt-responses.svg\n :target: https://badge.fury.io/py/django-prompt-responses\n\n.. image:: https://travis-ci.org/graup/django-prompt-responses.svg?branch=master\n :target: https://travis-ci.org/graup/django-prompt-responses\n\n.. image:: https://codecov.io/gh/graup/django-prompt-responses/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/graup/django-prompt-responses\n\nA flexible prompt and user responses data schema utilizing Django's content types framework.\n\nThis app was born during a university research project. The main use case is data collection.\nIt lets you create numerous kinds of \"prompts\" (questions or tasks) and record user responses.\nPrompts can be populated with any kind of database object.\n\nThis supports these kind of prompts:\n\n* How do you feel today on a 1-5 scale? (Simple likert question)\n* How do you like {object} on a 1-10 scale? (Object-based likert question)\n* Which word do you associate with {object}? (Object-based open-ended question)\n* How related do you think is {object} to these other objects? (Tagging task)\n\nRatings and tags are simply integer values, their meaning can be defined by your application\n(e.g. 1 to 5 scales, or -1 = no, +1 = yes, and so on).\n\nDocumentation\n-------------\n\nThe full documentation is at https://django-prompt-responses.readthedocs.io.\n\nQuickstart\n----------\n\nInstall prompt_responses::\n\n pip install django-prompt-responses\n\nAdd it to your `INSTALLED_APPS`:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n 'django.contrib.admin',\n 'django.contrib.auth',\n 'django.contrib.contenttypes',\n 'django.contrib.sessions',\n 'django.contrib.messages',\n 'django.contrib.staticfiles',\n ...\n 'prompt_responses',\n 'sortedm2m', # for the ability to change the order of Prompts in the Django admin\n ...\n )\n\nCreate Prompts, e.g. through the integrated admin views.\n\nDeliver a prompt to the user:\n\n.. code-block:: python\n\n prompt = Prompt.objects.get(id=1)\n instance = prompt.get_instance()\n \n \"\"\"\n Use these variables to display the UI:\n prompt.type\n str(instance)\n instance.object\n instance.response_objects\n \"\"\"\n\nSave a user response:\n\n.. code-block:: python\n\n prompt = Prompt.objects.get(id=1)\n prompt.create_response(\n user=user,\n prompt_object=instance.object,\n rating=5\n )\n\nAnalyze data:\n\n.. code-block:: python\n\n prompt = Prompt.objects.get(id=1)\n # Mean rating for all responses\n rating = prompt.get_mean_rating()\n # Mean ratings for all objects\n matrix = prompt.get_mean_tag_rating_matrix()\n # Mean ratings for one object\n ratings = list(prompt.get_mean_tag_ratings(instance.object))\n\nUse the included viewsets in your Django Rest Framework API:\n\n.. code-block:: python\n\n from rest_framework import routers\n from prompt_responses.viewsets import PromptViewSet\n\n router = routers.DefaultRouter()\n router.register(r'prompts', PromptViewSet)\n\n urlpatterns = [\n url(r'^api/', include(router.urls))\n ]\n\nThis offers `api/prompts/`, `api/prompts//`, `api/prompts//instantiate/`,\n`api/prompts//create-response/` (POST) endpoints.\n\nFeatures\n--------\n\n* Prompt types\n\n * Likert scale ratings\n * Open-ended free text\n * Tagging\n\n* Populate prompts with objects in order to\n\n * let users rate objects from one set\n * let users rate (tag) relations between two sets of objects\n\n* Analytics convenience functions\n* (Coming soon) Plugable object sampling algorithms\n* Support for Django Rest Framework\n\nRunning Tests\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n\n\n\n\nHistory\n-------\n\n0.1.0 (2017-11-07)\n++++++++++++++++++\n\n* First release on PyPI.\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/graup/django-prompt-responses", "keywords": "django-prompt-responses", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-prompt-responses", "package_url": "https://pypi.org/project/django-prompt-responses/", "platform": "", "project_url": "https://pypi.org/project/django-prompt-responses/", "project_urls": { "Homepage": "https://github.com/graup/django-prompt-responses" }, "release_url": "https://pypi.org/project/django-prompt-responses/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "A flexible prompt and user responses data schema utilizing the generic content types", "version": "0.1.1" }, "last_serial": 3386965, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "444caf7ec8d9c6d04a98602a41a91f15", "sha256": "dabbb8a01c94bd978dc37e58191748d09311627a9a0311ce6f4f5b1c50a70345" }, "downloads": -1, "filename": "django_prompt_responses-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "444caf7ec8d9c6d04a98602a41a91f15", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20982, "upload_time": "2017-12-04T12:00:30", "url": "https://files.pythonhosted.org/packages/7e/fd/819211a59e4f4e82470c1988af9fe2cb495dd83dee2e12be796c0ad8ea5f/django_prompt_responses-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0805d484e9c324231671ce5a5a619abe", "sha256": "e436b3bf2b24ffa1e9066c289a4cd662855cf2c958f20dd9209967bb439f77e6" }, "downloads": -1, "filename": "django-prompt-responses-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0805d484e9c324231671ce5a5a619abe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17064, "upload_time": "2017-12-04T12:00:26", "url": "https://files.pythonhosted.org/packages/b9/fb/d93e253106c7b86096cc10b99077ee55624d1610e67b594db1fbfe80353a/django-prompt-responses-0.1.1.tar.gz" } ], "0.1b0": [ { "comment_text": "", "digests": { "md5": "f892becca0c43d7df89700d3c800aa87", "sha256": "c44c06ff0aaa8e1acc6ab4b18bc4be490bbb01f07258844cf954867c0387c4a4" }, "downloads": -1, "filename": "django_prompt_responses-0.1b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f892becca0c43d7df89700d3c800aa87", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20429, "upload_time": "2017-11-30T03:18:32", "url": "https://files.pythonhosted.org/packages/ae/42/3fe20e1b4f8d51e5cd262c3c646cf4ee7d4d39d470d46a35c89e80cb409a/django_prompt_responses-0.1b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d81b7e6358f7501efe68d3619bcf94f2", "sha256": "0fb56b01d7c33fe88d61f283b7d3a35c3c3cd7177bfa8b0e2f3221b8fc6b0058" }, "downloads": -1, "filename": "django-prompt-responses-0.1b0.tar.gz", "has_sig": false, "md5_digest": "d81b7e6358f7501efe68d3619bcf94f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16944, "upload_time": "2017-11-30T03:18:29", "url": "https://files.pythonhosted.org/packages/75/fe/bd7b165a39f7f8e2349cb495c6732c1eac8e2bd7bcc515d698d48dac5f06/django-prompt-responses-0.1b0.tar.gz" } ], "0.1b2": [ { "comment_text": "", "digests": { "md5": "9eabab1eacb5cee5d8d047278bace3dc", "sha256": "7a163d91cc478ed63b58dafb5df3d7c377e614e391ac258b04203fc5776fe9c8" }, "downloads": -1, "filename": "django_prompt_responses-0.1b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9eabab1eacb5cee5d8d047278bace3dc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20471, "upload_time": "2017-12-01T05:32:19", "url": "https://files.pythonhosted.org/packages/02/26/a066a04aac6f50e52117b5caefd806ea5d10a98a1e445d16bb6e5387ad13/django_prompt_responses-0.1b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef09a54ab469f0b97d1eaf03b60c2069", "sha256": "f983b75597cd610c2c8545a680abc47cc460e7c2c05152248be27dc71227ba4b" }, "downloads": -1, "filename": "django-prompt-responses-0.1b2.tar.gz", "has_sig": false, "md5_digest": "ef09a54ab469f0b97d1eaf03b60c2069", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16967, "upload_time": "2017-12-01T05:32:15", "url": "https://files.pythonhosted.org/packages/50/66/ebe619de86e8b6a86fa5e48bb6e877ce51fd7e927f38808990e3399e2381/django-prompt-responses-0.1b2.tar.gz" } ], "0.1b3": [ { "comment_text": "", "digests": { "md5": "a6748d926dfa9ea5a9203275b81acd33", "sha256": "53b92bb06a0ff66a6da3d092102ec1e6f692c0dd33a1455fca0385c27964c68f" }, "downloads": -1, "filename": "django_prompt_responses-0.1b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6748d926dfa9ea5a9203275b81acd33", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20493, "upload_time": "2017-12-01T05:34:42", "url": "https://files.pythonhosted.org/packages/ff/e5/5143d0e4d45938d3ec945d09044002634318f151cba84343e7926518d91e/django_prompt_responses-0.1b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed62f5626ab34912b7bd5b738da9d441", "sha256": "902b49cfbf2a019db6a374fa6cf4d0ad1fab60bc85e1755072ac1b54aac82f2e" }, "downloads": -1, "filename": "django-prompt-responses-0.1b3.tar.gz", "has_sig": false, "md5_digest": "ed62f5626ab34912b7bd5b738da9d441", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16988, "upload_time": "2017-12-01T05:34:39", "url": "https://files.pythonhosted.org/packages/db/26/29f79394b020c6c0e7f23f7e4b0b73cd00a752255cbfeaa400c3793c4619/django-prompt-responses-0.1b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "444caf7ec8d9c6d04a98602a41a91f15", "sha256": "dabbb8a01c94bd978dc37e58191748d09311627a9a0311ce6f4f5b1c50a70345" }, "downloads": -1, "filename": "django_prompt_responses-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "444caf7ec8d9c6d04a98602a41a91f15", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20982, "upload_time": "2017-12-04T12:00:30", "url": "https://files.pythonhosted.org/packages/7e/fd/819211a59e4f4e82470c1988af9fe2cb495dd83dee2e12be796c0ad8ea5f/django_prompt_responses-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0805d484e9c324231671ce5a5a619abe", "sha256": "e436b3bf2b24ffa1e9066c289a4cd662855cf2c958f20dd9209967bb439f77e6" }, "downloads": -1, "filename": "django-prompt-responses-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0805d484e9c324231671ce5a5a619abe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17064, "upload_time": "2017-12-04T12:00:26", "url": "https://files.pythonhosted.org/packages/b9/fb/d93e253106c7b86096cc10b99077ee55624d1610e67b594db1fbfe80353a/django-prompt-responses-0.1.1.tar.gz" } ] }