diff --git a/rowers/models.py b/rowers/models.py index 1ff7cb8d..c6eaf2ec 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2317,6 +2317,7 @@ class PlannedSession(models.Model): is_template = models.BooleanField(default=False) is_public = models.BooleanField(default=False) + can_be_shared = models.BooleanField(default=True) fitfile = models.FileField(upload_to=get_file_path,blank=True,null=True) #steps_json = models.TextField(max_length=10000,default=None,blank=True,null=True) diff --git a/rowers/templates/plannedsessiontemplateedit.html b/rowers/templates/plannedsessiontemplateedit.html index dc84e128..1a7456bf 100644 --- a/rowers/templates/plannedsessiontemplateedit.html +++ b/rowers/templates/plannedsessiontemplateedit.html @@ -37,9 +37,6 @@
- Click on session name to clone to current period -
| {% if ps.name != '' %} - {{ ps.name }} + {{ ps.name }} {% else %} - Unnamed Session + Unnamed Session {% endif %} | {{ ps.sessionvalue }} | diff --git a/rowers/utils.py b/rowers/utils.py index 2269d9de..a20a1333 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -919,9 +919,18 @@ def step_to_string(step): ph = pacestringhigh, ) elif targettype == 'Cadence': - value = step['targetValue'] - valuelow = step['targetValueLow'] - valuehigh = step['targetValueHigh'] + try: + value = step['targetValue'] + except KeyError: + value = 0 + try: + valuelow = step['targetValueLow'] + except KeyError: + valuelow = 0 + try: + valuehigh = step['targetValueHigh'] + except KeyError: + valuehigh = 0 if value != 0: target = 'Target: Cadence at {v} SPM'.format(v=value) diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index 39631db9..f9b4e29c 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -419,8 +419,11 @@ def plannedsession_multiclone_view( def template_share_view(request,id=0,userid=0): r = getrequestplanrower(request,userid=userid) ps = get_object_or_404(PlannedSession,pk=id) - ps.is_public = True - ps.save() + if ps.can_be_shared: + ps.is_public = True + ps.save() + else: + messages.error(request,'This planned session comes from a third party and cannot be shared') return HttpResponseRedirect(reverse(template_library_view))