def post(self):
        session = get_current_session()
        if not session.has_key('net_id'):
            return
        user = models.get_user(session['net_id'])

        if not user:
            data['error'] = "Invalid User"
            self.response.out.write(json.dumps(data))
            return

        data = json.loads(self.request.get('json'))
        logging.info(data)

        course = models.get_course(data['course'])

        if not course:
            data['error'] = "Invalid Course"
            self.response.out.write(json.dumps(data))
            return

        term = models.Term.gql('WHERE code=:1', str(data['term'])).get()


        if not term:
            data['error'] = "Invalid Term"
            self.response.out.write(json.dumps(data))
            return

        coursetaken = models.CourseTaken(user = user, course = course, term = term)
        coursetaken.put()
        data['success'] = 1
        self.response.out.write(json.dumps(data))
    def get(self):
        session = get_current_session()
        if not session.has_key('net_id'):
            auth.require_login(self)
        user = models.get_user(session['net_id'], True)    
        page = self.request.path
        if page == '/':
            page = 'main'
        if page.startswith('/'):
            page = page[1:]
        if page.endswith('.html'):
            page = page[:-5]
        logging.info(page)
        template = JINJA_ENV.get_template('/views/%s.html' % page)
        page_data = {}
        page_data['net_id'] = user.net_id

        page_data['terms'] = []
        requiredTerm = models.Term.gql('WHERE code=:1', 'TRANSFER').get()
        #if requiredTerm.key() not in user.terms:
        #    user.terms.append(requiredTerm.key())
        #    user.put()        
        
        sorted_terms = sorted(models.Term.get(user.terms), key=lambda t:t.code)
        for term in sorted_terms:
            thisTerm = {
                'code': term.code,
                'description':term.description
            }        
            courseTakens = models.CourseTaken.gql('WHERE user=:1 AND term=:2', user, term)
            thisTerm['courses'] = []
            for courseTaken in courseTakens:
                thisTerm['courses'].append({
                    'name': courseTaken.course.subject.code + " " + courseTaken.course.number,
                    'term': courseTaken.term.code,
                    'taken_id' : courseTaken.key(),
                    'id' : courseTaken.course.key()
                })
            page_data['terms'].append(thisTerm)
        
        degree = models.DegreeRequirement.gql('WHERE name=:1', 'Computer Science').get()
        courses_takens = models.CourseTaken.gql('WHERE user=:1', user)
        
        courses = []
        for courses_taken in courses_takens:
        	courses.append(courses_taken.course)
        
        if degree:
            page_data['progress'] = degree.progress_summaries(courses)

        logging.info(page_data['progress'])    
        self.response.out.write(template.render(page_data))
Example #3
0
def render_page_content(handler, page_name, page_content):
    # Mark all links in the nav bar as inactive except the page open
    for item in NAV_BAR:
        item['active'] = page_name.startswith(item['link'])

    template = JINJA_ENV.get_template('templates/page.html')
    template_vals = {'nav_bar': NAV_BAR, 'page_content': page_content}

    # If logged in, display NetID with logout option
    session = get_current_session()
    if session.has_key('net_id'):
        template_vals['net_id'] = session['net_id']

    handler.response.out.write(template.render(template_vals))
Example #4
0
def render_page_content(handler, page_name, page_content):
    # Mark all links in the nav bar as inactive except the page open
    for item in NAV_BAR:
        item['active'] = page_name.startswith(item['link'])

    template = JINJA_ENV.get_template('templates/page.html')
    template_vals = {'nav_bar': NAV_BAR,
                     'page_content': page_content}

    # If logged in, display NetID with logout option
    session = get_current_session()
    if session.has_key('net_id'):
        template_vals['net_id'] = session['net_id']
    
    handler.response.out.write(template.render(template_vals))
    def post(self):
        session = get_current_session()
        if not session.has_key('net_id'):
            return
        user = models.get_user(session['net_id'])

        if not user:
            data['error'] = "Invalid User"
            self.response.out.write(json.dumps(data))
            return

        data = json.loads(self.request.get('json'))

        course_taken = models.CourseTaken.get(data['id'])
        if not course_taken:
            data['error'] = "Course Taken not found!"
            self.response.out.write(json.dumps(data))
            return

        course_taken.delete()
        self.response.out.write('Deleted')