Skip to content

Commit 52e8e39

Browse files
committed
update coach/client pages for Physical Measurements
1 parent 6a5f9e7 commit 52e8e39

8 files changed

+178
-125
lines changed

app.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
# Views
66
from main import Main
77
from login import Login
8-
from physical import Physical, Embedgform
9-
from about import About
8+
from physical import Physical, Embedgform, coachPhysical, clientPhysical
9+
# from about import About
1010
# from plans import Plans
1111
from charts import Charts
1212
from d3charts import d3Charts,dcCharts
@@ -51,14 +51,14 @@
5151
app.add_url_rule('/login/',
5252
view_func=Login.as_view('login'),
5353
methods=["GET", "POST"])
54-
# app.add_url_rule('/plans/',
55-
# view_func=Plans.as_view('plans'),
56-
# methods=["GET", "POST"])
5754
app.add_url_rule('/physical/',
5855
view_func=Physical.as_view('physical'),
5956
methods=["GET", "POST"])
60-
app.add_url_rule('/about/',
61-
view_func=About.as_view('about'),
57+
app.add_url_rule('/coach/physical/',
58+
view_func=coachPhysical.as_view('coach-physical'),
59+
methods=["GET", "POST"])
60+
app.add_url_rule('/client/physical/',
61+
view_func=clientPhysical.as_view('client-physical'),
6262
methods=["GET", "POST"])
6363
app.add_url_rule('/charts/',
6464
view_func=Charts.as_view('charts'),

physical.py

+16
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@ def get(self, page="physical"):
1010
return flask.render_template(page)
1111
flask.abort(404)
1212

13+
class coachPhysical(flask.views.MethodView):
14+
@utils.login_required
15+
def get(self, page="coach-physical"):
16+
page += ".html"
17+
if os.path.isfile('templates/' + page):
18+
return flask.render_template(page)
19+
flask.abort(404)
20+
21+
class clientPhysical(flask.views.MethodView):
22+
@utils.login_required
23+
def get(self, page="client-physical"):
24+
page += ".html"
25+
if os.path.isfile('templates/' + page):
26+
return flask.render_template(page)
27+
flask.abort(404)
28+
1329
class Embedgform(flask.views.MethodView):
1430
@utils.login_required
1531
def get(self, page="embedgform"):

requirements.txt

+4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
Flask==0.10.1
2+
Flask-Classy==0.6.3
23
Flask-Mail==0.8.2
34
Flask-OAuth==0.12
45
Flask-WTF==0.8.3
56
Jinja2==2.7
67
MarkupSafe==0.18
8+
Paste==1.7.5.1
79
WTForms==1.0.4
10+
WebOb==1.2.3
811
Werkzeug==0.9.1
912
argparse==1.2.1
1013
blinker==1.2
@@ -19,4 +22,5 @@ oauth2==1.5.211
1922
pymongo==2.5.2
2023
python-gflags==2.0
2124
verlib==0.1
25+
webapp2==2.5.2
2226
wsgiref==0.1.2

templates/base.html

+43-12
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,69 @@
1515
{% block navbar %}
1616
<!-- Headers with navigation -->
1717
<div class="navbar navbar-fixed-top">
18-
<div class="navbar-inner">
1918
<div class="container-fluid">
2019
<a class="brand" href="/"><img src="/static/img/optmelogo.png" alt="OptMeLogo" height="24"></a>
2120
<div class="nav-collapse">
2221
<ul class="nav">
2322
</ul>
2423
{% block navbar_right %}
2524
<ul class="nav pull-right">
26-
<li><a href="/">Welcome</a></li>
27-
<!-- <li><a href="{{url_for('main')}}">Main</a></li> -->
25+
<!-- <li><a href="/">Welcome</a></li>
26+
--><!-- <li><a href="{{url_for('main')}}">Main</a></li> -->
2827
{% if 'usr' in session %}
29-
<li><a href="{{url_for('login')}}">logout</a></li>
30-
<li><a href="{{url_for('physical')}}">Physical Activity</a></li>
31-
<!-- <li><a href="{{url_for('charts')}}">Google Charts</a></li>
32-
<li><a href="{{url_for('d3charts')}}">D3 Charts</a></li>
33-
--> {% else %}
28+
<!-- <li><a href="{{url_for('login')}}">logout</a></li> -->
29+
<form action="{{url_for('login')}}" method="post">
30+
<button type="submit" name="logout" value="logout" class="btn">logout</button>
31+
</form>
32+
{% else %}
3433
<li><a href="{{url_for('login')}}">login</a></li>
3534
{% endif %}
3635
</ul>
3736
{% endblock %}
3837
</div>
3938
</div>
40-
</div>
4139
</div>
4240
{% endblock %}
4341
<!-- End TOP navbar -->
4442

4543
<div class="container page">
44+
{% if 'usr' in session %}
45+
<!-- Begin NavTabs -->
46+
<ul class="nav nav-tabs">
47+
<!-- Tab: Welcome -->
48+
<li class="active"><a href="{{url_for('main')}}">Welcome</a></li>
49+
<!-- Tab: Physical Measurements -->
50+
<li class="dropdown">
51+
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
52+
Physical Measurements
53+
<span class="caret"></span>
54+
</a>
55+
<ul class="dropdown-menu">
56+
<li><a href="{{url_for('coach-physical')}}">Coach Page</a></li>
57+
<li><a href="{{url_for('client-physical')}}">Client Page</a></li>
58+
</ul>
59+
</li>
60+
61+
<!-- Tab: Physical Measurements -->
62+
<li><a href="#">Physical Activity</a></li>
63+
<li><a href="#">Nutrition</a></li>
64+
<li><a href="#">Cardiovascular Health</a></li>
65+
<li><a href="#">Blood Work</a></li>
66+
<li><a href="#">Aging</a></li>
67+
</ul>
68+
{% endif %}
69+
<!-- End NavTabs -->
70+
71+
<!-- Begin Content -->
4672
<div class="row-fluid">
73+
<!-- Content block -->
4774
{% block content %}
48-
Content place holder
75+
{% endblock %}
76+
<!-- Comment block for custom coach vs. client view -->
77+
{% block comments %}
4978
{% endblock %}
5079
</div>
51-
</div>
80+
<!-- End Content -->
5281

5382
<!-- Flashing message -->
5483
<div id="flashed">
@@ -64,8 +93,10 @@
6493
</footer>
6594
{% endblock %}
6695
</div>
96+
</div>
97+
<!-- End Container -->
98+
6799
<script src="http://code.jquery.com/jquery-latest.js"></script>
68100
<script src="js/bootstrap.min.js"></script>
69-
70101
</body>
71102
</html>

templates/client-physical.html

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{% extends "physical.html" %}
2+
{% block comments %}
3+
<div class="span6">
4+
<h4> Notes from Your Coach </h4>
5+
<div>
6+
<!-- Coach response -->
7+
<p id='client'></p>
8+
<p id='results'></p>
9+
<script id='script'>
10+
localStorage.clear();
11+
var repo_url = "https://docs.google.com/spreadsheet/pub?key=";
12+
var key = "0AvOHpkjVVc0ldEFqTTBwbUlyQ2RiZUpscnJsVjNhNnc";
13+
var output = "&output=html"
14+
var source_url = repo_url + key + output;
15+
var url_parameter = document.location.search.split(/\?url=/)[1]
16+
var url = url_parameter || source_url;
17+
var googleSpreadsheet = new GoogleSpreadsheet();
18+
googleSpreadsheet.url(url);
19+
googleSpreadsheet.load(function(result) {
20+
var formdata = result.data;
21+
var ncol = 4;
22+
var fncidx = formdata.indexOf('Client First Name');
23+
var lncidx = formdata.indexOf('Client Last Name');
24+
var nrow = (formdata.length/ncol);
25+
var clidx = 0;
26+
var fnvalpos = ncol*(clidx+1) + fncidx;
27+
var lnvalpos = ncol*(clidx+1) + lncidx;
28+
var fnval = formdata[fnvalpos];
29+
var lnval = formdata[lnvalpos];
30+
console.log(result);
31+
console.log(fnval + lnval);
32+
33+
$('#client').html(JSON.stringify(
34+
'Welcome back ' + formdata[fnvalpos] +
35+
'. Here is your weekly recommendations')
36+
.replace(/,/g,",\n"));
37+
38+
$('#results').html(JSON.stringify(formdata[7]).replace(/,/g,",\n"));
39+
});
40+
</script>
41+
<script>
42+
$('#iframe').attr("src",url);
43+
$('input[name]').val(url);
44+
</script>
45+
</div>
46+
</div>
47+
{% endblock %}

templates/coach-physical.html

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{% extends "physical.html" %}
2+
{% block comments %}
3+
<div class="span6">
4+
<h4> Recommendations to Client</h4>
5+
<div>
6+
<iframe src="{{url_for('embedgform')}}" width="760" height="500" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
7+
</div>
8+
9+
</div>
10+
{% endblock %}

templates/embedgform.html

+2-16
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,6 @@
1212

1313
<body class="ss-base-body" dir="ltr">
1414
<div class="ss-form-container">
15-
<!-- <div class="ss-top-of-page">
16-
<div class="ss-form-heading">
17-
<h3 class="ss-form-title" dir="ltr">Follow-up visit</h3>
18-
<hr class="ss-email-break" style="display:none;">
19-
</div>
20-
</div>
21-
-->
2215
<div class="ss-form">
2316
<form action="https://docs.google.com/forms/d/1ir5d8jD_Dje71OFC8ozULxhdzwtEif9OEU6z2jgShCg/formResponse?embedded=true" method="POST" id="ss-form" target="_self" onsubmit="">
2417
<ol style="padding-left: 0">
@@ -62,7 +55,7 @@ <h3 class="ss-form-title" dir="ltr">Follow-up visit</h3>
6255
<div dir="ltr" class="ss-item ss-paragraph-text">
6356
<div class="ss-form-entry">
6457
<label class="ss-q-item-label" for="entry_1593116849">
65-
<div class="ss-q-title">Coach's Notes
58+
<div class="ss-q-title">Recommendations:
6659
</div>
6760
<div class="ss-q-help ss-secondary-text" dir="ltr">
6861

@@ -74,20 +67,13 @@ <h3 class="ss-form-title" dir="ltr">Follow-up visit</h3>
7467
</div>
7568
</div>
7669
</div>
77-
<!-- <input type="hidden" name="draftResponse" value="[]">
78-
<input type="hidden" name="pageHistory" value="0">
79-
-->
8070
<div class="ss-item ss-navigate">
8171
<table id="navigation-table">
8272
<tbody>
8373
<tr>
84-
<!-- Submit Button -->
85-
<!-- <td class="ss-form-entry goog-inline-block" id="navigation-buttons" dir="ltr">
86-
<input type="submit" name="submit" value="Submit" id="ss-submit">
87-
</td> -->
8874
<!-- Submit Button -->
8975
<td class="ss-form-entry goog-inline-block" id="navigation-buttons" dir="ltr">
90-
<button type="submit" name="submit" value="Submit" id="ss-submit" class="btn">Click to Submit</button>
76+
<button type="submit" name="submit" value="Submit" id="ss-submit" class="btn">Submit recommendation</button>
9177
</td>
9278
</tr>
9379
</tbody>

0 commit comments

Comments
 (0)