- Breaking changes:
- Removed Python 3.4 support
- Removed Django 2.0 support
- Added Django 2.2 support
- No longer avoid duplicated user files,
because of performance reasons.
Set
ST_PREVENT_SOME_FILE_DUPLICATION
toTrue
to get the previous behaviour back.
- Add math support (disabled by default, see doc's settings section)
- Add sortable categories (disabed by default, see doc's settings section). Thanks to @andreynovikov
- Update
mistune
andPillow
dependencies - Remove
uni-slugify
andUnidecode
dependencies - Python and Django warnings are enabled for new projects. The change is in manage.py
- Fix strike-through style
- Breakig change: usernames are now case-insensitive,
set
ST_CASE_INSENSITIVE_USERNAMES = False
to disable this feature. Disabling it is likely required for existing instances of Spirit due to clashing usernames - New: case insensitive usernames
- Fix private forum restriction regression where an anonymous user was able to view sections other than the index
- Make bookmark save latest place only, going back to a previous page won't update the bookmark anymore (PR #245)
- Update locales/translations
- Fix password reset
- Make admin user-list redirect to the right user profile when clicking on a username
- Update dependencies:
pillow==5.2.0
anddjango-djconfig==0.8.0
- Drops support for Django 1.8, 1.9 and 1.10
- Adds support for Python 3.7 (no changes required)
- Adds support for Django 2.0 and 2.1
- Adds
django.middleware.security.SecurityMiddleware``to
MIDDLEWARE_CLASSES` setting - Adds
LOGOUT_REDIRECT_URL = 'spirit:index'
to settings - Removes jQuery dependency in favor of vanilla JS
- Fixes user's
last_seen
feature. There was a bug in the middleware that would update the field pretty much on every request - Renames
MIDDLEWARE_CLASSES
(deprecated by django) setting toMIDDLEWARE
- Removes
spirit.settings
deprecated in Spirit 0.5 - Avoids installing
spirit.topic.poll
app in the generated project - Updates haystack dependency to 2.8.1
- Drops support for Python 3.3
- Adds support for Python 3.6
- Adds support for Django 1.9, 1.10 and 1.11
- Adds python-magic dependency (to check uploaded files)
- Improvement: focus on comment editor after clicking a format button. PR #219 (thanks to @cryptogun)
- Fixes: untranslated strings. PR #218 (thanks to @cryptogun)
- Fixes: missing link on admin flag. PR #217 (thanks to @cryptogun)
- Fixes:
XForwardedForMiddleware
middleware and gunicorn error. PR #216 (thanks to @cryptogun) - Improvement: Add
@username
on comment editor when clicking on a reply link. PR #212 (thanks to @cryptogun) - Improvement: notifications page drop-down menu for read/unread. PR #213 (thanks to @cryptogun)
- New: lithuanian translation, thanks to @sirex
- New: file upload on comments
- Improvement: Adds
ST_UPLOAD_IMAGE_ENABLED
to enable/disable image uploads andST_UPLOAD_FILE_ENABLED
to enable/disable file uploads - Remove deprecated
topic_poll
app - Remove deprecated (since v0.2)
spirit_user.User
(PR #141), read the wiki or the PR for a workaround - Updates mistune, haystack and woosh dependencies
- Deprecates
spirit.settings
. It will be removed in future releases - Updates locales
- New: Anti double post (including comments, topics and private topics)
- New: Adds
ST_DOUBLE_POST_THRESHOLD_MINUTES
setting to change the the threshold time in which the double posting is prevented - Improvement: Adds
ST_COMMENT_MAX_LEN
setting to change the maximum characters limit per comment (#107) - New: Adds optional category title color (#110 thanks to @sheepsy90)
- Fix:
Too many submissions
when form submission has an error (#58) - New: Key based expiration rate-limit.
- New:
ST_RATELIMIT_CACHE = 'st_rate_limit'
setting andCACHE
. - Fix: Boolean filters for Elasticsearch (PR #130)
- Improvement: UTC timezones instead of GMT in user profile form (#108)
- Fix: missing emojis (#93)
- Improvement: Replaced twitter emoji pack by emojiOne pack (PR #126)
- Improvement: Search within comments (#57)
- Improvement: Search-index partial update (PR #129)
- Improvement: Support for YouTube embeds that have a timestamp (PR #116 thanks to @alesdotio)
- Removed unused
ST_UNCATEGORIZED_CATEGORY_PK
setting - Security fix: fixes a regression within markdown URLs present in v0.4.6 (#105 thanks to @qll)
- New:
settings.ST_ALLOWED_URL_PROTOCOLS
a set containing valid URL protocols
- Improvement: Updated mistune (markdown) dependency
- Fix: Facebook share link (#87 thanks to @initialkommit)
- Improvement: Adds email confirmation in registration
- Improvement: Removes password confirmation in registration
- Improvement: Login message changed to inform when the username is not found
- Improvement: Force HTML5 youtube player
- Adds Python 3.5 support
- New: Comment history diff (inserted & deleted lines)
- New: Twitter emojis pack
- New (Dev): Gulp tasks
npm run gulp css
andnpm run gulp coffee
for building assets - Improvement: Adds
rel="nofollow"
to all comment links of regular users - Improvement: CSS & JS minification and concatenation
- Improvement: Added
STATICFILES_STORAGE = 'ManifestStaticFilesStorage'
(settings.prod only) to append hashes to assets file names - Improvement:
woff2
font support - Fix: Email required on registration
- Fix: Changed
DEFAULT_FROM_EMAIL
default towebmaster@localhost
(Django's default) - Fix: Redirect to first unread comment on visited topics
- Fix: Adds missing
apps.AppConfig
inspirit.search
to avoid app label clashes.
- New: mark topic as visited (grey out the link) when it has a bookmark
- New: mark topic as has new comments (red out comment icon) when it has new comments
- Fix: send emails as
DEFAULT_FROM_EMAIL
(default tosite.name <noreply@[site.domain]>
), setting this will be mandatory in future releases (default will be removed). - Fix: Implement missing
apps.AppConfig
inspirit.core
to avoid app label clashes. - Fix: Show category names in the advance search template.
- New app comment.poll: Polls within comments
- New: Floating flash messages when there is a hash in the URL
- New: Case insensitive emails (setting.ST_CASE_INSENSITIVE_EMAILS)
- New & updated translations: Turkish (thanks to negativefix), Hungarian (thanks to istvanf), Polish, Polish (Poland), Spanish, German, Chinese, Swedish and Russian
- Adds management commands: spiritinstall, spiritupgrade
- Fix to use current date when a history comment is created
- Adds missing user profile migration (issue #62)
- Removed old migrations.
- Removed
spirit
app, it has been decoupled into many apps.
- Requires Django 1.8 (support for 1.7 has been dropped).
- Drops the custom
AUTH_USER_MODEL
. - Deprecated
AbstractForumUser
andAbstractUser
. They will be removed in future releases. - Moved
spirit.middleware.XForwardedForMiddleware
tospirit.core.middleware.XForwardedForMiddleware
. - Moved
spirit.middleware.TimezoneMiddleware
tospirit.user.middleware.TimezoneMiddleware
. - Moved
spirit.middleware.LastIPMiddleware
tospirit.user.middleware.LastIPMiddleware
. - Moved
spirit.middleware.LastSeenMiddleware
tospirit.user.middleware.LastSeenMiddleware
. - Moved
spirit.middleware.ActiveUserMiddleware
tospirit.user.middleware.ActiveUserMiddleware
. - Moved
spirit.middleware.PrivateForumMiddleware
tospirit.core.middleware.PrivateForumMiddleware
. - Removed most signals.
- Renamed models:
spirit.Category
tospirit_category.category
,spirit.UserProfile
tospirit_user.UserProfile
,spirit.Topic
tospirit_topic.Topic
,spirit.TopicFavorite
tospirit_topic_favorite.TopicFavorite
,spirit.Comment
tospirit_comment.Comment
,spirit.TopicNotification
tospirit_topic_notification.TopicNotification
,spirit.TopicPoll
tospirit_topic_poll.TopicPoll
,spirit.TopicPollChoice
tospirit_topic_poll.TopicPollChoice
,spirit.TopicPollVote
tospirit_topic_poll.TopicPollVote
,spirit.TopicPrivate
tospirit_topic_private.TopicPrivate
,spirit.TopicUnread
tospirit_topic_unread.TopicUnread
,spirit.CommentBookmark
tospirit_comment_bookmark.CommentBookmark
,spirit.CommentFlag
tospirit_comment_flag.CommentFlag
,spirit.Flag
tospirit_comment_flag.Flag
,spirit.CommentHistory
tospirit_comment_history.CommentHistory
andspirit.CommentLike
tospirit_comment_like.CommentLike
.ContentTypes
were renamed accordingly, so if you have a model that relates to Spirit via a GenericForeignKey, you should not worry about it.
- Requires Django 1.7 (support for 1.6 has been dropped).
- Polls.
- Better markdown parser.
- Global pinned topics and regular pinned topics.
- Unicode url slug.
- Swappable user model: allows you to replace the Spirit user model by your own user model.
- Code highlighting.
- Emojis popup selector.
- Js scripts rewritten in coffeescript + tests.
- Social Integration: share comments on twitter, etc.
- Languages: German (by derWalter), Swedish (by silverstream).
- Private forum setting: if it's on, it won't allow non-members to browse the forum.
- Markdown fenced code blocks.
- Image upload for comments (not Drag&Drop).