implemented most of Mike's suggestions
This commit is contained in:
@@ -15,7 +15,12 @@
|
||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_2 suffix_2 omega">
|
||||
<div class="grid_2">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/workflow">Workflow View</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_2 omega">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
||||
</p>
|
||||
|
||||
5
rowers/templates/panel_delete.html
Normal file
5
rowers/templates/panel_delete.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<div class="grid_2 alpha">
|
||||
<p>
|
||||
<a class="button red small" href="/rowers/workout/{{ workout.id }}/deleteconfirm">Delete</a>
|
||||
</p>
|
||||
</div>
|
||||
5
rowers/templates/panel_export.html
Normal file
5
rowers/templates/panel_export.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<div class="grid_2 alpha">
|
||||
<p>
|
||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/export">Export Workout</a>
|
||||
</p>
|
||||
</div>
|
||||
14
rowers/templates/panel_middlesocial.html
Normal file
14
rowers/templates/panel_middlesocial.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="grid_9">
|
||||
<div class="grid_1 alpha">
|
||||
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
||||
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id }}">Share</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_1 suffix_7 omega">
|
||||
<a class="twitter-share-button"
|
||||
href="https://twitter.com/intent/tweet"
|
||||
data-url="https://rowsandall.com/rowers/workout/{{ workout.id }}"
|
||||
data-text="@rowsandall #rowingdata">Tweet</a>
|
||||
</div>
|
||||
|
||||
|
||||
14
rowers/templates/panel_social.html
Normal file
14
rowers/templates/panel_social.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="grid_2 alpha">
|
||||
<div class="fb-share-button" data-href="https://rowsandall.com/rowers/workout/{{ workout.id }}" data-layout="button" data-size="small" data-mobile-iframe="false">
|
||||
<a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://rowsandall.com/rowers/workout/{{ workout.id }}">Share</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_2 alpha">
|
||||
<p> </p>
|
||||
<a class="twitter-share-button"
|
||||
href="https://twitter.com/intent/tweet"
|
||||
data-url="https://rowsandall.com/rowers/workout/{{ workout.id }}"
|
||||
data-text="@rowsandall #rowingdata">Tweet</a>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
{% load rowerfilters %}
|
||||
{% load tz %}
|
||||
|
||||
|
||||
{% get_current_timezone as TIME_ZONE %}
|
||||
|
||||
{% block title %}{{ workout.name }}{% endblock %}
|
||||
|
||||
28
rowers/templatetags/do_include_maybe.py
Normal file
28
rowers/templatetags/do_include_maybe.py
Normal file
@@ -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
|
||||
28
rowers/templatetags/include_maybe.py
Normal file
28
rowers/templatetags/include_maybe.py
Normal file
@@ -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
|
||||
@@ -118,7 +118,6 @@ def user_teams(user):
|
||||
return teams
|
||||
|
||||
|
||||
|
||||
@register.filter
|
||||
def has_teams(user):
|
||||
try:
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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',
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user