def get(self, urlsafe_key=None): if urlsafe_key: ndb_key = ndb.Key(urlsafe=urlsafe_key) if ndb_key.kind() != "HousingApplication": self.abort(404, "Invalid key") self.template_vars['user_email'] = self.current_user.email() self.template_vars['applicant_name'] = ndb_key.get().FullName self.template_vars['noteForm'] = self.generate_form(HousingApplicationNote_Form) else: query = HousingApplication.query() query = query.filter(HousingApplication.Archived == False) query = query.filter(HousingApplication.SemesterToBeginIndex >= get_current_semester_index()) mens_applicants = [] womens_applicants = [] for housing_application in query: data = (housing_application.FullName.title(), housing_application.key.urlsafe()) if housing_application.House == "Men's Christian Campus House": mens_applicants.append(data) else: womens_applicants.append(data) self.template_vars['mens_applicants'] = sorted(mens_applicants, key=lambda x: x[0]) self.template_vars['womens_applicants'] = sorted(womens_applicants, key=lambda x: x[0]) self.render_template("housing/application_comments.html")
def get(self, urlsafe_key=None): if urlsafe_key: ndb_key = ndb.Key(urlsafe=urlsafe_key) if ndb_key.kind() != "HousingApplication": self.abort(404, "Invalid key") self.template_vars['user_email'] = self.current_user.email() self.template_vars['applicant_name'] = ndb_key.get().FullName self.template_vars['noteForm'] = self.generate_form( HousingApplicationNote_Form) else: query = HousingApplication.query() query = query.filter(HousingApplication.Archived == False) query = query.filter(HousingApplication.SemesterToBeginIndex >= get_current_semester_index()) mens_applicants = [] womens_applicants = [] for housing_application in query: data = (housing_application.FullName.title(), housing_application.key.urlsafe()) if housing_application.House == "Men's Christian Campus House": mens_applicants.append(data) else: womens_applicants.append(data) self.template_vars['mens_applicants'] = sorted(mens_applicants, key=lambda x: x[0]) self.template_vars['womens_applicants'] = sorted( womens_applicants, key=lambda x: x[0]) self.render_template("housing/application_comments.html")
def _build_ndb_query(self): filterFormQuery = HousingApplication.query() houses = True if self.DisplayCchHouse.data and not self.DisplayWcchHouse.data: filterFormQuery = filterFormQuery.filter(HousingApplication.House == "Men's Christian Campus House") elif self.DisplayWcchHouse.data and not self.DisplayCchHouse.data: filterFormQuery = filterFormQuery.filter(HousingApplication.House == "Women's Christian Campus House") elif not self.DisplayCchHouse.data and not self.DisplayWcchHouse.data: houses = False semesters = [] if not self.ShowAllSemesters.data: current_semester_index = get_current_semester_index() # simplifies 4 if statements into a single for loop for semester_num in (0, 1, 2, 3, 4, 5, 11, 12): if getattr(self, "Semester{}".format(semester_num)).data: if semester_num < 5: semesters.append(current_semester_index + semester_num) elif semester_num == 5: semesters.append(current_semester_index) elif semester_num == 11: semesters.append(current_semester_index - 1) elif semester_num == 12: semesters.append(current_semester_index - 2) filterFormQuery = filterFormQuery.filter(HousingApplication.SemesterToBeginIndex.IN(semesters)) if not self.IncludeArchived.data: filterFormQuery = filterFormQuery.filter(HousingApplication.Archived == False) if self.SortBy.data[0] == '-': reverse = True prop_name = self.SortBy.data[1:] else: reverse = False prop_name = self.SortBy.data if (self.SortBy.data == "LastName"): prop = getattr(HousingApplication, "FirstName") else: prop = getattr(HousingApplication, prop_name) if reverse: filterFormQuery = filterFormQuery.order(-prop) else: filterFormQuery = filterFormQuery.order(prop) self._ndb_query = filterFormQuery self._can_have_results = houses and (semesters or self.ShowAllSemesters.data)
def _build_ndb_query(self): filterFormQuery = HousingApplication.query() houses = True if self.DisplayCchHouse.data and not self.DisplayWcchHouse.data: filterFormQuery = filterFormQuery.filter( HousingApplication.House == "Men's Christian Campus House") elif self.DisplayWcchHouse.data and not self.DisplayCchHouse.data: filterFormQuery = filterFormQuery.filter( HousingApplication.House == "Women's Christian Campus House") elif not self.DisplayCchHouse.data and not self.DisplayWcchHouse.data: houses = False semesters = [] if not self.ShowAllSemesters.data: current_semester_index = get_current_semester_index() # simplifies 4 if statements into a single for loop for semester_num in (1, 2, 3, 4): if getattr(self, "Semester{}".format(semester_num)).data: semesters.append(current_semester_index + semester_num) filterFormQuery = filterFormQuery.filter( HousingApplication.SemesterToBeginIndex.IN(semesters)) if not self.IncludeArchived.data: filterFormQuery = filterFormQuery.filter( HousingApplication.Archived == False) if self.SortBy.data[0] == '-': reverse = True prop_name = self.SortBy.data[1:] else: reverse = False prop_name = self.SortBy.data prop = getattr(HousingApplication, prop_name) if reverse: filterFormQuery = filterFormQuery.order(-prop) else: filterFormQuery = filterFormQuery.order(prop) self._ndb_query = filterFormQuery self._can_have_results = houses and (semesters or self.ShowAllSemesters.data)
def get(self): time_delay = datetime.timedelta(days=self.settings.HousingApplication_ReminderEmailDelayDays) time_offset = datetime.datetime.utcnow() - time_delay unacknowledged_apps = HousingApplication.query( HousingApplication.Stage == 0, HousingApplication.TimeSubmitted < time_offset ).fetch(20) message_html = self.generate_html(unacknowledged_apps) self.response.out.write(message_html) if len(unacknowledged_apps) > 0: message = EmailMessage() message.sender = "CCF Housing Application Reminder <*****@*****.**>" message.to = [self.settings.HousingApplicationCch_CompletionEmail, self.settings.HousingApplicationWcch_CompletionEmail] message.subject = "CCF Housing Application Reminder ({date})".format( date=datetime.datetime.now(tz=Central).strftime('%b-%d-%Y'), ) message.html = message_html message.send()
def get(self): time_delay = datetime.timedelta( days=self.settings.HousingApplication_ReminderEmailDelayDays) time_offset = datetime.datetime.utcnow() - time_delay unacknowledged_apps = HousingApplication.query( HousingApplication.Stage == 0, HousingApplication.TimeSubmitted < time_offset).fetch(20) message_html = self.generate_html(unacknowledged_apps) self.response.out.write(message_html) if len(unacknowledged_apps) > 0: message = EmailMessage() message.sender = "CCF Housing Application Reminder <*****@*****.**>" message.to = [ self.settings.HousingApplicationCch_CompletionEmail, self.settings.HousingApplicationWcch_CompletionEmail ] message.subject = "CCF Housing Application Reminder ({date})".format( date=datetime.datetime.now(tz=Central).strftime('%b-%d-%Y'), ) message.html = message_html message.send()