Skip to content

Commit

Permalink
Merge 0e05d63 into 5a40bce
Browse files Browse the repository at this point in the history
  • Loading branch information
ropable committed Nov 21, 2017
2 parents 5a40bce + 0e05d63 commit fe4699c
Show file tree
Hide file tree
Showing 11 changed files with 111 additions and 27 deletions.
1 change: 1 addition & 0 deletions prs2/referral/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class AuditAdmin(VersionAdmin, ModelAdmin):
class LookupAdmin(AuditAdmin):
list_display = (
'id', 'name', 'slug', 'public', 'created', 'modified', 'effective_to')
prepopulated_fields = {'slug': ('name',)}
raw_id_fields = ('creator', 'modifier')
search_fields = ('name', 'slug')

Expand Down
70 changes: 70 additions & 0 deletions prs2/referral/migrations/0007_auto_20171115_1523.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2017-11-15 07:23
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('referral', '0006_auto_20170607_1111'),
]

operations = [
migrations.AlterField(
model_name='agency',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='conditioncategory',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='doptrigger',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='localgovernment',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='notetype',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='organisation',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='organisationtype',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='referraltype',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='region',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='taskstate',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
migrations.AlterField(
model_name='tasktype',
name='slug',
field=models.SlugField(help_text='Must be unique. Automatically generated from name.', unique=True),
),
]
7 changes: 3 additions & 4 deletions prs2/referral/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
from django.utils.encoding import python_2_unicode_compatible
from django.utils.safestring import mark_safe
# Third-party app imports
from autoslug import AutoSlugField
from jinja2 import Template
from lxml.html import clean, fromstring
from model_utils import Choices
Expand All @@ -39,16 +38,16 @@
(8, 'wa', ('WA')),
)


@python_2_unicode_compatible
class ReferralLookup(ActiveModel, Audit):
"""Abstract model type for lookup-table objects.
"""
name = models.CharField(max_length=200)
description = models.CharField(
max_length=200, null=True, blank=True, validators=[MaxLengthValidator(200)])
slug = AutoSlugField(
populate_from='name', unique=True,
help_text='Must be unique. Automatically generated from name.')
slug = models.SlugField(
unique=True, help_text='Must be unique. Automatically generated from name.')
public = models.BooleanField(
default=True, help_text='Is this lookup selection available to all users?')
headers = ['Name', 'Description', 'Last modified']
Expand Down
8 changes: 1 addition & 7 deletions prs2/referral/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from referral.models import Referral, Task
from referral.test_models import PrsTestCase
from referral.utils import (
is_model_or_string, smart_truncate, breadcrumbs_li, slugify,
is_model_or_string, smart_truncate, breadcrumbs_li,
update_revision_history, filter_queryset, user_task_history,
dewordify_text, overdue_task_email)

Expand Down Expand Up @@ -102,12 +102,6 @@ def test_html_breadcrumbs(self):
crumbs = breadcrumbs_li(l)
self.assertTrue(isinstance(crumbs, six.text_type))

def test_slugify(self):
"""Test the customised slugify function
"""
self.assertEqual('test', slugify('Test'))
self.assertEqual('test-value', slugify('Test Value'))

def test_update_revision_history(self):
"""Test update_revision_history, for coverage :P
"""
Expand Down
10 changes: 10 additions & 0 deletions prs2/referral/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1056,3 +1056,13 @@ def test_post_forbidden(self):
self.client.login(username='readonlyuser', password='pass')
response = self.client.post(url, {'file': f})
self.assertEquals(response.status_code, 403)


class HealthCheckViewTest(PrsViewsTestCase):
def test_healthcheck(self):
"""Test the healthcheck view works without auth
"""
self.client.logout()
url = reverse('health_check')
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
1 change: 1 addition & 0 deletions prs2/referral/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

# Other static/functional URLs
urlpatterns += [
url(r'^healthcheck/$', views.HealthCheckView.as_view(), name='health_check'),
url(r'^help/$', views.HelpPage.as_view(), name='help_page'),
url(r'^search/$', views.GeneralSearch.as_view(), name='prs_general_search'),
url(r'^stopped-tasks/$', views.SiteHome.as_view(stopped_tasks=True), name='stopped_tasks_list'),
Expand Down
6 changes: 0 additions & 6 deletions prs2/referral/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,12 +271,6 @@ def borgcollector_harvest(request, publishes=['prs_locations']):
return r


def slugify(value):
"""A (slightly) customised slugify function.
"""
return django_slugify(unidecode(value))


def overdue_task_email():
"""A utility function to send an email to each user with tasks that are
overdue.
Expand Down
12 changes: 12 additions & 0 deletions prs2/referral/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1443,3 +1443,15 @@ def get(self, request, *args, **kwargs):
else:
messages.warning(request, 'That record is not associated with an InfoBase object ID.')
return HttpResponseRedirect(record.get_absolute_url())


class HealthCheckView(TemplateView):
"""A basic template view not requiring auth, used for service monitoring.
"""
template_name = 'healthcheck.html'

def get_context_data(self, **kwargs):
context = super(HealthCheckView, self).get_context_data(**kwargs)
context['page_title'] = 'PRS application status'
context['status'] = 'HEALTHY'
return context
6 changes: 0 additions & 6 deletions prs2/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,3 @@
# django-sql-explorer settings
# Requires user is_staff==True and membership in 'PRS power user' group.
EXPLORER_PERMISSION_VIEW = lambda u: u.is_staff and u.userprofile.is_power_user()


# Custom slugify function for django-autoslug, because I'm sick of
# RuntimeWarning errors about unicode :/
# Ref: https://django-autoslug.readthedocs.io/en/latest/settings.html
AUTOSLUG_SLUGIFY_FUNCTION = 'referral.utils.slugify'
9 changes: 9 additions & 0 deletions prs2/templates/healthcheck.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!doctype html>
<html lang="en">
<head>
<title>{{ page_title }}</title>
</head>
<body>
<p>{{ status }}</p>
</body>
</html>
8 changes: 4 additions & 4 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Django==1.11.3
django-extensions==1.8.1
Django==1.11.7
django-extensions==1.9.7
git+https://github.com/parksandwildlife/dpaw-utils.git@0.3a16#egg=dpaw-utils
django-reversion==2.0.9
django-reversion==2.0.10
django-debug-toolbar==1.8
django-tastypie==0.14.0
django-taggit==0.22.1
django-autoslug==1.9.3
django-autoslug==1.9.3 # Not in use, but needed for legacy migrations.
django-crispy-forms==1.6.1
django-sql-explorer==1.0
xlsxwriter==0.9.6 # Required for Excel export in django-sql-explorer
Expand Down

0 comments on commit fe4699c

Please sign in to comment.