finally making admin widgets work
This commit is contained in:
@@ -1042,7 +1042,12 @@ def checkaccessplanuser(user,rower):
|
|||||||
if rower == r:
|
if rower == r:
|
||||||
return True
|
return True
|
||||||
team_managers = [t.manager for t in rower.team.all() if t.manager.rower.rowerplan in ['plan','coach']]
|
team_managers = [t.manager for t in rower.team.all() if t.manager.rower.rowerplan in ['plan','coach']]
|
||||||
return user in team_managers
|
if user.rower.rowerplan != 'basic':
|
||||||
|
return user in team_managers
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return False
|
||||||
except Rower.DoesNotExist:
|
except Rower.DoesNotExist:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td> {{ workout.date|date:"Y-m-d" }} </td>
|
<td> {{ workout.date|date:"Y-m-d" }} </td>
|
||||||
<td> {{ workout.starttime|date:"H:i" }} </td>
|
<td> {{ workout.starttime|date:"H:i" }} </td>
|
||||||
{% if workout.user.user == user or user == team.manager %}
|
{% if workout|may_edit:request %}
|
||||||
{% if workout.name != '' %}
|
{% if workout.name != '' %}
|
||||||
<td>
|
<td>
|
||||||
<a href={% url rower.defaultlandingpage id=workout.id|encode %}>
|
<a href={% url rower.defaultlandingpage id=workout.id|encode %}>
|
||||||
@@ -215,18 +215,27 @@
|
|||||||
<td> {{ workout.maxhr }} </td>
|
<td> {{ workout.maxhr }} </td>
|
||||||
{% if team %}
|
{% if team %}
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
|
{% if workout|may_edit:request %}
|
||||||
<a class="small" href="/rowers/{{ workout.user.id }}/list-workouts/">
|
<a class="small" href="/rowers/{{ workout.user.id }}/list-workouts/">
|
||||||
{{ workout.user.user.first_name }}
|
{{ workout.user.user.first_name }}
|
||||||
{{ workout.user.user.last_name }}
|
{{ workout.user.user.last_name }}
|
||||||
</a>
|
</a>
|
||||||
|
{% else %}
|
||||||
|
{{ workout.user.user.first_name }}
|
||||||
|
{{ workout.user.user.last_name }}
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td>
|
<td>
|
||||||
|
{% if workout|may_edit:request %}
|
||||||
<a class="small"
|
<a class="small"
|
||||||
href="/rowers/workout/{{ workout.id|encode }}/edit/"
|
href="/rowers/workout/{{ workout.id|encode }}/edit/"
|
||||||
title="Edit">
|
title="Edit">
|
||||||
<i class="fas fa-pencil-alt fa-fw"></i>
|
<i class="fas fa-pencil-alt fa-fw"></i>
|
||||||
</a>
|
</a>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="small"
|
<a class="small"
|
||||||
@@ -236,17 +245,25 @@
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
{% if workout|may_edit:request %}
|
||||||
<a class="small"
|
<a class="small"
|
||||||
href="/rowers/workout/{{ workout.id|encode }}/stats/"
|
href="/rowers/workout/{{ workout.id|encode }}/stats/"
|
||||||
title="Stats">
|
title="Stats">
|
||||||
<i class="fal fa-table fa-fw"></i>
|
<i class="fal fa-table fa-fw"></i>
|
||||||
</a>
|
</a>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
{% if workout.user.user == user or user == team.manager %}
|
||||||
<a class="small" href="/rowers/workout/{{ workout.id|encode }}/delete/"
|
<a class="small" href="/rowers/workout/{{ workout.id|encode }}/delete/"
|
||||||
title="Delete">
|
title="Delete">
|
||||||
<i class="fas fa-trash-alt fa-fw"></i>
|
<i class="fas fa-trash-alt fa-fw"></i>
|
||||||
</a>
|
</a>
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -548,6 +548,7 @@ def plannedsession_multicreate_view(request,
|
|||||||
|
|
||||||
# Manager creates sessions for entire team
|
# Manager creates sessions for entire team
|
||||||
@user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
|
@user_passes_test(hasplannedsessions,login_url="/rowers/paidplans/",
|
||||||
|
message="This functionality requires a Coach or Self-Coach plan",
|
||||||
redirect_field_name=None)
|
redirect_field_name=None)
|
||||||
def plannedsession_teamcreate_view(request,
|
def plannedsession_teamcreate_view(request,
|
||||||
teamid=0,userid=0):
|
teamid=0,userid=0):
|
||||||
@@ -716,6 +717,7 @@ def plannedsession_teamcreate_view(request,
|
|||||||
|
|
||||||
# Manager edits sessions for entire team
|
# Manager edits sessions for entire team
|
||||||
@user_passes_test(iscoachmember,login_url="/rowers/paidplans/",
|
@user_passes_test(iscoachmember,login_url="/rowers/paidplans/",
|
||||||
|
message="This functionality requires a Coach or Self-Coach plan",
|
||||||
redirect_field_name=None)
|
redirect_field_name=None)
|
||||||
def plannedsession_teamedit_view(request,
|
def plannedsession_teamedit_view(request,
|
||||||
sessionid=0,userid=0):
|
sessionid=0,userid=0):
|
||||||
|
|||||||
@@ -856,7 +856,7 @@ def virtualevent_compare_view(request,id=0):
|
|||||||
workouts = []
|
workouts = []
|
||||||
for id in workoutids:
|
for id in workoutids:
|
||||||
try:
|
try:
|
||||||
workouts.append(Workout.objects.get(id=encode.decode_hex(id)))
|
workouts.append(Workout.objects.get(id=id))
|
||||||
except Workout.DoesNotExist:
|
except Workout.DoesNotExist:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ urlpatterns += [
|
|||||||
url(r'^twitter\_callback',rowersviews.rower_process_twittercallback),
|
url(r'^twitter\_callback',rowersviews.rower_process_twittercallback),
|
||||||
url(r'^i18n/', include('django.conf.urls.i18n')),
|
url(r'^i18n/', include('django.conf.urls.i18n')),
|
||||||
url(r'^tz_detect/', include('tz_detect.urls')),
|
url(r'^tz_detect/', include('tz_detect.urls')),
|
||||||
|
url(r'^jsi18n/', 'django.views.i18n.javascript_catalog',name='jsi18n'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<title>{% block title %}Rowsandall Rowing Data Analytics{% endblock %}</title>
|
<title>{% block title %}Rowsandall Rowing Data Analytics{% endblock %}</title>
|
||||||
{% block scripts %} {% endblock %}
|
{% block scripts %} {% endblock %}
|
||||||
|
|
||||||
<script type="text/javascript" src="/admin/jsi18n/"></script>
|
<script type="text/javascript" src="/jsi18n/"></script>
|
||||||
<script type="text/javascript" src="/static/admin/js/core.js"></script>
|
<script type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||||
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||||
@@ -31,7 +31,9 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="/static/css/bokeh-0.12.3.min.css" type="text/css" />
|
<link rel="stylesheet" href="/static/css/bokeh-0.12.3.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="/static/css/bokeh-widgets-0.12.3.min.css" type="text/css" />
|
<link rel="stylesheet" href="/static/css/bokeh-widgets-0.12.3.min.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css"/>
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
|
||||||
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon" />
|
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon" />
|
||||||
<link rel="icon" sizes="32x32" href="/static/img/favicon-32x32.png" type="image/png"/>
|
<link rel="icon" sizes="32x32" href="/static/img/favicon-32x32.png" type="image/png"/>
|
||||||
<link rel="icon" sizes="64x64" href="/static/img/favicon-64x64.png" type="image/png"/>
|
<link rel="icon" sizes="64x64" href="/static/img/favicon-64x64.png" type="image/png"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user