Merge branch 'feature/favanalysis' into develop
This commit is contained in:
+16
-1
@@ -74,6 +74,16 @@ timezones = (
|
|||||||
(x,x) for x in pytz.common_timezones
|
(x,x) for x in pytz.common_timezones
|
||||||
)
|
)
|
||||||
|
|
||||||
|
favanalysischoices = (
|
||||||
|
('compare','Compare'),
|
||||||
|
('flexall','Cumulative Flex Chart'),
|
||||||
|
('histogram','Histogram'),
|
||||||
|
('stats','Statistics'),
|
||||||
|
('boxplot','Box Chart'),
|
||||||
|
('trendflex','Trend Flex'),
|
||||||
|
('cp','Critical Power'),
|
||||||
|
)
|
||||||
|
|
||||||
def half_year_from_now():
|
def half_year_from_now():
|
||||||
return (datetime.datetime.now(tz=timezone.utc)+timezone.timedelta(days=182)).date()
|
return (datetime.datetime.now(tz=timezone.utc)+timezone.timedelta(days=182)).date()
|
||||||
|
|
||||||
@@ -977,6 +987,10 @@ class Rower(models.Model):
|
|||||||
slowpaceotw = models.DurationField(default=otwpaceslow,verbose_name='Slowest OTW Pace')
|
slowpaceotw = models.DurationField(default=otwpaceslow,verbose_name='Slowest OTW Pace')
|
||||||
fastpaceotw = models.DurationField(default=otwpacefast,verbose_name='Fastest OTW Pace')
|
fastpaceotw = models.DurationField(default=otwpacefast,verbose_name='Fastest OTW Pace')
|
||||||
|
|
||||||
|
fav_analysis = models.CharField(default='compare',choices=favanalysischoices,
|
||||||
|
max_length=100,
|
||||||
|
verbose_name='Favorite Analysis')
|
||||||
|
|
||||||
staticchartonupload = models.CharField(default='None',choices=plotchoices,
|
staticchartonupload = models.CharField(default='None',choices=plotchoices,
|
||||||
max_length=100,
|
max_length=100,
|
||||||
verbose_name='Generate a static chart automatically on upload')
|
verbose_name='Generate a static chart automatically on upload')
|
||||||
@@ -3763,6 +3777,7 @@ class AccountRowerForm(ModelForm):
|
|||||||
'getemailnotifications',
|
'getemailnotifications',
|
||||||
'getimportantemails',
|
'getimportantemails',
|
||||||
'defaulttimezone','showfavoritechartnotes',
|
'defaulttimezone','showfavoritechartnotes',
|
||||||
|
'fav_analysis',
|
||||||
'defaultlandingpage',
|
'defaultlandingpage',
|
||||||
'offercoaching','autojoin','emailalternatives']
|
'offercoaching','autojoin','emailalternatives']
|
||||||
|
|
||||||
@@ -3802,7 +3817,7 @@ class AccountRowerForm(ModelForm):
|
|||||||
class StaticChartRowerForm(ModelForm):
|
class StaticChartRowerForm(ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rower
|
model = Rower
|
||||||
fields = ['staticgrids','slowpaceerg','fastpaceerg','slowpaceotw','fastpaceotw','staticchartonupload']
|
fields = ['staticgrids','slowpaceerg','fastpaceerg','slowpaceotw','fastpaceotw','staticchartonupload','fav_analysis']
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(StaticChartRowerForm, self).__init__(*args, **kwargs)
|
super(StaticChartRowerForm, self).__init__(*args, **kwargs)
|
||||||
|
|||||||
@@ -242,6 +242,13 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<a class="small"
|
||||||
|
href="/rowers/user-analysis-select/{{ user.rower.fav_analysis }}/workout/{{ workout.id|encode }}/"
|
||||||
|
title="{{ user.rower.fav_analysis|verbose }}">
|
||||||
|
<i class="fas {{ user.rower.fav_analysis|icon }} fa-fw"></i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="small"
|
<a class="small"
|
||||||
href="/rowers/workout/{{ workout.id|encode }}/flexchart/"
|
href="/rowers/workout/{{ workout.id|encode }}/flexchart/"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from rowers.models import (
|
|||||||
course_length,WorkoutComment,
|
course_length,WorkoutComment,
|
||||||
TrainingMacroCycle,TrainingMesoCycle, TrainingMicroCycle,
|
TrainingMacroCycle,TrainingMesoCycle, TrainingMicroCycle,
|
||||||
Rower,Workout,SiteAnnouncement, TeamInvite, TeamRequest, CoachOffer,CoachRequest,
|
Rower,Workout,SiteAnnouncement, TeamInvite, TeamRequest, CoachOffer,CoachRequest,
|
||||||
VirtualRaceFollower,VirtualRace,
|
VirtualRaceFollower,VirtualRace,favanalysischoices
|
||||||
)
|
)
|
||||||
from rowers.plannedsessions import (
|
from rowers.plannedsessions import (
|
||||||
race_can_register, race_can_submit,race_rower_status
|
race_can_register, race_can_submit,race_rower_status
|
||||||
@@ -56,6 +56,35 @@ def isfollower(user,id):
|
|||||||
|
|
||||||
return followers.count()==0
|
return followers.count()==0
|
||||||
|
|
||||||
|
favanalysisdict = {}
|
||||||
|
for key,value in favanalysischoices:
|
||||||
|
favanalysisdict[key] = value
|
||||||
|
|
||||||
|
favanalysisicons = {
|
||||||
|
'compare':'fa-balance-scale',
|
||||||
|
'stats':'fa-table',
|
||||||
|
'boxplot':'fa-box-open',
|
||||||
|
'trendflex':'fa-chart-line',
|
||||||
|
'histogram':'fa-chart-bar',
|
||||||
|
'flexall':'fa-chart-line',
|
||||||
|
'cp':'fa-user-chart',
|
||||||
|
}
|
||||||
|
|
||||||
|
# for verbose version of fav analysis
|
||||||
|
@register.filter
|
||||||
|
def verbose(s):
|
||||||
|
try:
|
||||||
|
return favanalysisdict[s]
|
||||||
|
except KeyError:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def icon(s):
|
||||||
|
try:
|
||||||
|
return favanalysisicons[s]
|
||||||
|
except KeyError:
|
||||||
|
return 'fa-chart-line'
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
def adaptive(s):
|
def adaptive(s):
|
||||||
u = s
|
u = s
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ class UserPreferencesTest(TestCase):
|
|||||||
'getimportantemails':True,
|
'getimportantemails':True,
|
||||||
'defaulttimezone':'UTC',
|
'defaulttimezone':'UTC',
|
||||||
'showfavoritechartnotes':False,
|
'showfavoritechartnotes':False,
|
||||||
|
'fav_analysis':'compare',
|
||||||
'defaultlandingpage':'workout_edit_view',
|
'defaultlandingpage':'workout_edit_view',
|
||||||
'first_name': self.u.first_name,
|
'first_name': self.u.first_name,
|
||||||
'last_name': self.u.last_name,
|
'last_name': self.u.last_name,
|
||||||
|
|||||||
@@ -246,6 +246,7 @@ def rower_favoritecharts_view(request,userid=0):
|
|||||||
r.slowpaceotw = staticchartform.cleaned_data.get('slowpaceotw')
|
r.slowpaceotw = staticchartform.cleaned_data.get('slowpaceotw')
|
||||||
r.fastpaceotw = staticchartform.cleaned_data.get('fastpaceotw')
|
r.fastpaceotw = staticchartform.cleaned_data.get('fastpaceotw')
|
||||||
r.staticchartonupload = staticchartform.cleaned_data.get('staticchartonupload')
|
r.staticchartonupload = staticchartform.cleaned_data.get('staticchartonupload')
|
||||||
|
r.fav_analysis = staticchartform.cleaned_data.get('fav_analysis')
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
if request.method == 'POST' and 'form-TOTAL_FORMS' in request.POST:
|
if request.method == 'POST' and 'form-TOTAL_FORMS' in request.POST:
|
||||||
|
|||||||
Reference in New Issue
Block a user