- Fixed Django 4 admin styling issues.
- Fixed deprecation warnings.
- Removed left-over Django 2.1 compatibility code.
- Added Django 4 compatibility.
- Fixed OEmbed maxwidth/maxheight parameters.
- Fixed using request as positional arg in
PlaceholderFieldAdmin.formfield_for_dbfield()
. - Fixed unneeded warnings from
placeholder_tags
usage. - Fixed keeping a lock unneededly when app loading was complete.
- Fixed
HttpRedirectRequest
to operate on a lazy value. - Replaced Travis with GitHub actions.
- Dropped Python 2.7 support.
- Dropped Django 1.11, 2.0, 2.1 support.
- Fix Django 3.0 compatibility by removing
curry()
call. - Bump setup requirements to ensure Django 3.0 compatibility.
- Fix Django 2.x compatibility with
disquswidgets
andformdesignerlink
migrations. - Fix Python error when adding a
ContentItem
on a parent model that doesn't have aparent_site
field. - Replace django-form-designer GitHub dependency with updated django-form-designer-ai PyPI release.
- Reformat all files with isort, black and prettier.
- Fixed compatibility with Django 2.2
- Fixed showing languages in the copy button which are not part of
PARLER_LANGUAGES
. - Fixed storing
MarkupItem
under it's proxy class type ID. - Fixed missing return value from
CachedModelMixin.delete()
. - Fixed reading
context.request
for content plugin templates. - Fixed including
cp_tabs.js
inPlaceholderFieldAdmin
. - Fixed HTML comment output escaping for missing database tables.
- Fixed errors in
get_plugins_by_name()
when object instances are passed. - Fixed
Placeholder.DoesNotExist
warning to display proper ContentType ID for proxy models. - Fixed leaving empty
.form-row
elements in the admin page. - Fixed
start_content_plugin
command, template was missing inMANIFEST
. - Fixed Python 3 support for
Placeholder.__repr__()
.
- Fixed twitter-text extra requires dependency for Python 3 support
Use
twitter-text
instead of the outdatedtwitter-text-py
.
- Fixed JavaScript media file ordering for Django 2.0
- Added
Meta.manager_inheritance_from_future = True
to allContentItem
subclasses that define aMeta
class. This avoids warnings in the latest django-polymorphic 2.0.1 release. It also makes sure all sub-sub classes are correctly fetched (an unlikely use-case though). - Fixed deprecation warnings for Django 2.1
- Fixed setup classifiers
- Added Django 2.0 support.
- Removed compatibility with very old
django-form-designer
versions. - Dropped Django 1.7, 1.8, 1.9 support.
- Fixed compatibility with upcoming django-polymorphic release.
- Delayed twittertext plugin checks.
- Removed unneeded
fluent_utils.django_compat
imports.
- Fixed Django 1.10+ wanting to create new migrations.
- Fixed inconsistent ordering of "markup item" language choices.
- Fixed str/bytes differences in migrations between Python 2 and 3.
- Django 1.11 support.
- Fixd garbled placeholder data in admin forms submitted with errors
- Fixed JavaScript
django_wysiwyg
error when text plugin is not included. - Dropped Django 1.5, 1.6 and Python 2.6 support.
- Fixed "Copy language" button for Django 1.10+
- Fix slot parameter for tests
fluent_contents.tests.factories.create_placeholder()
- Fixed "Copy language" button for Django 1.9+
- Added
find_contentitem_urls
management command to index URL usage. - Added
remove_stale_contentitems --remove-unreferenced
option to remove content items that no longer point to an existing page. - Make sure the OEmbed plugin generates links with
https://
whenSECURE_SSL_REDIRECT
is set, orFLUENT_OEMBED_FORCE_HTTPS
is enabled. - Fixed loosing jQuery event bindings in the admin.
- Added
remove_stale_contentitems
command for cleaning unusedContentItem
objects. This also allows the migrations to remove the staleContentType
models afterwards. - Fixed
start_content_plugin
command for Django 1.7 - Fixed
MiddlewareMixin
usage for Django 1.10 middleware support - Fixed
is_template_updated()
check for some Django 1.8 template setups.
- Added animations when moving content items, using the up/down buttons.
- Added drag&drop support on the title bar for reordering content items.
Although new feature additions usually mandate a new point release ("1.2'), these two improvements are too wonderful to delay further. Hence they are backported from development.
- Added
start_content_plugin
management command. - Fixed running clear_cache() too early on a new model; it executed before saving/retrieving a primary key.
- Fixed unwanted HTML escaping for output comments that report stale models.
- Fixed Python errors during debugging when the debug toolbar panel finds stale models.
- Fixed errors by
context.flatten()
on plugin rendering (e.g. when using django-crispy-forms). - Fixed
ContentPlugin.ADMIN_TEMPLATE_WITHOUT_LABELS
template when displaying multiple fields on a single line.
- Fixed usage of deprecated
context_instance
for Django 1.10 compatibility. - Fixed delete dialog in the Django admin when the page has stale context items.
- Fixed compatibility with html5lib 0.99999999/1.0b9
BACKWARDS INCOMPATIBLE: the custom merging template that's used in {% page_placeholder .. template=".." %}
no longer receives any custom context processor data defined in context_processors
/ TEMPLATE_CONTEXT_PROCESSORS
.
Only the standard Django context processors are included (via the PluginContext
).
The standard template values like {{ request }}
, {{ STATIC_URL }}
and {% csrf_token %}
still work.
- Added
fluent_contents.tests.factories
methods for easier plugin testing. - Added missing django-fluent-comments media files for
contentarea
plugin. This is configurable with theFLUENT_COMMENTSAREA_INCLUDE_STATIC_FILES
setting, that defaults toFLUENT_BLOGS_INCLUDE_STATIC_FILES
(True
). - Fixed appearance in django-flat-theme / Django 1.9.
- Fixed proxy model support for
ContentItem
models. - Fixed Markup plugin rendering.
- Fixed reStructuredText rendering, avoid rendering the whole HTML document.
- Fixed
{% csrf_token %}
support in plugin templates. - Fixed django-debug-toolbar support for skipped items.
- Fixed error handling of missing content items in the database.
- Fix truncating long
db_table
names, just like Django does. - Fix various Django 1.9 warnings that would break once Django 1.10 is out.
- Enforce newer versions on dependencies to ensure all bugfixes are installed.
- Fixed errors when rendering pages with missing items
- Added Django 1.9 support
- Added django-debug-toolbar panel:
fluent_contents.panels.ContentPluginPanel'
. - Added
Placeholder.get_search_text()
API for full text indexing support. - Added
FLUENT_TEXT_POST_FILTERS
andFLUENT_TEXT_PRE_FILTERS
to the text plugin for further processing of the text. - BACKWARDS INCOMPATIBLE: as text filters became global, the settings in :mod:`fluent_contents.plugins.text.appsettings` moved to :mod:`fluent_contents.appsettings`.
- Dropped Django 1.4 support
- Prevent caching complete placeholder/sharedcontent output when there are items with
cache_output_per_site
. This only occurs in environments whereFLUENT_CONTENTS_CACHE_PLACEHOLDER_OUTPUT
is enabled. - Fix Django migration unicode issues in Python 3
- Fix error in
get_output_cache_keys()
when reading thepk
field during deletion. - Fix compatibility with django-polymorphic 0.8.
- Improve styling with django-flat-theme theme.
- Fix choices listing of the "Copy Language" button.
- Fix form field order so CSS can select
.form-row:last-child
.
- Added
ContentItem.move_to_placeholder()
andContentItem.objects.move_to_placeholder()
API functions - Added check against bad html5lib versions that break HTML cleanup.
- Fix using
ContentItemInline.get_queryset()
in Django 1.6/1.7/1.8 - Fix Python 3.4 support for development (fixed
_is_template_updated
/ "is method overwritten" check) - Fix support for returning an
HttpRedirectRequest
in theContentPlugin.render()
method. - Fix
copy_to_placeholder()
to accidently setting an empty "FK cache" entry for theContentItem.parent
field. - Fix
TypeError
when abstractContentItem
class has no__str__()
method. - Fix initial migration for sharedcontent plugin.
- Fix handling of
SharedContent.__str__()
for missing translations.
- Fix rendering in development for Django 1.4 and 1.5
- Fix placeholder cache timeout values, take
ContentPlugin.cache_output
into account. This is only an issue when usingFLUENT_CONTENTS_CACHE_PLACEHOLDER_OUTPUT = True
. - Fix migration files that enforced using django-any-urlfield / django-any-imagefield.
NOTE: all migrations now explicitly refer to
PluginUrlField
/PluginImageField
. You can either generate new Django migrations, or simply replace the imports in your existing migrations.
- Added Django 1.8 support.
- Added caching support for the complete
{% render_placeholder %}
,{% page_placeholder %}
and{% sharedcontent %}
tags. - Added
as var
syntax for{% render_placeholder %}
,{% page_placeholder %}
and{% sharedcontent %}
tags. - Added
ContentItem.copy_to_placeholder()
andContentItem.objects.copy_to_placeholder()
API functions - Fix handling
CheckboxSelectMultiple
in admin form widgets. - Fix missing API parameters for
ContentItem.objects.create_for_placeholder()
andPlaceholder.objects.create_for_parent()
. - Fix static default
SITE_ID
value forSharedContent
, for compatibility with django-multisite. - Fix cache invalidation when using
render_ignore_item_language
. - Fix adding a second
PlaceholderField
to a model in a later stage.
- Added Django 1.7 support.
- Added option to share
SharedContent
objects across multiple websites. - Allow passing
SharedContent
object to{% sharedcontent %}
template tag. - Added
SharedContent.objects.published()
API for consistency between all apps. - Fixed rendering content items in a different language then the object data is saved as.
This can be overwritten by using
render_ignore_item_language = True
in the plugin. - Fixed support for: future >= 0.13.
- Improve default value of
ContentPlugin.cache_timeout
for Django 1.6 support. - Fix frontend media support for
{% sharedcontent %}
tag. - BACKWARDS INCOMPATIBLE: South 1.0 is required to run the migrations (or set
SOUTH_MIGRATION_MODULES
for all plugins). - BACKWARDS INCOMPATIBLE: Content is rendered in the language that is is being saved as, unless
render_ignore_item_language
is set.
Note
Currently, Django 1.7 doesn't properly detect the generated db_table
value properly for ContentItem objects.
This needs to be added manually in the migration files.
- Fix JavaScript errors with
for i in
whenArray.prototype
is extended. (e.g. when using django-taggit-autosuggest).
- Fix saving content item sorting.
- Added Python 3 support!
- Fixed Django 1.6 compatibility.
- Fixed disappearing contentitems issue for PlaceholderField on add-page
- Fixed orphaned content for form errors in the add page.
- Fixed no tabs selected on page reload.
- Added multilingual support, using django-parler.
- Added multisite support to sharedcontent plugin.
- Added frontend media support.
- Added "Open in new window" option for the "picture" plugin.
- Added
HttpRedirectRequest
exception andHttpRedirectRequestMiddleware
. - Added
cache_output_per_language
option to plugins. - Content items are prefixed with "content:" during syncdb, a
prefix_content_item_types
management command can be run manually too. - API Change: Renamed template tag library
placeholder_tags
tofluent_contents_tags
(the old name still works). - API Change:
render_placeholder()
andrender_content_items()
return aContentItemOutput
object, which can be treated like a string. - API Change: both
get_output_cache_key()
andget_output_cache_keys()
should useget_output_cache_base_key()
now. - Fix showing non-field-errors for inlines.
- Fix server error on using an invalid OEmbed URL.
- Fix gist plugin, allow UUID's now.
- Fix missing
alters_data
annotations on model methods. - Removed unneeded
render_comment_list
templatetag as it was upstreamed to django-threadedcomments 0.9.
- Dropped Django 1.3 support, added Django 1.6 support.
- Added
FLUENT_CONTENTS_PLACEHOLDER_CONFIG
variable to limit plugins in specific placeholder slots. - Added model fields for plugin developers, to have a consistent interface. The model fields integrate with django-any-urlfield, django-any-imagefield and django-wysiwyg.
- Added picture plugin.
- Added development (
DEBUG=True
) feature, changes in plugin templates update the stored version in the output cache. - Added cache methods to plugins which can be overwritten (
get_output_cache_key()
,get_cached_output()
, etc..) - Added
cache_output_per_site
option to plugins. - Fix admin appearance of plugins without fields.
- Fix initial south migrations, added missing dependencies.
- Fixed metaclass errors in markup plugin for Django 1.5 / six.
- Fix initial south migrations, added missing dependencies.
- Fixed cache clearing of sharedcontent plugin.
- Updated django-polymorphic version to 0.4.2, addressed deprecation warnings.
- Updated example app to show latest features.
- Added support for shared content.
- Added
ContentPlugin.HORIZONTAL
andContentPlugin.VERTICAL
constants for convenience. - Added support for noembed in
FLUENT_OEMBED_SOURCE
setting. - Added
FLUENT_OEMBED_EXTRA_PROVIDERS
setting to the OEmbed plugin. - Fix Django 1.5 compatibility.
- Fix code plugin compatibility with Pygments 1.6rc1.
- Fix escaping slot name in templates
- Fix https support for OEmbed plugin.
- Fix maxwidth parameter for OEmbed plugin.
- Fix updating OEmbed code after changing maxwidth/maxheight parameters.
- Moved the template tag parsing to a separate package, django-tag-parser.
- Bump version of django-wysiwyg to 0.5.1 because it fixes TinyMCE integration.
- Bump version of micawber to 0.2.6, which contains an up to date list of known OEmbed providers.
- BIC: As micawber is actively updated, we no longer maintain a local list of known OEmbed providers.
This only affects installations where
FLUENT_OEMBED_SOURCE = "list"
was explicitly defined insettings.py
, without providing a list forFLUENT_OEMBED_PROVIDER_LIST
. The new defaults are:FLUENT_OEMBED_SOURCE = "basic"
andFLUENT_OEMBED_PROVIDER_LIST = ()
.
- Fix 500 error when content items get orphaned after switching layouts.
- Fix plugin dependencies installation via the optional dependency specifier (e.g.
django-fluent-contents[text]
). - Fix missing dependency check for OEmbed plugin
- Fix Django dependency in
setup.py
, moved frominstall_requires
to therequires
section. - Fix template name for django-threadedcomments to
comment/list.html
, to be compatible with the pull request at honzakral/django-threadedcomments#39.
- Fixed
fluent_contents.rendering.render_content_items()
to handle models without a PK. - Make sure the client-side
sort_order
is always consistent, so external JS code can read/submit it.
- Fixed
PlaceholderField
usage with inherited models.
- Fixed missing files for oembed and markup plugins.
- Clarified documentation bits
First PyPI release.
The module design has been stable for quite some time, so it's time to show this module to the public.