Skip to content
Snippets Groups Projects
Commit e11d3c69 authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

add reset timer function

parent 79157237
Branches
No related tags found
1 merge request!9Release
Pipeline #15165 passed
......@@ -5,11 +5,11 @@ import alertify from "alertifyjs";
import "alertifyjs/build/css/alertify.css";
const disableInputs = () => {
$("#pause_play,#minutes,#seconds,#update_time").prop("disabled", true)
$("#pause_play,#minutes,#seconds,#update_time,#reset_time").prop("disabled", true)
}
const enableInputs = () => {
$("#pause_play,#minutes,#seconds,#update_time").prop("disabled", false)
$("#pause_play,#minutes,#seconds,#update_time,#reset_time").prop("disabled", false)
}
const updateTimeText = () => {
......@@ -246,6 +246,20 @@ $(window).ready(
}
)
$("#reset_time").on(
"click",
(event) => {
disableInputs()
window.timer.pause()
timerSocket.send(JSON.stringify({
"reset": true,
"is_running": false
}))
}
)
// --- END Controls ---
}
......
......@@ -12,8 +12,6 @@ running_timer_threads = []
def tick_timer(timer, iteration: int, total_seconds: int) -> None:
print("ticking", timer)
second_compensation = 0
start_time = timeit.default_timer()
......@@ -24,8 +22,6 @@ def tick_timer(timer, iteration: int, total_seconds: int) -> None:
second_compensation = end_time - start_time
while not timer.is_running:
print("waiting to run ...")
time.sleep(0.05)
timer.refresh_from_db()
......@@ -154,8 +150,18 @@ class TimerConsumer(AsyncWebsocketConsumer):
await sync_to_async(self.timer.save)()
if "time" in json_data:
self.timer.minutes = json_data["time"]["minutes"]
self.timer.seconds = json_data["time"]["seconds"]
# Don't save here in case there is a tick thread running
self.timer.minutes = self.timer.initial_minutes = json_data["time"]["minutes"]
self.timer.seconds = self.timer.initial_seconds = json_data["time"]["seconds"]
reset_timer = True
if "reset" in json_data:
# Don't save here in case there is a tick thread running
self.timer.minutes = self.timer.initial_minutes
self.timer.seconds = self.timer.initial_seconds
reset_timer = True
......
# Generated by Django 4.1.5 on 2023-10-24 20:06
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('timer', '0004_ongoingtimer_is_running_ongoingtimer_iteration'),
]
operations = [
migrations.AddField(
model_name='ongoingtimer',
name='initial_minutes',
field=models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(limit_value=0), django.core.validators.MaxValueValidator(limit_value=60)], verbose_name='Původní Minuty'),
preserve_default=False,
),
migrations.AddField(
model_name='ongoingtimer',
name='initial_seconds',
field=models.IntegerField(default=0, validators=[django.core.validators.MinValueValidator(limit_value=0), django.core.validators.MaxValueValidator(limit_value=60)], verbose_name='Původní sekundy'),
preserve_default=False,
),
migrations.AlterField(
model_name='ongoingtimer',
name='seconds',
field=models.IntegerField(validators=[django.core.validators.MinValueValidator(limit_value=0), django.core.validators.MaxValueValidator(limit_value=60)], verbose_name='Sekundy'),
),
]
......@@ -15,6 +15,22 @@ class OngoingTimer(models.Model):
validators=[MinLengthValidator(limit_value=1)],
)
initial_minutes = models.IntegerField(
verbose_name="Původní Minuty",
validators=[
MinValueValidator(limit_value=0),
MaxValueValidator(limit_value=60),
],
)
initial_seconds = models.IntegerField(
verbose_name="Původní sekundy",
validators=[
MinValueValidator(limit_value=0),
MaxValueValidator(limit_value=60),
],
)
minutes = models.IntegerField(
verbose_name="Minuty",
validators=[
......@@ -24,7 +40,7 @@ class OngoingTimer(models.Model):
)
seconds = models.IntegerField(
verbose_name="Minuty",
verbose_name="Sekundy",
validators=[
MinValueValidator(limit_value=0),
MaxValueValidator(limit_value=60),
......
......@@ -87,6 +87,12 @@
>
<div class="btn__body">Aktualizovat čas</div>
</button>
<button
id="reset_time"
class="btn w-64"
>
<div class="btn__body">Resetovat čas</div>
</button>
</div>
<a
......
......@@ -20,6 +20,8 @@ def create(request):
if form.is_valid():
timer = OngoingTimer(
initial_minutes=form.cleaned_data["minutes"],
initial_seconds=form.cleaned_data["seconds"],
minutes=form.cleaned_data["minutes"],
seconds=form.cleaned_data["seconds"],
name=form.cleaned_data["name"],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment