first version of race create form
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
38
rowers/templates/virtualeventcreate.html
Normal file
38
rowers/templates/virtualeventcreate.html
Normal 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 %}
|
||||
@@ -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>
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user