diff --git a/src/Entity/BulkInfoProviderImportJobPart.php b/src/Entity/BulkInfoProviderImportJobPart.php
index df99aa19..3625f377 100644
--- a/src/Entity/BulkInfoProviderImportJobPart.php
+++ b/src/Entity/BulkInfoProviderImportJobPart.php
@@ -45,7 +45,7 @@ class BulkInfoProviderImportJobPart extends AbstractDBElement
#[ORM\JoinColumn(nullable: false)]
private BulkInfoProviderImportJob $job;
- #[ORM\ManyToOne(targetEntity: Part::class)]
+ #[ORM\ManyToOne(targetEntity: Part::class, inversedBy: 'bulkImportJobParts')]
#[ORM\JoinColumn(nullable: false)]
private Part $part;
diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf
index 3d304fb5..6f66dab1 100644
--- a/translations/messages.en.xlf
+++ b/translations/messages.en.xlf
@@ -8944,7 +8944,7 @@ Element 1 -> Element 1.2]]>
Edit part
-
+
part_list.action.scrollable_hint
Scroll to see all actions
@@ -9340,79 +9340,79 @@ Element 1 -> Element 1.2]]>
Attachment name
-
+
filter.bulk_import_job.label
Bulk Import Job
-
+
filter.bulk_import_job.job_status
Job Status
-
+
filter.bulk_import_job.part_status_in_job
Part Status in Job
-
+
filter.bulk_import_job.status.any
Any Status
-
+
filter.bulk_import_job.status.pending
Pending
-
+
filter.bulk_import_job.status.in_progress
In Progress
-
+
filter.bulk_import_job.status.completed
Completed
-
+
filter.bulk_import_job.status.stopped
Stopped
-
+
filter.bulk_import_job.status.failed
Failed
-
+
filter.bulk_import_job.part_status.any
Any Part Status
-
+
filter.bulk_import_job.part_status.pending
Pending
-
+
filter.bulk_import_job.part_status.completed
Completed
-
+
filter.bulk_import_job.part_status.skipped
Skipped
@@ -10990,7 +10990,7 @@ Element 1 -> Element 1.2]]>
Export to XML
-
+
part_list.action.export_xlsx
Export to Excel
@@ -12303,7 +12303,7 @@ Please note, that you can not impersonate a disabled user. If you try you will g
info_providers.search.no_results
- No results found at the selected providers! Check your search term or try to choose additional providers.
+ No results found
@@ -13147,755 +13147,719 @@ Please note, that you can not impersonate a disabled user. If you try you will g
Redacted for security reasons
-
+
info_providers.bulk_import.step1.title
Bulk Info Provider Import - Step 1
-
+
info_providers.bulk_import.parts_selected
parts selected
-
+
info_providers.bulk_import.step1.global_mapping_description
Configure field mappings that will be applied to all selected parts. For example: "MPN → LCSC + Mouser" means search LCSC and Mouser providers using each part's MPN field.
-
+
info_providers.bulk_import.selected_parts
Selected Parts
-
+
info_providers.bulk_import.field_mappings
Field Mappings
-
+
info_providers.bulk_import.field_mappings_help
Define which part fields to search with which info providers. Multiple mappings will be combined.
-
+
info_providers.bulk_import.add_mapping
Add Mapping
-
+
info_providers.bulk_import.search_results.title
Search Results
-
+
info_providers.bulk_import.errors
errors
-
-
- info_providers.bulk_import.results_found
- results found
-
-
-
-
- info_providers.bulk_import.source_field
- Source Field
-
-
-
-
- info_providers.bulk_import.create_part
- Create Part
-
-
-
-
- info_providers.bulk_import.view_existing
- View Existing
-
-
-
-
- info_providers.bulk_search.search_field
- Search Field
-
-
-
-
- info_providers.bulk_search.providers
- Info Providers
-
-
-
-
- info_providers.bulk_import.actions.label
- Actions
-
-
-
-
- info_providers.bulk_search.providers.help
- Select which info providers to search when parts have this field.
-
-
-
-
- info_providers.bulk_search.submit
- Search All Parts
-
-
-
-
- info_providers.bulk_search.field.select
- Select a field to search by
-
-
-
-
- info_providers.bulk_search.field.mpn
- Manufacturer Part Number (MPN)
-
-
-
-
- info_providers.bulk_search.field.name
- Part Name
-
-
-
-
- part_list.action.action.info_provider
- Info Provider
-
-
-
-
- part_list.action.bulk_info_provider_import
- Bulk Info Provider Import
-
-
-
-
- info_providers.bulk_import.clear_selections
- Clear All Selections
-
-
-
-
- info_providers.bulk_import.clear_row
- Clear this row's selections
-
-
-
-
- info_providers.bulk_import.step1.spn_recommendation
- SPN (Supplier Part Number) is recommended for better results. Add a mapping for each supplier to use their SPNs.
-
-
-
-
- info_providers.bulk_import.update_part
- Update Part
-
-
-
-
- info_providers.bulk_import.prefetch_details
- Prefetch Details
-
-
-
-
- info_providers.bulk_import.prefetch_details_help
- Prefetch details for all results. This will take longer, but will speed up workflow for updating parts.
-
-
-
-
- info_providers.bulk_import.step2.title
- Bulk import from info providers
-
-
-
-
- info_providers.bulk_import.step2.card_title
- Bulk import for %count% parts - %date%
-
-
-
-
- info_providers.bulk_import.parts
- parts
-
-
-
-
- info_providers.bulk_import.results
- results
-
-
-
-
- info_providers.bulk_import.created_at
- Created at
-
-
-
-
- info_providers.bulk_import.status.in_progress
- In Progress
-
-
-
-
- info_providers.bulk_import.status.completed
- Completed
-
-
-
-
- info_providers.bulk_import.status.failed
- Failed
-
-
-
+
info_providers.bulk_import.results_found
%count% results found
-
-
- info_providers.bulk_import.table.name
- Name
-
-
-
-
- info_providers.bulk_import.table.description
- Description
-
-
-
-
- info_providers.bulk_import.table.manufacturer
- Manufacturer
-
-
-
-
- info_providers.bulk_import.table.provider
- Provider
-
-
-
-
- info_providers.bulk_import.table.source_field
- Source Field
-
-
-
-
- info_providers.bulk_import.table.action
- Action
-
-
-
-
- info_providers.bulk_import.action.select
- Select
-
-
-
-
- info_providers.bulk_import.action.deselect
- Deselect
-
-
-
-
- info_providers.bulk_import.action.view_details
- View Details
-
-
-
-
- info_providers.bulk_import.no_results
- No results found
-
-
-
-
- info_providers.bulk_import.processing
- Processing...
-
-
-
-
- info_providers.bulk_import.error
- Error occurred during import
-
-
-
-
- info_providers.bulk_import.success
- Import completed successfully
-
-
-
-
- info_providers.bulk_import.partial_success
- Import completed with some errors
-
-
-
-
- info_providers.bulk_import.retry
- Retry
-
-
-
-
- info_providers.bulk_import.cancel
- Cancel
-
-
-
-
- info_providers.bulk_import.confirm
- Confirm Import
-
-
-
-
- info_providers.bulk_import.back
- Back
-
-
-
-
- info_providers.bulk_import.next
- Next
-
-
-
-
- info_providers.bulk_import.finish
- Finish
-
-
-
-
- info_providers.bulk_import.progress
- Progress:
-
-
-
-
- info_providers.bulk_import.time_remaining
- Estimated time remaining: %time%
-
-
-
-
- info_providers.bulk_import.details_modal.title
- Part Details
-
-
-
-
- info_providers.bulk_import.details_modal.close
- Close
-
-
-
-
- info_providers.bulk_import.details_modal.select_this_part
- Select This Part
-
-
-
-
- info_providers.bulk_import.status.pending
- Pending
-
-
-
-
- info_providers.bulk_import.completed
- completed
-
-
-
-
- info_providers.bulk_import.skipped
- skipped
-
-
-
-
- info_providers.bulk_import.errors
- errors
-
-
-
-
- info_providers.bulk_import.mark_completed
- Mark Completed
-
-
-
-
- info_providers.bulk_import.mark_skipped
- Mark Skipped
-
-
-
-
- info_providers.bulk_import.mark_pending
- Mark Pending
-
-
-
-
- info_providers.bulk_import.skip_reason
- Skip reason
-
-
-
+
info_providers.bulk_import.source_field
Source Field
-
+
- info_providers.bulk_import.update_part
- Update Part
+ info_providers.bulk_import.create_part
+ Create Part
-
+
info_providers.bulk_import.view_existing
View Existing
-
+
- info_providers.search.no_results
- No results found
+ info_providers.bulk_search.search_field
+ Search Field
-
+
- info_providers.table.provider.label
+ info_providers.bulk_search.providers
+ Info Providers
+
+
+
+
+ info_providers.bulk_import.actions.label
+ Actions
+
+
+
+
+ info_providers.bulk_search.providers.help
+ Select which info providers to search when parts have this field.
+
+
+
+
+ info_providers.bulk_search.submit
+ Search All Parts
+
+
+
+
+ info_providers.bulk_search.field.select
+ Select a field to search by
+
+
+
+
+ info_providers.bulk_search.field.mpn
+ Manufacturer Part Number (MPN)
+
+
+
+
+ info_providers.bulk_search.field.name
+ Part Name
+
+
+
+
+ part_list.action.action.info_provider
+ Info Provider
+
+
+
+
+ part_list.action.bulk_info_provider_import
+ Bulk Info Provider Import
+
+
+
+
+ info_providers.bulk_import.clear_selections
+ Clear All Selections
+
+
+
+
+ info_providers.bulk_import.clear_row
+ Clear this row's selections
+
+
+
+
+ info_providers.bulk_import.step1.spn_recommendation
+ SPN (Supplier Part Number) is recommended for better results. Add a mapping for each supplier to use their SPNs.
+
+
+
+
+ info_providers.bulk_import.update_part
+ Update Part
+
+
+
+
+ info_providers.bulk_import.prefetch_details
+ Prefetch Details
+
+
+
+
+ info_providers.bulk_import.prefetch_details_help
+ Prefetch details for all results. This will take longer, but will speed up workflow for updating parts.
+
+
+
+
+ info_providers.bulk_import.step2.title
+ Bulk import from info providers
+
+
+
+
+ info_providers.bulk_import.step2.card_title
+ Bulk import for %count% parts - %date%
+
+
+
+
+ info_providers.bulk_import.parts
+ parts
+
+
+
+
+ info_providers.bulk_import.results
+ results
+
+
+
+
+ info_providers.bulk_import.created_at
+ Created at
+
+
+
+
+ info_providers.bulk_import.status.in_progress
+ In Progress
+
+
+
+
+ info_providers.bulk_import.status.completed
+ Completed
+
+
+
+
+ info_providers.bulk_import.status.failed
+ Failed
+
+
+
+
+ info_providers.bulk_import.table.name
+ Name
+
+
+
+
+ info_providers.bulk_import.table.description
+ Description
+
+
+
+
+ info_providers.bulk_import.table.manufacturer
+ Manufacturer
+
+
+
+
+ info_providers.bulk_import.table.provider
Provider
-
+
+
+ info_providers.bulk_import.table.source_field
+ Source Field
+
+
+
+
+ info_providers.bulk_import.table.action
+ Action
+
+
+
+
+ info_providers.bulk_import.action.select
+ Select
+
+
+
+
+ info_providers.bulk_import.action.deselect
+ Deselect
+
+
+
+
+ info_providers.bulk_import.action.view_details
+ View Details
+
+
+
+
+ info_providers.bulk_import.no_results
+ No results found
+
+
+
+
+ info_providers.bulk_import.processing
+ Processing...
+
+
+
+
+ info_providers.bulk_import.error
+ Error occurred during import
+
+
+
+
+ info_providers.bulk_import.success
+ Import completed successfully
+
+
+
+
+ info_providers.bulk_import.partial_success
+ Import completed with some errors
+
+
+
+
+ info_providers.bulk_import.retry
+ Retry
+
+
+
+
+ info_providers.bulk_import.cancel
+ Cancel
+
+
+
+
+ info_providers.bulk_import.confirm
+ Confirm Import
+
+
+
+
+ info_providers.bulk_import.back
+ Back
+
+
+
+
+ info_providers.bulk_import.next
+ Next
+
+
+
+
+ info_providers.bulk_import.finish
+ Finish
+
+
+
+
+ info_providers.bulk_import.progress
+ Progress:
+
+
+
+
+ info_providers.bulk_import.time_remaining
+ Estimated time remaining: %time%
+
+
+
+
+ info_providers.bulk_import.details_modal.title
+ Part Details
+
+
+
+
+ info_providers.bulk_import.details_modal.close
+ Close
+
+
+
+
+ info_providers.bulk_import.details_modal.select_this_part
+ Select This Part
+
+
+
+
+ info_providers.bulk_import.status.pending
+ Pending
+
+
+
+
+ info_providers.bulk_import.completed
+ completed
+
+
+
+
+ info_providers.bulk_import.skipped
+ skipped
+
+
+
+
+ info_providers.bulk_import.mark_completed
+ Mark Completed
+
+
+
+
+ info_providers.bulk_import.mark_skipped
+ Mark Skipped
+
+
+
+
+ info_providers.bulk_import.mark_pending
+ Mark Pending
+
+
+
+
+ info_providers.bulk_import.skip_reason
+ Skip reason
+
+
+
info_providers.bulk_import.editing_part
Editing part as part of bulk import
-
+
info_providers.bulk_import.complete
Complete
-
+
info_providers.bulk_import.existing_jobs
Existing Jobs
-
+
info_providers.bulk_import.job_name
Job Name
-
+
info_providers.bulk_import.parts_count
Parts Count
-
+
info_providers.bulk_import.results_count
Results Count
-
+
info_providers.bulk_import.progress_label
Progress: %current%/%total%
-
+
info_providers.bulk_import.manage_jobs
Manage Bulk Import Jobs
-
+
info_providers.bulk_import.view_results
View Results
-
+
info_providers.bulk_import.status
Status
-
+
info_providers.bulk_import.manage_jobs_description
View and manage all your bulk import jobs. To create a new job, select parts and click "Bulk import from info providers".
-
+
info_providers.bulk_import.no_jobs_found
No bulk import jobs found.
-
+
info_providers.bulk_import.create_first_job
Create your first bulk import job
-
+
info_providers.bulk_import.confirm_delete_job
Are you sure you want to delete this job?
-
+
info_providers.bulk_import.job_name_template
Bulk import for %count% parts
-
+
info_providers.bulk_import.step2.instructions.title
How to use bulk import
-
+
info_providers.bulk_import.step2.instructions.description
Follow these steps to efficiently update your parts:
-
+
info_providers.bulk_import.step2.instructions.step1
Click "Update Part" to edit a part with the supplier data
-
+
info_providers.bulk_import.step2.instructions.step2
Review and modify the part information as needed. Note: You need to click "Save" twice to save the changes.
-
+
info_providers.bulk_import.step2.instructions.step3
Click "Complete" to mark the part as done and return to this overview
-
+
info_providers.bulk_import.created_by
Created By
-
+
info_providers.bulk_import.completed_at
Completed At
-
+
info_providers.bulk_import.action.label
Action
-
+
info_providers.bulk_import.action.delete
Delete
-
+
info_providers.bulk_import.status.active
Active
-
+
info_providers.bulk_import.progress.title
Progress
-
+
info_providers.bulk_import.progress.completed_text
%completed% / %total% completed
-
+
info_providers.bulk_import.error.deleting_job
Error deleting job
-
+
info_providers.bulk_import.error.unknown
Unknown error
-
+
info_providers.bulk_import.error.deleting_job_with_details
Error deleting job: %error%
-
+
info_providers.bulk_import.status.stopped
Stopped
-
+
info_providers.bulk_import.action.stop
Stop
-
+
info_providers.bulk_import.confirm_stop_job
Are you sure you want to stop this job?
-
+
part.filter.in_bulk_import_job
In Bulk Import Job
-
+
part.filter.in_bulk_import_job.yes
Yes
-
+
part.filter.in_bulk_import_job.no
No
-
+
part.filter.bulk_import_job_status
Bulk Import Job Status
-
+
part.filter.bulk_import_part_status
Bulk Import Part Status
-
+
part.edit.tab.bulk_import
Bulk Import Job
-
+
bulk_import.status.pending
Pending
-
+
bulk_import.status.in_progress
In Progress
-
+
bulk_import.status.completed
Completed
-
+
bulk_import.status.stopped
Stopped
-
+
bulk_import.status.failed
Failed
-
+
bulk_import.part_status.pending
Pending
-
+
bulk_import.part_status.completed
Completed
-
+
bulk_import.part_status.skipped
Skipped
-
+
bulk_import.part_status.failed
Failed
-
+
filter.operator
Operator
+
+
+ bulk_info_provider_import_job.label
+ Bulk Info Provider Import
+
+
-
\ No newline at end of file
+