Skip to content

Commit c3c1911

Browse files
committed
Some fixes for review importer: interpretation of autopolicy and skip
all review requests without a timestamp - Legacy-Id: 11629
1 parent 5b19128 commit c3c1911

1 file changed

Lines changed: 21 additions & 12 deletions

File tree

ietf/review/import_from_review_tool.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,15 @@ def parse_timestamp(t):
5555
with db_con.cursor() as c:
5656
c.execute("select distinct login from members where permissions like '%secretary%';")
5757
secretaries = { row[0] for row in c.fetchall() }
58-
58+
59+
autopolicy_days = {
60+
'weekly': 7,
61+
'biweekly': 14,
62+
'monthly': 30,
63+
'bimonthly': 61,
64+
'quarterly': 91,
65+
}
66+
5967
known_personnel = {}
6068
with db_con.cursor() as c:
6169
c.execute("select * from members;")
@@ -72,7 +80,7 @@ def parse_timestamp(t):
7280
if not person:
7381
person, created = Person.objects.get_or_create(name=row.name, ascii=unidecode(row.name))
7482
if created:
75-
print "created person", person
83+
print "created person", unicode(person).encode("utf-8")
7684
existing_aliases = set(Alias.objects.filter(person=person).values_list("name", flat=True))
7785
curr_names = set(x for x in [person.name, person.ascii, person.ascii_short, person.plain_name(), ] if x)
7886
new_aliases = curr_names - existing_aliases
@@ -88,31 +96,32 @@ def parse_timestamp(t):
8896
if "secretary" in row.permissions:
8997
role, created = Role.objects.get_or_create(name=RoleName.objects.get(slug="secr"), person=email.person, email=email, group=team)
9098
if created:
91-
print "created role", role
99+
print "created role", unicode(role).encode("utf-8")
92100

93101
if row.login in known_reviewers:
94102
if row.comment != "Inactive" and row.available != 2145916800: # corresponds to 2038-01-01
95-
assert not row.autopolicy or row.autopolicy == "monthly"
96-
97103
role, created = Role.objects.get_or_create(name=RoleName.objects.get(slug="reviewer"), person=email.person, email=email, group=team)
98104

99105
if created:
100-
print "created role", role
106+
print "created role", unicode(role).encode("utf-8")
101107

102108
reviewer, created = Reviewer.objects.get_or_create(
103109
team=team,
104110
person=email.person,
105111
)
106112
if reviewer:
107-
print "created reviewer", reviewer
113+
print "created reviewer", reviewer.pk, unicode(reviewer).encode("utf-8")
108114

109-
if row.autopolicy == "monthly":
110-
reviewer.frequency = 30
115+
if autopolicy_days.get(row.autopolicy):
116+
reviewer.frequency = autopolicy_days.get(row.autopolicy)
111117
reviewer.unavailable_until = parse_timestamp(row.available)
112118
reviewer.filter_re = row.donotassign
119+
try:
120+
reviewer.skip_next = int(row.autopolicy)
121+
except ValueError:
122+
pass
113123
reviewer.save()
114124

115-
116125
# review requests
117126

118127
# check that we got the needed names
@@ -191,9 +200,9 @@ def parse_timestamp(t):
191200
else:
192201
time = deadline
193202

194-
if not deadline and row.docstatus == "assigned":
203+
if not deadline:
195204
# bogus row
196-
print "SKIPPING WITH NO DEADLINE", time, row
205+
print "SKIPPING WITH NO DEADLINE", time, row, meta
197206
continue
198207

199208
if status == "done" and row.docstatus in ("assigned", "accepted"):

0 commit comments

Comments
 (0)