working but not passing test_analysis
This commit is contained in:
@@ -1183,14 +1183,16 @@ def plannedsessions_view(request,
|
||||
'unmatchedworkouts':unmatchedworkouts,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def plannedsessions_print_view(request,userid=0):
|
||||
@allow_shares
|
||||
#@login_required()
|
||||
def plannedsessions_print_view(request,userid=0,startdatestring='',enddatestring=''):
|
||||
|
||||
r = getrequestplanrower(request,userid=userid)
|
||||
|
||||
|
||||
|
||||
startdate,enddate = get_dates_timeperiod(request)
|
||||
startdate,enddate = get_dates_timeperiod(request,startdatestring=startdatestring,
|
||||
enddatestring=enddatestring)
|
||||
|
||||
try:
|
||||
trainingplan = TrainingPlan.objects.filter(
|
||||
|
||||
@@ -83,6 +83,7 @@ from django.core.exceptions import PermissionDenied
|
||||
from django.template import RequestContext
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.conf import settings
|
||||
from django.urls import resolve
|
||||
from django.utils.datastructures import MultiValueDictKeyError
|
||||
from django.utils import timezone,translation
|
||||
from django.core.mail import send_mail, BadHeaderError
|
||||
@@ -112,7 +113,7 @@ from rowers.models import (
|
||||
RaceLogo,RowerBillingAddressForm,PaidPlan,
|
||||
AlertEditForm, ConditionEditForm,
|
||||
PlannedSessionComment,CoachRequest,CoachOffer,
|
||||
VideoAnalysis
|
||||
VideoAnalysis,ShareKey,
|
||||
)
|
||||
from rowers.models import (
|
||||
RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm,
|
||||
@@ -251,11 +252,62 @@ from rq.exceptions import NoSuchJobError
|
||||
from rq.registry import StartedJobRegistry
|
||||
from rq import Queue,cancel_job
|
||||
|
||||
from django.utils.crypto import get_random_string
|
||||
|
||||
from django.core.cache import cache
|
||||
from django_mailbox.models import Message,Mailbox,MessageAttachment
|
||||
|
||||
from rules.contrib.views import permission_required, objectgetter
|
||||
|
||||
# creating shareable views
|
||||
def allow_shares(view_func):
|
||||
def sharify(request, *args, **kwargs):
|
||||
shared = kwargs.get('__shared', None)
|
||||
if shared is not None:
|
||||
del kwargs["__shared"]
|
||||
request.session['shared'] = True
|
||||
return view_func(request, *args, **kwargs)
|
||||
else: return login_required(view_func)(request, *args, **kwargs)
|
||||
return sharify
|
||||
|
||||
class SharifyError(Exception):
|
||||
pass
|
||||
|
||||
def sharedPage(request, key):
|
||||
try:
|
||||
try:
|
||||
shareKey = ShareKey.objects.get(pk=key)
|
||||
except:
|
||||
raise SharifyError
|
||||
if shareKey.expired:
|
||||
raise SharifyError
|
||||
func, args, kwargs = resolve(shareKey.location)
|
||||
kwargs["__shared"] = True
|
||||
return func(request, *args, **kwargs)
|
||||
except SharifyError:
|
||||
raise Http404 # or add a more detailed error page. This either means that the key doesn’t exist or is expired.
|
||||
|
||||
def createShareURL(request):
|
||||
if request.method == 'POST':
|
||||
url = request.POST['url']
|
||||
ndays = int(request.POST['ndays'])
|
||||
key = ShareKey.objects.create(pk=get_random_string(40),
|
||||
expiration_seconds=60*60*24*ndays,
|
||||
location = url)
|
||||
key.save()
|
||||
return render(request, 'share.html', {"key":key})
|
||||
else:
|
||||
raise Http404
|
||||
|
||||
def createShareModel(request, model_id):
|
||||
task = MyModel.objects.get(pk=model_id)
|
||||
key = ShareKey.objects.create(pk=get_random_string(40),
|
||||
expiration_seconds=60*60*24, # 1 day
|
||||
location = task.get_absolute_url(),
|
||||
)
|
||||
key.save()
|
||||
return render(request, 'share.html', {"key":key})
|
||||
|
||||
# Utility to get stroke data in a JSON response
|
||||
class JSONResponse(HttpResponse):
|
||||
def __init__(self, data, **kwargs):
|
||||
@@ -439,6 +491,9 @@ def getrequestplanrower(request,rowerid=0,userid=0,notpermanent=False):
|
||||
except Rower.DoesNotExist:
|
||||
raise Http404("Rower doesn't exist")
|
||||
|
||||
if 'shared' in request.session and request.session['shared']:
|
||||
return r
|
||||
|
||||
if r.user != request.user and not can_plan_user(request.user,r ):
|
||||
request.session['rowerid'] = r.id
|
||||
raise PermissionDenied("You have no access to this user")
|
||||
|
||||
Reference in New Issue
Block a user