Exemple #1
0
    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
Exemple #2
0
    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