feat: Export activity attendance

Resolves #23
This commit is contained in:
James Graham
2020-04-02 16:27:29 +01:00
parent 8f494e1be5
commit ada72c24f8
4 changed files with 47 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ from rest_framework import serializers
from activities import models from activities import models
from . import base from . import base
from . import people as people_serializers
class ActivityTypeSerializer(serializers.ModelSerializer): class ActivityTypeSerializer(serializers.ModelSerializer):
@@ -45,8 +46,32 @@ class ActivitySerializer(base.FlattenedModelSerializer):
class Meta: class Meta:
model = models.Activity model = models.Activity
fields = [ fields = [
'name', 'pk',
'series', 'name',
'type', 'series',
'medium', 'type',
'medium',
] ]
class SimpleActivitySerializer(serializers.ModelSerializer):
class Meta:
model = models.Activity
fields = [
'pk',
'name',
]
class ActivityAttendanceSerializer(base.FlattenedModelSerializer):
activity = SimpleActivitySerializer()
person = people_serializers.SimplePersonSerializer()
class Meta:
model = models.Activity.attendance_list.through
fields = [
'pk',
'activity',
'person',
]

View File

@@ -45,6 +45,15 @@
href="{% url 'export:activity' %}">Export</a> href="{% url 'export:activity' %}">Export</a>
</td> </td>
</tr> </tr>
<tr>
<td>Activity Attendance</td>
<td></td>
<td>
<a class="btn btn-info"
href="{% url 'export:activity-attendance' %}">Export</a>
</td>
</tr>
</tbody> </tbody>
</table> </table>

View File

@@ -21,4 +21,8 @@ urlpatterns = [
path('export/activities', path('export/activities',
views.activities.ActivityExportView.as_view(), views.activities.ActivityExportView.as_view(),
name='activity'), name='activity'),
path('export/activity-attendance',
views.activities.ActivityAttendanceExportView.as_view(),
name='activity-attendance'),
] ]

View File

@@ -7,3 +7,8 @@ from activities import models
class ActivityExportView(base.CsvExportView): class ActivityExportView(base.CsvExportView):
model = models.Activity model = models.Activity
serializer_class = serializers.activities.ActivitySerializer serializer_class = serializers.activities.ActivitySerializer
class ActivityAttendanceExportView(base.CsvExportView):
model = models.Activity.attendance_list.through
serializer_class = serializers.activities.ActivityAttendanceSerializer