Exemple #1
0
    def post(self, request, *args, **kwargs):
        form = ImportFileForm(request.POST, request.FILES)
        if form.is_valid():
            file_str = self.parse_file(request.FILES['file'])
            file_json = json.loads(file_str)
            current_fields = [
                f.name for f in PreprintProvider._meta.get_fields()
            ]
            # make sure not to import an exported access token for SHARE
            cleaned_result = {
                key: value
                for key, value in file_json['fields'].items()
                if key not in FIELDS_TO_NOT_IMPORT_EXPORT
                and key in current_fields
            }
            try:
                preprint_provider = self.create_or_update_provider(
                    cleaned_result)
            except ValidationError:
                messages.error(
                    request,
                    'A Validation Error occured, this JSON is invalid or shares an id with an already existing provider.'
                )
                return redirect('preprint_providers:create')

            return redirect('preprint_providers:detail',
                            preprint_provider_id=preprint_provider.id)
Exemple #2
0
    def post(self, request, *args, **kwargs):
        form = ImportFileForm(request.POST, request.FILES)
        provider_id = self.kwargs.get(
            f'{self.provider_namespaces[self.provider_class]}_id', None)

        if form.is_valid():
            file_str = self.parse_file(request.FILES['file'])
            file_json = json.loads(file_str)
            current_fields = [
                f.name for f in self.provider_class._meta.get_fields()
            ]
            # make sure not to import an exported access token for SHARE
            cleaned_result = {
                key: value
                for key, value in file_json['fields'].items()
                if key not in FIELDS_TO_NOT_IMPORT_EXPORT
                and key in current_fields
            }
            if provider_id:
                cleaned_result['id'] = provider_id

            provider = self.provider_class.update_or_create_from_json(
                cleaned_result, request.user)

            return redirect(
                f'{self.provider_namespaces[self.provider_class]}s:detail', **{
                    f'{self.provider_namespaces[self.provider_class]}_id':
                    provider.id
                })
Exemple #3
0
 def post(self, request, *args, **kwargs):
     form = ImportFileForm(request.POST, request.FILES)
     if form.is_valid():
         file_str = self.parse_file(request.FILES['file'])
         file_json = json.loads(file_str)
         cleaned_result = file_json['fields']
         registration_provider = self.create_or_update_provider(cleaned_result)
         return redirect('registration_providers:detail', registration_provider_id=registration_provider.id)
Exemple #4
0
 def post(self, request, *args, **kwargs):
     form = ImportFileForm(request.POST, request.FILES)
     if form.is_valid():
         file_str = self.parse_file(request.FILES['file'])
         file_json = json.loads(file_str)
         current_fields = [f.name for f in PreprintProvider._meta.get_fields()]
         # make sure not to import an exported access token for SHARE
         cleaned_result = {key: value for key, value in file_json['fields'].items() if key not in FIELDS_TO_NOT_IMPORT_EXPORT and key in current_fields}
         preprint_provider = self.create_or_update_provider(cleaned_result)
         return redirect('preprint_providers:detail', preprint_provider_id=preprint_provider.id)
Exemple #5
0
    def post(self, request, *args, **kwargs):
        form = ImportFileForm(request.POST, request.FILES)
        if form.is_valid():
            file_str = self.parse_file(request.FILES['file'])
            file_json = json.loads(file_str)
            cleaned_result = file_json['fields']
            try:
                collection_provider = self.create_or_update_provider(cleaned_result)
            except exceptions.ValidationError:
                messages.error(request, 'A Validation Error occured, this JSON is invalid or shares an id with an already existing provider.')
                return redirect('collection_providers:create')

            return redirect('collection_providers:detail', collection_provider_id=collection_provider.id)
Exemple #6
0
 def post(self, request, *args, **kwargs):
     form = ImportFileForm(request.POST, request.FILES)
     if form.is_valid():
         file_str = self.parse_file(request.FILES['file'])
         file_json = json.loads(file_str)
         return JsonResponse(file_json[0]['fields'])
Exemple #7
0
 def post(self, request, *args, **kwargs):
     form = ImportFileForm(request.POST, request.FILES)
     if form.is_valid():
         file_str = self.parse_file(request.FILES['file'])
         file_json = json.loads(file_str)
         return JsonResponse(file_json[0]['fields'])