From d069ddb3c07226d39857d1558aeb1394f3ab2f75 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Sat, 28 Nov 2015 01:32:36 +0000 Subject: [PATCH 1/3] Added ability to enter time remaining on RF timer instead of specifying a date/time explicitely. Addresses #15 --- timerboard/form.py | 8 ++++++-- timerboard/views.py | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/timerboard/form.py b/timerboard/form.py index f4c77e04..aa2a26d3 100755 --- a/timerboard/form.py +++ b/timerboard/form.py @@ -1,4 +1,6 @@ from django import forms +from django.core.validators import MaxValueValidator, MinValueValidator + class TimerForm(forms.Form): @@ -11,5 +13,7 @@ class TimerForm(forms.Form): planet_moon = forms.CharField(max_length=254, label="Planet/Moon", required=False, initial="") structure = forms.ChoiceField(choices=structure_choices, required=True, label="Structure Type") fleet_type = forms.ChoiceField(choices=fleet_type_choices, required=True, label="Fleet Type") - eve_time = forms.DateTimeField(required=True, label="Eve Time") - important = forms.BooleanField(label="Important", required=False) \ No newline at end of file + days_left = forms.IntegerField(required=False, label="Reinforced Days Remaining", validators=[MinValueValidator(0)]) + hours_left = forms.IntegerField(required=False, label="Reinforced Hours Remaining", validators=[MinValueValidator(0), MaxValueValidator(23)]) + minutes_left = forms.IntegerField(required=False, label="Required Minutes Remaining", validators=[MinValueValidator(0), MaxValueValidator(59)]) + important = forms.BooleanField(label="Important", required=False) diff --git a/timerboard/views.py b/timerboard/views.py index 013c8352..d347ecbb 100755 --- a/timerboard/views.py +++ b/timerboard/views.py @@ -46,6 +46,11 @@ def add_timer_view(request): character = EveManager.get_character_by_id(auth_info.main_char_id) corporation = EveManager.get_corporation_info_by_id(character.corporation_id) + # calculate future time + future_time = datetime.timedelta(days=form.cleaned_data['days_left'], hours=form.cleaned_data['hours_left'], minutes=form.cleaned_data['minutes_left']) + current_time = datetime.datetime.utcnow() + eve_time = current_time + future_time + # handle valid form timer = Timer() timer.name = form.cleaned_data['name'] @@ -53,7 +58,7 @@ def add_timer_view(request): timer.planet_moon = form.cleaned_data['planet_moon'] timer.structure = form.cleaned_data['structure'] timer.fleet_type = form.cleaned_data['fleet_type'] - timer.eve_time = form.cleaned_data['eve_time'] + timer.eve_time = eve_time timer.important = form.cleaned_data['important'] timer.eve_character = character timer.eve_corp = corporation From 412c9c223deb3aa4329572fdbffc3f2754f42085 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Sat, 28 Nov 2015 01:36:09 +0000 Subject: [PATCH 2/3] Corrected required fields on timer add form. --- timerboard/form.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/timerboard/form.py b/timerboard/form.py index aa2a26d3..d59e7eb5 100755 --- a/timerboard/form.py +++ b/timerboard/form.py @@ -13,7 +13,7 @@ class TimerForm(forms.Form): planet_moon = forms.CharField(max_length=254, label="Planet/Moon", required=False, initial="") structure = forms.ChoiceField(choices=structure_choices, required=True, label="Structure Type") fleet_type = forms.ChoiceField(choices=fleet_type_choices, required=True, label="Fleet Type") - days_left = forms.IntegerField(required=False, label="Reinforced Days Remaining", validators=[MinValueValidator(0)]) - hours_left = forms.IntegerField(required=False, label="Reinforced Hours Remaining", validators=[MinValueValidator(0), MaxValueValidator(23)]) - minutes_left = forms.IntegerField(required=False, label="Required Minutes Remaining", validators=[MinValueValidator(0), MaxValueValidator(59)]) + days_left = forms.IntegerField(required=True, label="Reinforced Days Remaining", validators=[MinValueValidator(0)]) + hours_left = forms.IntegerField(required=True, label="Reinforced Hours Remaining", validators=[MinValueValidator(0), MaxValueValidator(23)]) + minutes_left = forms.IntegerField(required=True, label="Required Minutes Remaining", validators=[MinValueValidator(0), MaxValueValidator(59)]) important = forms.BooleanField(label="Important", required=False) From d7f16ae91e2829681d9bf8d7de87df12ff4fe0a4 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Sat, 28 Nov 2015 01:37:09 +0000 Subject: [PATCH 3/3] Corrected field labels. --- timerboard/form.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/timerboard/form.py b/timerboard/form.py index d59e7eb5..eebe0d4c 100755 --- a/timerboard/form.py +++ b/timerboard/form.py @@ -13,7 +13,7 @@ class TimerForm(forms.Form): planet_moon = forms.CharField(max_length=254, label="Planet/Moon", required=False, initial="") structure = forms.ChoiceField(choices=structure_choices, required=True, label="Structure Type") fleet_type = forms.ChoiceField(choices=fleet_type_choices, required=True, label="Fleet Type") - days_left = forms.IntegerField(required=True, label="Reinforced Days Remaining", validators=[MinValueValidator(0)]) - hours_left = forms.IntegerField(required=True, label="Reinforced Hours Remaining", validators=[MinValueValidator(0), MaxValueValidator(23)]) - minutes_left = forms.IntegerField(required=True, label="Required Minutes Remaining", validators=[MinValueValidator(0), MaxValueValidator(59)]) + days_left = forms.IntegerField(required=True, label="Days Remaining", validators=[MinValueValidator(0)]) + hours_left = forms.IntegerField(required=True, label="Hours Remaining", validators=[MinValueValidator(0), MaxValueValidator(23)]) + minutes_left = forms.IntegerField(required=True, label="Minutes Remaining", validators=[MinValueValidator(0), MaxValueValidator(59)]) important = forms.BooleanField(label="Important", required=False)