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 })
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)
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)