170 lines
5.7 KiB
HTML
170 lines
5.7 KiB
HTML
<%inherit file="main.html" />
|
|
|
|
<%!
|
|
from django.core.urlresolvers import reverse
|
|
%>
|
|
|
|
<%block name="headextra">
|
|
<script type="text/javascript" src="${ settings.LIB_URL }flot/jquery.flot.min.js"></script>
|
|
<script type="text/javascript" src="${ settings.LIB_URL }flot/jquery.flot.stack.js"></script>
|
|
<script language="javascript" type="text/javascript" src="${ settings.LIB_URL }flot/jquery.flot.symbol.js"></script>
|
|
<script>
|
|
<%include file="profile_graphs.js"/>
|
|
</script>
|
|
|
|
<script>
|
|
var loc=true; // Activate on clicks? Not if already clicked.
|
|
var lang=true;
|
|
$(function() {
|
|
$("#change_location").click(function() {
|
|
$(this).hide();
|
|
|
|
log_event("profile", {"type":"location_show", "old":$("#location_sub").text()});
|
|
|
|
if(loc) {
|
|
$("#description").html('<div>'+
|
|
"Preferred format is city, state, country (so for us, "+
|
|
""Cambridge, Massachusetts, USA"), but give "+
|
|
"as much or as little detail as you want. </div>");
|
|
|
|
loc=false;
|
|
|
|
$("#location_sub").html('<input id="id_loc_text" type="text" name="loc_text" />'+
|
|
'<input type="button" id="change_loc_button" value="Change" />');
|
|
$("#change_loc_button").click(function() {
|
|
$("#change_location").show();
|
|
|
|
postJSON('/change_setting', {'location':$("#id_loc_text").attr("value")}, function(json) {
|
|
$("#location_sub").text(json.location);
|
|
loc=true;
|
|
$("#description").html("");
|
|
log_event("profile", {"type":"location_change", "new":json.location});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
$("#change_language").click(function() {
|
|
$(this).hide();
|
|
log_event("profile", {"type":"language_show", "old":$("#language_sub").text()});
|
|
|
|
if(lang) {
|
|
lang=false;
|
|
$("#language_sub").html('<input id="id_lang_text" type="text" name="lang_text" />'+
|
|
'<input type="button" id="change_lang_button" value="Change" />');
|
|
$("#change_lang_button").click(function() {
|
|
$("#change_language").show();
|
|
postJSON('/change_setting', {'language':$("#id_lang_text").attr("value")}, function(json) {
|
|
$("#language_sub").text(json.language);
|
|
lang=true;
|
|
$("#description").html("");
|
|
log_event("profile", {"type":"language_change", "new":json.language});
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
$('#change_password').click(function(){
|
|
$('.modal').trigger('click');
|
|
log_event("profile", {"type":"password_show"});
|
|
});
|
|
|
|
$('#pwd_reset_button').click(function() {
|
|
$.post('/password_reset/',{ "csrfmiddlewaretoken" : "${ csrf }",
|
|
"email" : $('#id_email').val()}, function(data){
|
|
$('#pwd_reset').html(data);
|
|
log_event("profile", {"type":"password_send"});
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
</%block>
|
|
|
|
|
|
<%include file="navigation.html" args="active_page='profile'" />
|
|
|
|
<section class="main-content">
|
|
<div class="profile-wrapper">
|
|
|
|
<section class="course-info">
|
|
<h1>Course Progress</h1>
|
|
|
|
<div id="grade-detail-graph" style="width:650px;height:200px;"></div>
|
|
|
|
<ol>
|
|
<%
|
|
lastChapter = None
|
|
%>
|
|
% for hw in homeworks:
|
|
<li>
|
|
%if hw['chapter'] != lastChapter:
|
|
<h2><a href="${reverse('courseware_chapter', args=format_url_params([hw['course'], hw['chapter']])) }">
|
|
${ hw['chapter'] }</a></h2>
|
|
<% lastChapter = hw['chapter'] %>
|
|
%else:
|
|
<h2>-</h2>
|
|
%endif
|
|
|
|
<div class="scores">
|
|
<h3><a href="${reverse('courseware_section', args=format_url_params([hw['course'], hw['chapter'], hw['section']])) }">
|
|
<%
|
|
earned = hw['section_total'][0]
|
|
total = hw['section_total'][1]
|
|
percentageString = "{0:.0%}".format( float(earned)/total) if earned > 0 else ""
|
|
%>
|
|
${ hw['section'] }</a> ${"({0}/{1}) {2}".format( earned, total, percentageString )}</h3>
|
|
${hw['subtitle']}
|
|
% if 'due' in hw and hw['due']!="":
|
|
due ${hw['due']}
|
|
% endif
|
|
|
|
<ul>
|
|
%if len(hw['scores']) > 0:
|
|
%if hw['graded']:
|
|
Problem Scores:
|
|
%else:
|
|
Practice Scores:
|
|
%endif
|
|
% for score in hw['scores']:
|
|
<li>${ score[0] }/${ score[1] }</li>
|
|
% endfor
|
|
%endif
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
% endfor
|
|
</ol>
|
|
</section>
|
|
|
|
<section class="user-info">
|
|
|
|
<h1>${name}</h1>
|
|
|
|
<ul>
|
|
<li>Forum name: <strong>${username}</strong></li>
|
|
<li>E-mail: <strong>${email}</strong></li>
|
|
<li>
|
|
Location: <div id="location_sub">${location}</div><div id="description"></div> <a href="#" id="change_location">Change</a>
|
|
</li>
|
|
<li>
|
|
Language: <div id="language_sub">${language}</div> <a href="#" id="change_language">Change</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- <div><a class="modal" href="#change_password_pop">Reset password</a></div> -->
|
|
|
|
<div id="change_password_pop">
|
|
<h2>Password change</h2>
|
|
<p>We'll e-mail you a password reset link at ${email}. Follow
|
|
the link in the confirmation email to change your
|
|
password.</p>
|
|
|
|
<input id="id_email" type="hidden" name="email" maxlength="75" value="${email}" />
|
|
<input type="submit" id="pwd_reset_button" value="Reset Password" />
|
|
</div>
|
|
|
|
</section>
|
|
</div>
|
|
</section>
|
|
|