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