tests and fixes before release
This commit is contained in:
@@ -187,7 +187,7 @@ def remove_nulls_pl(data):
|
||||
data = data.lazy().with_columns(
|
||||
pl.when(
|
||||
pl.all().is_infinite()
|
||||
).then(None).otherwise(pl.all()).keep_name()
|
||||
).then(None).otherwise(pl.all()).name.keep() # keep_name()
|
||||
)
|
||||
data = data.select(pl.all().forward_fill())
|
||||
data = data.select(pl.all().backward_fill())
|
||||
|
||||
@@ -735,6 +735,8 @@ class IntervalsIntegration(SyncIntegration):
|
||||
result = self.update_workout(id)
|
||||
except Workout.DoesNotExist:
|
||||
result = self.get_workout(id, do_async=False)
|
||||
except ValueError:
|
||||
result = self.get_workout(id, do_async=False)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -4492,7 +4492,10 @@ for name, d in rowingmetrics:
|
||||
|
||||
class Meta:
|
||||
db_table = 'strokedata'
|
||||
index_together = ['workoutid']
|
||||
#index_together = ['workoutid']
|
||||
indexes = [
|
||||
models.Index(fields=['workoutid'])
|
||||
]
|
||||
app_label = 'rowers'
|
||||
|
||||
|
||||
@@ -4517,7 +4520,10 @@ class cpdata(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = 'cpdata'
|
||||
index_together = ['user']
|
||||
#index_together = ['user']
|
||||
indexes = [
|
||||
models.Index(fields=['user'])
|
||||
]
|
||||
app_label = 'rowers'
|
||||
|
||||
|
||||
@@ -4529,7 +4535,10 @@ class cpergdata(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = 'cpergdata'
|
||||
index_together = ['user']
|
||||
#index_together = ['user']
|
||||
indexes = [
|
||||
models.Index(fields=['user'])
|
||||
]
|
||||
app_label = 'rowers'
|
||||
|
||||
|
||||
@@ -4542,7 +4551,10 @@ class ergcpdata(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = 'ergcpdata'
|
||||
index_together = ['user']
|
||||
#index_together = ['user']
|
||||
indexes = [
|
||||
models.Index(fields=['user'])
|
||||
]
|
||||
app_label = 'rowers'
|
||||
|
||||
# A wrapper around the png files
|
||||
|
||||
@@ -210,7 +210,7 @@ class WorkoutFactory(factory.DjangoModelFactory):
|
||||
|
||||
name = factory.LazyAttribute(lambda _: faker.word())
|
||||
notes = faker.text()
|
||||
startdatetime = FuzzyDateTime(start_dt=one_month_ago, force_year=datetime.date.today().year)
|
||||
startdatetime = FuzzyDateTime(start_dt=one_month_ago) #, force_year=datetime.date.today().year)
|
||||
starttime = get_random_file(name=faker.word())['starttime']
|
||||
workouttype='water'
|
||||
date=startdatetime.evaluate(2,None, False).date()
|
||||
|
||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
@@ -47,54 +47,57 @@
|
||||
<link rel="stylesheet" href="/static/css/rowsandall2.css" />
|
||||
{% block meta %} {% endblock %}
|
||||
<div id="fb-root"></div>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.async=true;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.10&appId=694685920739849";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
||||
<script>
|
||||
$(document).ready(function (){
|
||||
})
|
||||
|
||||
</script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||
<script>
|
||||
(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.async=true;
|
||||
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.10&appId=694685920739849";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function (){
|
||||
})
|
||||
</script>
|
||||
<link rel="stylesheet" href="https://webapiv2.navionics.com/dist/webapi/webapi.min.css" >
|
||||
<script type="text/javascript" src="https://webapiv2.navionics.com/dist/webapi/webapi.min.no-dep.js"></script>
|
||||
<script src="https://kit.fontawesome.com/8ec1edfba3.js" crossorigin="anonymous"></script>
|
||||
<script>window.twttr = (function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0],
|
||||
t = window.twttr || {};
|
||||
if (d.getElementById(id)) return t;
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.async=true;
|
||||
js.src = "https://platform.twitter.com/widgets.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
<script>
|
||||
window.twttr = (function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0],
|
||||
t = window.twttr || {};
|
||||
if (d.getElementById(id)) return t;
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.async=true;
|
||||
js.src = "https://platform.twitter.com/widgets.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
|
||||
t._e = [];
|
||||
t.ready = function(f) {
|
||||
t._e.push(f);
|
||||
};
|
||||
t._e = [];
|
||||
t.ready = function(f) {
|
||||
t._e.push(f);
|
||||
};
|
||||
|
||||
return t;
|
||||
}(document, "script", "twitter-wjs"));</script>
|
||||
return t;
|
||||
}(document, "script", "twitter-wjs"));
|
||||
</script>
|
||||
|
||||
<script id="script-batch" type="text/javascript">
|
||||
(function(d){
|
||||
var js = d.createElement('script'); js.async = true; js.defer = true;
|
||||
js.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
|
||||
d.getElementsByTagName('head')[0].appendChild(js);
|
||||
js.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
|
||||
d.getElementsByTagName('head')[0].appendChild(js);
|
||||
}(document));
|
||||
</script>
|
||||
|
||||
|
||||
<script defer
|
||||
type="text/javascript"
|
||||
src="//assets.pinterest.com/js/pinit.js"
|
||||
>
|
||||
type="text/javascript"
|
||||
src="//assets.pinterest.com/js/pinit.js"
|
||||
>
|
||||
</script>
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
@@ -164,8 +167,8 @@
|
||||
{% else %}
|
||||
<a href="/rowers/me/preferences/" title="Profile">
|
||||
<i class="fas fa-user"></i>
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% if user.rower|usermessages %}
|
||||
<li>
|
||||
@@ -191,7 +194,7 @@
|
||||
<i class="fas fa-sign-in-alt "></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
</user>
|
||||
|
||||
@@ -242,17 +245,17 @@
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if user.rower.planexpires and user.rower|notfree and user.rower.paymenttype == 'single'%}
|
||||
{% if user.rower.planexpires|is_future_date %}
|
||||
{% if user.rower.planexpires|date_dif|ddays < 4 %}
|
||||
<li class="grid_4">
|
||||
<p class="successmessage">
|
||||
You have {{ user.rower.planexpires|date_dif|ddays }} days left of your one year subscription. Please renew on or before {{ user.rower.planexpires }} or your plan will be reset to Basic. Click <a href="/rowers/paidplans/">here</a> to renew your membership.</p>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if user.rower.protrialexpires and user.rower.protrialexpires|is_future_date %}
|
||||
{% if user.rower.plantrialexpires and user.rower.plantrialexpires|is_future_date and user.rower.rowerplan != 'plan' %}
|
||||
{% if user.rower.planexpires|is_future_date %}
|
||||
{% if user.rower.planexpires|date_dif|ddays < 4 %}
|
||||
<li class="grid_4">
|
||||
<p class="successmessage">
|
||||
You have {{ user.rower.planexpires|date_dif|ddays }} days left of your one year subscription. Please renew on or before {{ user.rower.planexpires }} or your plan will be reset to Basic. Click <a href="/rowers/paidplans/">here</a> to renew your membership.</p>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if user.rower.protrialexpires and user.rower.protrialexpires|is_future_date %}
|
||||
{% if user.rower.plantrialexpires and user.rower.plantrialexpires|is_future_date and user.rower.rowerplan != 'plan' %}
|
||||
<li class="grid_4">
|
||||
<p class="successmessage">
|
||||
{{ user.rower.protrialexpires|date_dif|ddays }} days left of your Self-Coach trial - Would you like to <a href="/rowers/paidplans/">upgrade now?</a>
|
||||
@@ -268,7 +271,7 @@
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if user.rower.coachtrialexpires and user.rower.coachtrialexpires|is_future_date and user.rower.rowerplan != 'coach' %}
|
||||
{% if user.rower.coachtrialexpires and user.rower.coachtrialexpires|is_future_date and user.rower.rowerplan != 'coach' %}
|
||||
<li class="grid_4">
|
||||
<p class="successmessage">
|
||||
{{ user.rower.coachtrialexpires|date_dif|ddays }} days left of your Coach trial - Would you like to <a href="/rowers/paidplans/">upgrade now?</a>
|
||||
@@ -285,7 +288,7 @@
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<li class="grid_4">
|
||||
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}
|
||||
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}
|
||||
<p class="message">
|
||||
{% else %}
|
||||
<p class="successmessage">
|
||||
@@ -340,97 +343,110 @@
|
||||
</p>
|
||||
{% endif %}
|
||||
{% block ad %}
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<a href="https://wp.me/P8g86e-Bs">Please take 2 minutes to fill out the survey!</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<a href="/rowers/plans/">Need a training plan? Take a look at our NEW training plan section!</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<a href="https://wp.me/P8g86e-Bs">Please take 2 minutes to fill out the survey!</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<a href="/rowers/plans/">Need a training plan? Take a look at our training plan section!</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="id_blogs">
|
||||
</div>
|
||||
{% if user.is_authenticated and user.rower.rowerplan == 'basic' %}
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<a href="/rowers/paidplans/">Support us and get more features!</a>
|
||||
</div>
|
||||
</div>
|
||||
{% elif user.is_authenticated and user.rower.rowerplan == 'pro' %}
|
||||
<div class="site-announcement-box">
|
||||
<div class="site-announcement-white">
|
||||
<i class="fa-solid fa-user-astronaut "></i> Thank you for supporting Rowsandall.com!
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</ad>
|
||||
|
||||
<footer class="main-footer">
|
||||
<p>Follow us on
|
||||
<a href="https://www.facebook.com/rowsandall">
|
||||
<i class="fab fa-facebook"></i>
|
||||
</a>
|
||||
<a href="https://www.instagram.com/roosendaalsander/">
|
||||
<i class="fab fa-instagram"></i>
|
||||
</a>
|
||||
<a href="https://analytics.rowsandall.com/">
|
||||
<i class="fab fa-wordpress-simple"></i>
|
||||
</a>
|
||||
<a href="https://rowing-data-analytics.mn.co/feed">
|
||||
<i class="fas fa-chart-network"></i>
|
||||
</a>
|
||||
<a href="https://www.facebook.com/rowsandall">
|
||||
<i class="fab fa-facebook"></i>
|
||||
</a>
|
||||
<a href="https://www.instagram.com/roosendaalsander/">
|
||||
<i class="fab fa-instagram"></i>
|
||||
</a>
|
||||
<a href="https://analytics.rowsandall.com/">
|
||||
<i class="fab fa-wordpress-simple"></i>
|
||||
</a>
|
||||
<a href="https://rowing-data-analytics.mn.co/feed">
|
||||
<i class="fas fa-chart-network"></i>
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
<h2>Help</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/help/">Help</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://analytics.rowsandall.com/">
|
||||
Rowing Analytics Blog
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://rowing-data-analytics.mn.co/feed">
|
||||
Rowing Data Discussion Group</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/physics/">Rowing Physics</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>About</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/email/">Contact</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/email/">Rowsandall s.r.o.</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/brochure/">Brochure</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/partners/">Partnering?</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/developers/">Developers Info</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Paid Plans</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/paidplans/">Paid Plans</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Legal</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/legal/">Terms and Conditions</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/legal/">Privacy Policy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>
|
||||
<h2>Help</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/help/">Help</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://analytics.rowsandall.com/">
|
||||
Rowing Analytics Blog
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://rowing-data-analytics.mn.co/feed">
|
||||
Rowing Data Discussion Group</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/physics/">Rowing Physics</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>About</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/email/">Contact</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/email/">Rowsandall s.r.o.</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/brochure/">Brochure</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/partners/">Partnering?</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/developers/">Developers Info</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Support Us</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/paidplans/">Support Us</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h2>Legal</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/rowers/legal/">Terms and Conditions</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/rowers/legal/">Privacy Policy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</p>
|
||||
</footer>
|
||||
{% analytical_body_bottom %}
|
||||
@@ -438,52 +454,52 @@
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{% block scripts %} {% endblock %}
|
||||
{% block scripts %} {% endblock %}
|
||||
|
||||
<script defer type="text/javascript" src="/jsi18n/"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js">
|
||||
</script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/calendar.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/urlify.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/prepopulate.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/vendor/xregexp/xregexp.min.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/SelectBox.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/SelectFilter2.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/inlines.js"></script>
|
||||
<script src="/static/cookielaw/js/cookielaw.js"></script>
|
||||
<script defer type="text/javascript" src="/jsi18n/"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js">
|
||||
</script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/calendar.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/urlify.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/prepopulate.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/vendor/xregexp/xregexp.min.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/SelectBox.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/SelectFilter2.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"></script>
|
||||
<script defer type="text/javascript" src="/static/admin/js/inlines.js"></script>
|
||||
<script src="/static/cookielaw/js/cookielaw.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
$(function() {
|
||||
$("#id-logout").click( function() {
|
||||
localStorage.clear();
|
||||
console.log('cleared storage');
|
||||
});
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
$(function() {
|
||||
$("#id-logout").click( function() {
|
||||
localStorage.clear();
|
||||
console.log('cleared storage');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
console.log('loading script');
|
||||
$.getJSON(window.location.protocol + '//'+window.location.host + '/getblogs/', function(data) {
|
||||
var html = '';
|
||||
$( document ).ready(function() {
|
||||
console.log('loading script');
|
||||
$.getJSON(window.location.protocol + '//'+window.location.host + '/getblogs/', function(data) {
|
||||
var html = '';
|
||||
|
||||
$.each(data, function(key, blog) {
|
||||
console.log(blog.title);
|
||||
html += '<div class="site-announcement-box"><div class="site-announcement-white">';
|
||||
html += '<a style="text-decoration: none; color: white;" href="'+blog.link+'">';
|
||||
html += blog.title;
|
||||
html += '</a>';
|
||||
html += '</div></div>';
|
||||
});
|
||||
$("#id_blogs").html(html);
|
||||
$.each(data, function(key, blog) {
|
||||
console.log(blog.title);
|
||||
html += '<div class="site-announcement-box"><div class="site-announcement-white">';
|
||||
html += '<a style="text-decoration: none; color: white;" href="'+blog.link+'">';
|
||||
html += blog.title;
|
||||
html += '</a>';
|
||||
html += '</div></div>';
|
||||
});
|
||||
$("#id_blogs").html(html);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user