7

Use constants for enabled/disabling status on Segment

This commit is contained in:
Michael van Tellingen
2017-05-31 14:38:58 +02:00
parent 3d920d8ed8
commit 31f8a329f2
6 changed files with 22 additions and 18 deletions

View File

@ -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__()

View File

@ -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(

View File

@ -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()

View File

@ -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 %}

View File

@ -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()

View File

@ -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: