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>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/edit">Edit Workout</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</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>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
<a class="button gray small" href="/rowers/workout/{{ workout.id }}/advanced">Advanced Edit</a>
|
||||||
</p>
|
</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 rowerfilters %}
|
||||||
{% load tz %}
|
{% load tz %}
|
||||||
|
|
||||||
|
|
||||||
{% get_current_timezone as TIME_ZONE %}
|
{% get_current_timezone as TIME_ZONE %}
|
||||||
|
|
||||||
{% block title %}{{ workout.name }}{% endblock %}
|
{% 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
|
return teams
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def has_teams(user):
|
def has_teams(user):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ workflowmiddlepanel = (
|
|||||||
('panel_summary.html','Summary'),
|
('panel_summary.html','Summary'),
|
||||||
('panel_map.html','Map'),
|
('panel_map.html','Map'),
|
||||||
('panel_comments.html','Basic Info and Links'),
|
('panel_comments.html','Basic Info and Links'),
|
||||||
|
('panel_middlesocial.html','Social Media Share Buttons'),
|
||||||
)
|
)
|
||||||
|
|
||||||
defaultmiddle = ['panel_statcharts.html',
|
defaultmiddle = ['panel_statcharts.html',
|
||||||
@@ -20,6 +21,9 @@ defaultmiddle = ['panel_statcharts.html',
|
|||||||
workflowleftpanel = (
|
workflowleftpanel = (
|
||||||
('panel_navigationheader.html','Navigation Header'),
|
('panel_navigationheader.html','Navigation Header'),
|
||||||
('panel_editbuttons.html','Edit Workout Button'),
|
('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_advancededit.html','Advanced Workout Edit Button'),
|
||||||
('panel_editintervals.html','Edit Intervals Button'),
|
('panel_editintervals.html','Edit Intervals Button'),
|
||||||
('panel_stats.html','Workout Statistics Button'),
|
('panel_stats.html','Workout Statistics Button'),
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from PIL import Image
|
|||||||
from numbers import Number
|
from numbers import Number
|
||||||
from django.views.generic.base import TemplateView
|
from django.views.generic.base import TemplateView
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from django import template
|
||||||
from django.db import IntegrityError, transaction
|
from django.db import IntegrityError, transaction
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import (
|
from django.http import (
|
||||||
@@ -6049,11 +6050,24 @@ def workout_workflow_view(request,id):
|
|||||||
|
|
||||||
statcharts = GraphImage.objects.filter(workout=row)
|
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,
|
return render(request,
|
||||||
'workflow.html',
|
'workflow.html',
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user