def flush(): ndb.delete_multi(School.query().fetch(keys_only=True)) ndb.delete_multi(QuestionInstance.query().fetch(keys_only=True)) ndb.delete_multi(State_Questions.query().fetch(keys_only=True)) ndb.delete_multi(Topic_States.query().fetch(keys_only=True)) ndb.delete_multi(Question.query().fetch(keys_only=True)) ndb.delete_multi(State.query().fetch(keys_only=True)) ndb.delete_multi(Address.query().fetch(keys_only=True)) ndb.delete_multi(Teacher.query().fetch(keys_only=True)) ndb.delete_multi(Class.query().fetch(keys_only=True)) ndb.delete_multi(Assessment_Record.query().fetch(keys_only=True)) ndb.delete_multi(Student.query().fetch(keys_only=True)) ndb.delete_multi(UserInfo.query().fetch(keys_only=True)) ndb.delete _multi(Student_Assessments.query().fetch(keys_only=True)) ndb.delete_multi(Assessment.query().fetch(keys_only=True)) ndb.delete_multi(Subject.query().fetch(keys_only=True)) ndb.delete_multi(Topic_Questions.query().fetch(keys_only=True)) ndb.delete_multi(State_Questions.query().fetch(keys_only=True)) ndb.delete_multi(Topic_States.query().fetch(keys_only=True)) ndb.delete_multi(Subject_Topics.query().fetch(keys_only=True)) ndb.delete_multi(Student_Assessments.query().fetch(keys_only=True)) ndb.delete_multi(Topic.query().fetch(keys_only=True)) ndb.delete_multi(User.query().fetch(keys_only=True)) ndb.delete_multi(Assessment_Record.query().fetch(keys_only=True)) ndb.delete_multi(State_Types.query().fetch(keys_only=True))
def flush(): ndb.delete_multi(School.query().fetch(keys_only=True)) ndb.delete_multi(QuestionInstance.query().fetch(keys_only=True)) ndb.delete_multi(State_Questions.query().fetch(keys_only=True)) ndb.delete_multi(Topic_States.query().fetch(keys_only=True)) ndb.delete_multi(Question.query().fetch(keys_only=True)) ndb.delete_multi(State.query().fetch(keys_only=True)) ndb.delete_multi(Address.query().fetch(keys_only=True)) ndb.delete_multi(Teacher.query().fetch(keys_only=True)) ndb.delete_multi(Class.query().fetch(keys_only=True)) ndb.delete_multi(Assessment_Record.query().fetch(keys_only=True)) ndb.delete_multi(Student.query().fetch(keys_only=True)) ndb.delete_multi(UserInfo.query().fetch(keys_only=True)) ndb.delete_multi(Student_Assessments.query().fetch(keys_only=True)) ndb.delete_multi(Assessment.query().fetch(keys_only=True)) ndb.delete_multi(Subject.query().fetch(keys_only=True)) ndb.delete_multi(Topic_Questions.query().fetch(keys_only=True)) ndb.delete_multi(State_Questions.query().fetch(keys_only=True)) ndb.delete_multi(Topic_States.query().fetch(keys_only=True)) ndb.delete_multi(Subject_Topics.query().fetch(keys_only=True)) ndb.delete_multi(Student_Assessments.query().fetch(keys_only=True)) ndb.delete_multi(Topic.query().fetch(keys_only=True)) ndb.delete_multi(User.query().fetch(keys_only=True)) ndb.delete_multi(Assessment_Record.query().fetch(keys_only=True)) ndb.delete_multi(State_Types.query().fetch(keys_only=True))
def handleGetRequest(self): # get the recent 10 classes added to datastore q = Class.query(ancestor=CLASS_KEY) classes = q.order(-Class.created).fetch(20) # get the recent 10 class-categories added to datastore q = ClassCategory.query(ancestor=CLASS_CATEGORY_KEY) categories = q.order(-ClassCategory.created).fetch(20) self.addTemplateValue('classes', classes) self.addTemplateValue('categories', categories) self.setActivePage('Classes')
def testAttendAddFirstStudent(self): params = {'class_id': self.class_key.id(), 'student_id': self.student_key.id(), 'yes': 1, 'date': self.today_as_ordinal} response = self.testapp.get('/attend', params) self.assertEqual(response.status_int, 302) query = Class.query() results = query.fetch(2) self.assertEqual(1, len(results)) self.assertEqual('Test Class', results[0].name) attendance_key = ndb.Key('Class', self.class_key.id(), 'Attendance', self.today_as_ordinal) attendance = attendance_key.get() self.assertEqual(1, len(attendance.attending)) student_key = attendance.attending[0].student student = student_key.get() self.assertEqual('Joe', student.first_name) self.assertEqual('Smith', student.last_name)
def get(self): authz = Authorize() if not authz.authorize(): self.error(403) return query = Class.query() # Max classes that can be handled is 50 per school classes = query.fetch(50) for the_class in classes: the_class.id = the_class.key.id() school = namespace_manager.google_apps_namespace() if not school: school = 'Test school' template_values = { 'classes': classes, 'school': school, 'username': authz.get_name(), 'logout': users.create_logout_url("/") } path = os.path.join(os.path.dirname(__file__), 'templates/classes.html') self.response.out.write(template.render(path, template_values))
def get(self): # CLEAR All query = Department.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = House.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Class.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Student.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) user = users.get_current_user() if user and users.is_current_user_admin(): # Create houses houses = ['Gryffindor', 'Hufflepuff', 'Ravenclaw', 'Slytherin'] for house in houses: House(house_name=house).put() # Create departments deps = [ { 'code': 'CS', 'name': 'Computer Science' }, { 'code': 'BA', 'name': 'Business Administration' }, { 'code': 'PHY', 'name': 'Physics' }, { 'code': 'MAT', 'name': 'Mathematics' }, { 'code': 'DRA', 'name': 'Drama' }, { 'code': 'ECE', 'name': 'Electrical Engineering' }, ] for dep in deps: Department(id=dep['code'], dept_name=dep['name']).put() # Create 40 classes for department, update depts classes_count = 40 for dept in deps: department_key = ndb.Key('Department', dept['code']) department_obj = department_key.get() for i in range(classes_count): class_full_name = "%s - Class %d" % (dept['name'], i) department = department_key class_key = Class(id='%s-%d' % (dept['code'], i), class_full_name=class_full_name).put() department_obj.classes.append(class_key) department_obj.put() # Create students students_count = 1000 random.seed() all_classes = Class.query().fetch() all_houses = House.query().fetch() for i in range(students_count): house = random.choice(all_houses) house_key = house.key student_name = 'Student %d' % i student_year = random.randint(1, 4) current_classes = random.sample(all_classes, 5) current_classes_keys = [el.key for el in current_classes] all_classes_keys = [el.key for el in all_classes] leftovers = set(all_classes_keys) - set(current_classes_keys) completed_classes_keys = random.sample(leftovers, 6 * (student_year - 1)) student_key = Student(student_name=student_name, student_year=student_year, current_classes=current_classes_keys, completed_classes=completed_classes_keys, house=house_key).put() house.students.append(student_key) for el in current_classes: el.students_enrolled.append(student_key) # save new status of houses and current classes for house in all_houses: house.put() for current_class in all_classes: current_class.put() elif user and not users.is_current_user_admin(): self.redirect(users.create_logout_url('/create_entries')) else: self.redirect(users.create_login_url('/create_entries'))
def get(self): # CLEAR All query = Department.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = House.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Class.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Student.query() entries = query.fetch() entry_keys = [entry.key for entry in entries] ndb.delete_multi(entry_keys) user = users.get_current_user() if user and users.is_current_user_admin(): # Create houses houses = ["Gryffindor", "Hufflepuff", "Ravenclaw", "Slytherin"] for house in houses: House(house_name=house).put() # Create departments deps = [ {"code": "CS", "name": "Computer Science"}, {"code": "BA", "name": "Business Administration"}, {"code": "PHY", "name": "Physics"}, {"code": "MAT", "name": "Mathematics"}, {"code": "DRA", "name": "Drama"}, {"code": "ECE", "name": "Electrical Engineering"}, ] for dep in deps: Department(id=dep["code"], dept_name=dep["name"]).put() # Create 40 classes for department, update depts classes_count = 40 for dept in deps: department_key = ndb.Key("Department", dept["code"]) department_obj = department_key.get() for i in range(classes_count): class_full_name = "%s - Class %d" % (dept["name"], i) department = department_key class_key = Class(id="%s-%d" % (dept["code"], i), class_full_name=class_full_name).put() department_obj.classes.append(class_key) department_obj.put() # Create students students_count = 1000 random.seed() all_classes = Class.query().fetch() all_houses = House.query().fetch() for i in range(students_count): house = random.choice(all_houses) house_key = house.key student_name = "Student %d" % i student_year = random.randint(1, 4) current_classes = random.sample(all_classes, 5) current_classes_keys = [el.key for el in current_classes] all_classes_keys = [el.key for el in all_classes] leftovers = set(all_classes_keys) - set(current_classes_keys) completed_classes_keys = random.sample(leftovers, 6 * (student_year - 1)) student_key = Student( student_name=student_name, student_year=student_year, current_classes=current_classes_keys, completed_classes=completed_classes_keys, house=house_key, ).put() house.students.append(student_key) for el in current_classes: el.students_enrolled.append(student_key) # save new status of houses and current classes for house in all_houses: house.put() for current_class in all_classes: current_class.put() elif user and not users.is_current_user_admin(): self.redirect(users.create_logout_url("/create_entries")) else: self.redirect(users.create_login_url("/create_entries"))
def get(self): # CLEAR All query = Department.query() entries =query.fetch() entry_keys =[entry.key for entry in entries] ndb.delete_multi(entry_keys) query = House.query() entries =query.fetch() entry_keys =[entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Class.query() entries =query.fetch() entry_keys =[entry.key for entry in entries] ndb.delete_multi(entry_keys) query = Student.query() entries =query.fetch() entry_keys =[entry.key for entry in entries] ndb.delete_multi(entry_keys) user = users.get_current_user() if user and users.is_current_user_admin(): # Create houses houses = ['Gryffindor', 'Hufflepuff', 'Ravenclaw', 'Slytherin'] for house in houses: House(house_name=house).put() # Create departments deps = [ {'code': 'CS', 'name': 'Computer Science'}, {'code': 'BA', 'name': 'Business Administration'}, {'code': 'PHY', 'name': 'Physics'}, {'code': 'MAT', 'name': 'Mathematics'}, {'code': 'DRA', 'name': 'Drama'}, {'code': 'ECE', 'name': 'Electrical Engineering'}, ] for dep in deps: Department(id = dep['code'], dept_name = dep['name']).put() # Create 40 classes for department, update depts classes_count = 40 for dept in deps: department_key = ndb.Key('Department', dept['code']) department_obj = department_key.get() for i in range(classes_count): class_full_name = "%s - Class %d" % (dept['name'] ,i) class_key = Class(id='%s-%d'%(dept['code'], i), class_full_name = class_full_name, department = department_key).put() department_obj.classes.append(class_key) department_obj.put() # Create students students_count = 1000 random.seed() all_classes = Class.query().fetch() all_houses = House.query().fetch() for i in range(students_count): house = random.choice(all_houses) house_key = house.key student_name = 'Student %d'% i student_year = random.randint(1,4) current_classes = random.sample(all_classes, 5) current_classes_keys = [el.key for el in current_classes] all_classes_keys = [el.key for el in all_classes] leftovers = set(all_classes_keys) - set(current_classes_keys) completed_classes_keys = random.sample(leftovers, 6*(student_year-1)) student_key = Student( student_name = student_name, student_year = student_year, current_classes = current_classes_keys, completed_classes = completed_classes_keys, house = house_key).put() house.students.append(student_key) for el in current_classes: el.students_enrolled.append(student_key) # save new status of houses and current classes for house in all_houses: house.put() for current_class in all_classes: current_class.put() elif user and not users.is_current_user_admin(): self.redirect(users.create_logout_url('/create_entries')) else: self.redirect(users.create_login_url('/create_entries'))
def get_class(class_name): qry = Class.query().filter(Class.name == class_name) return qry.fetch(1)