diff --git a/rowers/templates/panel_delete.html b/rowers/templates/panel_delete.html
new file mode 100644
index 00000000..1668a635
--- /dev/null
+++ b/rowers/templates/panel_delete.html
@@ -0,0 +1,5 @@
+
diff --git a/rowers/templates/panel_export.html b/rowers/templates/panel_export.html
new file mode 100644
index 00000000..543df100
--- /dev/null
+++ b/rowers/templates/panel_export.html
@@ -0,0 +1,5 @@
+
diff --git a/rowers/templates/panel_middlesocial.html b/rowers/templates/panel_middlesocial.html
new file mode 100644
index 00000000..b1c917d2
--- /dev/null
+++ b/rowers/templates/panel_middlesocial.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/rowers/templates/panel_social.html b/rowers/templates/panel_social.html
new file mode 100644
index 00000000..a1c993de
--- /dev/null
+++ b/rowers/templates/panel_social.html
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/rowers/templates/workflow.html b/rowers/templates/workflow.html
index 01a0d55c..1a632bae 100644
--- a/rowers/templates/workflow.html
+++ b/rowers/templates/workflow.html
@@ -3,7 +3,6 @@
{% load rowerfilters %}
{% load tz %}
-
{% get_current_timezone as TIME_ZONE %}
{% block title %}{{ workout.name }}{% endblock %}
diff --git a/rowers/templatetags/do_include_maybe.py b/rowers/templatetags/do_include_maybe.py
new file mode 100644
index 00000000..d6c0a39e
--- /dev/null
+++ b/rowers/templatetags/do_include_maybe.py
@@ -0,0 +1,28 @@
+from django import template
+from django.template.loader_tags import do_include
+from django.template.defaulttags import CommentNode
+register = template.Library()
+
+@register.tag('do_include_maybe')
+def do_include_maybe(parser, token):
+ "Source: http://stackoverflow.com/a/18951166/15690"
+ bits = token.split_contents()
+ if len(bits) < 2:
+ raise template.TemplateSyntaxError(
+ "%r tag takes at least one argument: "
+ "the name of the template to be included." % bits[0])
+
+ try:
+ silent_node = do_include(parser, token)
+ except template.TemplateDoesNotExist:
+ # Django < 1.7
+ return CommentNode()
+
+ _orig_render = silent_node.render
+ def wrapped_render(*args, **kwargs):
+ try:
+ return _orig_render(*args, **kwargs)
+ except template.TemplateDoesNotExist:
+ return CommentNode()
+ silent_node.render = wrapped_render
+ return silent_node
diff --git a/rowers/templatetags/include_maybe.py b/rowers/templatetags/include_maybe.py
new file mode 100644
index 00000000..3e3d2e9b
--- /dev/null
+++ b/rowers/templatetags/include_maybe.py
@@ -0,0 +1,28 @@
+from django import template
+from django.template.loader_tags import do_include
+from django.template.defaulttags import CommentNode
+register = template.Library()
+
+@register.tag('include_maybe')
+def do_include_maybe(parser, token):
+ "Source: http://stackoverflow.com/a/18951166/15690"
+ bits = token.split_contents()
+ if len(bits) < 2:
+ raise template.TemplateSyntaxError(
+ "%r tag takes at least one argument: "
+ "the name of the template to be included." % bits[0])
+
+ try:
+ silent_node = do_include(parser, token)
+ except template.TemplateDoesNotExist:
+ # Django < 1.7
+ return CommentNode()
+
+ _orig_render = silent_node.render
+ def wrapped_render(*args, **kwargs):
+ try:
+ return _orig_render(*args, **kwargs)
+ except template.TemplateDoesNotExist:
+ return CommentNode()
+ silent_node.render = wrapped_render
+ return silent_node
diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py
index 12cd75b1..123faa9e 100644
--- a/rowers/templatetags/rowerfilters.py
+++ b/rowers/templatetags/rowerfilters.py
@@ -118,7 +118,6 @@ def user_teams(user):
return teams
-
@register.filter
def has_teams(user):
try:
diff --git a/rowers/utils.py b/rowers/utils.py
index 8f2e62a8..46ce0af2 100644
--- a/rowers/utils.py
+++ b/rowers/utils.py
@@ -11,6 +11,7 @@ workflowmiddlepanel = (
('panel_summary.html','Summary'),
('panel_map.html','Map'),
('panel_comments.html','Basic Info and Links'),
+ ('panel_middlesocial.html','Social Media Share Buttons'),
)
defaultmiddle = ['panel_statcharts.html',
@@ -20,6 +21,9 @@ defaultmiddle = ['panel_statcharts.html',
workflowleftpanel = (
('panel_navigationheader.html','Navigation Header'),
('panel_editbuttons.html','Edit Workout Button'),
+ ('panel_delete.html','Delete Workout Button'),
+ ('panel_export.html','Export Workout Button'),
+ ('panel_social.html','Social Media Share Buttons'),
('panel_advancededit.html','Advanced Workout Edit Button'),
('panel_editintervals.html','Edit Intervals Button'),
('panel_stats.html','Workout Statistics Button'),
diff --git a/rowers/views.py b/rowers/views.py
index 7cbeaaf6..09238cbc 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -12,6 +12,7 @@ from PIL import Image
from numbers import Number
from django.views.generic.base import TemplateView
from django.db.models import Q
+from django import template
from django.db import IntegrityError, transaction
from django.shortcuts import render
from django.http import (
@@ -6049,11 +6050,24 @@ def workout_workflow_view(request,id):
statcharts = GraphImage.objects.filter(workout=row)
- # This will be user configurable in the future
- middleTemplates = r.workflowmiddlepanel
- leftTemplates = r.workflowleftpanel
+ middleTemplates = []
+ for t in r.workflowmiddlepanel:
+ try:
+ template.loader.get_template(t)
+ middleTemplates.append(t)
+ except template.TemplateDoesNotExist:
+ pass
+ leftTemplates = []
+ for t in r.workflowleftpanel:
+ try:
+ template.loader.get_template(t)
+ leftTemplates.append(t)
+ except template.TemplateDoesNotExist:
+ pass
+
+
return render(request,
'workflow.html',
{
From aa01ed6221c4e1c12a1a57f0d78ee1619d480a02 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Fri, 20 Oct 2017 21:38:22 +0200
Subject: [PATCH 4/5] added some explanation
---
rowers/templates/flexthumbnails.html | 1 +
rowers/templates/workflow.html | 3 ---
rowers/utils.py | 6 ++++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/rowers/templates/flexthumbnails.html b/rowers/templates/flexthumbnails.html
index 24d88ffc..e036ad44 100644
--- a/rowers/templates/flexthumbnails.html
+++ b/rowers/templates/flexthumbnails.html
@@ -1,5 +1,6 @@
{% if charts %}
Flex Charts
+Click on the thumbnails to view the full chart.
{% for chart in charts %}
{{ forloop.counter }}
diff --git a/rowers/templates/workflow.html b/rowers/templates/workflow.html
index 1a632bae..87bae1e9 100644
--- a/rowers/templates/workflow.html
+++ b/rowers/templates/workflow.html
@@ -39,9 +39,6 @@
{% include templateName %}
{% endfor %}
{% endblock %}
-
-
Click on the thumbnails to view the full chart
-
{% block middle_panel %}
diff --git a/rowers/utils.py b/rowers/utils.py
index 46ce0af2..23a04080 100644
--- a/rowers/utils.py
+++ b/rowers/utils.py
@@ -14,9 +14,11 @@ workflowmiddlepanel = (
('panel_middlesocial.html','Social Media Share Buttons'),
)
-defaultmiddle = ['panel_statcharts.html',
+defaultmiddle = ['panel_middlesocial.html',
+ 'panel_statcharts.html',
'flexthumbnails.html',
- 'panel_summary.html']
+ 'panel_summary.html',
+ 'panel_map.html']
workflowleftpanel = (
('panel_navigationheader.html','Navigation Header'),
From c1626d8252772eaa1619d18362ddcdea620762bf Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Fri, 20 Oct 2017 21:39:08 +0200
Subject: [PATCH 5/5] removed 2 unused files
---
rowers/templatetags/do_include_maybe.py | 28 -------------------------
rowers/templatetags/include_maybe.py | 28 -------------------------
2 files changed, 56 deletions(-)
delete mode 100644 rowers/templatetags/do_include_maybe.py
delete mode 100644 rowers/templatetags/include_maybe.py
diff --git a/rowers/templatetags/do_include_maybe.py b/rowers/templatetags/do_include_maybe.py
deleted file mode 100644
index d6c0a39e..00000000
--- a/rowers/templatetags/do_include_maybe.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from django import template
-from django.template.loader_tags import do_include
-from django.template.defaulttags import CommentNode
-register = template.Library()
-
-@register.tag('do_include_maybe')
-def do_include_maybe(parser, token):
- "Source: http://stackoverflow.com/a/18951166/15690"
- bits = token.split_contents()
- if len(bits) < 2:
- raise template.TemplateSyntaxError(
- "%r tag takes at least one argument: "
- "the name of the template to be included." % bits[0])
-
- try:
- silent_node = do_include(parser, token)
- except template.TemplateDoesNotExist:
- # Django < 1.7
- return CommentNode()
-
- _orig_render = silent_node.render
- def wrapped_render(*args, **kwargs):
- try:
- return _orig_render(*args, **kwargs)
- except template.TemplateDoesNotExist:
- return CommentNode()
- silent_node.render = wrapped_render
- return silent_node
diff --git a/rowers/templatetags/include_maybe.py b/rowers/templatetags/include_maybe.py
deleted file mode 100644
index 3e3d2e9b..00000000
--- a/rowers/templatetags/include_maybe.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from django import template
-from django.template.loader_tags import do_include
-from django.template.defaulttags import CommentNode
-register = template.Library()
-
-@register.tag('include_maybe')
-def do_include_maybe(parser, token):
- "Source: http://stackoverflow.com/a/18951166/15690"
- bits = token.split_contents()
- if len(bits) < 2:
- raise template.TemplateSyntaxError(
- "%r tag takes at least one argument: "
- "the name of the template to be included." % bits[0])
-
- try:
- silent_node = do_include(parser, token)
- except template.TemplateDoesNotExist:
- # Django < 1.7
- return CommentNode()
-
- _orig_render = silent_node.render
- def wrapped_render(*args, **kwargs):
- try:
- return _orig_render(*args, **kwargs)
- except template.TemplateDoesNotExist:
- return CommentNode()
- silent_node.render = wrapped_render
- return silent_node