def post(self): message = "" assignToSyllabus = self.request.get('assignToSyllabus') loadFile = self.request.get('loadFile') generateDates = self.request.get('generateCalendar') rowInsert = self.request.get('insertRow') rowRemove = self.request.get('removeRow') save = self.request.get('save') user = self.current_user syllabus = self.current_syllabus term = self.current_term syllabusCalendars = CalendarClass.query(ancestor=user.key).filter(CalendarClass.workingCalendar == True).fetch() if syllabusCalendars: #should have exactly 1 calendar for i in syllabusCalendars: mySched = i else: #should not be reachable state mySched = None if assignToSyllabus: assign = self.request.get('onSyllabus') if assign: if mySched: if not mySched.onSyllabus: mySched.workingCalendar = False mySched.put() onScheduleCalendar = CalendarClass.query(ancestor=syllabus.key).filter(CalendarClass.onSyllabus == True).fetch() if onScheduleCalendar: for i in onScheduleCalendar: i.key.delete() mySched = mySched.clone(syllabus.key) mySched.onSyllabus = True mySched.workingCalendar = True mySched.put() if loadFile: message = "loadFile" loadFileName = self.request.get('fileName') if loadFileName == 'new': message = "newFile" if mySched: mySched.workingCalendar = False mySched.put() if syllabus.info and term and syllabus.info.days: mySched = CalendarClass(parent = user.key) mySched.schedule.append('Date') mySched.schedule.append('Reading') mySched.schedule.append('Topic') mySched.workingCalendar = True if 'M' in syllabus.info.days: mySched.meetDays.append(0) if 'T' in syllabus.info.days: mySched.meetDays.append(1) if 'W' in syllabus.info.days: mySched.meetDays.append(2) if 'R' in syllabus.info.days: mySched.meetDays.append(3) if 'F' in syllabus.info.days: mySched.meetDays.append(4) mySched.startMonth = int(syllabus.info.startDate.split('/')[0]) mySched.startDate = int(syllabus.info.startDate.split('/')[1]) mySched.startYear = int(term.year) mySched.numWeeks = 15 #mySched.generateDates() mySched.myFilename = syllabus.info.subject + "-" + str(syllabus.info.number) + "-" + term.semester + str(term.year) mySched.put() else: mySched = CalendarClass(parent = user.key) mySched.schedule.append('Date') mySched.schedule.append('Reading') mySched.schedule.append('Topic') mySched.workingCalendar = True mySched.put() else: savedCalendars = CalendarClass.query(ancestor=user.key).filter(CalendarClass.workingCalendar == False).fetch() queriedCalendars = [] for i in savedCalendars: queriedCalendars.append(i) if mySched: mySched.workingCalendar = False mySched.put() mySched = queriedCalendars[int(loadFileName)] mySched.workingCalendar = True mySched.put() if generateDates: message = "generateDates" try: startMonth = int(self.request.get("startMonth")) startDate = int(self.request.get("startDate")) startYear = int(self.request.get("startYear")) numWeeks = int(self.request.get("weeksThisSemester")) except: message = "invalid input" startMonth = mySched.startMonth startDate = mySched.startDate startYear = mySched.startYear numWeeks = mySched.numWeeks meetMonday = self.request.get('Monday') meetTuesday = self.request.get('Tuesday') meetWednesday = self.request.get('Wednesday') meetThursday = self.request.get('Thursday') meetFriday = self.request.get('Friday') meetSaturday = self.request.get('Saturday') meetSunday = self.request.get('Sunday') mySched.startMonth = startMonth mySched.startDate = startDate mySched.startYear = startYear mySched.numWeeks = numWeeks mySched.meetDays = [] if meetMonday: mySched.meetDays.append(0) if meetTuesday: mySched.meetDays.append(1) if meetWednesday: mySched.meetDays.append(2) if meetThursday: mySched.meetDays.append(3) if meetFriday: mySched.meetDays.append(4) if meetSaturday: mySched.meetDays.append(5) if meetSunday: mySched.meetDays.append(6) mySched.generateDates() mySched.put() if rowInsert: message = "insertRow" try: mySched.insertNewRowAfter(int(self.request.get("targetRowInsert"))) mySched.put() except: message = "invalidInput" if rowRemove: message = "removeRow" try: mySched.deleteRow(int(self.request.get("targetRowRemove"))) mySched.put() except: message = "invalidInput" if save: message = "saved" newFileName = self.request.get('fileName') if newFileName == mySched.myFilename: for i in range(len(mySched.schedule)): for j in range(3): mySched.setCell(j,i,self.request.get("r"+str(i)+"c"+str(j))) else: mySched.workingCalendar = False mySched.put() mySched = mySched.clone(user.key) for i in range(len(mySched.schedule)): for j in range(3): mySched.setCell(j,i,self.request.get("r"+str(i)+"c"+str(j))) mySched.myFilename = newFileName mySched.workingCalendar = True mySched.put() return self.redirect('/editcalendar')