Exemplo n.º 1
0
 def get(self):
     teacher = self.get_current_teacher()
     if not teacher:
         self.redirect('/')
         return
         
     class_key = db.Key(encoded=self.request.get('class'))
     clss = Class.get(class_key)
     students = get_class_students(clss)
     courses = get_courses(clss)
     
     # add course progress to each student
     for stu in students:
         prog = []
         for c in courses:
             s = '{:.2%}'.format(c.get_progress(stu))
             prog.append( s )
         stu.progress = prog 
     
     #raise Exception('stu:'+str(len(clss)))
     template_values = {'students': students,
                        'clss': clss,
                        'qlists': get_question_list(clss),
                        'courses': courses
                        }
     write_template(self, teacher, 'teacher_class.html', template_values)
Exemplo n.º 2
0
 def get(self):
     user = self.get_current_student()
     if not user:
         self.redirect('/')
         return
         
     key = db.Key(encoded=self.request.get('course'))
     course = Course.get(key)
     chapters = []
     chapter_keys = []
     for q in course.chapters:
         chapter = Chapter.get(q)
         if chapter:
             chapters.append(chapter)
             chapter_keys.append(str(chapter.key()))
     
     goto = self.request.get("goto")
     if goto == None or goto == '':
         goto = '/'
     
     template_values = {'course': course,
                        'chapters': chapters,
                        'chapter_keys': chapter_keys,
                        'goto': goto,
                        }
     write_template(self, user, 'student_course.html', template_values)
Exemplo n.º 3
0
    def get(self):

        user = self.get_current_user()
        if not user:
            self.redirect('/')
            return
        
        encoded_chapter_key = self.request.get('chapter')
        chapter, encoded_chapter_key = get_chapter_by_encoded_key(encoded_chapter_key)

        questions = list_questions(chapter)
        for q in questions:
            if q.refresh:
                text = q.text
                set_question_text(chapter, q, text, True)
            q.formatted_text = mymarkdown(q.text)
        
        has_questions = len(questions) > 0
        has_text = chapter.text and len(chapter.text) > 0
        template_values = {
                           'questions' : questions,
                           'has_questions' : has_questions,
                           'has_text': has_text,
                           }
        add_chapter_values(template_values, chapter)
        template_values['title'] = 'Edit chapter ' + chapter.title
        
        write_template(self, user, 'chapter_edit.html',template_values)
Exemplo n.º 4
0
 def get(self):
     teacher = self.get_current_teacher()
     if not teacher:
         self.redirect('/')
         return
         
     template_values = {'classes': get_teacher_classes(teacher)}
     write_template(self, teacher, 'teacher_start.html', template_values)
Exemplo n.º 5
0
 def get(self):
     admin = self.get_current_admin()
     if not admin:
         self.redirect('/')
         return
         
     query = MyUser.all().filter('roles = ', 'teacher')
     teachers = query.fetch(1000)
     template_values = {'teachers':teachers}
     write_template(self, admin, 'admin_start.html', template_values)
     
Exemplo n.º 6
0
 def get(self):
     teacher = self.get_current_teacher()
     if not teacher:
         self.redirect('/')
         return
         
     class_key = db.Key(encoded=self.request.get('class'))
     clss = Class.get(class_key)
     students = get_class_students(clss)
     
     template_values = {'students': students,
                        'clss': clss,
                        }
     write_template(self, teacher, 'teacher_class_edit.html', template_values)
Exemplo n.º 7
0
 def get(self):
     student = self.get_current_student()
     if not student:
         self.redirect('/')
         return
     
     classes = get_student_classes(student)
     
     if len(classes) == 1:
         self.redirect('/studentselectclass?class='+str(classes[0].key()))
         
     template_values = {
                        'classes': classes,
                        }
     write_template(self, student, 'student_start.html',template_values)
Exemplo n.º 8
0
    def get(self):
        user = self.get_current_user()
        if not user:
            self.redirect('/')
            return
        
        chapter = db.get( self.request.get('chapter') )
            
        query = db.Query(Image).filter('chapter =',chapter)
        images = query.fetch(1000)
        not_empty = len(images) > 0

        template_values = {'images': images,
                           'not_empty': not_empty,
                           'chapter': chapter,
                           }
        write_template(self, user, 'image_list.html', template_values)
Exemplo n.º 9
0
 def get(self):
     user = self.get_current_user()
     template_values = {}
     if user:
         if user.isAdmin():
             self.redirect('/adminstart')
             return
         elif user.isTeacher():
             self.redirect('/teacherstart')
             return
         elif user.isStudent():
             self.redirect('/studentstart')
             return
         else:
             write_template(self, user, 'index.html', template_values)
     else:
         write_template(self, user, 'index.html', template_values)
Exemplo n.º 10
0
 def get(self):
     user = self.get_current_user()
     if not user:
         self.redirect('/')
         return
     
     chapter = db.get( self.request.get('chapter') )
     try:
         image = db.get( self.request.get('image') )
     except:
         self.redirect('/imagelistpage?%s' % urllib.urlencode({'chapter': chapter.key()}))
         return
         
     template_values = {'image': image,
                        'chapter': chapter,
                        }
     write_template(self, user, 'image.html', template_values)
Exemplo n.º 11
0
 def get(self):
     user = self.get_current_student()
     if not user:
         self.redirect('/')
         return
     
     encoded_chapter_key = self.request.get('chapter')
     chapter, encoded_chapter_key = get_chapter_by_encoded_key(encoded_chapter_key)
     
     encoded_course_key = self.request.get('course')
     course = Course.get(db.Key(encoded=encoded_course_key))
     
     if not course.has_chapter(chapter):
         self.redirect('/studentcoursepage?course='+encoded_course_key)
     
     subchapters = chapter.subchapters()
     subchapters_empty = len(subchapters) == 0
     parents = list_parents(chapter)
     parents.reverse()
     
     if chapter.text != None:
         chapter_formatted_text = mymarkdown(chapter.text)
     else:
         chapter_formatted_text = ''
         
     questions = list_questions(chapter)
     for q in questions:
         q.result = get_result(user,q)
         q.formatted_text = mymarkdown(q.text)
         
     has_questions = len(questions) > 0
     
     template_values = {
                        'subchapters': subchapters,
                        'subchapters_empty': subchapters_empty,
                        'parents' : parents,
                        'chapter_formatted_text' : chapter_formatted_text,
                        'questions' : questions,
                        'has_questions' : has_questions,
                        'course' : course,
                        }
     
     add_chapter_values(template_values, chapter)
     
     write_template(self, user, 'student_chapter.html',template_values)
Exemplo n.º 12
0
 def get(self):
     student = self.get_current_student()
     if not student:
         self.redirect('/')
         return
     
     classes = get_student_classes(student)
     clss = memcache.get('student_class')
     if not clss:
         self.redirect('/')
         
     courses = get_courses(clss)
     if len(courses) == 1:
         self.redirect('/studentcoursepage?course='+str(courses[0].key()))
     
     template_values = {
                        'courses': courses,
                        }
     write_template(self, student, 'student_courses.html',template_values)
Exemplo n.º 13
0
 def get(self):
     user = self.get_current_user()
     if not user:
         self.redirect('/')
         return
     
     encoded_chapter_key = self.request.get('chapter')
     
     chapter, encoded_chapter_key = get_chapter_by_encoded_key(encoded_chapter_key)
     subchapters = list_edit_chapters(user, chapter)
     subchapters_empty = len(subchapters) == 0
     parents = list_parents(chapter)
     parents.reverse()
     
     if chapter.text != None:
         if chapter.refresh:
             text = chapter.text
             set_chapter_text(chapter, text, True)
         chapter_formatted_text = mymarkdown(chapter.text)
     else:
         chapter_formatted_text = ''
         
     questions = list_questions(chapter)
     for q in questions:
         if q.refresh:
             text = q.text
             set_question_text(chapter, q, text, True)
         q.formatted_text = mymarkdown(q.text)
     
     has_questions = len(questions) > 0
     
     template_values = {
                        'subchapters': subchapters,
                        'subchapters_empty': subchapters_empty,
                        'parents' : parents,
                        'chapter_formatted_text' : chapter_formatted_text,
                        'questions' : questions,
                        'has_questions' : has_questions,
                        }
     
     add_chapter_values(template_values, chapter)
     
     write_template(self, user, 'chapter.html',template_values)
Exemplo n.º 14
0
 def get(self):
     user = self.get_current_user()
     if not user:
         self.redirect('/')
         return
     #raise Exception('chapter '+self.request.get('chapter'))
     chapter = db.get( self.request.get('chapter') )
     key = self.request.get('image')
     if key:
         image = db.get( key )
     else:
         image = None
     error = self.request.get('error')
     if error == '':
         error = None
     
     template_values = {'image':image, 
                        'error': error,
                        'chapter': chapter,
                        }
     write_template(self, user, 'image_upload.html', template_values)
Exemplo n.º 15
0
    def get(self):
        user = self.get_current_user()
        if not user:
            self.redirect("/")
            return

        key = db.Key(encoded=self.request.get("key"))
        course = Course.get(key)
        chapters = []
        chapter_keys = []
        for q in course.chapters:
            chapter = Chapter.get(q)
            if chapter:
                chapters.append(chapter)
                chapter_keys.append(str(chapter.key()))

        edit = self.request.get("edit")
        if edit == "true" and user.isTeacher():
            edit = True
            class_list = get_teacher_classes(user)
            self.start_edit_course(course)
        else:
            edit = False
            class_list = []

        goto = self.request.get("goto")
        if goto == None or goto == "":
            goto = "/"

        template_values = {
            "course": course,
            "chapters": chapters,
            "chapter_keys": chapter_keys,
            "edit": edit,
            "class_list": class_list,
            "goto": goto,
        }
        write_template(self, user, "course.html", template_values)
Exemplo n.º 16
0
 def get(self):
     user = self.get_current_user()
     if not user:
         self.redirect('/')
         return
         
     key = db.Key(encoded=self.request.get('key'))
     qlist = QuestionList.get(key)
     questions = []
     question_keys = []
     for q in qlist.questions:
         question = Question.get(q)
         if question:
             question.formatted_text = mymarkdown(question.text)
             questions.append(question)
             question_keys.append(str(question.key()))
     
     edit = self.request.get("edit")
     if edit == 'true' and user.isTeacher():
         edit = True
         class_list = get_teacher_classes(user)
         self.start_edit_question_list(qlist)
     else:
         edit = False
         class_list = []
         
     goto = self.request.get("goto")
     if goto == None or goto == '':
         goto = '/'
     
     template_values = {'qlist': qlist,
                        'questions': questions,
                        'question_keys': question_keys,
                        'edit': edit,
                        'class_list': class_list,
                        'goto': goto,
                        }
     write_template(self, user, 'question_list.html', template_values)
Exemplo n.º 17
0
 def get(self):
     teacher = self.get_current_teacher()
     if not teacher:
         self.redirect('/')
         return
     clss = db.get( self.request.get('class') )
     student = db.get( self.request.get('student') )
     qlists = get_question_list(clss)
     markdown_questionlists(qlists)
     courses = get_courses(clss)
     for course in courses:
         course.qlists = course.get_chapters()
         markdown_questionlists(course.qlists)
         for qlist in course.qlists:
             for q in qlist.questions:
                 q.result = get_student_result(student, q)                    
     
     template_values = {
                        'student': student,
                        'clss': clss,
                        'qlists': qlists,
                        'courses': courses,
                        }
     write_template(self, teacher, 'teacher_student.html', template_values)
Exemplo n.º 18
0
    def get(self):

        user = self.get_current_user()
        if not user:
            self.redirect('/')
            return
        
        encoded_chapter_key = self.request.get('chapter')
        chapter, encoded_chapter_key = get_chapter_by_encoded_key(encoded_chapter_key)
        
        question_key = self.request.get('question')
        if question_key == 'new':
            question = Question.create(chapter)
        else:
            question = Question.get(db.Key(encoded=question_key))
        question_key = question.key()
            
        template_values = {
                           'chapter' : chapter,
                           'question' : question,
                           }
        template_values['title'] = 'Edit question in ' + chapter.title
        
        write_template(self, user, 'question_edit.html',template_values)
Exemplo n.º 19
0
 def get(self):
     user = self.get_current_user()
     values = {'page': self.request.get('page')}
     write_template(self, user, 'test.html', values)
Exemplo n.º 20
0
 def get(self):
     values = {'in_local_login': True,'page': self.request.get('page')}
     write_template(self, None, 'student_login.html', values)