Use constants for enabled/disabling status on Segment
This commit is contained in:
@ -164,7 +164,7 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
|
|||||||
still apply to the requesting visitor.
|
still apply to the requesting visitor.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
enabled_segments = Segment.objects.filter(status='enabled')
|
enabled_segments = Segment.objects.filter(status=Segment.STATUS_ENABLED)
|
||||||
persistent_segments = enabled_segments.filter(persistent=True)
|
persistent_segments = enabled_segments.filter(persistent=True)
|
||||||
session_segments = self.request.session['segments']
|
session_segments = self.request.session['segments']
|
||||||
rules = AbstractBaseRule.__subclasses__()
|
rules = AbstractBaseRule.__subclasses__()
|
||||||
|
@ -20,18 +20,22 @@ from wagtail_personalisation.utils import count_active_days
|
|||||||
@python_2_unicode_compatible
|
@python_2_unicode_compatible
|
||||||
class Segment(ClusterableModel):
|
class Segment(ClusterableModel):
|
||||||
"""The segment model."""
|
"""The segment model."""
|
||||||
|
STATUS_ENABLED = 'enabled'
|
||||||
|
STATUS_DISABLED = 'disabled'
|
||||||
|
|
||||||
|
STATUS_CHOICES = (
|
||||||
|
(STATUS_ENABLED, 'Enabled'),
|
||||||
|
(STATUS_DISABLED, 'Disabled'),
|
||||||
|
)
|
||||||
|
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
create_date = models.DateTimeField(auto_now_add=True)
|
create_date = models.DateTimeField(auto_now_add=True)
|
||||||
edit_date = models.DateTimeField(auto_now=True)
|
edit_date = models.DateTimeField(auto_now=True)
|
||||||
enable_date = models.DateTimeField(null=True, editable=False)
|
enable_date = models.DateTimeField(null=True, editable=False)
|
||||||
disable_date = models.DateTimeField(null=True, editable=False)
|
disable_date = models.DateTimeField(null=True, editable=False)
|
||||||
visit_count = models.PositiveIntegerField(default=0, editable=False)
|
visit_count = models.PositiveIntegerField(default=0, editable=False)
|
||||||
STATUS_CHOICES = (
|
status = models.CharField(
|
||||||
('enabled', 'Enabled'),
|
max_length=20, choices=STATUS_CHOICES, default=STATUS_ENABLED)
|
||||||
('disabled', 'Disabled'),
|
|
||||||
)
|
|
||||||
status = models.CharField(max_length=20, choices=STATUS_CHOICES,
|
|
||||||
default="enabled")
|
|
||||||
persistent = models.BooleanField(
|
persistent = models.BooleanField(
|
||||||
default=False, help_text=_("Should the segment persist between visits?"))
|
default=False, help_text=_("Should the segment persist between visits?"))
|
||||||
match_any = models.BooleanField(
|
match_any = models.BooleanField(
|
||||||
|
@ -12,11 +12,11 @@ def check_status_change(sender, instance, *args, **kwargs):
|
|||||||
original_status = ""
|
original_status = ""
|
||||||
|
|
||||||
if original_status != instance.status:
|
if original_status != instance.status:
|
||||||
if instance.status == "enabled":
|
if instance.status == instance.STATUS_ENABLED:
|
||||||
instance.enable_date = timezone.now()
|
instance.enable_date = timezone.now()
|
||||||
instance.visit_count = 0
|
instance.visit_count = 0
|
||||||
return instance
|
return instance
|
||||||
if instance.status == "disabled":
|
if instance.status == instance.STATUS_DISABLED:
|
||||||
instance.disable_date = timezone.now()
|
instance.disable_date = timezone.now()
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,9 +72,9 @@
|
|||||||
|
|
||||||
{% if user_can_create %}
|
{% if user_can_create %}
|
||||||
<ul class="block_actions">
|
<ul class="block_actions">
|
||||||
{% if segment.status == "disabled" %}
|
{% if segment.status == segment.STATUS_DISABLED %}
|
||||||
<li><a href="{% url 'segment:toggle' segment.pk %}" title="{% trans "Enable this segment" %}">enable</a></li>
|
<li><a href="{% url 'segment:toggle' segment.pk %}" title="{% trans "Enable this segment" %}">enable</a></li>
|
||||||
{% elif segment.status == "enabled" %}
|
{% elif segment.status == segment.STATUS_ENABLED %}
|
||||||
<li><a href="{% url 'segment:toggle' segment.pk %}" title="{% trans "Disable this segment" %}">disable</a></li>
|
<li><a href="{% url 'segment:toggle' segment.pk %}" title="{% trans "Disable this segment" %}">disable</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a href="edit/{{ segment.pk }}" title="{% trans "Configure this segment" %}">configure this</a></li>
|
<li><a href="edit/{{ segment.pk }}" title="{% trans "Configure this segment" %}">configure this</a></li>
|
||||||
|
@ -97,10 +97,10 @@ def toggle(request, segment_id):
|
|||||||
if request.user.has_perm('wagtailadmin.access_admin'):
|
if request.user.has_perm('wagtailadmin.access_admin'):
|
||||||
segment = get_object_or_404(Segment, pk=segment_id)
|
segment = get_object_or_404(Segment, pk=segment_id)
|
||||||
|
|
||||||
if segment.status == 'enabled':
|
if segment.status == Segment.STATUS_ENABLED:
|
||||||
segment.status = 'disabled'
|
segment.status = Segment.STATUS_DISABLED
|
||||||
elif segment.status == 'disabled':
|
elif segment.status == Segment.STATUS_DISABLED:
|
||||||
segment.status = 'enabled'
|
segment.status = Segment.STATUS_ENABLED
|
||||||
|
|
||||||
segment.save()
|
segment.save()
|
||||||
|
|
||||||
|
@ -76,8 +76,8 @@ def serve_variation(page, request, serve_args, serve_kwargs):
|
|||||||
|
|
||||||
for segment in adapter.get_all_segments():
|
for segment in adapter.get_all_segments():
|
||||||
try:
|
try:
|
||||||
user_segment = Segment.objects.get(pk=segment['id'],
|
user_segment = Segment.objects.get(
|
||||||
status='enabled')
|
pk=segment['id'], status=Segment.STATUS_ENABLED)
|
||||||
except Segment.DoesNotExist:
|
except Segment.DoesNotExist:
|
||||||
user_segment = None
|
user_segment = None
|
||||||
if user_segment:
|
if user_segment:
|
||||||
|
Reference in New Issue
Block a user