예제 #1
0
파일: handlers.py 프로젝트: qbx2/opencampus
def lecture_vtimetable_search():
    try:
        year = int(request.args.get('year'))
        term = Lecture.term_str_to_int(request.args.get('term'))
        query = request.args.get('q', '')
    except TypeError:
        return jsonify({'error': {'code': 'type_error'}}), 400

    results = Lecture.search(request.campus.id, query=query, page=1, size=8, year=year, term=term)

    for lecture in results:
        lecture['timetable'] = []
        try:
            lecture_data = Lecture.get_lecture(int(lecture['year']), lecture['term_str'], lecture['code'])
            for time in lecture_data.timetable:
                lecture['timetable'].append({
                    'place': time.place,
                    'room': time.room,
                    'start_time': time.start_time,
                    'end_time': time.end_time
                })
        except:
            pass

    return jsonify({
        'data': results
    })
예제 #2
0
파일: apis.py 프로젝트: qbx2/opencampus
def lecture_search_api(campus_id):
    from urllib import parse

    query = request.args.get('q', '')
    page = int(request.args.get('page', 1))

    data = Lecture.search(request.campus.id, query=query, page=page)

    for lecture in data:
        lecture['timetable'] = []
        try:
            lecture_data = Lecture.get_lecture(int(lecture['year']), lecture['term_str'], lecture['code'])
            for time in lecture_data.timetable:
                lecture['timetable'].append({
                    'place': time.place,
                    'room': time.room,
                    'start_time': time.start_time,
                    'end_time': time.end_time
                })
        except:
            pass

    result = {
        'data': data,
        'paging': {}
    }

    if len(data) >= 20:
        url = list(parse.urlparse(request.url))
        query = dict(parse.parse_qs(url[4]))
        query['page'] = page + 1
        url[4] = parse.urlencode(query)
        result['paging']['next'] = parse.urlunparse(url)

    return jsonify(result)
예제 #3
0
파일: handlers.py 프로젝트: qbx2/opencampus
def lecture_search():
    query = request.args.get('q', '')
    page = int(request.args.get('page', 1))
    results = Lecture.search(request.campus.id, query=query, page=page)

    if page > 1 and len(results) < 1:
        return abort(404)

    return render_template('module/lecture/search.html', results=results, next_page=page+1, query=query)