def create_semester(self, event=None, semester_tag=None): start = self.semester_start_entry.get().strip() end = self.semester_end_entry.get().strip() if len(start) != 11 or len(end) != 11 or start[2] != '/' or end[2] != '/': self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = "Please enter dates in the format:\n" \ "DD/MMM/YYYY.\n" \ "Example: 12/AUG/2015" return # Failure state # Normal Semester Creation with automated Semester Tag generation if not hasattr(self, 'semester_tag_entry'): start_month = start[3:6] end_month = end[3:6] previous_semester_tag = MIS_Database_Functions.get_most_recent_semester_tag() try: previous_semester_tag_year = int(previous_semester_tag[1:]) except ValueError: self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = "The previous semester's tag is incorrect.\n" \ "Have the technical director correct this issue before proceeding." return if previous_semester_tag[0] == 'F': new_semester_tag_year = previous_semester_tag_year + 1 new_semester_tag = 'S' else: new_semester_tag = 'F' new_semester_tag_year = previous_semester_tag_year new_semester_tag += str(new_semester_tag_year) # Checks to make sure the start and end dates are in the right months for the new Semester if start_month not in months or end_month not in months: self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = "The month in at least one of the dates\n" \ "is not correct for semester %s." % new_semester_tag if new_semester_tag[0] == 'F' and (start_month not in fall_months or end_month not in fall_months): self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = "The month in at least one of the dates\n" \ "is not correct for semester %s." % new_semester_tag return if new_semester_tag[0] == 'S' and (start_month not in spring_months or end_month not in spring_months): self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = "The month in at least one of the dates\n" \ "is not correct for semester %s." % new_semester_tag return start_year = int(start[9:]) end_year = int(end[9:]) if start_year != new_semester_tag_year or end_year != new_semester_tag_year: self.feedback_label.config(style='ErrorLabel.TLabel') self.feedback_label['text'] = 'Incorrect year. It should be \'%s' \ % str(new_semester_tag_year) return self.feedback_label.config(style="SuccessLabel.TLabel") self.feedback_label['text'] = "Semester created successfully.\n" \ " You are ready to create events and check in members." MIS_Database_Functions.create_semester(new_semester_tag, start, end) self.semester_end_entry.delete(0, len(self.semester_end_entry.get())) self.semester_start_entry.delete(0, len(self.semester_start_entry.get())) # Semester Creation from the blank slate else: MIS_Database_Functions.create_semester(semester_tag, start, end) self.feedback_label.config(style="SuccessLabel.TLabel") self.feedback_label['text'] = "Semester created successfully.\n" \ "You are ready to create events."