mirror of
https://github.com/Southampton-RSG/breccia-mapper.git
synced 2026-03-03 11:27:09 +00:00
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:
@@ -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',
|
||||
@@ -28,8 +28,8 @@ class PersonSerializer(base.FlattenedModelSerializer):
|
||||
'nationality',
|
||||
'country_of_residence',
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
class RelationshipSerializer(base.FlattenedModelSerializer):
|
||||
source = SimplePersonSerializer()
|
||||
target = SimplePersonSerializer()
|
||||
@@ -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:
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -17,6 +17,10 @@ urlpatterns = [
|
||||
path('export/relationships',
|
||||
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(),
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user