11from django .db import transaction
22from django .utils .translation import check_for_language , ugettext_lazy as _
3+ from kolibri .auth .constants .facility_presets import choices , mappings
34from kolibri .auth .models import Facility , FacilityUser
4- from kolibri .auth .serializers import FacilityDatasetSerializer , FacilitySerializer , FacilityUserSerializer
5+ from kolibri .auth .serializers import FacilitySerializer , FacilityUserSerializer
56from rest_framework import serializers
67
78from .models import DevicePermissions , DeviceSettings
@@ -24,7 +25,7 @@ class Meta:
2425
2526class DeviceProvisionSerializer (serializers .Serializer ):
2627 facility = FacilitySerializer ()
27- dataset = FacilityDatasetSerializer ( )
28+ preset = serializers . ChoiceField ( choices = choices )
2829 superuser = NoFacilityFacilityUserSerializer ()
2930 language_code = serializers .CharField (max_length = 15 )
3031
@@ -50,7 +51,8 @@ def create(self, validated_data):
5051 """
5152 with transaction .atomic ():
5253 facility = Facility .objects .create (** validated_data .pop ('facility' ))
53- dataset_data = validated_data .pop ('dataset' )
54+ preset = validated_data .pop ('preset' )
55+ dataset_data = mappings [preset ]
5456 for key , value in dataset_data .items ():
5557 setattr (facility .dataset , key , value )
5658 facility .dataset .save ()
@@ -65,7 +67,7 @@ def create(self, validated_data):
6567 device_settings .save ()
6668 return {
6769 "facility" : facility ,
68- "dataset " : facility . dataset ,
70+ "preset " : preset ,
6971 "superuser" : superuser ,
7072 "language_code" : language_code
7173 }
0 commit comments