コード例 #1
0
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())
    })
コード例 #2
0
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)
コード例 #3
0
ファイル: result.py プロジェクト: beachmg/raychen
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)                                                                              
コード例 #4
0
ファイル: result.py プロジェクト: beachmg/raychen
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)
コード例 #5
0
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)
コード例 #6
0
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
        })
コード例 #7
0
    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
コード例 #8
0
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)