•  
      story #23469 export reports with linked artifact in xlsx format
    Summary
    Empty
    export reports with linked artifact in xlsx format

    I can get matrix of traceability

    Overview

    While the need is quite generic, for a first implementation we will take a few hypothesis in order to limit the scope:

    • The export is done based on a tracker report (as for the document generation)
      • The feature is provided by DocGen plugin
    • There is an hard limit of 3 in the depth of analyzed links (Current report -> 1st level of link -> 2nd level of link)
      • By default only level 1 is proposed and exporter can choose to add a 2nd level dynamically
    • At each level (User Stories -> Test Case Level 1 -> Test Exec Level 2, Risk -> Mitigation Level 1 -> Evidence Level 2, ...):
      • One tracker can be selected and, optionally a link type
      • For the given tracker, a report should be selected. The report will drive:
        • The search criteria to further limit the selection of artifacts (the selected artifacts will be the linked one + any other criteria that applies in the report)
        • Exported columns by field types:
          • string
          • text
            • text: as is
            • mardkwon: as is
            • html: stripped
          • date, submitted_on, last_update_date
          • float
          • int
          • computed
          • artifact id
          • per tracker id
          • submitted_by & last_update_by
          • lists (select box, multi select box, radio button, checkbox, open list, shared fields): as comma separated. no decorators. Users are rendered by their username
          • priority
    • Only "forward links" are taken into account

    Note. Not all reports can be proposed. Proposed reports must:

    • Have only one table render (might have other renders like graphs)
    • This table renderer has at least one column

    About not covered field types:

    • Files: no possibility to include file contents in the xlsx dans metadata seems worthless on their own
    • Cross references: don't know how to render
    • Links: export already takes links into account + don't know how to render.
    • Burndow, burnup: don't know how to render
    • Permissions on artifact: don't know how to render
    • Steps and Step results: don't know how to render
    • Containers (Columns & co): doesn't make sense to render
    • Static (br, text, etc): doesn't make sense to render
    • Encrypted field: R U Serious ?

    Proposal

    Figma prototype

    At Tracker Report level, there is an option un "Export" dropdown to generate a cross tracker report.

    This option opens a popup that allow to select:

    • The 2nd level Tracker (any tracker, any project)
    • The 3rd level Tracker (any tracker, any project)

    Once validated, this will generate an xlsx report as attached (3 level export.xlsx):

    • The artifacts are repeated at each line

    Given A -> B -> {C, D} we will generate:

    | A | B | C |
    | A | B | D |
    

    About the fields/columns:

    • Supported fields are the fields already covered by TestPlan (ie all fields that can be represented in xlsx)
    • Special column "links" (with types & formatting) are not exported because there is a functional overlap with this feature. If there is a need for this column, we should wait for the use case.
    • When it's a text field that contains HTML, the HTML is stripped.
    • There is no means to do proper formatting of the output so the generated document is meant to be tidied up by hand (styling, colors, etc).
    Empty
    Status
    Empty
    Done
    Development
    • [ ] Does it involves User Interface? 
    • [ ] Are there any mockups?
    • [ ] Are permissions checked?
    • [ ] Does it need Javascript development?
    • [ ] Does it need a forge upgrade bucket?
    • [ ] Does it need to execute things in system events?
    • [ ] Does it impact project creation (templates)?
    • [ ] Is it exploratory?
    Empty
    Details
    #23469
    Manuel Vacelet (vaceletm)
    2022-04-25 13:26
    2021-10-26 16:56
    3595

    References
    Referencing story #23469

    Git commit

    tuleap/tuleap/stable

    xlsx: 0.17.5 -> 0.18.3 11e48b4599
    Add an additional button in the report export menu for the XLSX export 871b096c69
    feat: export generates an empty XLSX file cfb07cdb38
    feat: inject Tracker report id in the generated XLSX e381d115b4
    feat: Add the expected filename for the generated XLSX 85d65bff40
    chore: generate XLSX document is now done in its own file 705154f8b9
    Init the modal allowing to choose what to export d60bd9f058
    feat: Add matching artifact ids in generated XLSX 3bd77f4bee
    Setup i18n in the document export modal 682a6f0ac2
    feat: Add from_table_renderer parameter in GET /tracker_reports/{id}/artifacts a02b4fb9a5
    Split TLP Modal in a independant @tuleap/tlp-modal library 2e067a4a28
    Move @tuleap/tlp-modal backdrop element closer to the modal itself 14770d0f10
    Use @use instead of @import when processing tlp SCSS components 5b03bf452b
    chore: ArtifactReponse type comes from the docgen lib f4d046d9fb
    Select2 container should not go under the modal backdrop 1cb862ce5b
    Move modal opener helper functions to @tuleap/tlp-modal 60785e5373
    Fix gettext extraction if the cross report document export modal cc4c9ab648
    vue3-gettext: 2.1.0 -> 2.2.1 1b4ff34249
    Fix SCSS deprecation notices 24f44a846f
    Temporarily allow to retrieve export properties from URL parameters 146e85bb49
    feat: Display report field titles in generated XLSX 9073306b51
    chore: remove unused tracker_id parameter 82121ce86e
    chore: introduce cells formatted data 135641b855
    feat: Export numeric and string field values 5dfb44e34f
    chore: Field value transformation is done in a dedicated function 548c9e3d52
    feat: column width must fit the content 648ec792e7
    feat: export plaintext and HTML fields values f1141d2be0
    feat: export date fields values 6934bc9c50
    feat: export lists (all binds) values in the generated XLSX 154ead3998
    feat: export openlist values in generated XLSX files 58a447562b
    feat: Exclude some fields that must not taken into account 345327c67e
    chore: Initialize XLSX lib f230496a71
    chore: use the Cell types from the XLSX lib in Testplan 010725d9a3
    Fetch reports of the current tracker into the properties of the cross-report modal 3f1c75795d
    fix: Provide tracker name in the generated file name a9e8b92919
    Users can choose the report to export at the first level e79c727142
    feat: exclude chart fields, TTM step exec and Encrypted fields 33e7a2af20
    chore: Extract common fit* methods in the XLSX shared lib 43cb2f2925
    chore: Upgrade SheetJS to 0.18.5 bb6b6610f3
    chore: Move report cell transformation into the shared XLSX lib 7cf71eb7ff
    chore: Use shared ArtifactReportResponseFieldValue type in TestPlan e5762a045e
    Migrate TypeDao to Tuleap\DB\DataAccessObject d62359105f
    Artifact link types to use can be selected for the first level 9ff1a0e82c
    Allow users to select multiple link types 4dae4659dd
    feat: Retrieve linked artifacts based on modal selected type b6301aaf20
    Add a REST endpoint to retrieve the types of artifact link used in a tracker ed3c9f9f4f
    Only propose to select link types that are currently used in a tracker 1d77a63f7e
    chore: Retrieve linked artifacts with concurrency pool 47804d15d1
    Add `is_public` key in tracker report REST representation cbfff2e5eb
    chore: Initialize the organization of the reports data b3aae296f5
    chore: Add first level artifact ids in the organized data 6c962968ff
    feat: Display tracker name at the top of the generated document 30c98b4120
    Retrieve information about the tracker reports directly from the REST API d4eff25633
    Retrieve information about the currently used artifact link types directly from the REST API 7b9b7283e5
    Add a project selector at the second level of the export configuration modal a0a3fe3eb0
    feat: Begin to display linked artifacts from selected level 2 aa38a5ec28
    Add a tracker selector at the second level of the export configuration modal 391b554b58
    Add a report selector at the second level of the export configuration modal 14fbded260
    feat: Display level 2 tracker headers 1c40b6d8dd
    Artifact link types to consider for the third level can be selected bb850401e3
    Third level tracker and report can be selected in the export configuration modal df6336229e
    feat: Deal with level 2 tracker name cell merges 6cc5bcfa20
    chore: Add unit tests for merges functions 924786912b
    chore: Split the ArtifactRepresentation map in each level e944cc6f99
    List picker can be used to select option with an empty string as a value and a label 76fc18bc8b
    chore: extractFieldsLabels must returns an empty array by default 35e253efde
    chore: Remove duplicate field_labels data in OrganizedReportsData object 6c3f896497
    ListPicker updates its state accordingly to the source select disabled attribute b4a71bff24
    feat: display level 2 linked content ef459fad11
    feat: Generates the filename with all the exported level information 93d4a42a10
    feat: Export selected level 3 headers 5f3edb6bf7
    chore: Remove duplication of retrieving following level linked artifacts 236b3c27fb
    Drop Prototype.JS override of Element.remove() 2ecdd2a6e8
    feat: Export level 3 data in generated XLSX 3a5ac7e950
    Organize configuration export modal in columns f646660849
    chore: DRY in data-formator 83e97aed53
    Drop feature flag to access the cross report export 3e52829c16
    feat: Add section in Tracker table renderer export button dfdfdfb06f
    Remove direct usages of Element.remove() 38b6ab394c
    feat: Add column filter in generated XLSX document 3416842187
    Add a fake Excel worksheet illustration in the configuration export modal 3ed6f6067a
    feat: Deal with cell max length of 32767 characters 00110bbf08
    Move Select2 specific style rules into a dedicated files f71fff43a0
    "Disable" the seperator between section 2 and 3 in the illustration when needed 60043d6b15
    Export configuration modal uses TLP form styles cd4f736724
    fix: Skip empty string parent id deb5d235f3
    feat: Second level linked artifacts must be well exported f052e135e6
    Ease the selection of multiple art link types e8877e6983
    Sort project by labels and add the project icon to the select box 789e06c519
    Automatically select the default report of a tracker in the export configuration modal 0056b87427
    Fix margins under label elements in the configuration export modal cd4a8d1323
    Only use what we need from the API artifact responses 79f8ee9edf
    Add back feature flag for the cross report export 224215d01b
    Preselect the current project in selector of the level two and three 293084a7b1
    Only merge cells needing to be merged 7d8c730d76
    Make dependency to tlp explicit d7f087e9f1

    Follow-ups

    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    • Status changed from On going to Done
    • Category set to
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    User avatar
    • Acceptance criteria
      Something went wrong, the follow up content couldn't be loaded
      Only formatting have been changed, you should switch to markup to see the changes
    • Attachments 3 level export.xlsx added