progress bar
This commit is contained in:
parent
4e9c195d9d
commit
65ee7117cb
@ -1,9 +1,10 @@
|
||||
# Generated by Django 3.2.4 on 2022-02-15 18:22
|
||||
|
||||
import Checker.models
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
import SprintLib.utils
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
@ -18,7 +19,7 @@ class Migration(migrations.Migration):
|
||||
name='Checker',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('token', models.CharField(db_index=True, default=Checker.models.generate_token, max_length=30)),
|
||||
('token', models.CharField(db_index=True, default=SprintLib.utils.generate_token, max_length=30)),
|
||||
('last_request', models.DateTimeField()),
|
||||
('set', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Main.set')),
|
||||
('testing_solution', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='Main.solution')),
|
||||
|
@ -4,11 +4,7 @@ from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
from Main.models import Solution, Set
|
||||
|
||||
|
||||
def generate_token():
|
||||
letters = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
|
||||
return ''.join([choice(letters) for _ in range(30)])
|
||||
from SprintLib.utils import generate_token
|
||||
|
||||
|
||||
class Checker(models.Model):
|
||||
|
@ -7,9 +7,10 @@ from django.http import JsonResponse, HttpResponse
|
||||
|
||||
from django.utils import timezone
|
||||
|
||||
from Checker.models import Checker, generate_token
|
||||
from Checker.models import Checker
|
||||
from FileStorage.sync import synchronized_method
|
||||
from Main.models import Solution, SolutionFile, ExtraFile
|
||||
from SprintLib.utils import generate_token
|
||||
|
||||
|
||||
def get_dynamic(request):
|
||||
|
@ -30,6 +30,12 @@ class Solution(models.Model):
|
||||
models.Index(fields=['set', '-time_sent']),
|
||||
]
|
||||
|
||||
@property
|
||||
def percentage_done(self):
|
||||
if self.test is None:
|
||||
return 0
|
||||
return self.test * 100 // self.task.tests_count
|
||||
|
||||
@property
|
||||
def language(self):
|
||||
return languages[self.language_id]
|
||||
|
@ -28,6 +28,10 @@ class Task(models.Model):
|
||||
def tests(self):
|
||||
return ExtraFile.objects.filter(task=self, is_test=True).order_by('filename')
|
||||
|
||||
@property
|
||||
def tests_count(self):
|
||||
return len(self.tests) // 2
|
||||
|
||||
@property
|
||||
def samples(self):
|
||||
data = []
|
||||
|
@ -1,3 +1,5 @@
|
||||
from random import choice
|
||||
|
||||
from requests import get, post
|
||||
|
||||
from Sprint import settings
|
||||
@ -19,3 +21,8 @@ def delete_file(num: int):
|
||||
url = settings.FS_HOST + ":" + str(settings.FS_PORT) + "/delete_file?id=" + str(num)
|
||||
print(url)
|
||||
post(url)
|
||||
|
||||
|
||||
def generate_token():
|
||||
letters = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
|
||||
return ''.join([choice(letters) for _ in range(30)])
|
||||
|
@ -28,7 +28,13 @@
|
||||
</td>
|
||||
<td>
|
||||
<h4>
|
||||
<span class="badge badge-{{ solution.badge_style }}">{% if solution.result == testing_status %}<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="circle-notch" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 20px;" class="svg-inline--fa fa-circle-notch fa-w-16 fa-spin fa-lg"><path fill="currentColor" d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z" class=""></path></svg> {% endif %}{{ solution.number_result }}</span>
|
||||
{% if solution.result == testing_status %}
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: {{ solution.percentage_done }}%"></div>
|
||||
</div>
|
||||
{% else %}
|
||||
<span class="badge badge-{{ solution.badge_style }}">{{ solution.number_result }}</span>
|
||||
{% endif %}
|
||||
</h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
Loading…
Reference in New Issue
Block a user