Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-27417

As a Developer I want API to allow removal of the translation from all content object versions

    Details

      Description

      We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.


      Open question is what customers need here.

      What has been reported that they need is:

      • Deleting a translation from all versions of a content (including published version, drafts and archives)
        • This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions

      What would make more technically sense:

      • Deleting a translation from a version and return a draft (UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)

      In both cases should probably throw if user tries to delete last remaining translation, for that content/version deletion is more suitable

      Any input on this is welcome.

        Issue Links

          Activity

          Andrzej Longosz created issue -
          Andrzej Longosz made changes -
          Field Original Value New Value
          Epic Link EZP-25684 [ 54027 ]
          André Rømcke made changes -
          Description We need to design PHP API changes to allow deleting content object translation without deleting the whole object We need to design PHP and REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.
          André Rømcke made changes -
          Status Open [ 1 ] Confirmed [ 10037 ]
          André Rømcke made changes -
          Status Confirmed [ 10037 ] Backlog [ 10000 ]
          André Rømcke made changes -
          Status Backlog [ 10000 ] InputQ [ 10001 ]
          Andrzej Longosz made changes -
          Status InputQ [ 10001 ] Specification [ 10002 ]
          André Rømcke made changes -
          Description We need to design PHP and REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic. We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          There are two identified use cases to explore:
          1. Deleting a translation from all versions of a content _(including published version, drafts and archives)_
          2. Deleting a translation from a version _(and return the resulting draft so it can be published directly as a second call)_

          Open question is if first one is feasible given it implies a implicit re publish, and there might not be any similar cases in the API, closest would be hide/unhide which acts indirectly on the object and affects Solr index as well as http cache, like this case will. First one is perhaps what most customers have been asking for, but haven't gotten a confirmation if second approach would solve most customer needs also.
          André Rømcke made changes -
          Summary As a Developer I want PHP API to allow removal of single translation w/o deleting the whole object As a Developer I want API to allow removal of single translation w/o deleting the whole object
          André Rømcke made changes -
          Reporter Andrzej Longosz [ andrzej.longosz@ez.no ] André Rømcke [ andre.romcke@ez.no ]
          André Rømcke made changes -
          Description We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          There are two identified use cases to explore:
          1. Deleting a translation from all versions of a content _(including published version, drafts and archives)_
          2. Deleting a translation from a version _(and return the resulting draft so it can be published directly as a second call)_

          Open question is if first one is feasible given it implies a implicit re publish, and there might not be any similar cases in the API, closest would be hide/unhide which acts indirectly on the object and affects Solr index as well as http cache, like this case will. First one is perhaps what most customers have been asking for, but haven't gotten a confirmation if second approach would solve most customer needs also.
          We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          Open question is what customers need here.

          What has been reported that they need is:
           - Deleting a translation from all versions of a content _(including published version, drafts and archives)_
           -- This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions


          What would make more technically sense:
          - Deleting a translation from a version and return a draft _(UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)_

          Any input on this is welcome.
          André Rømcke made changes -
          Description We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          Open question is what customers need here.

          What has been reported that they need is:
           - Deleting a translation from all versions of a content _(including published version, drafts and archives)_
           -- This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions


          What would make more technically sense:
          - Deleting a translation from a version and return a draft _(UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)_

          Any input on this is welcome.
          We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          Open question is what customers need here.

          What has been reported that they need is:
           - Deleting a translation from all versions of a content _(including published version, drafts and archives)_
           -- This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions


          What would make more technically sense:
          - Deleting a translation from a version and return a draft _(UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)_


          In both cases should probably throw if user tries to delete last remaining translation, for that content/version deletion is more suitable

          Any input on this is welcome.
          André Rømcke made changes -
          Description We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          Open question is what customers need here.

          What has been reported that they need is:
           - Deleting a translation from all versions of a content _(including published version, drafts and archives)_
           -- This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions


          What would make more technically sense:
          - Deleting a translation from a version and return a draft _(UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)_


          In both cases should probably throw if user tries to delete last remaining translation, for that content/version deletion is more suitable

          Any input on this is welcome.
          We need to design 1. PHP and 2. REST API changes to allow deleting content object translation without deleting the whole object. And describe the behavior as proposed in the epic.

          ----

          Open question is what customers need here.

          What has been reported that they need is:
           - Deleting a translation from all versions of a content _(including published version, drafts and archives)_
           -- This is somewhat in contrast to how versions are treated today in the system, with exception of drafts the system normally don't allow editing/changing versions


          What would make more technically sense:
          - Deleting a translation from a version and return a draft _(UI code can handle directly publishing if needed, it can also offer user to delete all prior versions with given language if user really want to wipe out history)_


          In both cases should probably throw if user tries to delete last remaining translation, for that content/version deletion is more suitable

          Any input on this is welcome.
          Hide
          Douglas Hammond added a comment -

          For my use case either way would suffice. I would lean towards the second option too as it is more inline with how ez handles content. Second option also would allow you to restore the previous language if you had to by basing new content on that version.

          Show
          Douglas Hammond added a comment - For my use case either way would suffice. I would lean towards the second option too as it is more inline with how ez handles content. Second option also would allow you to restore the previous language if you had to by basing new content on that version.
          Hide
          Andrzej Longosz added a comment -

          WIP Spec PR: https://github.com/ezsystems/ezpublish-kernel/pull/2001
          Right now it meets the needs of both use cases.

          Show
          Andrzej Longosz added a comment - WIP Spec PR: https://github.com/ezsystems/ezpublish-kernel/pull/2001 Right now it meets the needs of both use cases.
          Hide
          Paul Borgermans added a comment -

          Both options should be possible, they do represent different use cases.

          In the second option the part on "UI code ... can also offer user to delete all prior versions with given language if user really want to wipe out history", is actually a third use case on versions management and I would suggest to keep it out of this language management story

          Show
          Paul Borgermans added a comment - Both options should be possible, they do represent different use cases. In the second option the part on "UI code ... can also offer user to delete all prior versions with given language if user really want to wipe out history", is actually a third use case on versions management and I would suggest to keep it out of this language management story
          Automated transition triggered when Andrew Longosz created pull request #2001 in GitHub -
          Status Specification [ 10002 ] Specification Review [ 10038 ]
          Andrzej Longosz made changes -
          Summary As a Developer I want API to allow removal of single translation w/o deleting the whole object As a Developer I want API to allow removal of the translation from all content object versions
          Hide
          Andrzej Longosz added a comment -

          As the result of this discussion in Spec PR the meaning and goal of this story gets defined to allowing removal of the translation from all the Versions of a single Content Object.

          There is a follow-up story EZP-27508 which covers removal of a translation from a single Version, thus creating a Content Draft.

          Show
          Andrzej Longosz added a comment - As the result of this discussion in Spec PR the meaning and goal of this story gets defined to allowing removal of the translation from all the Versions of a single Content Object . There is a follow-up story EZP-27508 which covers removal of a translation from a single Version, thus creating a Content Draft.
          Hide
          André Rømcke added a comment -
          Show
          André Rømcke added a comment - Specification done, ready for implementation now: https://github.com/ezsystems/ezpublish-kernel/commit/79eb48d89b54acc76f2e22114bff61edf8aa30f3
          André Rømcke made changes -
          Status Specification Review [ 10038 ] Specification done [ 10003 ]
          Assignee Andrzej Longosz [ andrzej.longosz@ez.no ]
          Andrzej Longosz made changes -
          Status Specification done [ 10003 ] Development [ 3 ]
          Assignee Andrzej Longosz [ andrzej.longosz@ez.no ]
          Andrzej Longosz logged work - 21/Jun/17 7:00 PM
          • Time Spent:
            1 hour
             

            Started implementation

          Andrzej Longosz made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 1 hour [ 3600 ]
          Worklog Id 64740 [ 64740 ]
          Andrzej Longosz logged work - 22/Jun/17 7:00 PM
          • Time Spent:
            6 hours
             

            Impl. tests and skeleton

          Andrzej Longosz made changes -
          Time Spent 1 hour [ 3600 ] 7 hours [ 25200 ]
          Worklog Id 64769 [ 64769 ]
          Andrzej Longosz made changes -
          Time Spent 7 hours [ 25200 ] 1 day, 1 hour [ 32400 ]
          Worklog Id 64770 [ 64770 ]
          Andrzej Longosz logged work - 23/Jun/17 6:37 PM
          • Time Spent:
            2 hours
             

            Impl. gateway

          Andrzej Longosz made changes -
          Time Spent 1 day, 1 hour [ 32400 ] 1 day, 7 hours [ 54000 ]
          Worklog Id 64802 [ 64802 ]
          Show
          Andrzej Longosz added a comment - PR: https://github.com/ezsystems/ezpublish-kernel/pull/2031
          Andrzej Longosz made changes -
          Status Development [ 3 ] Development Review [ 10006 ]
          Andrzej Longosz logged work - 26/Jun/17 6:42 PM
          • Time Spent:
            6 hours
             

            Finished implementation

          Sylvain Guittard made changes -
          Link This issue relates to EZP-27538 [ EZP-27538 ]
          Andrzej Longosz made changes -
          Time Spent 1 day, 7 hours [ 54000 ] 2 days, 5 hours [ 75600 ]
          Worklog Id 64959 [ 64959 ]
          Andrzej Longosz logged work - 07/Jul/17 6:51 PM
          • Time Spent:
            6 hours
             

            improving implementation after review

          Show
          André Rømcke added a comment - Merged: https://github.com/ezsystems/ezpublish-kernel/commit/f0ec2b93a413bf293d6329bb99034d9b120db95c
          André Rømcke made changes -
          Status Development Review [ 10006 ] Documentation Review done [ 10011 ]
          Affects Version/s 1.10.0 [ 14783 ]
          Fix Version/s 1.11.0-beta1 [ 14801 ]
          Assignee Andrzej Longosz [ andrzej.longosz@ez.no ]
          Paulo Nunes (Inactive) made changes -
          Status Documentation Review done [ 10011 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Paulo Nunes (Inactive) made changes -
          Resolution Fixed [ 1 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          Paulo Nunes (Inactive) made changes -
          Status Reopened [ 4 ] Confirmed [ 10037 ]
          Paulo Nunes (Inactive) made changes -
          Assignee Paulo Nunes [ paulo.nunes@ez.no ]
          Paulo Nunes (Inactive) made changes -
          Status Confirmed [ 10037 ] Open [ 1 ]
          Paulo Nunes (Inactive) made changes -
          Status Open [ 1 ] Confirmed [ 10037 ]
          Paulo Nunes (Inactive) made changes -
          Status Confirmed [ 10037 ] InputQ [ 10001 ]
          Paulo Nunes (Inactive) made changes -
          Status InputQ [ 10001 ] Documentation [ 10010 ]
          Paulo Nunes (Inactive) made changes -
          Status Documentation [ 10010 ] Documentation Review done [ 10011 ]
          Assignee Paulo Nunes [ paulo.nunes@ez.no ]
          Rui Silva (Inactive) made changes -
          Status Documentation Review done [ 10011 ] QA [ 10008 ]
          Paulo Nunes (Inactive) made changes -
          Link This issue testing discovered EZP-27700 [ EZP-27700 ]
          Hide
          Rui Silva (Inactive) added a comment -

          Tested and approved by QA for master, that the removal of translations in a language for all versions of a single content can be removed.

          Show
          Rui Silva (Inactive) added a comment - Tested and approved by QA for master, that the removal of translations in a language for all versions of a single content can be removed.
          Rui Silva (Inactive) made changes -
          Assignee Rui Silva [ rui.silva@ez.no ]
          Status QA [ 10008 ] Closed [ 6 ]
          Resolution Fixed [ 1 ]
          Andrzej Longosz made changes -
          Link This issue relates to EZP-27712 [ EZP-27712 ]
          Jacek Foremski (Inactive) made changes -
          Link This issue relates to EZP-27842 [ EZP-27842 ]
          Alex Schuster made changes -
          Workflow EZ* Development Workflow [ 103977 ] EZEE Development Workflow [ 126507 ]
          Alex Schuster made changes -
          Workflow EZEE Development Workflow [ 126507 ] EZEE and EZP Story Workflow [ 128299 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Confirmed Confirmed Backlog Backlog
          4s 1 André Rømcke 26/May/17 3:12 PM
          Backlog Backlog InputQ InputQ
          13s 1 André Rømcke 26/May/17 3:12 PM
          InputQ InputQ Specification Specification
          2d 22h 26m 1 Andrzej Longosz 29/May/17 1:38 PM
          Specification Specification Specification Review Specification Review
          2d 3h 51m 1 31/May/17 5:29 PM
          Specification Review Specification Review Specification Done Specification Done
          19d 23h 45m 1 André Rømcke 20/Jun/17 5:15 PM
          Specification Done Specification Done Development Development
          16h 50m 1 Andrzej Longosz 21/Jun/17 10:06 AM
          Development Development Development Review Development Review
          5d 6h 43m 1 Andrzej Longosz 26/Jun/17 4:49 PM
          Development Review Development Review Documentation Review done Documentation Review done
          16d 18h 30m 1 André Rømcke 13/Jul/17 11:19 AM
          Documentation Review done Documentation Review done Closed Closed
          1d 18m 1 Paulo Nunes 14/Jul/17 11:37 AM
          Closed Closed Reopened Reopened
          11m 53s 1 Paulo Nunes 14/Jul/17 11:49 AM
          Reopened Reopened Confirmed Confirmed
          6s 1 Paulo Nunes 14/Jul/17 11:49 AM
          Confirmed Confirmed Open Open
          13s 1 Paulo Nunes 14/Jul/17 11:49 AM
          Open Open Confirmed Confirmed
          6m 9s 2 Paulo Nunes 14/Jul/17 11:49 AM
          Confirmed Confirmed InputQ InputQ
          6s 1 Paulo Nunes 14/Jul/17 11:49 AM
          InputQ InputQ Documentation Documentation
          10s 1 Paulo Nunes 14/Jul/17 11:49 AM
          Documentation Documentation Documentation Review done Documentation Review done
          6s 1 Paulo Nunes 14/Jul/17 11:50 AM
          Documentation Review done Documentation Review done QA QA
          10d 22h 6m 1 rui.silva@ez.no 25/Jul/17 9:56 AM
          QA QA Closed Closed
          23h 50m 1 rui.silva@ez.no 26/Jul/17 9:47 AM

            People

            • Assignee:
              Unassigned
              Reporter:
              André Rømcke
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 2 days, 5 hours
                2d 5h