Пример #1
0
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))
Пример #2
0
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))
Пример #3
0
def GetBoolTeacher(student):
    notes = Teacher.query(Teacher.formBool, ancestor=root_parent()).fetch()
    if notes:
        # We found a note, return it.
        return True
    else:
        # We didn't find a note, return None
        return False
Пример #4
0
def GetCodeTeacher(student):
    '''Queries datastore to get the current value of the note associated with this user.'''
    notes = Teacher.query(Teacher.code == student.code, ancestor=root_parent()).fetch()
    if len(notes) > 0:
        # We found a note, return it.
        return notes[0].code
    else:
        # We didn't find a note, return None
        return None
Пример #5
0
def schedule_add_controller():
    #this is the controller to add new model entries
    students = Student.query().fetch(1000)
    teachers = Teacher.query().fetch(1000)
    subjects = Subject.query().fetch(1000)
    return render_template('schedule_add.html',
                           title="Add New Entry",
                           students=students,
                           teachers=teachers,
                           subjects=subjects)
Пример #6
0
def generatestates(userbuffer, topickey, schoolkey):
    logging.error("entered g")
    statesgen = []
    numoftype = userbuffer.typeCache.getlength()
    for questiontype in range(0, numoftype):
        surmiselist = userbuffer.surmiseRelation.getstates(questiontype)
        for surmisestate in surmiselist:
            tobeaddedlist = []
            tobeaddedlist.append(surmisestate)
            for state in statesgen:
                tobeaddedlist.append(surmisestate.union(state))
            for stateadd in tobeaddedlist:
                if stateadd not in statesgen:
                    statesgen.append(stateadd)
    stateall = set()
    num = numoftype - 1
    while num >= 0:
        stateall.add(num)
        logging.error(userbuffer.typeCache.gettype(num))
        num -= 1
    logging.error(stateall)
    if stateall not in statesgen:
        statesgen.append(stateall)
        tobeaddedlist = []
    queryreadydict = {}
    statenum = 0
    for stateset in statesgen:
        templist = []
        for items in stateset:
            templist.append(userbuffer.typeCache.gettypekey(items))
        queryreadydict[statenum] = templist
        statenum += 1
    session = get_current_session()
    logging.error(queryreadydict)
    #user_name = User.query((User.username == 'Vijay_Mehta')).get()
    teacher = Teacher.query(Teacher.username == 'Vijay_Mehta',
                            ancestor=schoolkey).get()
    logging.info('@@@@@@@@@@@@@@@@@@@@@@' + str(teacher))
    #Query.map_state_to_questions_dummy(queryreadydict,session['schoolkey'])
    Query.map_state_to_questions(topickey, queryreadydict, schoolkey)
    count = topickey.get().assessment_count
    count += 1
    class_v = (teacher.classes_under_teacher)[0]
    #teacher=UserInfo.query()
    assessment1 = Query.addAssessment(name="Know Your Numbers : " + str(count),
                                      list_topic_key=[topickey, topickey],
                                      school_key=schoolkey,
                                      date=datetime.datetime.now(),
                                      due_date=datetime.datetime(
                                          int(2014), int(11), int(12), int(23),
                                          int(12), int(8)),
                                      published=True,
                                      teacher_key=teacher.key,
                                      class_key=class_v)
    a = Query.get_states_of_topic(topickey)
Пример #7
0
	def get(self):
		qo = ndb.QueryOptions(keys_only=True)
		query = Student.query()
		ndb.delete_multi(query.fetch(1000, options=qo))

		query = Teacher.query()
		for t in query:
			t.currentMilestone = None
			t.put()

		self.redirect('/milestones')
Пример #8
0
def teacher_controller(id):
	name = request.values.get('name')
	email = request.values.get('email')

	if id:
		teacher = Teacher.query(Teacher.id==id).get()
		if teacher:
			if request.method == 'GET':
				if request.values.get('json'):
					return json.dumps(dict(teacher=teacher.json))
				return render_template('teacher_view.html',teacher = teacher, title = "Teacher List")
			elif request.method == 'PUT':
				teacher = edit_parser(teacher,request)
				teacher.put()
				return 'Value Updated', 204
			elif request.method == 'DELETE':
				teacher.key.delete()
				return 'Item deleted', 204
			else:
				return 'Method Not Allowed'
	else:
		if request.method == 'GET':
			teacher_list = Teacher.query().fetch(1000)
			entries=None
			if teacher_list:
				entries = [teacher.dto() for teacher in teacher_list]
			if request.values.get('json'):
				return json.dumps(dict(teacher=entries))
			return render_template('teacher.html',teacher_entries = entries, title = "Teacher List")
		elif request.method == 'POST':
			teacher = Teacher()
			teacher = new_parser(teacher,request)
			teacher.put()
			url = '/teacher/'
			if request.values.get('json'):
				url = '/teacher/json=true'
			return redirect(url)
		else:
			return abort(405)
Пример #9
0
def login():
    error = None
    if request.method == 'POST':
        t = Teacher.query(Teacher.email == request.form['email'], 
            Teacher.password == request.form['password']).fetch(1)
        if len(t) == 0:
            flash('Email/PW combo not found')
        else:
            name = t[0].first_name
            email = t[0].email
            session['logged_in'] = True
            session['name'] = name
            session['email'] = email
            flash('You are logged in. Go Crazy.')
            return redirect(url_for('list_tests'))
    return render_template('login.html', form = LoginForm(), error = error)
Пример #10
0
def login():
    error = None
    if request.method == 'POST':
        t = Teacher.query(
            Teacher.email == request.form['email'],
            Teacher.password == request.form['password']).fetch(1)
        if len(t) == 0:
            flash('Email/PW combo not found')
        else:
            name = t[0].first_name
            email = t[0].email
            session['logged_in'] = True
            session['name'] = name
            session['email'] = email
            flash('You are logged in. Go Crazy.')
            return redirect(url_for('list_tests'))
    return render_template('login.html', form=LoginForm(), error=error)
Пример #11
0
def generatestates(userbuffer,topickey,schoolkey):
    logging.error("entered g")
    statesgen =[]
    numoftype = userbuffer.typeCache.getlength()
    for questiontype in range(0,numoftype):
        surmiselist = userbuffer.surmiseRelation.getstates(questiontype)
        for surmisestate in surmiselist:
            tobeaddedlist =[]
            tobeaddedlist.append(surmisestate)
            for state in statesgen:
                tobeaddedlist.append(surmisestate.union(state))
            for stateadd in tobeaddedlist:
                if stateadd not in statesgen:
                 statesgen.append(stateadd)
    stateall = set()
    num = numoftype-1
    while num >= 0:
        stateall.add(num)
        logging.error(userbuffer.typeCache.gettype(num))
        num-=1
    logging.error(stateall)
    if stateall not in statesgen:
        statesgen.append(stateall)
        tobeaddedlist=[]
    queryreadydict = {}
    statenum =0
    for stateset in statesgen:
        templist = []
        for items in stateset:
            templist.append(userbuffer.typeCache.gettypekey(items))
        queryreadydict[statenum]=templist
        statenum+=1
    session = get_current_session()
    logging.error(queryreadydict)
    #user_name = User.query((User.username == 'Vijay_Mehta')).get()
    teacher = Teacher.query(Teacher.username == 'Vijay_Mehta',ancestor=schoolkey).get()
    logging.info('@@@@@@@@@@@@@@@@@@@@@@'+str(teacher))
    #Query.map_state_to_questions_dummy(queryreadydict,session['schoolkey'])
    Query.map_state_to_questions(topickey,queryreadydict,schoolkey)
    count=topickey.get().assessment_count
    count+=1
    class_v=(teacher.classes_under_teacher)[0]
    #teacher=UserInfo.query()
    assessment1=Query.addAssessment(name="Know Your Numbers : "+str(count),list_topic_key=[topickey,topickey],school_key=schoolkey,date=datetime.datetime.now(),due_date=datetime.datetime(int(2014),int(11),int(12),int(23),int(12),int(8)),published=True,teacher_key=teacher.key,class_key=class_v)
    a=Query.get_states_of_topic(topickey)
Пример #12
0
def fetch_my_teacher(id):
	student = Student.query(Student.id == id).get()
	teacher_list = []
	schedules = student.get_schedule()
	for schedule in schedules:
		teacher = schedule.get_teacher()
		if teacher.dto() not in teacher_list:
			teacher_list.append(teacher.dto())
	other_list = []
	teachers = Teacher.query().fetch(1000)
	for teacher in teachers:
		if teacher.dto() not in teacher_list:
			other_list.append(teacher.dto())
	teacher_list = multikeysort(teacher_list, ['name'])
	teacher_list = add_sort_order(teacher_list)
	other_list = multikeysort(other_list, ['name'])
	other_list = add_sort_order(other_list)
	return json.dumps(dict(my_teacher=teacher_list,other_teachers=other_list))
Пример #13
0
	def get(self):
		data = [t.name for t in Teacher.query()]
		data = sorted(data, reverse=True)
		self.response.out.write(json.dumps(data))
Пример #14
0
    def get(self):
        # a list of teachers that have completed their milestone objective
        teacherList = []

        # get a list of all teachers
        allTeachers = Teacher.query()

        # iterate through all teachers
        for teacher in allTeachers:
            # get the current milestone for the teacher
            if not teacher.currentMilestone:
                currentMilestone = Milestone.query().order(Milestone.goalMiles).get()
                teacher.currentMilestone = currentMilestone.key
                teacher.put()
            else:
                currentMilestone = teacher.currentMilestone.get()
            
            # if the totalClassMiles of a teacher is >= its current milestone goal:
            if teacher.totalClassMiles >= currentMilestone.goalMiles:
                # add the teacher to the list
                teacherList.append((teacher.name, currentMilestone.city_name))

                # find the next milestone and assign it to the teacher
                nextMilestone = Milestone.query(Milestone.goalMiles > int(teacher.totalClassMiles)).order(Milestone.goalMiles).get()

                # check if there is a milestone
                if nextMilestone:
                    teacher.currentMilestone = nextMilestone.key
                    teacher.put()

        # if the teacherList is not empty
        if teacherList:
            # create an email to send to the teacher with the names of the teacher
            rowTemplate = Template("""
                <tr>
                    <td>$teacher</td>
                    <td>$milestone</td>
                </tr>
            """)


            body = """
            <html><body>
                <center><h2>Milestone Reached!</h2></center>
                The following teachers have reached their milestones:<br>
                <table width='30%' border='1'>
                    <tr>
                        <th>Teacher Name</th>
                        <th>Milestone</th>
                    </tr>
            """

            # for every teacher name that has passed their milestone
            for t, m in teacherList:
                body = body + rowTemplate.substitute(teacher=t, milestone=m)

            body = body + """
                </table>
            </body></html>
            """

            subject = 'A Milestone Has Been Reached! ' + str(date.today())
            app_id = app_identity.get_application_id()
            mail.send_mail_to_admins("support@"+app_id+".appspotmail.com", subject, body, html=body)
Пример #15
0
    def get(self):
        try:
            # template variable
            temp = Template("""
                <tr>
                    <td> $teacher </td>
                    <td> $city </td>
                    <td> $progress </td>
                </tr>
                """)

            subject = 'Weekly Milestone Progress Report: ' + str(date.today())
            
            body = """
            <html>
                <body>
                    <center><h2>WEEKLY PROGRESS REPORT</h2></center>
                    <table style="width:75%">
                        <tr>
                            <td><b>Teacher Name</b></td>
                            <td><b>Current Milestone</b></td>
                            <td><b>Miles To Go To Reach Milestone</b></td>
                        </tr>
            """

            # get all of the teacher from the database
            teachers = Teacher.query()

            # iterate through list of teachers
            for result in teachers:
                # get the current teacher's total miles
                miles = result.totalClassMiles

                # get the current teacher's current milestone

                current_milestone = (result.currentMilestone).get()

                # get the progress
                miles_left = current_milestone.goalMiles - miles

                # add to the body of the email
                body = body + temp.substitute(
                    teacher=result.name, 
                    city=current_milestone.city_name, 
                    progress=miles_left)


            # finish the body
            body = body + """
                    </table>
                </body>
            </html>
            """

            # set the body as the email message html and send
            app_id = app_identity.get_application_id()
            mail.send_mail_to_admins("support@"+app_id+".appspotmail.com", subject, body, html=body)

        except Exception as message:
            # Log the error.
            logging.error(message)
            raise message
Пример #16
0
def teacher_edit_controller(id):
	#this is the controller to edit model entries
	teacher_item = Teacher.query(Teacher.id==id).get()
	return render_template('teacher_edit.html', teacher_item = teacher_item, title = "Edit Entries")
Пример #17
0
	def get_teacher(self):
		from models import Teacher
		teacher = Teacher.query(Teacher.id==self.teacher_id).get()
		return teacher if teacher else None
Пример #18
0
def schedule_add_controller():
	#this is the controller to add new model entries
	students = Student.query().fetch(1000)
	teachers = Teacher.query().fetch(1000)
	subjects = Subject.query().fetch(1000)
	return render_template('schedule_add.html', title = "Add New Entry", students=students, teachers=teachers, subjects=subjects)
Пример #19
0
 def get_teacher(self):
     from models import Teacher
     teacher = Teacher.query(Teacher.id == self.teacher_id).get()
     return teacher if teacher else None