Skip to content

Commit 9457669

Browse files
committed
Merge in changes from the old shimfree branch
- Legacy-Id: 6764
2 parents d2d1c83 + 12722a6 commit 9457669

335 files changed

Lines changed: 12102 additions & 22089 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bin/mkdiagram

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ trap 'echo "$program($LINENO): Command failed with error code $? ($0 $*)"; exit
99
if [ "$*" ]; then apps="$@"; graph="${1%.*}"; else apps=$(ls */models.py | sed 's!/models.py!!'); graph="models"; fi
1010

1111
newapps="doc group meeting message person name"
12-
legacyapps="announcements idindex idrfc idtracker iesg ietfauth ietfworkflows ipr liaisons mailinglists proceedings redirects submit wgchairs wgcharter wginfo"
12+
legacyapps="announcements idindex idrfc idtracker iesg ietfauth ipr liaisons mailinglists proceedings redirects submit wgcharter wginfo"
1313

1414
proxy="$(grep ^class */proxy.py | tr '()' ' ' | awk '{printf $2 ","}')"
1515
names="$(grep ^class name/models.py | tr '()' ' ' | awk '{printf $2 ","}')"

ietf/bin/expire-submissions

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env python
2+
3+
import datetime, os
4+
import syslog
5+
6+
from ietf import settings
7+
from django.core import management
8+
management.setup_environ(settings)
9+
10+
syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER)
11+
12+
from ietf.person.models import Person
13+
from ietf.submit.utils import expirable_submissions, expire_submission
14+
15+
system = Person.objects.get(name="(System)")
16+
17+
for sub in expirable_submissions(older_than_days=30):
18+
expire_submission(sub, system)
19+
20+
syslog.syslog("Expired submission %s of %s-%s" % (sub.pk, sub.name, sub.rev))

ietf/bin/find-submission-confirmation-email-in-postfix-log

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ from django.conf import settings
3131

3232
from ietf.utils.path import path as Path
3333

34-
from ietf.submit.models import IdSubmissionDetail
34+
from ietf.submit.models import Submission
3535
from ietf.doc.models import Document
3636

3737

@@ -56,13 +56,13 @@ from_email = settings.IDSUBMIT_FROM_EMAIL
5656
if "<" in from_email:
5757
from_email = from_email.split("<")[1].split(">")[0]
5858

59-
submission = IdSubmissionDetail.objects.filter(filename=draft).latest('submission_date')
59+
submission = Submission.objects.filter(name=draft).latest('submission_date')
6060
document = Document.objects.get(name=draft)
6161
emails = [ author.address for author in document.authors.all() ]
6262

6363
timestrings = []
64-
for file in [ Path(settings.INTERNET_DRAFT_PATH) / ("%s-%s.txt"%(draft, submission.revision)),
65-
Path(settings.IDSUBMIT_STAGING_PATH) / ("%s-%s.txt"%(draft, submission.revision)) ]:
64+
for file in [ Path(settings.INTERNET_DRAFT_PATH) / ("%s-%s.txt"%(draft, submission.rev)),
65+
Path(settings.IDSUBMIT_STAGING_PATH) / ("%s-%s.txt"%(draft, submission.rev)) ]:
6666
if os.path.exists(file):
6767
upload_time = time.localtime(file.mtime)
6868
ts = time.strftime("%b %d %H:%M", upload_time)
@@ -95,4 +95,3 @@ for log in logfiles:
9595
for qi in queue_ids:
9696
if qi in line:
9797
sys.stdout.write(line)
98-

ietf/bin/test-crawl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ connection.queries = DontSaveQueries()
2424
MAX_URL_LENGTH = 500
2525
SLOW_THRESHOLD = 1.0
2626

27-
initial = ["/doc/all/", "/doc/in-last-call/"]
27+
initial = ["/doc/all/", "/doc/in-last-call/", "/iesg/decisions/"]
2828

2929
visited = set()
3030
urls = {} # url -> referrer

ietf/community/display.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from django.db.models import Q
44
from django.core.urlresolvers import reverse as urlreverse
55

6-
from ietf.ietfworkflows.utils import get_state_for_draft
76
from ietf.doc.models import DocAlias, DocEvent
87

98

ietf/doc/mails.py

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from ietf.utils.mail import send_mail, send_mail_text
1111
from ietf.ipr.search import iprs_from_docs, related_docs
12-
from ietf.doc.models import WriteupDocEvent, BallotPositionDocEvent, LastCallDocEvent, DocAlias, ConsensusDocEvent
12+
from ietf.doc.models import WriteupDocEvent, BallotPositionDocEvent, LastCallDocEvent, DocAlias, ConsensusDocEvent, DocTagName
1313
from ietf.person.models import Person
1414
from ietf.group.models import Group, Role
1515

@@ -413,3 +413,66 @@ def email_last_call_expired(doc):
413413
doc=doc,
414414
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url()),
415415
cc="iesg-secretary@ietf.org")
416+
417+
def stream_state_email_recipients(doc, extra_recipients=[]):
418+
persons = set()
419+
res = []
420+
for r in Role.objects.filter(group=doc.group, name__in=("chair", "delegate")).select_related("person", "email"):
421+
res.append(r.formatted_email())
422+
persons.add(r.person)
423+
424+
for email in doc.authors.all():
425+
if email.person not in persons:
426+
res.append(email.formatted_email())
427+
persons.add(email.person)
428+
429+
for p in extra_recipients:
430+
if not p in persons:
431+
res.append(p.formatted_email())
432+
persons.add(p)
433+
434+
return res
435+
436+
def email_draft_adopted(request, doc, by, comment):
437+
recipients = stream_state_email_recipients(doc)
438+
send_mail(request, recipients, settings.DEFAULT_FROM_EMAIL,
439+
u"%s adopted in %s %s" % (doc.name, doc.group.acronym, doc.group.type.name),
440+
'doc/mail/draft_adopted_email.txt',
441+
dict(doc=doc,
442+
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
443+
by=by,
444+
comment=comment))
445+
446+
def email_stream_state_changed(request, doc, prev_state, new_state, by, comment=""):
447+
recipients = stream_state_email_recipients(doc)
448+
449+
state_type = (prev_state or new_state).type
450+
451+
send_mail(request, recipients, settings.DEFAULT_FROM_EMAIL,
452+
u"%s changed for %s" % (state_type.label, doc.name),
453+
'doc/mail/stream_state_changed_email.txt',
454+
dict(doc=doc,
455+
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
456+
state_type=state_type,
457+
prev_state=prev_state,
458+
new_state=new_state,
459+
by=by,
460+
comment=comment))
461+
462+
def email_stream_tags_changed(request, doc, added_tags, removed_tags, by, comment=""):
463+
extra_recipients = []
464+
465+
if DocTagName.objects.get(slug="sheph-u") in added_tags and doc.shepherd:
466+
extra_recipients.append(doc.shepherd)
467+
468+
recipients = stream_state_email_recipients(doc, extra_recipients)
469+
470+
send_mail(request, recipients, settings.DEFAULT_FROM_EMAIL,
471+
u"Tags changed for %s" % doc.name,
472+
'doc/mail/stream_tags_changed_email.txt',
473+
dict(doc=doc,
474+
url=settings.IDTRACKER_BASE_URL + doc.get_absolute_url(),
475+
added=added_tags,
476+
removed=removed_tags,
477+
by=by,
478+
comment=comment))

0 commit comments

Comments
 (0)