diff --git a/rowers/templates/export.html b/rowers/templates/export.html index 6ccd0bb6..b01ee514 100644 --- a/rowers/templates/export.html +++ b/rowers/templates/export.html @@ -15,7 +15,12 @@ Edit Workout

-
+
+

+ Workflow View +

+
+

Advanced Edit

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 @@ +
+

+ Delete +

+
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 @@ +
+
+
+ Share +
+
+
+ +
+ + 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 @@ +
+
+ Share +
+
+
+

 

+ +
+ + 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', {