def get(self,slug): cookie = self.request.cookies.get('CookieProtocolServices') if cookie: session = ndb.Key(urlsafe=str(cookie)).get() user = session.key.parent().get() page = Page.query(Page.slug == slug).get() assignments = Assignment.query( Assignment.active == True, Assignment.user == user.key, Assignment.completed == False).order( -Assignment.when).fetch(10) if page: #TODO: Manage subscriptions template = JINJA_ENVIRONMENT.get_template('app.html') self.response.write(template.render( {'auth': True, 'page': page, 'user': user, 'homepage': user.subscription.get().startpage, 'assignments': assignments, 'text': process_text(page.text)})) else: template = JINJA_ENVIRONMENT.get_template('404.html') self.response.write(template.render({})) else: self.redirect('/login')
def delete_assign_by_number(quarter,year,number): assgn = Assignment.query( Assignment.quarter == quarter, Assignment.year == year, Assignment.number == number, ).get() assgn.key.delete()
def get_assignments(user): """ Gets all of the assignments for this user and makes a key map for them. """ assignments = Assignment.query(ancestor=get_parent_key(user)).order(Assignment.name).fetch() assignments_map = {} for assignment in assignments: assignments_map[assignment.key] = assignment return assignments, assignments_map
def post(self): if bool(self.request.get('choice')): ndb.delete_multi(Student.query().fetch(keys_only=True)) ndb.delete_multi(Assignment.query().fetch(keys_only=True)) ndb.delete_multi(Setting.query().fetch(keys_only=True)) self.redirect('/admin')
def get(self): user, logout = check_user(users.get_current_user()) if user: if self.request.get('id'): t = ndb.Key(urlsafe=self.request.get('id')).get() u = t.to_dict() t.revised = True t.put() else: cursor = None u = [] more = True while more: d, curs, more = Assignment.query( Assignment.active == True).order( -Assignment.when).fetch_page( 100, start_cursor=cursor) for ditem in d: u.append(ditem.to_dict()) self.response.out.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps({'data':u}))
def get_assign_n(quarter, year, n): assigns = Assignment.query( Assignment.quarter == quarter, Assignment.year == year, ).order(Assignment.number).fetch() try: return assigns[n] except IndexError: return None
def get_active_assign_with_earliest_eval_due_date(quarter, year): evals_after_now = Assignment.query( Assignment.quarter == quarter, Assignment.year == year, Assignment.eval_date > dt.now() - td(hours=7) ).order(Assignment.eval_date).fetch() if len(evals_after_now) > 0: return evals_after_now[0] else: return None
def get_active_assign_with_latest_fade_in_date(quarter, year): assigns_after_now = Assignment.query( Assignment.quarter == quarter, Assignment.year == year, Assignment.fade_in_date < dt.now() - td(hours=7) ).order(Assignment.fade_in_date).fetch() try: return assigns_after_now[-1] except IndexError: return None
def get(self): cookie = self.request.cookies.get('CookieProtocolServices') admin, logout = check_user(users.get_current_user()) if cookie: session = ndb.Key(urlsafe=str(cookie)).get() user = session.key.parent().get() assignments = Assignment.query( Assignment.active == True, Assignment.user == user.key, Assignment.completed == False).order( -Assignment.when).fetch(10) template = JINJA_ENVIRONMENT.get_template('user.html') self.response.write(template.render( {'auth': False, 'user': user.to_dict(), 'assignments': assignments})) elif admin: user = ndb.Key(urlsafe=self.request.get('id')).get() assignments = Assignment.query( Assignment.user == user.key, Assignment.completed == False).order( -Assignment.when).fetch(10) template = JINJA_ENVIRONMENT.get_template('user.html') self.response.write(template.render( {'auth': True, 'user': user.to_dict(), 'assignments': assignments})) else: self.redirect('/login?to={}'.format(slug))
def get_inactive_assigns(quarter, year): all_assigns = Assignment.query( Assignment.quarter == quarter, Assignment.year == year ).order(Assignment.fade_in_date).fetch() to_return = [] for i in range(len(all_assigns) - 1, -1, -1): if all_assigns[i].fade_out_date < dt.now() - td(hours=7) or all_assigns[i].fade_in_date > dt.now() - td(hours=7): to_return.append(all_assigns[i]) return to_return
def get_active_eval_assigns(quarter, year): assigns_before_now = Assignment.query( Assignment.quarter == quarter, Assignment.year == year, Assignment.eval_date > dt.now() - td(hours=7) ).order(Assignment.eval_date).fetch() to_return = [] for i in range(len(assigns_before_now)): if assigns_before_now[i].eval_open_date < dt.now() - td(hours=7): to_return.append(assigns_before_now[i]) return to_return
def get(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) else: assignments_with_grades = []; assignment_query = Assignment.query().order(Assignment.assignment_name).filter(Assignment.owner_email == user.email().lower()) for an_assignment in assignment_query: grade_entry_query = GradeEntry.query().order(GradeEntry.student_name).filter(GradeEntry.owner_email == user.email().lower()).filter(GradeEntry.assignment_id == an_assignment.id) assignments_with_grades.append({'assignment_name': an_assignment.assignment_name, 'grade_entries': grade_entry_query}) self.response.out.write(template.render('templates/graderecorder.html', {'assignments_with_grades': assignments_with_grades, 'assignments': assignment_query, 'use_hardcoded_roster': True, 'user_email': user.email(), 'logout_link': users.create_logout_url("/")}))
def get(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) else: grades = []; assignment_query = Assignment.query().order(Assignment.assignment_name).filter(Assignment.owner == user) for an_assignment in assignment_query: assignment_dict = {'assignment_name': an_assignment.assignment_name} grade_entries = [] grade_entry_query = GradeEntry.query().order(GradeEntry.student_name).filter(GradeEntry.owner == user).filter(GradeEntry.assignment_id == an_assignment.id) for a_grade_entry in grade_entry_query: self.add_team_individuals(a_grade_entry, grade_entries) # grade_entries.append(a_grade_entry) assignment_dict['grade_entries'] = sorted(grade_entries, key=operator.attrgetter('student_name')) grades.append(assignment_dict) self.response.out.write(template.render('templates/graderecorder.html', {'grades': grades, 'assignments': assignment_query, 'use_hardcoded_roster': True, 'user_email': user.email(), 'logout_link': users.create_logout_url("/")}))
def assignment_list(self, query): """ List all the assignments owned by the given user """ user = endpoints.get_current_user() assignments = Assignment.query(ancestor=main.get_parent_key(user)).order(Assignment.name) return assignments
from datetime import datetime, timedelta import logging from models import Exam, Assignment from FCM import sendNotification from apiMethods import createNotification logging.basicConfig(level=logging.DEBUG) LOG = logging.getLogger(__name__) date = (datetime.now() + timedelta(days=7)) date = date.strftime('%d-%m-%Y') LOG.info(date) examList = Exam.query(Exam.dueDate == date).fetch() LOG.info(str(examList)) assignmentList = Assignment.query(Assignment.dueDate == date).fetch() for exam in examList: LOG.info(str(exam)) sendNotification(exam.courseId.urlsafe(), exam.key.urlsafe(), 'exam', 'Warning!!! Exam ahead', 'There is a exam next week') course = exam.courseId.get() title = course.courseName notificationText = 'There is a exam next week' createNotification(course.studentIds, title, notificationText, 'exam', exam.key.urlsafe(), course.key.urlsafe()) for assignment in assignmentList: LOG.info(str(assignment)) sendNotification(assignment.courseId.urlsafe(),
def get_assign_by_number(quarter, year, number): return Assignment.query( Assignment.quarter == quarter, Assignment.year == year, Assignment.number == number, ).get()
def get_all_assign(quarter, year): return Assignment.query( Assignment.quarter == quarter, Assignment.year == year ).order(Assignment.number).fetch()
def get_assigns_for_quarter(quarter, year): return Assignment.query( Assignment.quarter == quarter, Assignment.year == year, )