Is your feature request related to a problem? Please describe.
With extraction running asynchronously, the admin interface has no way to reflect extraction state to the operator. There are no status badges on image or build list views, no auto-refresh when extraction is in progress, and no enforcement of read-only fields once metadata has been confirmed. Unconfirmed images can currently be included in mass upgrades without restriction, and there is no manual override workflow for images where extraction fails
There is also no notification system to inform the uploader when extraction completes or fails, and no structured way to surface failure reasons with actionable next steps
Describe the solution you'd like
I would like to introduce the admin UI enhancements, draft/unconfirmed safety workflow, and three-layer failure notification system that make the extraction pipeline clearer and actionable for operators
- Add status badges to
FirmwareImageAdmin and BuildAdmin list views via format_html, displaying:
Unconfirmed , Analyzing , Success , Failed , Manually Confirmed, Invalid for images
Analyzing , Success , Failed , Manually Confirmed , Invalid for builds
-
Implement auto-refresh on the FirmwareImage change form via a small JS snippet that polls when extraction_status is in_progress , stopping once the status transitions to a terminal state
-
Enforce read-only metadata fields via get_readonly_fields() once an image reaches confirmed status, preventing configuration drift after successful extraction.
In the case of incorrect metadata being extracted, we will provide an 'enable manual edit' admin action. Through this action, the status will transition to manually_confirmed, unlocking the fields for manual correction.
-
Implement server-side validation to block both single and batch upgrade operations whenever a firmware image has not reached a success or manually_confirmed state
-
Enforce checks at the mass-upgrade initiation phase to prevent launching operations for any build containing images still in the pending or analyzing states
-
Restrict the auto pairing engine to ignore any FirmwareImage that has not reached a terminal, confirmed status which is either success or manually_confirmed
-
Implement the manual override workflow in save_model() : when an operator saves a failed image with metadata fields filled in, the status transitions directly to manually_confirmed , unblocking the build for mass upgrades
-
Add a re_extract_metadata admin action on FirmwareImageAdmin to allow operators to manually trigger re-extraction on selected image/images
-
Mark all extraction fields as read-only in FirmwareImageSerializer so the API never accepts extraction state as user input
-
Implement the three-layer failure notification system:
failure_reason determines the change form state: unsupported_format unlocks all metadata fields for manual input, invalid_file keeps all fields locked with no manual override offered
- A human readable message tells the operator what happened and the next steps
- A
generic_notification is sent to the uploader with a direct link to the image
Bell notification with hyperlink to the build page
Warning and error notifications

Is your feature request related to a problem? Please describe.
With extraction running asynchronously, the admin interface has no way to reflect extraction state to the operator. There are no status badges on image or build list views, no auto-refresh when extraction is in progress, and no enforcement of read-only fields once metadata has been confirmed. Unconfirmed images can currently be included in mass upgrades without restriction, and there is no manual override workflow for images where extraction fails
There is also no notification system to inform the uploader when extraction completes or fails, and no structured way to surface failure reasons with actionable next steps
Describe the solution you'd like
I would like to introduce the admin UI enhancements, draft/unconfirmed safety workflow, and three-layer failure notification system that make the extraction pipeline clearer and actionable for operators
FirmwareImageAdminandBuildAdminlist views viaformat_html, displaying:Unconfirmed,Analyzing,Success,Failed,Manually Confirmed,Invalidfor imagesAnalyzing,Success,Failed,Manually Confirmed,Invalidfor buildsImplement auto-refresh on the
FirmwareImagechange form via a small JS snippet that polls whenextraction_statusisin_progress, stopping once the status transitions to a terminal stateEnforce read-only metadata fields via
get_readonly_fields()once an image reachesconfirmedstatus, preventing configuration drift after successful extraction.In the case of incorrect metadata being extracted, we will provide an 'enable manual edit' admin action. Through this action, the status will transition to
manually_confirmed, unlocking the fields for manual correction.Implement server-side validation to block both single and batch upgrade operations whenever a firmware image has not reached a
successormanually_confirmedstateEnforce checks at the mass-upgrade initiation phase to prevent launching operations for any build containing images still in the
pendingoranalyzingstatesRestrict the auto pairing engine to ignore any
FirmwareImagethat has not reached a terminal, confirmed status which is eithersuccessormanually_confirmedImplement the manual override workflow in
save_model(): when an operator saves afailedimage with metadata fields filled in, the status transitions directly tomanually_confirmed, unblocking the build for mass upgradesAdd a
re_extract_metadataadmin action onFirmwareImageAdminto allow operators to manually trigger re-extraction on selected image/imagesMark all extraction fields as read-only in
FirmwareImageSerializerso the API never accepts extraction state as user inputImplement the three-layer failure notification system:
failure_reasondetermines the change form state:unsupported_formatunlocks all metadata fields for manual input,invalid_filekeeps all fields locked with no manual override offeredgeneric_notificationis sent to the uploader with a direct link to the image