def create(self, validated_data): # noqa def slice_dict(in_dict, wanted_keys): return dict((k, in_dict[k]) for k in wanted_keys if k in in_dict) job_dict = slice_dict(validated_data, [ 'the_geom', 'export_formats', 'feature_selection', 'buffer_aoi' ]) job_dict['user'] = self.context['request'].user job_dict['name'] = validated_data.get('dataset_prefix') job_dict['description'] = validated_data.get('name') region_dict = slice_dict(validated_data, [ 'extra_notes', 'is_private', 'locations', 'license', 'schedule_period', 'schedule_hour', 'subnational','planet_file' ]) job = Job(**job_dict) job.hidden = True job.unlimited_extent = True validate_model(job) with transaction.atomic(): job.save() region_dict['job'] = job region = HDXExportRegion(**region_dict) validate_model(region) region.save() return region
def create(self, validated_data): # noqa def slice_dict(in_dict, wanted_keys): return dict((k, in_dict[k]) for k in wanted_keys if k in in_dict) job_dict = slice_dict(validated_data, [ 'the_geom', 'export_formats', 'feature_selection', ]) job_dict['user'] = self.context['request'].user job_dict['name'] = validated_data.get('name') job_dict['event'] = validated_data.get('event') or "" job_dict['description'] = validated_data.get('description') or "" region_dict = slice_dict(validated_data, [ 'schedule_period', 'schedule_hour','group','planet_file' ]) job = Job(**job_dict) job.hidden = True job.unlimited_extent = True validate_model(job) # check on creation that i'm a member of the group if not self.context['request'].user.groups.filter(name=region_dict['group'].name).exists(): raise serializers.ValidationError({'group':'You are not a member of this group.'}) with transaction.atomic(): job.save() region_dict['job'] = job region = PartnerExportRegion(**region_dict) validate_model(region) region.save() return region