from rest_framework.generics import ListAPIView
from rest_framework.generics import RetrieveAPIView
from rest_framework.serializers import HyperlinkedModelSerializer
+from rest_framework.serializers import SerializerMethodField
from patchwork.api.base import PatchworkPermission
from patchwork.api.filters import SeriesFilter
class SeriesSerializer(HyperlinkedModelSerializer):
+ mbox = SerializerMethodField()
+
+ def get_mbox(self, instance):
+ request = self.context.get('request')
+ return request.build_absolute_uri(instance.get_mbox_url())
+
class Meta:
model = Series
fields = ('id', 'url', 'project', 'name', 'date', 'submitter',
'version', 'total', 'received_total', 'received_all',
- 'cover_letter', 'patches')
+ 'mbox', 'cover_letter', 'patches')
read_only_fields = ('date', 'submitter', 'total', 'received_total',
- 'received_all', 'cover_letter', 'patches')
+ 'received_all', 'mbox', 'cover_letter', 'patches')
extra_kwargs = {
'url': {'view_name': 'api-series-detail'},
'project': {'view_name': 'api-project-detail'},
def assertSerialized(self, series_obj, series_json):
self.assertEqual(series_obj.id, series_json['id'])
self.assertEqual(series_obj.name, series_json['name'])
+ self.assertIn(series_obj.get_mbox_url(), series_json['mbox'])
self.assertIn(TestProjectAPI.api_url(series_obj.project.id),
series_json['project'])
self.assertIn(TestPersonAPI.api_url(series_obj.submitter.id),