Exemple #1
0
    def create_or_update_provider(self, provider_data):
        provider = self.get_page_provider()
        licenses = [NodeLicense.objects.get(license_id=license_id) for license_id in provider_data.pop('licenses_acceptable', [])]
        default_license = provider_data.pop('default_license', False)
        primary_collection = provider_data.pop('primary_collection', None)
        provider_data.pop('additional_providers')

        if provider:
            for key, val in provider_data.items():
                setattr(provider, key, val)
            provider.save()
        else:
            provider = CollectionProvider(**provider_data)
            provider._creator = self.request.user
            provider.save()

        if primary_collection:
            provider.primary_collection.collected_type_choices = primary_collection['fields']['collected_type_choices']
            provider.primary_collection.status_choices = primary_collection['fields']['status_choices']
            provider.primary_collection.issue_choices = primary_collection['fields']['issue_choices']
            provider.primary_collection.volume_choices = primary_collection['fields']['volume_choices']
            provider.primary_collection.program_area_choices = primary_collection['fields']['program_area_choices']
            provider.primary_collection.save()
        if licenses:
            provider.licenses_acceptable = licenses
        if default_license:
            provider.default_license = NodeLicense.objects.get(license_id=default_license)
        return provider
Exemple #2
0
 def get_object(self, provider_id):
     return CollectionProvider.load(provider_id)