adding race logo functionality
This commit is contained in:
161
rowers/views.py
161
rowers/views.py
@@ -83,6 +83,7 @@ from rowers.models import (
|
||||
createmicrofillers, createmesofillers,
|
||||
microcyclecheckdates,mesocyclecheckdates,macrocyclecheckdates,
|
||||
TrainingMesoCycleForm, TrainingMicroCycleForm,
|
||||
RaceLogo,
|
||||
)
|
||||
from rowers.models import (
|
||||
RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm,
|
||||
@@ -10231,7 +10232,159 @@ def workout_map_view(request,id=0):
|
||||
'mapdiv':mapdiv,
|
||||
'mayedit':mayedit,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def logo_delete_view(request,id=0):
|
||||
try:
|
||||
logo = RaceLogo.objects.get(id=id)
|
||||
except RaceLogo.DoesNotExist:
|
||||
raise Http404("Logo doesn't exist")
|
||||
|
||||
if logo.user == request.user:
|
||||
logo.delete()
|
||||
messages.info(request,"Logo Deleted")
|
||||
|
||||
url = reverse(virtualevents_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
def virtualevent_setlogo_view(request,id=0,logoid=0):
|
||||
try:
|
||||
race = VirtualRace.objects.get(id=id)
|
||||
except VirtualRace.DoesNotExist:
|
||||
raise Http404("Race doesn't exist")
|
||||
|
||||
try:
|
||||
logo = RaceLogo.objects.get(id=logoid)
|
||||
except RaceLogo.DoesNotExist:
|
||||
raise Http404("Logo doesn't exist")
|
||||
|
||||
if logo.user == request.user and race.manager == request.user:
|
||||
otherlogos = race.logos.all()
|
||||
for otherlogo in otherlogos:
|
||||
otherlogo.race.remove(race)
|
||||
|
||||
|
||||
logo.race.add(race)
|
||||
logo.save()
|
||||
else:
|
||||
message = "You do not own this race or this image"
|
||||
messages.error(request,message)
|
||||
|
||||
url = reverse(virtualevent_view,
|
||||
kwargs={'id':id})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# Image upload to virtual event
|
||||
@login_required()
|
||||
def virtualevent_uploadimage_view(request,id=0):
|
||||
is_ajax = False
|
||||
if request.is_ajax():
|
||||
is_ajax = True
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
try:
|
||||
race = VirtualRace.objects.get(id=id)
|
||||
except VirtualRace.DoesNotExist:
|
||||
raise Http404("Race doesn't exist")
|
||||
|
||||
logos = RaceLogo.objects.filter(user=request.user).order_by("-creationdatetime")
|
||||
|
||||
breadcrumbs = [
|
||||
{
|
||||
'url': reverse(virtualevents_view),
|
||||
'name': 'Racing'
|
||||
},
|
||||
{
|
||||
'url': reverse(virtualevent_view,kwargs={'id':id}),
|
||||
'name': race.name
|
||||
},
|
||||
{
|
||||
'url': reverse(virtualevent_uploadimage_view,
|
||||
kwargs={'id':id}),
|
||||
'name': 'Add Image'
|
||||
}
|
||||
]
|
||||
|
||||
if request.method == 'POST':
|
||||
if len(logos) >= 6:
|
||||
messages.error(request,"You cannot have more than 6 logos")
|
||||
url = reverse(virtualevent_imageupload_view,
|
||||
kwargs={'id':id})
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
form = ImageForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
f = form.cleaned_data['file']
|
||||
|
||||
if f is not None:
|
||||
filename, path_and_filename = handle_uploaded_image(f)
|
||||
try:
|
||||
width, height = Image.open(path_and_filename).size
|
||||
except:
|
||||
message = "Not a valid image"
|
||||
messages.error(request,message)
|
||||
os.remove(path_and_filename)
|
||||
url = reverse(virtualevent_image_view,
|
||||
kwargs={'id':id})
|
||||
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':0, 'url':0})
|
||||
else:
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
otherlogos = race.logos.all()
|
||||
for logo in otherlogos:
|
||||
logo.race.remove(race)
|
||||
|
||||
logo = RaceLogo(user = request.user,
|
||||
creationdatetime=timezone.now(),
|
||||
filename = path_and_filename,
|
||||
width=width, height=height)
|
||||
logo.save()
|
||||
logo.race.add(race)
|
||||
logo.save()
|
||||
|
||||
|
||||
url = reverse(virtualevent_view,
|
||||
kwargs={'id':id})
|
||||
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':1, 'url':url})
|
||||
else:
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
messages.error(request,"Something went wrong - no file attached")
|
||||
url = reverse(virtualevent_uploadimage_view,
|
||||
kwargs = {'id':id})
|
||||
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':0,'url':1})
|
||||
else:
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
|
||||
form = ImageForm()
|
||||
|
||||
|
||||
if is_ajax:
|
||||
return {'result':0}
|
||||
|
||||
|
||||
return render(request,'logo_form.html',
|
||||
{'form':form,
|
||||
'rower':r,
|
||||
'logos':logos,
|
||||
'active':'nav-racing',
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'race':race,
|
||||
})
|
||||
|
||||
|
||||
|
||||
# Image upload
|
||||
@login_required()
|
||||
@@ -16104,7 +16257,12 @@ def virtualevent_view(request,id=0):
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
racelogos = race.logos.all()
|
||||
|
||||
if racelogos:
|
||||
racelogo = racelogos[0]
|
||||
else:
|
||||
racelogo = None
|
||||
|
||||
return render(request,'virtualevent.html',
|
||||
{
|
||||
@@ -16117,6 +16275,7 @@ def virtualevent_view(request,id=0):
|
||||
'buttons':buttons,
|
||||
'dns':dns,
|
||||
'records':records,
|
||||
'racelogo':racelogo,
|
||||
'form':form,
|
||||
'active':'nav-racing',
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user