Tweaked the email activation migration to not send email when there's no active email address; it's not meaningful as the best we can do then is simply to activate the draft-related address.
- Legacy-Id: 9171
This commit is contained in:
parent
e4a1340974
commit
5f86b73d0e
|
@ -15,6 +15,7 @@ from ietf.utils.mail import send_mail_text
|
||||||
# '%(inacive_email)s' is 18, so just formatting naturally should come out
|
# '%(inacive_email)s' is 18, so just formatting naturally should come out
|
||||||
# pretty nicely in most cases.
|
# pretty nicely in most cases.
|
||||||
|
|
||||||
|
|
||||||
email_template = """
|
email_template = """
|
||||||
Hi,
|
Hi,
|
||||||
|
|
||||||
|
@ -23,13 +24,21 @@ it has been found that your address <%(inactive_email)s>, which is mentioned
|
||||||
in the active draft %(draft_name)s, was set to inactive.
|
in the active draft %(draft_name)s, was set to inactive.
|
||||||
|
|
||||||
As a consequence of this, it would not be receiving notifications related to
|
As a consequence of this, it would not be receiving notifications related to
|
||||||
that draft. The notifications would instead have gone to <%(primary_email)s>.
|
that draft, from the datatracker or through the draft aliases. The
|
||||||
|
notifications and aliases would instead have used <%(primary_email)s>.
|
||||||
|
|
||||||
This most likely was not what you intended when you used <%(inactive_email)s>
|
This most likely was not what you intended when you used <%(inactive_email)s>
|
||||||
in the draft, so that address has now been set to active. However, if you
|
in the draft, so that address has now been set to active. The datatracker and
|
||||||
have manually set the status for <%(inactive_email)s> to inactive, we
|
draft aliases will now use it.
|
||||||
apologize for interfering and now having to ask you to go and set it to
|
|
||||||
inactive again, at https://datatracker.ietf.org/accounts/profile/ .
|
If you have a datatracker account, and had manually set the status for
|
||||||
|
<%(inactive_email)s> to inactive, we apologize for interfering. Please set it
|
||||||
|
to inactive again, by using https://datatracker.ietf.org/accounts/profile/. We
|
||||||
|
don't anticipate changing it automatically again.
|
||||||
|
|
||||||
|
If you don't have a datatracker account, then all should be good -- we've
|
||||||
|
simply set things to be the way they were expected to be.
|
||||||
|
|
||||||
|
|
||||||
Best regards,
|
Best regards,
|
||||||
|
|
||||||
|
@ -39,41 +48,46 @@ Best regards,
|
||||||
|
|
||||||
def activate_draft_email(apps, schema_editor):
|
def activate_draft_email(apps, schema_editor):
|
||||||
Document = apps.get_model("doc", "Document")
|
Document = apps.get_model("doc", "Document")
|
||||||
print("Setting email addresses to active ...")
|
print("\nSetting email addresses to active ...")
|
||||||
count = 0
|
change_count = 0
|
||||||
for doc in Document.objects.filter(type__slug='draft', states__slug='active'):
|
notify_user_count = 0
|
||||||
|
for doc in Document.objects.filter(type__slug='draft', states__slug='active').order_by('-time'):
|
||||||
for email in doc.authors.all():
|
for email in doc.authors.all():
|
||||||
if email.active == False:
|
if email.active == False:
|
||||||
primary = email.person.email_set.filter(active=True).order_by('-time').first()
|
person = email.person
|
||||||
|
primary = person.email_set.filter(active=True).order_by('-time').first()
|
||||||
email.active = True
|
email.active = True
|
||||||
email.save()
|
email.save()
|
||||||
count += 1
|
change_count += 1
|
||||||
# If there isn't a primary address, ther's no active
|
# If there isn't a primary address, ther's no active
|
||||||
# addresses, and it can't be other than right to change the
|
# addresses, and it can't be other than right to change the
|
||||||
# draft email address to active. Otherwise, notify the owner.
|
# draft email address to active. Otherwise, notify the owner.
|
||||||
if primary and settings.SERVER_MODE == 'production':
|
if primary:
|
||||||
|
notify_user_count +=1
|
||||||
primary_email = primary.address
|
primary_email = primary.address
|
||||||
inactive_email = email.address
|
inactive_email = email.address
|
||||||
context = dict(
|
if settings.SERVER_MODE == 'production':
|
||||||
primary_email=primary_email,
|
context = dict(
|
||||||
inactive_email=inactive_email,
|
primary_email=primary_email,
|
||||||
draft_name=doc.name,
|
inactive_email=inactive_email,
|
||||||
|
draft_name=doc.name,
|
||||||
|
)
|
||||||
|
send_mail_text(
|
||||||
|
request=None,
|
||||||
|
to=[ primary_email, inactive_email ],
|
||||||
|
frm="Henrik Levkowetz <henrik@levkowetz.com>",
|
||||||
|
subject="Changed email settings for you in the datatracker",
|
||||||
|
txt= email_template % context,
|
||||||
|
extra={"Reply-To": "Secretariat <ietf-action@ietf.org>"},
|
||||||
)
|
)
|
||||||
send_mail_text(
|
print("Set %s email addresses to active" % change_count)
|
||||||
request=None,
|
print("Notified %s users, who had at least one other active email." % notify_user_count)
|
||||||
to=[ primary_email, inactive_email ],
|
|
||||||
frm="Henrik Levkowetz <henrik@levkowetz.com>",
|
|
||||||
subject="Changed email settings for you in the datatracker",
|
|
||||||
txt= email_template % context,
|
|
||||||
extra={"Reply-To": "Secretariat <ietf-action@ietf.org>"},
|
|
||||||
)
|
|
||||||
print("Set %s email addresses to active" % count)
|
|
||||||
|
|
||||||
def deactivate_draft_email(apps, scema_editor):
|
def deactivate_draft_email(apps, scema_editor):
|
||||||
"""
|
"""
|
||||||
The backwards migration doesn't touch the active field of any email addresses.
|
The backwards migration doesn't touch the active field of any email addresses.
|
||||||
We don't have the information to exactly undo what the forward migration did,
|
We don't have the information to exactly undo what the forward migration did,
|
||||||
and on 08 Mar 2015, there were 1931 inactive email addresses coupled to active
|
and on 08 Mar 2015, there were 1178 inactive email addresses coupled to active
|
||||||
drafts, and 4237 active addresses coupled to active drafts. The harm would
|
drafts, and 4237 active addresses coupled to active drafts. The harm would
|
||||||
be substantial if those active addresses were set to inactive.
|
be substantial if those active addresses were set to inactive.
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue