|
|
@@ -227,15 +227,15 @@ class DRNClerkBot(Task): |
|
|
|
"""Clerk a particular case and return a list of any notices to send.""" |
|
|
|
notices = [] |
|
|
|
if case.status == self.STATUS_NEW: |
|
|
|
notices = self.clerk_new_case(conn, case, volunteers) |
|
|
|
notices = self.clerk_new_case(case, volunteers) |
|
|
|
elif case.status == self.STATUS_OPEN: |
|
|
|
notices = self.clerk_open_case(conn, case, volunteers) |
|
|
|
notices = self.clerk_open_case(case) |
|
|
|
elif case.status == self.STATUS_NEEDASSIST: |
|
|
|
notices = self.clerk_needassist_case(conn, case, volunteers) |
|
|
|
notices = self.clerk_needassist_case(case, volunteers) |
|
|
|
elif case.status == self.STATUS_STALE: |
|
|
|
notices = self.clerk_stale_case(conn, case, volunteers) |
|
|
|
notices = self.clerk_stale_case(case) |
|
|
|
elif case.status == self.STATUS_REVIEW: |
|
|
|
notices = self.clerk_review_case(conn, case, volunteers) |
|
|
|
notices = self.clerk_review_case(case) |
|
|
|
elif case.status in [self.STATUS_RESOLVED, self.STATUS_CLOSED]: |
|
|
|
self.clerk_closed_case(conn) |
|
|
|
else: |
|
|
@@ -246,19 +246,24 @@ class DRNClerkBot(Task): |
|
|
|
# APPLY STATUS UPDATES TO CASE BODY |
|
|
|
return notices |
|
|
|
|
|
|
|
def clerk_new_case(self, conn, case, volunteers): |
|
|
|
notices = self.notify_parties(conn, case) |
|
|
|
def check_for_review(self, case): |
|
|
|
if time() - case.file_time > 60 * 60 * 24 * 4: |
|
|
|
if case.last_action != self.STATUS_REVIEW: |
|
|
|
case.status = self.STATUS_REVIEW |
|
|
|
return SEND_MESSAGE_TO_WT:DRN |
|
|
|
|
|
|
|
def clerk_new_case(self, case, volunteers): |
|
|
|
notices = self.notify_parties(case) |
|
|
|
signatures = self.read_signatures(case.body) |
|
|
|
if any([editor in volunteers for (editor, time) in signatures]): |
|
|
|
if case.last_action != self.STATUS_OPEN: |
|
|
|
case.status = self.STATUS_OPEN |
|
|
|
return notices |
|
|
|
|
|
|
|
def clerk_open_case(self, conn, case, volunteers): |
|
|
|
if time() - case.file_time > 60 * 60 * 24 * 4: |
|
|
|
if case.last_action != self.STATUS_REVIEW: |
|
|
|
case.status = self.STATUS_REVIEW |
|
|
|
return SEND_MESSAGE_TO_WT:DRN |
|
|
|
def clerk_open_case(self, case): |
|
|
|
flagged = self.check_for_review(case): |
|
|
|
if flagged: |
|
|
|
return flagged |
|
|
|
|
|
|
|
if len(case.body) - SIZE_WHEN_LAST_VOLUNTEER_EDIT > 15000: |
|
|
|
if case.last_action != self.STATUS_NEEDASSIST: |
|
|
@@ -271,11 +276,10 @@ class DRNClerkBot(Task): |
|
|
|
return SEND_MESSAGE_TO_WT:DRN |
|
|
|
return [] |
|
|
|
|
|
|
|
def clerk_needassist_case(self, conn, case, volunteers): |
|
|
|
if time() - case.file_time > 60 * 60 * 24 * 4: |
|
|
|
if case.last_action != self.STATUS_REVIEW: |
|
|
|
case.status = self.STATUS_REVIEW |
|
|
|
return SEND_MESSAGE_TO_WT:DRN |
|
|
|
def clerk_needassist_case(self, case, volunteers): |
|
|
|
flagged = self.check_for_review(case): |
|
|
|
if flagged: |
|
|
|
return flagged |
|
|
|
|
|
|
|
signatures = self.read_signatures(case.body) |
|
|
|
newsigs = signatures - SIGNATURES_FROM_DATABASE |
|
|
@@ -284,11 +288,10 @@ class DRNClerkBot(Task): |
|
|
|
case.status = self.STATUS_OPEN |
|
|
|
return [] |
|
|
|
|
|
|
|
def clerk_stale_case(self, conn, case, volunteers): |
|
|
|
if time() - case.file_time > 60 * 60 * 24 * 4: |
|
|
|
if case.last_action != self.STATUS_REVIEW: |
|
|
|
case.status = self.STATUS_REVIEW |
|
|
|
return SEND_MESSAGE_TO_WT:DRN |
|
|
|
def clerk_stale_case(self, case): |
|
|
|
flagged = self.check_for_review(case): |
|
|
|
if flagged: |
|
|
|
return flagged |
|
|
|
|
|
|
|
signatures = self.read_signatures(case.body) |
|
|
|
if signatures - SIGNATURES_FROM_DATABASE: |
|
|
@@ -296,7 +299,7 @@ class DRNClerkBot(Task): |
|
|
|
case.status = self.STATUS_OPEN |
|
|
|
return [] |
|
|
|
|
|
|
|
def clerk_review_case(self, conn, case, volunteers): |
|
|
|
def clerk_review_case(self, case): |
|
|
|
if time() - case.file_time > 60 * 60 * 24 * 7: |
|
|
|
if not case.very_old_notified: |
|
|
|
return SEND_MESSAGE_TO_ZHANG |
|
|
@@ -311,10 +314,11 @@ class DRNClerkBot(Task): |
|
|
|
def read_signatures(self, text): |
|
|
|
raise NotImplementedError() |
|
|
|
|
|
|
|
def notify_parties(self, conn, case): |
|
|
|
def notify_parties(self, case): |
|
|
|
if case.parties_notified: |
|
|
|
return |
|
|
|
raise NotImplementedError() |
|
|
|
case.parties_notified = True |
|
|
|
|
|
|
|
def save(self, page, cases, kwargs): |
|
|
|
"""Save any changes to the noticeboard.""" |
|
|
|