fixing races
This commit is contained in:
@@ -2885,8 +2885,11 @@ class PlannedSession(models.Model):
|
|||||||
if self.sessionvalue <= 0: # pragma: no cover
|
if self.sessionvalue <= 0: # pragma: no cover
|
||||||
self.sessionvalue = 1
|
self.sessionvalue = 1
|
||||||
|
|
||||||
|
is_virtualevent = kwargs.pop('is_virtualevent', False)
|
||||||
|
|
||||||
# manager = self.manager
|
# manager = self.manager
|
||||||
if self.sessiontype not in ['race', 'indoorrace']:
|
#if self.sessiontype not in ['race', 'indoorrace']:
|
||||||
|
if not is_virtualevent:
|
||||||
if not can_add_session(self.manager):
|
if not can_add_session(self.manager):
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
"You must be a Self-Coach user or higher to create a planned session"
|
"You must be a Self-Coach user or higher to create a planned session"
|
||||||
@@ -3108,6 +3111,8 @@ class VirtualRace(PlannedSession):
|
|||||||
if self.evaluation_closure < enddatetime: # pragma: no cover
|
if self.evaluation_closure < enddatetime: # pragma: no cover
|
||||||
self.evaluation_closure = enddatetime + timezone.timedelta(days=1)
|
self.evaluation_closure = enddatetime + timezone.timedelta(days=1)
|
||||||
|
|
||||||
|
kwargs['is_virtualevent'] = True
|
||||||
|
|
||||||
super(VirtualRace, self).save(*args, **kwargs)
|
super(VirtualRace, self).save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import rowers.courses as courses
|
|||||||
import rowers.tasks as tasks
|
import rowers.tasks as tasks
|
||||||
from rowers.views.racesviews import *
|
from rowers.views.racesviews import *
|
||||||
from rowers.utils import calculate_age
|
from rowers.utils import calculate_age
|
||||||
from rowers.views import addmanual_view, virtualevent_compare_view
|
from rowers.views import addmanual_view, virtualevent_compare_view, virtualevent_create_view, fastestvirtualevent_create_view
|
||||||
|
|
||||||
from django.contrib.messages.storage.fallback import FallbackStorage
|
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||||
from django.contrib.sessions.middleware import SessionMiddleware
|
from django.contrib.sessions.middleware import SessionMiddleware
|
||||||
@@ -469,6 +469,62 @@ class ChallengesTest(TestCase):
|
|||||||
|
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
@patch('django.contrib.gis.geoip2.GeoIP2.city', side_effect=mocked_requests)
|
||||||
|
def test_fastestrace_create_view(self, mock_get):
|
||||||
|
self.u.rower.rowerplan = 'basic'
|
||||||
|
self.u.rower.save()
|
||||||
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
url = reverse('fastestvirtualevent_create_view')
|
||||||
|
response = self.c.get(url)
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
startdate = arrow.get(datetime.datetime.now()-datetime.timedelta(days=1)).datetime.date()
|
||||||
|
start_time = timezone.now().time()
|
||||||
|
enddate = startdate+datetime.timedelta(days=5)
|
||||||
|
end_time = start_time
|
||||||
|
evaluation_closure = startdate+datetime.timedelta(days=6)
|
||||||
|
registration_closure = evaluation_closure
|
||||||
|
|
||||||
|
|
||||||
|
form_data = {
|
||||||
|
'name': 'test 2',
|
||||||
|
'startdate': startdate.strftime("%Y-%m-%d"),
|
||||||
|
'initial-startdate': startdate.strftime("%Y-%m-%d"),
|
||||||
|
'start_time': '13:12:14',
|
||||||
|
'enddate': enddate.strftime("%Y-%m-%d"),
|
||||||
|
'initial-enddate': enddate.strftime("%Y-%m-%d"),
|
||||||
|
'end_time': '13:12:16',
|
||||||
|
'timezone': 'US/Pacific',
|
||||||
|
'sessionvalue': '2000',
|
||||||
|
'sessionunit': 'm',
|
||||||
|
'registration_form': 'manual',
|
||||||
|
'registration_closure_0': registration_closure.strftime("%Y-%m-%d"),
|
||||||
|
'registration_closure_1': registration_closure.strftime("%H:%M:%S"),
|
||||||
|
'evaluation_closure_0': evaluation_closure.strftime("%Y-%m-%d"),
|
||||||
|
'evaluation_closure_1': evaluation_closure.strftime("%H:%M:%S"),
|
||||||
|
'comment': 'no comment',
|
||||||
|
'coursestandards': '',
|
||||||
|
'contact_phone': '+3164805181',
|
||||||
|
'contact_email': 'test@rowsandall.com',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
form = IndoorVirtualRaceForm(form_data)
|
||||||
|
if not form.is_valid():
|
||||||
|
print(form.cleaned_data)
|
||||||
|
print(form.errors)
|
||||||
|
self.assertTrue(form.is_valid())
|
||||||
|
|
||||||
|
response = self.c.post(url, form_data, follow=True)
|
||||||
|
|
||||||
|
expected_url = reverse('virtualevents_view')
|
||||||
|
|
||||||
|
self.assertRedirects(response, expected_url=expected_url, status_code=302, target_status_code=200)
|
||||||
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
|
|
||||||
@patch('django.contrib.gis.geoip2.GeoIP2.city', side_effect=mocked_requests)
|
@patch('django.contrib.gis.geoip2.GeoIP2.city', side_effect=mocked_requests)
|
||||||
def test_fastestrace_view(self, mock_get):
|
def test_fastestrace_view(self, mock_get):
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user