def results(request, league_slug): page = request.GET.get('page', 1) league = League.objects.get(slug=league_slug) form_new_result = ResultForm(initial={ 'league': league.id, 'victory_player': 1, 'loser_player': 2 }, league=league.id) results = Result.objects.filter(league=league).order_by('-created') paginator = Paginator(results, PAGINATE_DEFAULT) try: results = paginator.page(page) except PageNotAnInteger: results = paginator.page(1) except EmptyPage: results = paginator.page(paginator.num_pages) template = 'app/league/results.html' return render( request, template, { 'form_new_result': form_new_result, 'league': league, 'results': results, 'paginator': paginator })
def create_new_result(request, league_slug): league = League.objects.get(slug=league_slug) success = False if request.method == 'POST': form = ResultForm(request.POST, league=league.id) if form.is_valid(): victory_player = None loser_player = None new_result = form.save() is_tournament = False if new_result.mtype.id == 2: is_tournament = True changes = elo_adapted(new_result.challenging.ranking, new_result.rival.ranking, new_result.challenging_score, new_result.rival_score, is_tournament) if new_result.challenging_score > new_result.rival_score: victory_player = new_result.challenging loser_player = new_result.rival else: victory_player = new_result.rival loser_player = new_result.challenging new_result.challenging.ranking = new_result.challenging.ranking + changes[ 0] new_result.challenging.save() new_result.rival.ranking = new_result.rival.ranking + changes[1] new_result.rival.save() new_result.victory_player = victory_player new_result.loser_player = loser_player new_result.ranking_del_challenging = changes[0] new_result.ranking_del_rival = changes[1] new_result.save() victory_player.disabled = False victory_player.save() loser_player.disabled = False loser_player.save() success = True return JsonResponse({ 'success': success, 'errors': dict(form.errors.items()) })
def edit(result_id): result = Result.query.get_or_404(result_id) #result.permissions.edit.test(403) form = ResultForm(obj=result) if form.validate_on_submit(): form.populate_obj(result) result.save() flash(u"你的条目已更新", "successfully") return redirect(url_for("result.view", result_id=result_id)) return render_template("result/edit_result.html", result=result, form=form)
def result_form_for(self, opp_seat): results = self.results(self.user.id, opp_seat.user_id) form = ResultForm() form.user_id.data = opp_seat.user_id form.wins.data = results.wins form.losses.data = results.losses form.draws.data = results.draws return form
def add(): form = ResultForm() form.case.choices = [(c.id, c.name) for c in Case.query.all()] if form.validate_on_submit(): result = Result() form.populate_obj(result) result.case = Case.query.filter( Case.id == form.case.data).first_or_404() result.author = current_user result.save() flash("Add Test Result successfully") return redirect(url_for("result.view", result_id=result.id)) return render_template("result/add.html", form=form)
def results(): frame = session.pop('frame', 'All') if frame == 'All': begin_frame = int(0) end_frame = int(6) else: end_frame = int(frame) begin_frame = int(frame) - 1 ch = session.pop('ch', None) plot_data = [] if ch: results, setups = germix_fastai_webapp.logic( f'{app.static_folder}/{ch}', interval=1, begin_frame=begin_frame, end_frame=end_frame, show=False) frame_overview, _ = get_frame_overview(ch, setups=setups) for j in range(begin_frame, end_frame): img = BytesIO() fig, ax = plt.subplots() ax.plot(list(results[j].keys()), list(results[j].values())) ax.set_xlabel('Time') ax.set_ylabel('Quantity') ax.set_title(f'Germination graph for frame {j+1}') plt.savefig(img, format='png') img.seek(0) plot_data.append( urllib.parse.quote(base64.b64encode(img.read()).decode())) form = ResultForm() text = [f'Results for image Stack {ch}'] if form.validate_on_submit(): if form.export.data: pass if form.other.data: return redirect(url_for('select')) return render_template('results.html', title='Results', plot_url=plot_data, form=form, text=text, frame_overview=frame_overview)