=============================
django-djeddit
=============================
.. image:: https://badge.fury.io/py/django-djeddit.svg
:target: https://badge.fury.io/py/django-djeddit
.. image:: https://travis-ci.org/EatEmAll/django-djeddit.svg?branch=master
:target: https://travis-ci.org/EatEmAll/django-djeddit
.. image:: https://codecov.io/gh/EatEmAll/django-djeddit/branch/master/graph/badge.svg
:target: https://codecov.io/gh/EatEmAll/django-djeddit
.. image:: https://img.shields.io/badge/python-2.7%2C%203.4%2C%203.5%2C%203.6-blue.svg
:target: https://travis-ci.org/EatEmAll/django-djeddit
.. image:: https://img.shields.io/badge/django%20versions-1.8%2C%201.9%2C%201.10%2C%201.11%2C%202.0-blue.svg
:target: https://travis-ci.org/EatEmAll/django-djeddit
Bare bones Django forum application with Reddit like features developed as a Django reusable app.
* comments are ranked using wilson scoring interval and displayed in a collapsable tree structure (using `django-mptt <https://github.com/django-mptt/django-mptt>`_)
* voting functionality for threads & comments
* compatible with mobile screen sizes (using `Bootstrap <https://github.com/twbs/bootstrap>`_)
* users management page for admins
* admins can lock/unlock, edit, delete threads and posts, edit & delete topics
`django-registration-redux <https://github.com/macropin/django-registration>`_ is recommanded to go along with this app if you need out of the box user registration functionality.
Working demo: http://eatemall.pythonanywhere.com
Documentation: https://django-djeddit.readthedocs.io.
Screenshots
-----------
.. image:: https://raw.githubusercontent.com/EatEmAll/django-djeddit/master/media/Threads.jpg
.. image:: https://raw.githubusercontent.com/EatEmAll/django-djeddit/master/media/User.jpg
.. image:: https://raw.githubusercontent.com/EatEmAll/django-djeddit/master/media/Comments.jpg
Supported Dajngo versions
-------------------------
The app is currently tested with Django 1.8, 1.9, 1.10 and 1.11, 2.0
Quickstart
----------
Install django-djeddit::
pip install django-djeddit
Add it and its dependencies to your `INSTALLED_APPS`:
.. code-block:: python
INSTALLED_APPS = [
...
'crispy_forms',
'mptt',
'djeddit',
'meta',
...
]
djeddit_settings to context_processors:
.. code-block:: python
'context_processors': [
...
'djeddit.context_processors.djeddit_settings',
...
]
jango-djeddit's URL patterns:
.. code-block:: python
urlpatterns = [
...
url(r'^', include('djeddit.urls')),
...
]
Migrate models:
.. code-block:: python
python manage.py migrate djeddit
Create a topic:
You can use New Topic dialog in topics page if you're logged in as a superuser or you can create one in a python console:
.. code-block:: python
from djeddit.models import Topic
Topic.objects.create(title='Test Topic')
Credits
-------
Dependencies:
* django-mptt_
* crispy_forms_
* django-meta_
* django-ipware_
.. _django-mptt: https://github.com/django-mptt/django-mptt
.. _crispy_forms: https://github.com/django-crispy-forms/django-crispy-forms
.. _django-meta: https://github.com/nephila/django-meta
.. _django-ipware: https://github.com/un33k/django-ipware
Tools used in rendering this package:
* Cookiecutter_
* `cookiecutter-djangopackage`_
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage
History
-------
0.1.0 (2017-04-15)
++++++++++++++++++
* First release on PyPI.
0.1.5 (2017-05-26)
++++++++++++++++++
* Added tests for models, forms, views
* Urls that include topic titles with spaces in them don't work // fixed
* Competability fixes for Django 1.9 and 1.8 and Python 2.7
* client side fixes for added compatibility with mobile screen sizes
* font-awsome fonts are not loading // fixed
* Added description field for Topic model
* moved base.html to root template dir
0.2 (2017-07-04)
++++++++++++++++
* Admins can lock/unlock & delete threads, delete posts
* Admins can edit thread title, url, and post content
* added users management page for admins
* admins can edit & delete topics
* added fields upvotes, downvotes, wsi (Wilson score interval) to Post model
* removed score field from Post model
* comments are ranked using wilson scoring interval
* added comments paging functionality (using "Load n more comments" links)
0.3 (2018-06-02)
++++++++++++++++
* added option to define url prefix in settings.TOPICS_URL for topic & thread pages
* added sitemap support
* added url slugs to threads
* added ip & user agent tracking for posts
* added compatibility to Django 2.0
* added thread stickies (can be added or removed by admins)