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)
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 })
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)
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)
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)
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'])