def nextDeadline(self): """Determines the next deadline on the timeline. """ if self.beforeOrgSignupStart(): return ("Org Application Starts", self.orgSignupStart()) # we do not have deadlines for any of those programs that are not active if not self.programActive(): return ("", None) if self.orgSignup(): return ("Org Application Deadline", self.orgSignupEnd()) if request_data.isBetween(self.orgSignupEnd(), self.orgsAnnouncedOn()): return ("Accepted Orgs Announced In", self.orgsAnnouncedOn()) if self.orgsAnnounced() and self.beforeStudentSignupStart(): return ("Student Application Opens", self.studentSignupStart()) if self.studentSignup(): return ("Student Application Deadline", self.studentSignupEnd()) if request_data.isBetween(self.tasksPubliclyVisible(), self.tasksClaimEndOn()): return ("Tasks Claim Deadline", self.tasksClaimEndOn()) if request_data.isBetween(self.tasksClaimEndOn(), self.stopAllWorkOn()): return ("Work Submission Deadline", self.stopAllWorkOn()) return ('', None)
def nextDeadline(self): """Determines the next deadline on the timeline. Returns: A two-tuple containing deadline text and the datetime object for the next deadline """ if self.beforeOrgSignupStart(): return ("Org Application Starts", self.orgSignupStart()) # we do not have deadlines for any of those programs that are not active if not self.programActive(): return ("", None) if self.orgSignup(): return ("Org Application Deadline", self.orgSignupEnd()) if request_data.isBetween(self.orgSignupEnd(), self.orgsAnnouncedOn()): return ("Accepted Orgs Announced In", self.orgsAnnouncedOn()) if self.orgsAnnounced() and self.beforeStudentSignupStart(): return ("Student Application Opens", self.studentSignupStart()) if self.studentSignup(): return ("Student Application Deadline", self.studentSignupEnd()) if request_data.isBetween(self.studentSignupEnd(), self.applicationMatchedOn()): return ("Proposal Matched Deadline", self.applicationMatchedOn()) if request_data.isBetween(self.applicationMatchedOn(), self.applicationReviewEndOn()): return ("Proposal Scoring Deadline", self.applicationReviewEndOn()) if request_data.isBetween(self.applicationReviewEndOn(), self.studentsAnnouncedOn()): return ("Accepted Students Announced", self.studentsAnnouncedOn()) return ('', None)