def papers(tag_id): if not tag_id: tags = Tag.select().paginate(0, 1) else: tags = Tag.select().where(Tag.id == tag_id) tag = tags[0] papers = Paper.select().where(Paper.tag == tag) return render_template("papers.html", tag=tag, papers=papers)
def get_item(paper_id): papers = Paper.select().where(Paper.id == paper_id).dicts() paper = list(papers)[0] paper['state'] = '' items = Item.select().where(Item.paper == paper_id).order_by( Item.index).dicts() state = TestState(paper=paper) response = {'state': state.dicts(), 'items': list(items)} return jsonify(response)
def get_papers(tag_id): if tag_id: tags = Tag.select().where(Tag.id == tag_id) else: tags = Tag.select().paginate(0, 1) papers = Paper.select().where( Paper.tag << tags).dicts() #.paginate(0, 100) response = {'papers': list(papers)} return jsonify(response)
def paper_new(): if request.method == "GET": return render_template("paper_new.html") else: assert request.method == "POST" print request.form p = Paper(title=request.form['title']) db.session.add(p) db.session.commit() return redirect('/paper/' + str(p.id)) return "Unknown method " + request.method
def commit_paper(): data = request.json print(data) if not data: raise APIValueError('state', 'not fond') state = data.get('state') result_list = state.get('results', []) finish_items = state.get('finish_items', []) finappend = finish_items.append unfinish_items = state.get('unfinish_items', []) uappend = unfinish_items.append true_items = state.get('true_items', []) tappend = true_items.append false_items = state.get('false_items', []) print('len') print(len(false_items)) falappend = false_items.append d1 = datetime.now() for i in result_list: item_id = i.get('item') item = Item.select().where(Item.id == item_id)[0] item.user_answer = i.get('user_answer') if item.user_answer: finappend(item.id) else: uappend(item.id) if item.user_answer == item.answer: state['score'] += item.score tappend(item.id) if item.user_answer and item.user_answer != item.answer: falappend(item.id) item.save() d2 = datetime.now() state['status'] = '已完成' paper = state['paper'] paper_id = paper.get('id') papers = Paper.select().where(Paper.id == paper_id) paper = papers[0] #state.pop('results') state.pop('paper') paper.state = json.dumps(state) paper.save() response = {'url': '/test/results/' + paper.id} return jsonify(response)
def get_record(self): try: paper_id = int( self.id_pattern.findall(self.fd.readline())[0].strip()) except IndexError: raise EOFError paper_title = self.title_pattern.findall(self.fd.readline())[0].strip() paper_authors = self.author_pattern.findall( self.fd.readline())[0].strip() paper_authors = [a for a in paper_authors.split(',') if a] paper_affiliations = self.affiliations_pattern.findall( self.fd.readline())[0].strip() if paper_affiliations == '-': paper_affiliations = None paper_year = self.year_pattern.findall(self.fd.readline())[0].strip() paper_venue = self.venue_pattern.findall(self.fd.readline())[0].strip() paper_refs = list() paper_abstract = None # references line = self.fd.readline() m = self.refs_pattern.match(line) while m is not None: if m: paper_refs.append( int(self.refs_pattern.findall(line)[0].strip())) line = self.fd.readline() m = self.refs_pattern.match(line) if len(paper_refs) == 0: paper_refs = None if line.strip(): try: paper_abstract = self.abstract_pattern.findall(line)[0].strip() except: paper_abstract = None # skip if blank + consume #if not line.strip(): fd.readline() return Paper(paper_idx=paper_id, title=paper_title, authors=paper_authors, affiliation=paper_affiliations, year=paper_year, venue=paper_venue, refs=paper_refs, abstract=paper_abstract)
def get_testResults(paper_id): d1 = datetime.now() if not paper_id: raise APIValueError('paper', 'not fond') paper = list(Paper.select().where(Paper.id == paper_id).dicts())[0] data = json.loads(paper['state']) print(paper['state']) res = data['results'] paper['state'] = '' re_state = TestState(paper=paper) re_state.finish_items = list( Item.select().where(Item.id << data['finish_items']).dicts()) re_state.unfinish_items = list( Item.select().where(Item.id << data['unfinish_items']).dicts()) re_state.true_items = list( Item.select().where(Item.id << data['true_items']).dicts()) re_state.false_items = list( Item.select().where(Item.id << data['false_items']).dicts()) ''' items = list(Item.select().where(Item.paper==paper['id']).dicts()) for item in items: for re in res: if item['id'] == re['item']: item['user_answer'] = re['user_answer'] if item['id'] in data['finish_items']: re_state.finish_items.append(item) if item['id'] in data['unfinish_items']: re_state.unfinish_items.append(item) if item['id'] in data['true_items']: re_state.true_items.append(item) if item['id'] in data['false_items']: re_state.false_items.append(item) ''' re_state.score = data['score'] re_state.status = data['status'] re_state.finish_time = data['finish_time'] re_state.utime = data['utime'] response = {'state': re_state.dicts()} d2 = datetime.now() return jsonify(response)
def add_items(): d1 = datetime.now() answer = ['A', 'B', 'C', 'D'] answer2 = ['A', 'B'] papers = Paper.select() for paper in papers: for i in range(30): if(i<=20): item = Item.create(index=i+1,content=faker_zh.text(),answer=choice(answer), answer_A=faker_zh.word(),answer_B=faker_zh.word(),answer_C=faker_zh.word(),answer_D=faker_zh.word(), answer_type = '选择题',score =1,paper=paper) else: item = Item.create(index=i + 1, content=faker_zh.text(), answer=choice(answer2), answer_A='正確', answer_B='錯誤', answer_type='判斷題', score=1, paper=paper) item.save() print('item:'+ str(item.index)+'done') #paper.munber = 30 #paper.total = 30 #paper.save() print('a paper save done') d2 = datetime.now() print('save success') print(d2-d1)
def index(): tags = Tag.select().paginate(0, 1) tag = tags[0] papers = Paper.select().where(Paper.tag == tag) return render_template("papers.html", tag=tag, papers=papers)
def testing2(paper_id): papers = Paper.select().where(Paper.id == paper_id) return render_template("item2.html", paper=papers[0])