{ "info": { "author": "Daniel Roy Greenfeld", "author_email": "pydanny@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Framework :: Django", "Framework :: Django :: 1.8", "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" ], "description": "=============================\nWork in Progress: dj-spam\n=============================\n\n.. image:: https://badge.fury.io/py/dj-spam.png\n :target: https://badge.fury.io/py/dj-spam\n\n.. image:: https://travis-ci.org/pydanny/dj-spam.png?branch=master\n :target: https://travis-ci.org/pydanny/dj-spam\n\nDjango + Flagging Spam Made Easy\n\nDocumentation\n-------------\n\nThe full documentation is at https://dj-spam.readthedocs.org.\n\nFeatures\n--------\n\n* For Django 1.8+\n* For Python 2.7/3.3+\n* Direct foreign key from the model to the spam report. Avoiding content types and using explicit foreign keys makes for less kludgy databases.\n* Powered by conventions used all over Django:\n\n * Have the appropriate ``__str__()`` or ``__unicode__()`` method on your models.\n * Flaggable models should have ``get_absolute_url()`` methods.\n\n\nQuickstart\n----------\n\nInstall dj-spam::\n\n pip install dj-spam\n\nConfigure it into your project::\n\n # settings.py\n INSTALLED_APPS += ['spam', ]\n\n::\n\n # urls.py\n url(r'^spam/', include('spam.urls', namespace='spam')),\n\nFor any model you want to flag::\n\n from spam import Spammable\n\n class MyModel(Spammable, models.Model):\n # Define your model here. Spammable attaches\n # the spam_flag field to your model as a ManyToManyField.\n\n @models.permalink\n def get_absolute_url(self):\n # Not required, but it allows dj-spam to link back to the offending\n # content in the report spam view.\n return 'absolute link to model detail view'\n\nRun Migrations\n\n::\n\n ./manage migrate\n\nThen, in the model's related view::\n\n from spam import SpammableMixin\n\n class MyModelDetailView(SpammableMixin, DetailView):\n class = MyModel\n\nThis empowers you with the view method ``spam_report_url`` which you can use to\ndefine the URL to the reporting form::\n\n Report Spam\n\nadmin\n------\n\ndj-spam comes with a simple admin view.\n\nemailing managers\n-------------------\n\ndj-spam emails `settings.MANAGERS` every time something is flagged. If you don't\nset `settings.MANAGERS`, it will email `settings.ADMINS`.\n\n\n\n\nHistory\n-------\n\n0.2.0 (2-15-07-29)\n++++++++++++++++++\n\n* Added admin functionality.\n* Fixed broken spam report form.\n* Email of managers when content is flagged as spam.\n\n0.1.0 (2-15-07-28)\n++++++++++++++++++\n\n* First release on PyPI.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pydanny/dj-spam", "keywords": "dj-spam", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "dj-spam", "package_url": "https://pypi.org/project/dj-spam/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dj-spam/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/pydanny/dj-spam" }, "release_url": "https://pypi.org/project/dj-spam/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Django + Fighting Spam Made Easy", "version": "0.2.0" }, "last_serial": 1656013, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9f135d90dfcc63a9f2d31e7ba10cd2e6", "sha256": "6179ff3ac7ce154c6b0792cd5c1e988285f6c8549cfce7e487534292bec3b3a5" }, "downloads": -1, "filename": "dj_spam-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9f135d90dfcc63a9f2d31e7ba10cd2e6", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 9604, "upload_time": "2015-07-29T17:06:14", "url": "https://files.pythonhosted.org/packages/78/66/3cfbcc604cc9e591a5cbc7a013ec2c0dea0ba42c712d03a35a0bdc65f5ff/dj_spam-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1f3a24550bc51850bc70733f0dbd256", "sha256": "e16d7983685ce6c5a7869e1c09ad1bd24cfe92695a0f3b36814d6a0fdab44726" }, "downloads": -1, "filename": "dj-spam-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e1f3a24550bc51850bc70733f0dbd256", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7685, "upload_time": "2015-07-29T17:05:41", "url": "https://files.pythonhosted.org/packages/f5/bd/2c8014fbf74e90b71134f2199945f24809bbc99c7e0bd2167e916f12f504/dj-spam-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0397664cbdd04be19f6ea813eb08bd98", "sha256": "825f7059fe008b133cefbb846780443c701bc6e84153953c635b1aa2368213dc" }, "downloads": -1, "filename": "dj_spam-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0397664cbdd04be19f6ea813eb08bd98", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10909, "upload_time": "2015-07-30T03:16:16", "url": "https://files.pythonhosted.org/packages/7f/41/c2f7eae271f745afe7b394d18c2842e8df0c019ae3a0881cbe6c6db4a1e3/dj_spam-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2d5b1ca358a920b3c6fb1f2ebde2606", "sha256": "73f2354493069d87961624cc33cd7d385eeec2c19a9617a2aa06716bac238d03" }, "downloads": -1, "filename": "dj-spam-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c2d5b1ca358a920b3c6fb1f2ebde2606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2015-07-30T03:16:12", "url": "https://files.pythonhosted.org/packages/9d/95/746f1c1e3b0db05b0deb8e7474be7e8e237618ea9abd8bd0fbbee7407b57/dj-spam-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0397664cbdd04be19f6ea813eb08bd98", "sha256": "825f7059fe008b133cefbb846780443c701bc6e84153953c635b1aa2368213dc" }, "downloads": -1, "filename": "dj_spam-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0397664cbdd04be19f6ea813eb08bd98", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 10909, "upload_time": "2015-07-30T03:16:16", "url": "https://files.pythonhosted.org/packages/7f/41/c2f7eae271f745afe7b394d18c2842e8df0c019ae3a0881cbe6c6db4a1e3/dj_spam-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2d5b1ca358a920b3c6fb1f2ebde2606", "sha256": "73f2354493069d87961624cc33cd7d385eeec2c19a9617a2aa06716bac238d03" }, "downloads": -1, "filename": "dj-spam-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c2d5b1ca358a920b3c6fb1f2ebde2606", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2015-07-30T03:16:12", "url": "https://files.pythonhosted.org/packages/9d/95/746f1c1e3b0db05b0deb8e7474be7e8e237618ea9abd8bd0fbbee7407b57/dj-spam-0.2.0.tar.gz" } ] }