⚓ T184268 Notify the deletion of very old unpublished translation drafts (original) (raw)

Notify the deletion of very old unpublished translation drafts

Translations that were started a really long time ago are problematic and it is preferred to discard them automatically at some point (T183890). We want still to tell users what happened and encourage them to still translate the page they were once interested if that makes sense.

Proposed solution

For translations in draft mode for more than a year, not being published. A notification is sent to tell the user that the draft was deleted since it was based on content that is more than one year old. If there are several translations in such situation, the notifications will be grouped into a bundle.

For translations older than a year that have been already published, those can be deleted without further notification. The user was warned after three months (T89707), and it makes not much sense to encourage to translate the content now.

The notifications to use are described below:

cx-notif-years.png (104×502 px, 17 KB)

Bundled version

cx-notif-years-bundle.png (187×502 px, 20 KB)

Graphic assets
For the notification icon we'll use a grey version of the translation icon to represent the translation was outdated:

Event Timeline

Comment Actions

@Pginer-WMF, you wrote:

Main action (opening the notification): leads to translation dashboard with the new translation panel pre-filled ready to start the translation.

In which version of Content Translation should translation started this way be opened? I used CX2 in first patch set.

Comment Actions

@Pginer-WMF, you wrote:

Main action (opening the notification): leads to translation dashboard with the new translation panel pre-filled ready to start the translation.

In which version of Content Translation should translation started this way be opened? I used CX2 in first patch set.

The translation should be started with whichever is the default version of CX in that wiki. Currently that would be CX1. When CX2 is released as default, CX2 will be used. This should be the same as if the user manually started the translation through the "new translation" button.

Comment Actions

Thanks, @Pginer-WMF!

Another question coming from @Nikerabbit on gerrit patch. About message "X translations were discarded because their content was outdated by more than a year. Start them with fresh content anytime.", he said:
Hard coding the period in the message is quite inflexible. Are we sure that we are not going to go below a year?

So, do we want to say "outdated by more than a year" always or something more flexible? Will we ever go below one year mark?

Comment Actions

Another question coming from @Nikerabbit on gerrit patch. About message "X translations were discarded because their content was outdated by more than a year. Start them with fresh content anytime.", he said:
Hard coding the period in the message is quite inflexible. Are we sure that we are not going to go below a year?

So, do we want to say "outdated by more than a year" always or something more flexible? Will we ever go below one year mark?

I don't expect the need for much flexibility here. The period was not selected with precision in mind, but to make it easy to communicate (and seemed long enough to justify the removal).

If there is anything that can be done to make future changes less painful, we can consider it; but I'd not invest much time or sacrifice the clarity of the message for the current case since it seems unlikely to change to a shorter period.

Comment Actions

I could not get cx-deleted-draft notification in betalabs, and there is no such notifications recorded betalabs db.

Production db has cx-deleted-draft event_type in echo_event on enwiki:

event_id: 140268289 event_type: cx-deleted-draft event_variant: NULL event_agent_id: NULL event_agent_ip: NULL event_page_namespace: NULL event_page_title: NULL event_extra: a:3:{s:9:"recipient";i:35821218;s:6:"source";s:2:"en";s:6:"target";s:2:"ca";} event_page_id: 9701081 event_deleted: 0

Unless, @Petar.petkovic has any idea how to receive such notifications in betalabs (or in cx- environment), I'm moving the task to Done without verification.

Comment Actions

Unless, @Petar.petkovic has any idea how to receive such notifications in betalabs (or in cx- environment), I'm moving the task to Done without verification.

Well, how did you try?

You can run "purge-unpublished-drafts" script in dry-run mode, and see how many drafts can be purged for given number of days ("age-in-days" param). Fine tune the age param to purge desired subset of old drafts. Then, running the script for real (with --really option) should delete the drafts from database and notify the users that started that translation.

Comment Actions

I tried to run the script in betalabs where I have access to the server and db. I have more than a hundred of test users there, so I was hoping to find some old translation draft. So, I can run the script and see if the notification comes and how it looks.

(1) Finding such a user:

[wikishared]> select * from cx_translators where translator_user_id in (select gu_id from centralauth.globaluser where gu_name like 'ET%');

+--------------------+---------------------------+ | translator_user_id | translator_translation_id | +--------------------+---------------------------+ | 20369 | 81581 | +--------------------+---------------------------+

(2) Finding the name of a user and what draft title/timestamp the user has:

[wikishared]> select * from cx_translations where translation_id = 81581\G *************************** 1. row *************************** translation_id: 81581 translation_source_title: Rowdy Gaines translation_target_title: Rowdy Gaines translation_source_language: en translation_target_language: ru translation_source_url: //en.wikipedia.org/wiki/Rowdy Gaines translation_target_url: https://en.wikipedia.beta.wmflabs.org/wiki/Rowdy_Gaines translation_status: draft translation_start_timestamp: 20160816194825 translation_last_updated_timestamp: 20160816200214 translation_progress: {"any":0.24763705103969755,"human":0.09735349716446125,"mt":0.1502835538752363,"mtSectionsCount":2} translation_started_by: 20369 translation_last_update_by: 20369 translation_source_revision_id: 734775681 translation_target_revision_id: 344508 translation_cx_version: 1 1 row in set (0.01 sec)

(3) Verified that the translation/draft is, indeed, locked - it was true.

(4) Trying to run the script with various day ranges and see if that draft will be picked up. However, the script always (at least, for the dry-run) stops at 2015-11-06T14:14:11+00:00 timestamp even for --age-in-days=1 And translation_id: 81581 translation_source_title: Rowdy Gaines will not be there

(5) Out of curiosity, I checked my draft will be present in cx_drafts - seems that only my draft is missing :(

[wikishared]> select translation_id from cx_translations where translation_status='draft' and translation_id not in (select draft_id from cx_drafts); +----------------+ | translation_id | +----------------+ | 81581 | +----------------+ 1 row in set (0.01 sec)

Thanks to @KartikMistry explanation - the script does not work for betalabs. When the script will be run in cx2-testing for my test user, the notification should come and be verified.

Content licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) 4.0 unless otherwise noted; code licensed under GNU General Public License (GPL) 2.0 or later and other open source licenses. By using this site, you agree to the Terms of Use, Privacy Policy, and Code of Conduct. · Wikimedia Foundation · Privacy Policy · Code of Conduct · Terms of Use · Disclaimer · CC-BY-SA · GPL · Credits