Skip to content

Add multi-story copy actions to issue editing - #758

Closed
ProfNardi wants to merge 2 commits into
GrandComicsDatabase:betafrom
ProfNardi:add-multi-story-copy
Closed

ProfNardi wants to merge 2 commits into
GrandComicsDatabase:betafrom
ProfNardi:add-multi-story-copy

Conversation

@ProfNardi

Copy link
Copy Markdown
Contributor

Description

This change affects the Online Indexer Copy Sequence workflow.

Start from an issue changeset edit page, then select Copy Sequence.
The change is implemented in the session-based object selection screen,
select_object, used to select stories from the data cache.

Summary

  • Allow selecting multiple cached stories and copying them together.
  • Add a confirmation step with options to copy credits and characters.
  • Preserve story order and avoid duplicate sources.
  • Roll back the complete operation if any copy fails.
  • Add Clear Objects and multiple-object removal actions.
  • Preserve the existing single-selection flow.

The implementation reuses the existing session-based selection flow and wraps the multiple-copy operation in a Django transaction.

Validation

  • Manually verified the multi-selection flow locally.
  • Django system check passed.
  • Added coverage for selection, validation, ordering, duplicate handling, rollback, and cache actions.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for copying multiple cached stories or covers at once into an issue revision, including UI updates for multiple selection, confirmation templates, and comprehensive unit tests. Feedback on the changes suggests correcting the indentation of the new _parse_selection function to follow PEP 8, improving the robustness of checkbox boolean checks by verifying key presence in request.POST instead of using .get(), and handling cases where multiple_selection might be explicitly set to None in session data.

Comment thread apps/select/views.py Outdated
Comment thread apps/oi/views.py Outdated
Comment thread apps/select/views.py Outdated
- Reformat _parse_selection to use standard 4-space PEP 8 indentation instead of 8 spaces.
- Replace request.POST.get(key, False) with 'key' in request.POST for copy_credit_info/copy_characters checkbox handling, since unchecked checkboxes are omitted from POST data.
- Make the multiple_selection check explicitly handle None in session data before falling back to the return-based default, matching the GET branch logic.
@ProfNardi

Copy link
Copy Markdown
Contributor Author

This PR is superseded by #767.

The changes have been incorporated into the newer PR, which should be reviewed and merged instead.

@ProfNardi ProfNardi closed this Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant