blob: c3b2dbc133081314476fa131cbfb15d4d8d03368 [file] [log] [blame]
Scott Baker3d476ba2015-04-20 16:37:35 -07001from rest_framework.decorators import api_view
2from rest_framework.response import Response
3from rest_framework.reverse import reverse
4from rest_framework import serializers
5from rest_framework import generics
6from core.models import *
7from django.forms import widgets
8from cord.models import VOLTTenant, VOLTService
9from plus import PlusSerializerMixin
10from xos.apibase import XOSListCreateAPIView, XOSRetrieveUpdateDestroyAPIView, XOSPermissionDenied
11
12if hasattr(serializers, "ReadOnlyField"):
13 # rest_framework 3.x
14 ReadOnlyField = serializers.ReadOnlyField
15else:
16 # rest_framework 2.x
17 ReadOnlyField = serializers.Field
18
19def get_default_volt_service():
20 volt_services = VOLTService.get_service_objects().all()
21 if volt_services:
22 return volt_services[0].id
23 return None
24
25class VOLTTenantIdSerializer(serializers.ModelSerializer, PlusSerializerMixin):
26 id = ReadOnlyField()
27 service_specific_id = serializers.CharField()
28 vlan_id = serializers.CharField()
29 provider_service = serializers.PrimaryKeyRelatedField(queryset=VOLTService.get_service_objects().all(), default=get_default_volt_service())
30
31 humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
32
33 class Meta:
34 model = VOLTTenant
35 fields = ('humanReadableName', 'id', 'provider_service', 'service_specific_id', 'vlan_id' )
36
37 def getHumanReadableName(self, obj):
38 return obj.__unicode__()
39
40class VOLTTenantList(XOSListCreateAPIView):
41 queryset = VOLTTenant.get_tenant_objects().select_related().all()
42 serializer_class = VOLTTenantIdSerializer
43
44 method_kind = "list"
45 method_name = "volttenant"
46
47class VOLTTenantDetail(XOSRetrieveUpdateDestroyAPIView):
48 queryset = VOLTTenant.get_tenant_objects().select_related().all()
49 serializer_class = VOLTTenantIdSerializer
50
51 method_kind = "detail"
52 method_name = "volttenant"
53
54