Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions djangocms_conditional/cms_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from django.contrib.auth.models import User, AnonymousUser
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from .models import ConditionalPluginModel, MODE_IN_GROUP, MODE_NOT_IN_GROUP, MODE_NOT_IN_GROUP_PLUS_ANON, \
MODE_ANONYMOUS


class ConditionalContainerPlugin(CMSPluginBase):
name = _(u'Conditional content')
name = _('Conditional content')
model = ConditionalPluginModel
allow_children = True
cache = False
Expand All @@ -31,13 +31,13 @@ def render(self, context, instance, placeholder):
if user.groups.filter(id=instance.permitted_group.id).exists():
context['instance'] = instance
elif instance.mode == MODE_NOT_IN_GROUP:
if not (user.is_anonymous() or user.groups.filter(id=instance.permitted_group.id).exists()):
if not (user.is_anonymous or user.groups.filter(id=instance.permitted_group.id).exists()):
context['instance'] = instance
elif instance.mode == MODE_ANONYMOUS:
if user.is_anonymous():
if user.is_anonymous:
context['instance'] = instance
elif instance.mode == MODE_NOT_IN_GROUP_PLUS_ANON:
if user.is_anonymous() or not user.groups.filter(id=instance.permitted_group.id).exists():
if user.is_anonymous or not user.groups.filter(id=instance.permitted_group.id).exists():
context['instance'] = instance

return context
Expand Down
14 changes: 6 additions & 8 deletions djangocms_conditional/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
from cms.models import CMSPlugin
from django.contrib.auth.models import Group
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _


MODE_IN_GROUP = 'in_group'
Expand All @@ -12,21 +11,20 @@
MODE_ANONYMOUS = 'anonymous'


@python_2_unicode_compatible
class ConditionalPluginModel(CMSPlugin):

permitted_group = models.ForeignKey(Group, null=False, blank=False)
permitted_group = models.ForeignKey(Group, null=False, blank=False, on_delete=models.CASCADE)
mode = models.CharField(max_length=40,
default='in_group',
help_text=_(u"Conditional access type"),
choices=((MODE_IN_GROUP, _(u'Users in group')),
(MODE_NOT_IN_GROUP, _(u'Users not in group')),
help_text=_("Conditional access type"),
choices=((MODE_IN_GROUP, _('Users in group')),
(MODE_NOT_IN_GROUP, _('Users not in group')),
(MODE_NOT_IN_GROUP_PLUS_ANON, _('Anonymous users and users not in group')),
(MODE_ANONYMOUS, _('Anonymous users')),
))

def __str__(self):
return _(u'Conditional access %s group="%s"') % (
return _('Conditional access %s group="%s"') % (
self.mode,
self.permitted_group.name,
)
16 changes: 8 additions & 8 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
master_doc = 'index'

# General information about the project.
project = u'djangocms-conditional'
copyright = u'2017, Roy Hooper'
project = 'djangocms-conditional'
copyright = '2017, Roy Hooper'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down Expand Up @@ -192,8 +192,8 @@
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', 'djangocms-conditional.tex', u'djangocms-conditional Documentation',
u'Iacopo Spalletti', 'manual'),
('index', 'djangocms-conditional.tex', 'djangocms-conditional Documentation',
'Iacopo Spalletti', 'manual'),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down Expand Up @@ -222,8 +222,8 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'djangocms-conditional', u'djangocms-conditional Documentation',
[u'Iacopo Spalletti'], 1)
('index', 'djangocms-conditional', 'djangocms-conditional Documentation',
['Iacopo Spalletti'], 1)
]

# If true, show URL addresses after external links.
Expand All @@ -236,8 +236,8 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'djangocms-conditional', u'djangocms-conditional Documentation',
u'Iacopo Spalletti', 'djangocms-conditional', 'One line description of project.',
('index', 'djangocms-conditional', 'djangocms-conditional Documentation',
'Iacopo Spalletti', 'djangocms-conditional', 'One line description of project.',
'Miscellaneous'),
]

Expand Down
6 changes: 3 additions & 3 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ def setup_plugin(self, group, mode='in_group'):
parent_plugin = add_plugin(
placeholder,
ConditionalContainerPlugin,
u'en',
'en',
permitted_group=group,
mode=mode
)
parent_plugin.save()

text_content = u"Child plugin"
text_plugin = add_plugin(placeholder, u"TextPlugin", u"en", body=text_content, target=parent_plugin,)
text_content = "Child plugin"
text_plugin = add_plugin(placeholder, "TextPlugin", "en", body=text_content, target=parent_plugin,)
text_plugin.save()

parent_plugin.child_plugin_instances = [text_plugin]
Expand Down