Private
Public Access
1
0

first version of race create form

This commit is contained in:
Sander Roosendaal
2018-04-13 15:18:57 +02:00
parent be1f17fde3
commit 0531ec0395
9 changed files with 161 additions and 8 deletions

View File

@@ -6,7 +6,7 @@ from .models import (
Rower, Workout,GraphImage,FavoriteChart,SiteAnnouncement,
Team,TeamInvite,TeamRequest,
WorkoutComment,C2WorldClassAgePerformance,PlannedSession,
GeoCourse,GeoPolygon,GeoPoint,
GeoCourse,GeoPolygon,GeoPoint,VirtualRace,
)
# Register your models here so you can use them in the Admin module
@@ -60,6 +60,8 @@ class GeoCourseAdmin(admin.ModelAdmin):
inlines = (GeoPolygonInline,)
class VirtualRaceAdmin(admin.ModelAdmin):
list_display = ('manager','name','startdate','country')
admin.site.unregister(User)
admin.site.register(User,UserAdmin)
@@ -75,3 +77,4 @@ admin.site.register(C2WorldClassAgePerformance,
C2WorldClassAgePerformanceAdmin)
admin.site.register(PlannedSession,PlannedSessionAdmin)
admin.site.register(GeoCourse, GeoCourseAdmin)
admin.site.register(VirtualRace, VirtualRaceAdmin)

View File

@@ -721,7 +721,7 @@ from rowers.models import VirtualRace,GeoCourse
def get_countries():
countries = VirtualRace.objects.order_by('country').values_list('country').distinct()
# countries = GeoCourse.objects.order_by('country').values_list('country').distinct()
countries = tuple([(c[0],c[0]) for c in countries])
return countries
class VirtualRaceSelectForm(forms.Form):

View File

@@ -10,7 +10,7 @@ from django.dispatch import receiver
from django.forms.widgets import SplitDateTimeWidget
from django.forms.extras.widgets import SelectDateWidget
from django.forms.formsets import BaseFormSet
from django.contrib.admin.widgets import AdminDateWidget
from django.contrib.admin.widgets import AdminDateWidget,AdminTimeWidget,AdminSplitDateTime
from datetimewidget.widgets import DateTimeWidget
from django.core.validators import validate_email
import os
@@ -1073,7 +1073,7 @@ class VirtualRace(PlannedSession):
contact_phone = models.CharField(validators=[phone_regex], max_length=17, blank=True)
contact_email = models.EmailField(max_length=254,blank=True,
contact_email = models.EmailField(max_length=254,
validators=[validate_email])
# Date input utility
@@ -1113,6 +1113,49 @@ class PlannedSessionForm(ModelForm):
super(PlannedSessionForm, self).__init__(*args, **kwargs)
self.fields['course'].queryset = GeoCourse.objects.all().order_by("country","name")
class VirtualRaceForm(ModelForm):
course = forms.ModelChoiceField(queryset = GeoCourse.objects, empty_label=None)
registration_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=False)
evaluation_closure = forms.SplitDateTimeField(widget=AdminSplitDateTime(),required=False)
class Meta:
model = VirtualRace
fields = [
'name',
'startdate',
'start_time',
'enddate',
'end_time',
'has_registration',
'registration_closure',
'evaluation_closure',
'course',
'comment',
'contact_phone',
'contact_email',
]
dateTimeOptions = {
'format': 'yyyy-mm-dd',
'autoclose': True,
}
widgets = {
'comment': forms.Textarea,
'startdate': AdminDateWidget(),
'enddate': AdminDateWidget(),
'start_time': AdminTimeWidget(),
'end_time': AdminTimeWidget(),
'registration_closure':AdminSplitDateTime(),
'evaluation_closure':AdminSplitDateTime(),
}
def __init__(self,*args,**kwargs):
super(VirtualRaceForm, self).__init__(*args, **kwargs)
self.fields['course'].queryset = GeoCourse.objects.all().order_by("country","name")
class PlannedSessionFormSmall(ModelForm):
class Meta:

View File

@@ -0,0 +1,38 @@
{% extends "base.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}New Virtual Race{% endblock %}
{% block content %}
<div class="grid_12 alpha">
<div class="grid_8 alpha">
<h1>New Virtual Race</h1>
<form enctype="multipart/form-data" action="{{ formloc }}" method="post">
{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}
<table>
{{ form.as_table }}
</table>
{% csrf_token %}
<div id="formbutton" class="grid_1 prefix_4 suffix_1">
<input class="button green" type="submit" value="Save">
</div>
</form>
</div>
</div>
<div class="grid_6 prefix_6" id="id_guidance">
</div>
{% endblock %}
{% block scripts %}
{% endblock %}

View File

@@ -10,7 +10,15 @@
{% block content %}
<div class="grid_12">
<div class="grid_12 alpha">
<div class="grid_2 alpha suffix_10">
<p>
<a class="button green small" href="/rowers/virtualevent/create">Add Race</a>
</p>
</div>
</div>
<div class="grid_12 alpha">
<form>
{{ form.as_table }}
</form>

View File

@@ -144,6 +144,7 @@ urlpatterns = [
url(r'^u/(?P<userid>\d+)/list-workouts/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.workouts_view),
url(r'^list-workouts/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.workouts_view),
url(r'^virtualevents$',views.virtualevents_view),
url(r'^virtualevent/create$',views.virtualevent_create_view),
url(r'^list-workouts/$',views.workouts_view),
url(r'^list-courses/$',views.courses_view),
url(r'^courses/upload$',views.course_upload_view),

View File

@@ -34,7 +34,7 @@ from rowers.forms import (
WorkFlowLeftPanelElement,WorkFlowMiddlePanelElement,
LandingPageForm,PlannedSessionSelectForm,WorkoutSessionSelectForm,
PlannedSessionTeamForm,PlannedSessionTeamMemberForm,
VirtualRaceSelectForm,
VirtualRaceSelectForm
)
from django.core.urlresolvers import reverse
from django.core.exceptions import PermissionDenied
@@ -67,6 +67,7 @@ from rowers.models import (
WorkoutComment,WorkoutCommentForm,RowerExportForm,
CalcAgePerformance,PowerTimeFitnessMetric,PlannedSessionForm,
PlannedSessionFormSmall,GeoCourseEditForm,VirtualRace,
VirtualRaceForm,
)
from rowers.models import (
FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement,BasePlannedSessionFormSet
@@ -13302,3 +13303,62 @@ def virtualevents_view(request):
'form':form,
}
)
def virtualevent_create_view(request):
r = getrower(request.user)
if request.method == 'POST':
racecreateform = VirtualRaceForm(request.POST)
if racecreateform.is_valid():
cd = racecreateform.cleaned_data
startdate = cd['startdate']
start_time = cd['start_time']
enddate = cd['enddate']
end_time = cd['end_time']
comment = cd['comment']
course = cd['course']
name = cd['name']
has_registration = cd['has_registration']
registration_closure = cd['registration_closure']
evaluation_closure = cd['evaluation_closure']
contact_phone = cd['contact_phone']
contact_email = cd['contact_email']
geocourse = GeoCourse.objects.get(id= course.id)
vs = VirtualRace(
name=name,
startdate=startdate,
preferreddate = startdate,
start_time = start_time,
enddate=enddate,
end_time=end_time,
course=geocourse,
comment=comment,
sessiontype = 'coursetest',
has_registration=has_registration,
evaluation_closure=evaluation_closure,
registration_closure=registration_closure,
contact_phone=contact_phone,
contact_email=contact_email,
country = course.country,
manager=request.user,
)
vs.save()
url = reverse(virtualevents_view)
return HttpResponseRedirect(url)
else:
racecreateform = VirtualRaceForm()
return render(request,'virtualeventcreate.html',
{
'form':racecreateform,
'rower':r,
})