Skip to content
Snippets Groups Projects
Commit 8951a3c6 authored by florimondmanca's avatar florimondmanca
Browse files

add description field to place

parent ef4940a1
No related branches found
No related tags found
No related merge requests found
......@@ -19,7 +19,7 @@ urlpatterns = [
url(r'^auth/get-token/$', obtain_auth_token, name='get-auth-token'),
]
router = routers.SimpleRouter()
router = routers.DefaultRouter()
# Visits views
router.register('visits', visits_views.VisitViewSet)
......
......@@ -3,7 +3,7 @@
from django.test import TestCase
from rest_framework import status
from tests.factory import VisitParticipantFactory
from tests.factory import VisitFactory, StudentFactory, UserFactory
from tests.factory import VisitFactory, StudentFactory
from tests.utils import HyperlinkedAPITestCase
from visits.serializers import (
VisitParticipantWriteSerializer, VisitParticipantIdentifySerializer)
......
......@@ -18,6 +18,10 @@ class PlaceTest(ModelTestCase):
'verbose_name': 'adresse',
'max_length': 200,
},
'description': {
'default': '',
'blank': True,
}
}
model_tests = {
'verbose_name': 'lieu',
......
......@@ -12,10 +12,7 @@ utc = pytz.UTC
class VisitQuerySet(models.QuerySet):
"""Custom Visit queryset.
Allow filtering by whether registrations are open or closed.
"""
"""Custom Visit queryset."""
def registrations_open(self, state):
"""Filter visits whose registrations are open or closed.
......@@ -28,13 +25,17 @@ class VisitQuerySet(models.QuerySet):
True corresponds to open registrations,
False to closed registrations.
"""
dt_now = now()
today = now()
if state:
return self.filter(deadline__gte=dt_now)
return self.filter(deadline__gte=today)
else:
return self.filter(deadline__lt=dt_now)
return self.filter(deadline__lt=today)
def passed(self):
"""Return a queryset containing only passed visits.
A visit is passed if its date is strictly after today.
"""
return self.filter(date__gt=now())
......@@ -176,6 +177,7 @@ class Place(models.Model):
name = models.CharField('nom', max_length=200)
address = models.CharField('adresse', max_length=200)
description = MarkdownxField(default='', blank=True)
class Meta: # noqa
verbose_name = 'lieu'
......
......@@ -9,10 +9,11 @@ from .models import Visit, VisitParticipant, Place
class PlaceSerializer(serializers.ModelSerializer):
"""Serializer for Place."""
class Meta: # noqa
model = Place
fields = ('id', 'name', 'address')
fields = ('id', 'name', 'address', 'description')
class VisitSerializer(serializers.HyperlinkedModelSerializer):
......
......@@ -33,11 +33,21 @@ class VisitParticipantsViewSet(mixins.CreateModelMixin,
permission_classes = (DRYPermissions,)
def get_queryset(self):
if self.action in ['retrieve']:
"""Determine, among other things, what get_object() will return.
Return all visits for the retrieve action as the <pk> identifies
a visit there.
Otherwise return all visit participants.
"""
if self.action == 'retrieve':
return Visit.objects.all()
return VisitParticipant.objects.all()
def get_serializer_class(self):
"""Return the right serializer class for each action.
Allows DRF to display arguments/parameters in the generated docs.
"""
if self.action == 'list':
return VisitParticipantReadSerializer
elif self.action == 'retrieve':
......@@ -80,6 +90,7 @@ class VisitParticipantsViewSet(mixins.CreateModelMixin,
class PlaceViewSet(viewsets.ReadOnlyModelViewSet):
"""Simple read-only view set for places."""
queryset = Place.objects.all()
serializer_class = PlaceSerializer
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment