@@ -55,7 +55,15 @@ def parse_timestamp(t):
5555with 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+
5967known_personnel = {}
6068with 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