From e787f2dd229df501bd4d8e5768f54785e09d836f Mon Sep 17 00:00:00 2001
From: Arnaud Fabre <arnaud.fabre@camobscura.fr>
Date: Mon, 8 Jun 2015 16:16:58 +0200
Subject: [PATCH] fixes api

---
 representatives_votes/serializers.py | 48 ++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 7 deletions(-)

diff --git a/representatives_votes/serializers.py b/representatives_votes/serializers.py
index 8f589c3..82eeed8 100644
--- a/representatives_votes/serializers.py
+++ b/representatives_votes/serializers.py
@@ -44,6 +44,7 @@ class ProposalSerializer(serializers.ModelSerializer):
     class Meta:
         model = models.Proposal
         fields = (
+            'id',
             'title',
             'description',
             'reference',
@@ -63,11 +64,25 @@ class ProposalHyperLinkedSerializer(ProposalSerializer):
         read_only = True,
         view_name = 'dossier-detail',
     )
+    
+    dossier_title = serializers.CharField(
+        read_only = True,
+        source = 'dossier.title'
+    )
 
+    dossier_reference = serializers.CharField(
+        read_only = True,
+        source = 'dossier.reference'
+    )
+    
     class Meta(ProposalSerializer.Meta):
-        fields = ('dossier', 'url',) + ProposalSerializer.Meta.fields
-
-
+        fields = ProposalSerializer.Meta.fields + (
+            'dossier',
+            'dossier_title',
+            'dossier_reference',
+            'url',
+        )
+        
 class ProposalDetailSerializer(ProposalSerializer):
     '''
     Proposal Serializer with votes detail (used in Dossier Detail)
@@ -85,7 +100,10 @@ class ProposalDetailHyperLinkedSerializer(ProposalDetailSerializer, ProposalHype
     Proposal Serializer combined Detail Serializer and Hyperlinked Serializer
     '''
     class Meta(ProposalSerializer.Meta):
-        fields = ('dossier',) + ProposalSerializer.Meta.fields + (
+        fields = ProposalSerializer.Meta.fields + (
+            'dossier',
+            'dossier_title',
+            'dossier_reference',
             'votes',
         )
 
@@ -97,6 +115,7 @@ class DossierSerializer(serializers.ModelSerializer):
     class Meta:
         model = models.Dossier
         fields = (
+            'id',
             'title',
             'reference',
             'text',
@@ -104,15 +123,29 @@ class DossierSerializer(serializers.ModelSerializer):
         )
 
 
-class DossierHyperLinkedSerializer(DossierSerializer):
+class DossierListSerializer(DossierSerializer):
     '''
-    Dossier Serializer with hyperlinks to proposals
+    Dossier Serializer with short description of proposals
+    '''
+    class ProposalSerializer(ProposalSerializer):
+        class Meta(ProposalSerializer.Meta):
+            fields = (
+                'id',
+                'url',
+            ) + ProposalSerializer.Meta.fields
+            
     '''
     proposals = serializers.HyperlinkedRelatedField(
         many=True,
         read_only=True,
         view_name='proposal-detail',
     )
+    '''
+    
+    proposals = ProposalSerializer(
+        many = True,
+        read_only = True
+    )
 
     class Meta(DossierSerializer.Meta):
         fields = DossierSerializer.Meta.fields + (
@@ -125,8 +158,9 @@ class DossierDetailSerializer(DossierSerializer):
     '''
     Dossier Serializer with proposals details
     '''
+
     proposals = ProposalDetailSerializer(
-        many=True,
+        many = True,
     )
 
     class Meta(DossierSerializer.Meta):
-- 
GitLab