Example #1
0
def lesson_create():
    form = LessonForm()
    if form.validate_on_submit():
        lesson_db = Lesson(
            title = form.title.data,
            number = form.number.data,
        )
        try:
            lesson_db.put()
            flash(u'Lesson id %s successfully saved.' % lesson_db.key.id(), 'success')
            return redirect(url_for('lesson_view'))
        except:
            flash(u'Something went wrong.', 'info')
            return redirect(url_for('lesson_update'))
    return render_template(
        'lesson_update.html',
        html_class='lesson-create',
        title='Create Lesson',
        form=form)
    def create_edit_lesson(self, form_item):
        lesson_code = form_item("lesson_code")
        is_new = lesson_code == ""
        if is_new:
            lesson_code = self.make_lesson_code()
        lesson_title = form_item("lesson_title")
        lesson_description = form_item("lesson_description")
        class_name = form_item("class_name")
        task_infos = []
    
        for task_num in range(1, int(self.request.get("max_num_tasks", "10"))+1):
            task_title = form_item("task_title_%d"%task_num)
            task_description = form_item("task_description_%d"%task_num)
            if task_title != "":
                task_infos.append((task_title, task_description))

        import json
        tasks_json = json.dumps(task_infos)

        if (len(lesson_title) > 0) and (len(lesson_code) > 0) and (len(task_infos) > 0):
            from model import Lesson
            from datetime import datetime
            now = datetime.now()

            lesson = Lesson(key_name=lesson_code,
                teacher=self.person, title=lesson_title, lesson_code=lesson_code,
                description=lesson_description, class_name=class_name, 
                tasks_json=tasks_json, start_time=now, stop_time=None)
            
            if not is_new:
                old_lesson = Lesson.get_by_key_name(lesson_code)       
                lesson.start_time = old_lesson.start_time
                lesson.stop_time = old_lesson.stop_time
            
            lesson.put()
            self.response.out.write(self.get_lessons_json())
        
        else:
            data = { 'error': 1, 'msg': 'Required fields are missing.' }
            self.response.out.write(json.dumps(data))
    def clone_lesson(self, lesson):
        lesson_title = lesson.title + " (Clone)"
        lesson_code = self.make_lesson_code()
        
        task_infos = []
        for task_idx in range(0, len(lesson.tasks)):
            task_title = lesson.tasks[task_idx][0];
            if task_title != "":
                task_description = lesson.tasks[task_idx][1];
                task_infos.append((task_title, task_description))

        import json
        tasks_json = json.dumps(task_infos)

        from datetime import datetime
        from model import Lesson
        lesson = Lesson(key_name=lesson_code,
            teacher=self.person, title=lesson_title, lesson_code=lesson_code,
            description=lesson.description, class_name=lesson.class_name, 
            start_time=datetime.now(), stop_time=lesson.stop_time, tasks_json=tasks_json)
        lesson.put()           
        self.response.out.write(self.get_lesson_json(lesson_code))