Exemple #1
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 #2
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 #3
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