{ "info": { "author": "Diederik van der Boor", "author_email": "vdboor@edoburu.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-threadedcomments\n=======================\n\n*threadedcomments* is a Django application which allows for the simple creation of a threaded commenting system.\nCommenters can reply both to the original item, and reply to other comments as well.\n\nThe application is (as of 0.9) built on top of django_comments_ (or django.contrib.comments_),\nwhich allows it to be easily extended by other modules.\n\n\nInstallation\n============\n\nInstall the package via pip::\n\n pip install django-threadedcomments\n\nIt's preferred to install the module in a virtual environment.\n\nConfiguration\n-------------\n\nAdd the following to ``settings.py``::\n\n INSTALLED_APPS += (\n 'threadedcomments',\n 'django_comments',\n 'django.contrib.sites',\n )\n\n COMMENTS_APP = 'threadedcomments'\n\nBy placing the ``threadedcomments`` app above the ``django.contrib.comments`` application,\nthe placeholder ``comments/list.html`` template will already be replaced by a threaded view.\n\nMake sure django.contrib.comments_ is configured in ``urls.py``::\n\n urlpatterns += patterns('',\n url(r'^articles/comments/', include('django_comments.urls')),\n )\n\n.. note::\n For older Django versions (up till 1.6), you can also use django.contrib.comments_ in the ``INSTALLED_APPS``.\n This packages uses either one of those packages, depending on what is installed.\n\nProvide a template that displays the comments for the ``object`` (e.g. article or blog entry)::\n\n {% load threadedcomments_tags %}\n\n ...\n\n

Comments for {{ object.title }}:

\n\n {% render_comment_list for object %}\n {% render_comment_form for object %}\n\n\nTemplate design\n---------------\n\nNaturally, it's desirable to write your own version of ``comments/list.html`` in your project,\nor use one of the ``comments/app/list.html`` or ``comments/app/model/list.html`` overrides.\n\nMake sure to override ``comments/base.html`` as well, so the other views of django.contrib.comments_\nare displayed using your web site design. The other templates of django.contrib.comments_ are\nvery plain as well on purpose (for example ``comments/posted.html``),\nsince these pages depend on the custom design of the web site.\n\nSee the provided ``example`` app for a basic configuration,\nincluding a JavaScript-based reply form that moves to the comment the visitor replies to.\n\n\nTemplate tags\n=============\n\nThe ``threadedcomments_tags`` library is a drop-in replacement for the ``comments`` library\nthat is required for the plain comments. The tags are forwards compatible;\nthey support the same syntax as django_comments_ (or django.contrib.comments_) provides,\nand they add a few extra parameters.\n\nFetching comment counts::\n\n {% get_comment_count for [object] as [varname] %}\n {% get_comment_count for [object] as [varname] root_only %}\n\n {% get_comment_count for [app].[model] [id] as [varname] %}\n {% get_comment_count for [app].[model] [id] as [varname] root_only %}\n\nFetching the comments list::\n\n {% get_comment_list for [object] as [varname] %}\n {% get_comment_list for [object] as [varname] flat %}\n {% get_comment_list for [object] as [varname] root_only %}\n\nRendering the comments list::\n\n {% render_comment_list for [object] %}\n {% render_comment_list for [object] root_only %}\n\n {% render_comment_list for [app].[model] [id] %}\n {% render_comment_list for [app].[model] [id] root_only %}\n\nFetching the comment form::\n\n {% get_comment_form for [object] as [varname] %}\n {% get_comment_form for [object] as [varname] with [parent_id] %}\n {% get_comment_form for [app].[model] [id] as [varname] %}\n {% get_comment_form for [app].[model] [id] as [varname] with [parent_id] %}\n\nRendering the comment form::\n\n {% render_comment_form for [object] %}\n {% render_comment_form for [object] with [parent_id] %}\n {% render_comment_form for [app].[model] [id] %}\n {% render_comment_form for [app].[model] [id] with [parent_id] %}\n\nRendering the whole tree::\n\n {% for comment in comment_list|fill_tree|annotate_tree %}\n {% ifchanged comment.parent_id %}{% else %}{% endifchanged %}\n {% if not comment.open and not comment.close %}{% endif %}\n {% if comment.open %}{% endfor %}\n {% endfor %}\n\nThe ``fill_tree`` filter is required for pagination, it ensures that the parents of the first comment are included as well.\n\nThe ``annotate_tree`` filter adds the ``open`` and ``close`` properties to the comment.\n\n\nExtending the module\n====================\n\nThe application is built on top of the standard django_comments_ (or django.contrib.comments_) framework,\nwhich supports various signals, and template overrides to customize the comments.\n\nTo customize django-threadedcomments, override the proper templates, or include the apps that provide the missing features.\nFront-end editing support for example, is left out on purpose. It belongs to the domain of moderation, and policies\nto know \"who can do what\". That deserves to be in a separate application, it shouldn't be in this application as it focuses on threading.\nThe same applies to social media logins, comment subscriptions, spam protection and Ajax posting.\n\nNote that the standard framework also supports moderation, flagging, and RSS feeds too. More documentation can be found at:\n\n* `Django's comments framework `_\n* `Customizing the comments framework `_\n* `Example of using the in-built comments app `_\n\nSome of the modules worth looking at are:\n\n* django-comments-spamfighter_\n* django-myrecaptcha_\n* django-fluent-comments_\n\nThese modules can enhance the comments system even further.\n\n\n.. _django_comments: https://github.com/django/django-contrib-comments\n.. _django.contrib.comments: https://docs.djangoproject.com/en/1.7/ref/contrib/comments/\n.. _django-fluent-comments: https://github.com/edoburu/django-fluent-comments/\n.. _django-myrecaptcha: https://bitbucket.org/pelletier/django-myrecaptcha/\n.. _django-comments-spamfighter: https://github.com/bartTC/django-comments-spamfighter/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/HonzaKral/django-threadedcomments/zipball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HonzaKral/django-threadedcomments", "keywords": "django,comments,threading", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-threadedcomments", "package_url": "https://pypi.org/project/django-threadedcomments/", "platform": "", "project_url": "https://pypi.org/project/django-threadedcomments/", "project_urls": { "Download": "https://github.com/HonzaKral/django-threadedcomments/zipball/master", "Homepage": "https://github.com/HonzaKral/django-threadedcomments" }, "release_url": "https://pypi.org/project/django-threadedcomments/1.2/", "requires_dist": [ "django-contrib-comments (>=1.7.3)" ], "requires_python": "", "summary": "A simple yet flexible threaded commenting system.", "version": "1.2" }, "last_serial": 3716984, "releases": { "0.5.1": [ { "comment_text": "", "digests": { "md5": "efe03047c6d7c6eb3858c31654b6cc56", "sha256": "a8419db423eb56b3c0f5f27533246ea9ac2dde2996bc72d3ad99bfb640166837" }, "downloads": -1, "filename": "django-threadedcomments-0.5.1.tar.gz", "has_sig": false, "md5_digest": "efe03047c6d7c6eb3858c31654b6cc56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18687, "upload_time": "2009-03-31T20:08:23", "url": "https://files.pythonhosted.org/packages/5a/8b/0650a68bad58dd4072bf57697035cc02841107f642f0f6e6a02e9004f574/django-threadedcomments-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "d2bf082338b4b624e9171486799a70a2", "sha256": "da8abe04ac5f91b910586385fffced3450bfc9214c2fb78e08628499b8de246a" }, "downloads": -1, "filename": "django-threadedcomments-0.5.2.tar.gz", "has_sig": false, "md5_digest": "d2bf082338b4b624e9171486799a70a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 284385, "upload_time": "2009-11-30T13:37:57", "url": "https://files.pythonhosted.org/packages/86/37/2e85e2338b25dd09ae6c73765eb2a4db531c2676b3ab43a377f036eea2ae/django-threadedcomments-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "d799f1f965dda12f75d9240a70f419f5", "sha256": "198d6b26c90e66ac969cb1499b689a152414717d46a7f83f51aeb56633a38c85" }, "downloads": -1, "filename": "django-threadedcomments-0.5.3.tar.gz", "has_sig": false, "md5_digest": "d799f1f965dda12f75d9240a70f419f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 340955, "upload_time": "2010-09-16T07:59:56", "url": "https://files.pythonhosted.org/packages/1b/fd/1576cbf190bd87e0f11ecd0e87c1e3c75369c809411bb9c21a7bf15d1566/django-threadedcomments-0.5.3.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "03445af2185cd41085a9e819e10ad817", "sha256": "f5c8f0e805856c7e4680f2ad779fd387982cde1e76c7393042b1bfa7c116b90d" }, "downloads": -1, "filename": "django-threadedcomments-0.9.0.tar.gz", "has_sig": false, "md5_digest": "03445af2185cd41085a9e819e10ad817", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16199, "upload_time": "2013-05-15T15:26:20", "url": "https://files.pythonhosted.org/packages/38/e5/899fcc060f6af54ac9033a868fcf375c7095a8ad1d31ad80aa069b14b4f0/django-threadedcomments-0.9.0.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "be9f847bc8e2f6385d3f278f170ddace", "sha256": "14fb58012dee1357c4f9f0efb5a83d0c01af67b384cf7851031d68115d6366fa" }, "downloads": -1, "filename": "django_threadedcomments-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be9f847bc8e2f6385d3f278f170ddace", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29823, "upload_time": "2015-10-01T10:44:29", "url": "https://files.pythonhosted.org/packages/07/b9/99fdf27d319197b8c4c23df72999e8ac9224a39f7efbb6cdd756bec6fe15/django_threadedcomments-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fe42abdb2cbbecce8d8ed4f4dec988c", "sha256": "975cf5ff2c46f145f08582b506b3e0011bbdf82df1311c4af63962d9b9c59d9d" }, "downloads": -1, "filename": "django-threadedcomments-1.0.tar.gz", "has_sig": false, "md5_digest": "1fe42abdb2cbbecce8d8ed4f4dec988c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19448, "upload_time": "2015-10-01T10:44:25", "url": "https://files.pythonhosted.org/packages/26/56/15398e0a8063ff346efa67cf0cf27cbc5d348196e7d572fab14f86ef378b/django-threadedcomments-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4ca5c8a032900f86f9c2fb3edbe62e29", "sha256": "22ba20cfc6cc9f31525e796392e34541efea18f77971018a4982e65b2cfa9384" }, "downloads": -1, "filename": "django_threadedcomments-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ca5c8a032900f86f9c2fb3edbe62e29", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30197, "upload_time": "2015-10-17T12:20:38", "url": "https://files.pythonhosted.org/packages/3c/4a/6a114fc0225cd62d31a6d22630b8dd8fe5e7ec523c8fecd62b4178117e9b/django_threadedcomments-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbd9f0ac22d4f2d68f3b5cefdae99831", "sha256": "17223e1b21b0946b37c8f6b9b89fa30f4621f18b1125ed3fec876ffb05d612fd" }, "downloads": -1, "filename": "django-threadedcomments-1.0.1.tar.gz", "has_sig": false, "md5_digest": "fbd9f0ac22d4f2d68f3b5cefdae99831", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19748, "upload_time": "2015-10-17T12:20:33", "url": "https://files.pythonhosted.org/packages/56/9a/15d06b011b15820891a5cb6eae251795d304332c39759a3d860dcb2bd135/django-threadedcomments-1.0.1.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "580697565236eb081a2777de85653129", "sha256": "1a5179be6cd940787321ad5b013ed4f499efce8671d1d083d294a5651d2658ce" }, "downloads": -1, "filename": "django_threadedcomments-1.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "580697565236eb081a2777de85653129", "packagetype": "bdist_wheel", "python_version": "3.3", "requires_python": null, "size": 27582, "upload_time": "2015-04-14T09:22:48", "url": "https://files.pythonhosted.org/packages/3b/98/e96507739e69e78381d93fb32bd5405fbf64c3c81b312bb9142f338af60b/django_threadedcomments-1.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ded40b34eeb28e082b6da1fbc383de3b", "sha256": "4e9b42c28192cea2b9e6e5b9611719eaccbed11f4fcf95cfe0637a1f8e782a2b" }, "downloads": -1, "filename": "django-threadedcomments-1.0b1.tar.gz", "has_sig": false, "md5_digest": "ded40b34eeb28e082b6da1fbc383de3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18832, "upload_time": "2015-04-14T09:22:45", "url": "https://files.pythonhosted.org/packages/63/2c/af5505e45480ec36196a44aa5327979a1ebb9dc6c6f0d1271293b9ce0a01/django-threadedcomments-1.0b1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "98ca64f5da0d912d6affef3928c35f41", "sha256": "4254fa8308d39e6014201c69964366e8aacd5fdc50c254e579ff360903c4f283" }, "downloads": -1, "filename": "django_threadedcomments-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98ca64f5da0d912d6affef3928c35f41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24781, "upload_time": "2017-02-19T22:26:27", "url": "https://files.pythonhosted.org/packages/da/61/4a0c872abc7ec173bc2860ca119113941860474f25b9ddbcba39ee03f3ba/django_threadedcomments-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db0736d9872d95a59c394ea8352b2b49", "sha256": "862f77edd21b9f82ceede52f5146dd9ae8a7c158d13f15e1ada15359c543332b" }, "downloads": -1, "filename": "django-threadedcomments-1.1.tar.gz", "has_sig": false, "md5_digest": "db0736d9872d95a59c394ea8352b2b49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18188, "upload_time": "2017-02-19T22:26:29", "url": "https://files.pythonhosted.org/packages/5d/54/d23a1196d21bbd1e57e5e709364ebe9e27b20fd3c0b2db2787a2896a705f/django-threadedcomments-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "fd375fdedbec4389ffc86ad751dfb7e3", "sha256": "5a313a13ef02ee95f3818ee0b8eff64d58988edff48668de148b3751279c7ea3" }, "downloads": -1, "filename": "django_threadedcomments-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fd375fdedbec4389ffc86ad751dfb7e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24858, "upload_time": "2018-03-29T12:50:45", "url": "https://files.pythonhosted.org/packages/9e/f6/26220a62896a3b7057e020cad40147de777191f0d977ac6fc02410f97422/django_threadedcomments-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "856237a7bad5b30cd9169e83bf426bce", "sha256": "24d5c67b6b175c155d0c642e715de70602dbb3f6d9300532cbf954b22888554e" }, "downloads": -1, "filename": "django-threadedcomments-1.2.tar.gz", "has_sig": false, "md5_digest": "856237a7bad5b30cd9169e83bf426bce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19314, "upload_time": "2018-03-29T12:50:46", "url": "https://files.pythonhosted.org/packages/53/13/db8ee851b6d788f618bd1e433d4586691ea5a0bff64340ca6e522c751d54/django-threadedcomments-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fd375fdedbec4389ffc86ad751dfb7e3", "sha256": "5a313a13ef02ee95f3818ee0b8eff64d58988edff48668de148b3751279c7ea3" }, "downloads": -1, "filename": "django_threadedcomments-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fd375fdedbec4389ffc86ad751dfb7e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24858, "upload_time": "2018-03-29T12:50:45", "url": "https://files.pythonhosted.org/packages/9e/f6/26220a62896a3b7057e020cad40147de777191f0d977ac6fc02410f97422/django_threadedcomments-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "856237a7bad5b30cd9169e83bf426bce", "sha256": "24d5c67b6b175c155d0c642e715de70602dbb3f6d9300532cbf954b22888554e" }, "downloads": -1, "filename": "django-threadedcomments-1.2.tar.gz", "has_sig": false, "md5_digest": "856237a7bad5b30cd9169e83bf426bce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19314, "upload_time": "2018-03-29T12:50:46", "url": "https://files.pythonhosted.org/packages/53/13/db8ee851b6d788f618bd1e433d4586691ea5a0bff64340ca6e522c751d54/django-threadedcomments-1.2.tar.gz" } ] }