Exemple #1
0
  def get(self):
    # Set template values for user
    user = self.personalizePageAndGetUser()
    if not user:
      self.redirect(users.create_login_url(self.request.uri))
      return

    # Extract incoming args
    c = self.request.get('unit')
    if not c:
      unit_id = 1
    else:
      unit_id = int(c)
    self.templateValue['unit_id'] = unit_id

    l = self.request.get('lesson')
    if not l:
      lesson_id = 1
    else:
      lesson_id = int(l)
    self.templateValue['lesson_id'] = lesson_id

    # Set template values for a unit and its lesson entities
    for unit in Unit.get_units():
      if unit.unit_id == str(unit_id):
        self.templateValue['units'] = unit

    lessons = Unit.get_lessons(unit_id)
    self.templateValue['lessons'] = lessons

    # Set template values for nav bar
    self.templateValue['navbar'] = {'course': True}

    # Set template values for back and next nav buttons
    if lesson_id == 1:
      self.templateValue['back_button_url'] = ''
    elif lessons[lesson_id - 2].activity:
      self.templateValue['back_button_url'] = '/activity?unit=' + str(unit_id) + '&lesson=' + str(lesson_id - 1)
    else:
      self.templateValue['back_button_url'] = '/unit?unit=' + str(unit_id) + '&lesson=' + str(lesson_id - 1)

    if lessons[lesson_id - 1].activity:
      self.templateValue['next_button_url'] = '/activity?unit=' + str(unit_id) + '&lesson=' + str(lesson_id)
    elif lesson_id == lessons.count():
      self.templateValue['next_button_url'] = ''
    else:
      self.templateValue['next_button_url'] = '/unit?unit=' + str(unit_id) + '&lesson=' + str(lesson_id + 1)

    self.render('unit.html')
Exemple #2
0
  def get(self):
    # Check for enrollment status
      student = self.getStudent()
      if student:

        # Get unit data and set template values
        units = memcache.get('units')
        if units is None:
          units = Unit.all().order('id')
          memcache.add('units', units)
        self.templateValue['units'] = units

        # Set template values for nav bar
        navbar = {'course': True}
        self.templateValue['navbar'] = navbar

        # Set template values for user
        user = users.get_current_user()
        if user:
          self.templateValue['email'] = user.email()
          self.templateValue['logoutUrl'] = users.create_logout_url("/")

        # Render course page
        self.render('course.html')
      else:
        self.redirect('/register')
Exemple #3
0
 def get(self):
   user = self.personalizePageAndGetUser()
   if user:
     self.templateValue['units'] = Unit.get_units()
     self.templateValue['navbar'] = {'course': True}
     self.render('course.html')
   else:
     self.redirect('/preview')
Exemple #4
0
    def post(self):
        name = request.json['name']
        unit = Unit(name=name)

        db.session.add(unit)
        db.session.commit()

        return unit_schema.dump(unit), 201
Exemple #5
0
  def get(self):
    # Check for enrollment status
      student = self.getStudent()
      if student:

        # Extract incoming args
        c = self.request.get("unit")
        if not c:
          unit_id = 1
        else:
          unit_id = int(c)

        self.templateValue['unit_id'] = unit_id
        l = self.request.get('lesson')
        if not l:
          lesson_id = 1
        else:
          lesson_id = int(l)
        self.templateValue['lesson_id'] = lesson_id

        # Set template values for a unit and its lesson entities
        units = memcache.get('units')
        if units is None:
          units = Unit.all().order('id')
          memcache.add('units', units)
        for unit in units:
          if unit.unit_id == unit_id:
            self.templateValue['units'] = unit

        lessons = memcache.get('lessons' + str(unit_id))
        if lessons is None:
          lessons = Lesson.all().filter('unit_id =', unit_id).order('id')
          memcache.add('lessons' + str(unit_id), lessons)
        self.templateValue['lessons'] = lessons

        # Set template values for nav-x bar
        navbar = {'course':True}
        self.templateValue['navbar'] = navbar

        # Set template values for back and next nav buttons
        self.templateValue['back_button_url'] = '/unit?unit=' + str(unit_id) + '&lesson=' + str(lesson_id)
        if lesson_id == lessons.count():
          self.templateValue['next_button_url'] = ''
        else:
          self.templateValue['next_button_url'] = '/unit?unit=' + str(unit_id) + '&lesson=' + str(lesson_id + 1)

        # Set template values for user
        user = users.get_current_user()
        if user:
          self.templateValue['email'] = user.email()
          self.templateValue['logoutUrl'] = users.create_logout_url("/")

        # Render activity page
        self.render('activity.html')
      else:
        self.redirect('/register')
Exemple #6
0
  def get(self):
    user = users.get_current_user()
    if not user:
      self.templateValue['loginUrl'] = users.create_login_url('/')
    else:
      self.templateValue['email'] = user.email()
      self.templateValue['logoutUrl'] = users.create_logout_url("/")

    self.templateValue['navbar'] = {'course': True}
    self.templateValue['units'] = Unit.get_units()
    if user and Student.get_enrolled_student_by_email(user.email()):
      self.redirect('/course')
    else:
      self.render('preview.html')
Exemple #7
0
  def initDatastore(self):
    """Loads course data from the CSV files."""
    logging.info('')
    logging.info('Initializing datastore')

    # load and parse data from CSV file
    unit_file = os.path.join(os.path.dirname(__file__), "../../data/unit.csv")
    lesson_file = os.path.join(os.path.dirname(__file__), "../../data/lesson.csv")
    units = verify.ReadObjectsFromCsvFile(unit_file, verify.UNITS_HEADER, Unit)
    lessons = verify.ReadObjectsFromCsvFile(lesson_file, verify.LESSONS_HEADER, Lesson)

    # store all units and lessons
    for unit in units:
      unit.put()
    for lesson in lessons:
      lesson.put()
    assert Unit.all().count() == 11
    assert Lesson.all().count() == 29