def restore_meetings(json): for meeting in json: id = UUID(meeting["id"]) year = int(meeting["year"]) date = datetime.strptime(meeting["date"], date_format) last_upload = datetime.strptime(meeting["last_upload"], date_format) lp = int(meeting["lp"]) meeting_no = int(meeting["meeting_no"]) check_for_deadline = bool(meeting["check_for_deadline"]) Meeting(id=id, year=year, date=date, last_upload=last_upload, lp=lp, meeting_no=meeting_no, check_for_deadline=check_for_deadline) arr = Meeting.select()[:] print("===RESTORED {0} {1}===".format(len(arr), "Meetings"))
def update_meeting(meeting_data: MeetingJsonData) -> ResultWithData[str]: try: meeting = Meeting.get(id=meeting_data.id) meeting.date = meeting_data.date meeting.last_upload = meeting_data.last_upload meeting.lp = meeting_data.lp meeting.meeting_no = meeting_data.meeting_no except Exception as e: return get_result_with_error("Failed to update meeting {0}".format(e)) return get_result_with_data("")
def create_new_meeting(date: datetime, last_upload: datetime, lp: int, meeting_no: int) -> ResultWithData[UUID]: try: meeting = Meeting(year=date.year, date=date, last_upload=last_upload, lp=lp, meeting_no=meeting_no, check_for_deadline=False) except Exception as e: print("Failed to create meeting due to '{0}'".format(e)) return get_result_with_error("Failed to create meeting") return get_result_with_data(meeting.id)
def get_check_for_deadline_meetings() -> List[MeetingData]: meeting_datas = [] meetings = list( Meeting.select(lambda meeting: meeting.check_for_deadline == True)) for meeting in meetings: meeting_datas.append( MeetingData(id=meeting.id, year=meeting.year, date=meeting.date, last_upload=meeting.last_upload, lp=meeting.lp, meeting_no=meeting.meeting_no)) return meeting_datas
def get_meetings(): arr = [] meetings = Meeting.select() for meeting in meetings: arr.append({ "id": str(meeting.id), "year": meeting.year, "date": meeting.date.strftime(date_format), "last_upload": meeting.last_upload.strftime(date_format), "lp": meeting.lp, "meeting_no": meeting.meeting_no, "check_for_deadline": meeting.check_for_deadline }) print("===SAVING {0} {1}===".format(len(arr), "Meetings")) return arr
def get_meeting_for_period(year: int, lp: int, meeting_no: int) -> Optional[Meeting]: return Meeting.get(year=year, lp=lp, meeting_no=meeting_no)
def get_meeting_by_id(id: UUID) -> Optional[Meeting]: return Meeting.get(id=id)
def get_next_meeting(): return Meeting.select().order_by(desc(Meeting.date)).first()