Project

General

Profile

Actions

Feature #28198

closed

Support issue relations when importing issues

Added by Gregor Schmidt about 6 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Importers
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed

Description

As promised in #22701, I now would like to propose a patch, which adds handling of issue relations to the CSV importer.

Usage

The attached patch extends the import configuration view with a new block, so that users may select a column for each relation type. The parent issue field also moved to the new block, since it's conceptually related.

Within the CSV file the columns may define multiple relations of the same type, each separated with ,. Related issues follow the same rules as parent issues. A string preceded with a # is supposed to be an existing issue. Without the # it's supposed to be another row within the import file. For follows and precedes relations an additional delay may be present, e.g. #12 3d specifying a relation to issue #12 and a delay of 3 days.

Technical notes

Since issue relations may only be created when the issue was already saved, I've added a second step to the import. Additionally to build_object, which needs to be implemented by Import sub classes, there's also a extend_object method now. This is used by the IssueImporter to save the relations after the issue was already saved successfully.

Additional considerations

Initially, I wanted to build the import, so that issue relations exported from Redmine could be imported directly. But the format that's used by the exporter was designed for humans, not so much for computers. Most importantly, to parse this format we would need to grep for the localized relation names, which might even change between versions of Redmine. Therefore I settled for the proposed approach of having separate columns for each relation type.


Files


Related issues

Related to Redmine - Feature #22701: Allow forward reference to parent when importing issuesClosedJean-Philippe Lang

Actions
Related to Redmine - Feature #28213: Support external ID when importing issuesClosedJean-Philippe Lang

Actions
Related to Redmine - Defect #35656: When importing issue relations, the validation messages are not shown in the UIClosedMarius BĂLTEANU

Actions
Has duplicate Redmine - Feature #33330: Import of issue relations when imported from csvClosed

Actions
Actions #1

Updated by Gregor Schmidt about 6 years ago

This issue is in conflict with #28213. Since I would like to see both being applied, here's a patch for this issue applied on top of #28213

Actions #2

Updated by Mischa The Evil about 6 years ago

  • Related to Feature #22701: Allow forward reference to parent when importing issues added
Actions #3

Updated by Mischa The Evil about 6 years ago

  • Related to Feature #28213: Support external ID when importing issues added
Actions #4

Updated by Mischa The Evil about 6 years ago

  • Target version set to Unplanned backlogs
Actions #5

Updated by Go MAEDA almost 5 years ago

  • Target version changed from Unplanned backlogs to Candidate for next major release
Actions #6

Updated by Marius BĂLTEANU almost 4 years ago

  • Has duplicate Feature #33330: Import of issue relations when imported from csv added
Actions #7

Updated by Marius BĂLTEANU almost 4 years ago

  • Assignee set to Marius BĂLTEANU
Actions #8

Updated by Go MAEDA almost 4 years ago

  • Target version changed from Candidate for next major release to 4.2.0

Setting the target version to 4.2.0.

Actions #9

Updated by Go MAEDA almost 4 years ago

  • Target version changed from 4.2.0 to Candidate for next major release

Go MAEDA wrote:

Setting the target version to 4.2.0.

Sorry, I have changed the target version mistakenly.

Actions #10

Updated by Marius BĂLTEANU almost 4 years ago

I've updated the patch posted by Greg to apply cleanly on the current trunk and to fix all Rubocop warnings.

Additionally, I'm adding a new patch (0002-Fix-failing-test.patch) that fixes a failing test (test_parent_and_follows_relation) by updating the test assertions. From my checks, assertions were wrong in the initial patch because the start/due dates change after the follows relations are applied. I've double check the test expectations by reproducing the test from UI. A double check were is welcome.

Also, the initial patch:
  • adds a new section in the UI named "Issue relations" which is collapsed by default
  • moves the fields Unique ID and Parent task under this section along with the relation type fields. I'm not sure if it's the best idea to move those two fields as well.

All tests pass: https://gitlab.com/redmine-org/redmine/pipelines/142141722

I'll add the patch for auto-mapping fields after we integrate this one.

Actions #11

Updated by Go MAEDA almost 4 years ago

  • Status changed from New to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed the patch. Thank you for this good improvement.

Actions #12

Updated by Go MAEDA almost 4 years ago

  • Category changed from Issues to Importers
Actions #13

Updated by Marius BĂLTEANU almost 4 years ago

Is it ok to leave the Unique ID and Parents task fields under the "Issue relations" section?

Actions #14

Updated by Go MAEDA almost 4 years ago

Marius BALTEANU wrote:

Is it ok to leave the Unique ID and Parents task fields under the "Issue relations" section?

I noticed that but I thought that those fields can be said as "relations". Personally, I don't mind those fields being categorized as "Issue relations", but it could possibly confuse existing users.

Which do you think better? I am OK with either.

Actions #15

Updated by Marius BĂLTEANU almost 4 years ago

Go MAEDA wrote:

I noticed that but I thought that those fields can be said as "relations". Personally, I don't mind those fields being categorized as "Issue relations", but it could possibly confuse existing users.

Which do you think better? I am OK with either.

I'm in the same case as you, not knowing which option is better. Maybe we receive a 3rd opinion on this.

Actions #16

Updated by Simon Parker almost 3 years ago

Would you be able to update the "HowTo import issues" wiki with information on how this works, please? I'm having trouble getting it to work.
HowTo_import_issues

Actions #17

Updated by Marius BĂLTEANU about 2 years ago

  • Related to Defect #35656: When importing issue relations, the validation messages are not shown in the UI added
Actions

Also available in: Atom PDF