Skip to content

Commit

Permalink
Add support for Django 2.1 and Django Filters 2.0.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
cdubz committed Aug 4, 2018
1 parent f6ee24a commit 4b7bb69
Show file tree
Hide file tree
Showing 7 changed files with 227 additions and 192 deletions.
348 changes: 188 additions & 160 deletions Pipfile.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions api/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ class APIMetadata(metadata.SimpleMetadata):
def determine_metadata(self, request, view):
data = super(APIMetadata, self).determine_metadata(request, view)
data.pop('description')
if hasattr(view, 'filter_fields'):
data.update({'filters': view.filter_fields})
if hasattr(view, 'filterset_fields'):
data.update({'filters': view.filterset_fields})
return data
16 changes: 8 additions & 8 deletions api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,46 +10,46 @@ class ChildViewSet(viewsets.ModelViewSet):
queryset = models.Child.objects.all()
serializer_class = serializers.ChildSerializer
lookup_field = 'slug'
filter_fields = ('first_name', 'last_name', 'slug')
filterset_fields = ('first_name', 'last_name', 'slug')


class DiaperChangeViewSet(viewsets.ModelViewSet):
queryset = models.DiaperChange.objects.all()
serializer_class = serializers.DiaperChangeSerializer
filter_fields = ('child', 'wet', 'solid', 'color')
filterset_fields = ('child', 'wet', 'solid', 'color')


class FeedingViewSet(viewsets.ModelViewSet):
queryset = models.Feeding.objects.all()
serializer_class = serializers.FeedingSerializer
filter_fields = ('child', 'type', 'method')
filterset_fields = ('child', 'type', 'method')


class NoteViewSet(viewsets.ModelViewSet):
queryset = models.Note.objects.all()
serializer_class = serializers.NoteSerializer
filter_fields = ('child',)
filterset_fields = ('child',)


class SleepViewSet(viewsets.ModelViewSet):
queryset = models.Sleep.objects.all()
serializer_class = serializers.SleepSerializer
filter_fields = ('child',)
filterset_fields = ('child',)


class TimerViewSet(viewsets.ModelViewSet):
queryset = models.Timer.objects.all()
serializer_class = serializers.TimerSerializer
filter_fields = ('active', 'user')
filterset_fields = ('active', 'user')


class TummyTimeViewSet(viewsets.ModelViewSet):
queryset = models.TummyTime.objects.all()
serializer_class = serializers.TummyTimeSerializer
filter_fields = ('child',)
filterset_fields = ('child',)


class WeightViewSet(viewsets.ModelViewSet):
queryset = models.Weight.objects.all()
serializer_class = serializers.WeightSerializer
filter_fields = ('child',)
filterset_fields = ('child',)
2 changes: 1 addition & 1 deletion babybuddy/tests/tests_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def test_user_settings(self):
def test_user_views(self):
# Staff setting is required to access user management.
page = self.c.get('/users/')
self.assertEqual(page.status_code, 302)
self.assertEqual(page.status_code, 403)
self.user.is_staff = True
self.user.save()

Expand Down
13 changes: 11 additions & 2 deletions babybuddy/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,21 @@ def get_redirect_url(self, *args, **kwargs):
return super(RootRouter, self).get_redirect_url(self, *args, **kwargs)


class UserList(StaffOnlyMixin, FilterView):
class BabyBuddyFilterView(FilterView):
"""
Disables "strictness" for django-filter. It is unclear from the
documentation exactly what this does...
"""
# TODO Figure out the correct way to use this.
strict = False


class UserList(StaffOnlyMixin, BabyBuddyFilterView):
model = User
template_name = 'babybuddy/user_list.html'
ordering = 'username'
paginate_by = 10
filter_fields = ('username', 'first_name', 'last_name', 'email')
filterset_fields = ('username', 'first_name', 'last_name', 'email')


class UserAdd(StaffOnlyMixin, PermissionRequired403Mixin, SuccessMessageMixin,
Expand Down
35 changes: 17 additions & 18 deletions core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView

from django_filters.views import FilterView

from babybuddy.mixins import PermissionRequired403Mixin
from babybuddy.views import BabyBuddyFilterView
from core import forms, models, timeline


Expand Down Expand Up @@ -46,12 +45,12 @@ def delete(self, request, *args, **kwargs):
return super(CoreDeleteView, self).delete(request, *args, **kwargs)


class ChildList(PermissionRequired403Mixin, FilterView):
class ChildList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Child
template_name = 'core/child_list.html'
permission_required = ('core.view_child',)
paginate_by = 10
filter_fields = ('first_name', 'last_name')
filterset_fields = ('first_name', 'last_name')


class ChildAdd(CoreAddView):
Expand Down Expand Up @@ -94,12 +93,12 @@ class ChildDelete(CoreUpdateView):
success_url = reverse_lazy('core:child-list')


class DiaperChangeList(PermissionRequired403Mixin, FilterView):
class DiaperChangeList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.DiaperChange
template_name = 'core/diaperchange_list.html'
permission_required = ('core.view_diaperchange',)
paginate_by = 10
filter_fields = ('child', 'wet', 'solid', 'color')
filterset_fields = ('child', 'wet', 'solid', 'color')


class DiaperChangeAdd(CoreAddView):
Expand All @@ -122,12 +121,12 @@ class DiaperChangeDelete(CoreDeleteView):
success_url = reverse_lazy('core:diaperchange-list')


class FeedingList(PermissionRequired403Mixin, FilterView):
class FeedingList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Feeding
template_name = 'core/feeding_list.html'
permission_required = ('core.view_feeding',)
paginate_by = 10
filter_fields = ('child', 'type', 'method')
filterset_fields = ('child', 'type', 'method')


class FeedingAdd(CoreAddView):
Expand Down Expand Up @@ -156,12 +155,12 @@ class FeedingDelete(CoreDeleteView):
success_url = reverse_lazy('core:feeding-list')


class NoteList(PermissionRequired403Mixin, FilterView):
class NoteList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Note
template_name = 'core/note_list.html'
permission_required = ('core.view_note',)
paginate_by = 10
filter_fields = ('child',)
filterset_fields = ('child',)


class NoteAdd(CoreAddView):
Expand All @@ -184,12 +183,12 @@ class NoteDelete(CoreDeleteView):
success_url = reverse_lazy('core:note-list')


class SleepList(PermissionRequired403Mixin, FilterView):
class SleepList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Sleep
template_name = 'core/sleep_list.html'
permission_required = ('core.view_sleep',)
paginate_by = 10
filter_fields = ('child',)
filterset_fields = ('child',)


class SleepAdd(CoreAddView):
Expand Down Expand Up @@ -218,12 +217,12 @@ class SleepDelete(CoreDeleteView):
success_url = reverse_lazy('core:sleep-list')


class TimerList(PermissionRequired403Mixin, FilterView):
class TimerList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Timer
template_name = 'core/timer_list.html'
permission_required = ('core.view_timer',)
paginate_by = 10
filter_fields = ('active', 'user')
filterset_fields = ('active', 'user')


class TimerDetail(PermissionRequired403Mixin, DetailView):
Expand Down Expand Up @@ -305,12 +304,12 @@ class TimerDelete(CoreDeleteView):
success_url = reverse_lazy('core:timer-list')


class TummyTimeList(PermissionRequired403Mixin, FilterView):
class TummyTimeList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.TummyTime
template_name = 'core/tummytime_list.html'
permission_required = ('core.view_tummytime',)
paginate_by = 10
filter_fields = ('child',)
filterset_fields = ('child',)


class TummyTimeAdd(CoreAddView):
Expand Down Expand Up @@ -339,12 +338,12 @@ class TummyTimeDelete(CoreDeleteView):
success_url = reverse_lazy('core:tummytime-list')


class WeightList(PermissionRequired403Mixin, FilterView):
class WeightList(PermissionRequired403Mixin, BabyBuddyFilterView):
model = models.Weight
template_name = 'core/weight_list.html'
permission_required = ('core.view_weight',)
paginate_by = 10
filter_fields = ('child',)
filterset_fields = ('child',)


class WeightAdd(CoreAddView):
Expand Down
1 change: 0 additions & 1 deletion reports/graphs/feeding_duration.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ def feeding_duration(instances):
x=list(totals.values_list('date', flat=True)),
y=[td.seconds/60 for td in averages],
hoverinfo='text',
textposition='outside',
text=[_duration_string_ms(td) for td in averages]
)
trace_count = go.Scatter(
Expand Down

0 comments on commit 4b7bb69

Please sign in to comment.