feat!: Add answer sets to CSV export

BREAKING CHANGE: Change format of Relationship CSV export
BREAKING CHANGE: Use 'id' for id field in CSV exports
Add RelationshipAnswerSet CSV export
This commit is contained in:
James Graham
2020-04-20 15:12:34 +01:00
parent d6763a760e
commit 5dcfbb6052
4 changed files with 37 additions and 6 deletions

View File

@@ -11,7 +11,7 @@ class SimplePersonSerializer(serializers.ModelSerializer):
class Meta:
model = models.Person
fields = [
'pk',
'id',
'name',
]
@@ -20,7 +20,7 @@ class PersonSerializer(base.FlattenedModelSerializer):
class Meta:
model = models.Person
fields = [
'pk',
'id',
'name',
'core_member',
'gender',
@@ -37,11 +37,24 @@ class RelationshipSerializer(base.FlattenedModelSerializer):
class Meta:
model = models.Relationship
fields = [
'pk',
'id',
'source',
'target',
]
class RelationshipAnswerSetSerializer(base.FlattenedModelSerializer):
relationship = RelationshipSerializer()
class Meta:
model = models.RelationshipAnswerSet
fields = [
'id',
'relationship',
'timestamp',
'replaced_timestamp',
]
@property
def column_headers(self) -> typing.List[str]:
headers = super().column_headers
@@ -57,7 +70,7 @@ class RelationshipSerializer(base.FlattenedModelSerializer):
try:
# Add relationship question answers to data
for answer in instance.current_answers.question_answers.all():
for answer in instance.question_answers.all():
rep[answer.question.slug.replace('-', '_')] = answer.slug.replace('-', '_')
except AttributeError:

View File

@@ -39,6 +39,15 @@
</td>
</tr>
<tr>
<td>Relationship Answer Sets</td>
<td></td>
<td>
<a class="btn btn-info"
href="{% url 'export:relationship-answer-set' %}">Export</a>
</td>
</tr>
<tr>
<td>Activities</td>
<td></td>

View File

@@ -18,6 +18,10 @@ urlpatterns = [
views.people.RelationshipExportView.as_view(),
name='relationship'),
path('export/relationship-answer-sets',
views.people.RelationshipAnswerSetExportView.as_view(),
name='relationship-answer-set'),
path('export/activities',
views.activities.ActivityExportView.as_view(),
name='activity'),

View File

@@ -12,3 +12,8 @@ class PersonExportView(base.CsvExportView):
class RelationshipExportView(base.CsvExportView):
model = models.relationship.Relationship
serializer_class = serializers.people.RelationshipSerializer
class RelationshipAnswerSetExportView(base.CsvExportView):
model = models.relationship.RelationshipAnswerSet
serializer_class = serializers.people.RelationshipAnswerSetSerializer