tags on session create
This commit is contained in:
@@ -44,6 +44,7 @@ import pandas as pd
|
||||
from dateutil import parser
|
||||
import datetime
|
||||
|
||||
from taggit.managers import TaggableManager
|
||||
|
||||
#from rules.contrib.models import RulesModel
|
||||
|
||||
@@ -2291,6 +2292,8 @@ class PlannedSession(models.Model):
|
||||
interval_string = models.TextField(max_length=1000,default=None,blank=True,null=True,
|
||||
verbose_name='Interval String (optional)')
|
||||
|
||||
tags = TaggableManager()
|
||||
|
||||
def __str__(self):
|
||||
|
||||
name = self.name
|
||||
@@ -2611,7 +2614,8 @@ class PlannedSessionTemplateForm(ModelForm):
|
||||
'course',
|
||||
'comment',
|
||||
'interval_string',
|
||||
'fitfile'
|
||||
'fitfile',
|
||||
'tags',
|
||||
]
|
||||
|
||||
dateTimeOptions = {
|
||||
|
||||
@@ -102,6 +102,17 @@
|
||||
<p>
|
||||
Click on session name to clone to current period
|
||||
</p>
|
||||
{% if alltags %}
|
||||
<p>
|
||||
Click on a tag to filter:
|
||||
{% for tag in alltags %}
|
||||
<a href="/rowers/sessions/create/?when={{ timeperiod }}&tag={{ tag }}">{{ tag }}</a>
|
||||
{% endfor %}
|
||||
</p>
|
||||
<p>
|
||||
<a href="/rowers/sessions/create/?when={{ timeperiod }}">Clear tags</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
<table class="listtable shortpadded" width="80%">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@@ -7,6 +7,8 @@ from rowers.views.statements import *
|
||||
from rowingdata import trainingparser
|
||||
import json
|
||||
|
||||
from taggit.models import Tag
|
||||
|
||||
@login_required
|
||||
@permission_required('plannedsession.view_session',fn=get_session_by_pk,raise_exception=True)
|
||||
def plannedsession_comment_view(request,id=0,userid=0):
|
||||
@@ -54,8 +56,8 @@ def plannedsession_comment_view(request,id=0,userid=0):
|
||||
|
||||
res = myqueue(queuehigh,
|
||||
handle_sendemailnewcomment,r.user.first_name,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
r.user.last_name,
|
||||
r.user.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,ps.name,ps.id,
|
||||
@@ -93,7 +95,7 @@ def plannedsession_comment_view(request,id=0,userid=0):
|
||||
handle_sendemailnewresponse,
|
||||
u.first_name,
|
||||
u.last_name,
|
||||
u.email,
|
||||
u.email,
|
||||
request.user.first_name,
|
||||
request.user.last_name,
|
||||
comment,
|
||||
@@ -254,7 +256,7 @@ def plannedsession_message_view(request,id=0,userid=0):
|
||||
'rower':r,
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'active':active,
|
||||
'userform':userform,
|
||||
'userform':userform,
|
||||
})
|
||||
|
||||
|
||||
@@ -463,7 +465,7 @@ def plannedsession_create_view(request,
|
||||
sessionmode=sessionmode,
|
||||
sessionvalue=sessionvalue,
|
||||
sessionunit=sessionunit,
|
||||
sessionsport=sessionsport,
|
||||
sessionsport=sessionsport,
|
||||
comment=comment,
|
||||
criterium=criterium,
|
||||
interval_string=interval_string,
|
||||
@@ -542,6 +544,8 @@ def plannedsession_create_view(request,
|
||||
if request.GET.get('startdate') or request.GET.get('when'):
|
||||
startdate, enddate = get_dates_timeperiod(request)
|
||||
|
||||
|
||||
|
||||
sps = get_sessions(r,startdate=startdate,enddate=enddate).exclude(
|
||||
sessiontype='race')
|
||||
|
||||
@@ -549,6 +553,13 @@ def plannedsession_create_view(request,
|
||||
manager=request.user,
|
||||
is_template=True).order_by("name")
|
||||
|
||||
tag = request.GET.get('tag')
|
||||
if tag:
|
||||
tags = [tag]
|
||||
sessiontemplates = sessiontemplates.filter(tags__name__in=tags).distinct()
|
||||
|
||||
alltags = Tag.objects.all()
|
||||
|
||||
try:
|
||||
trainingplan = TrainingPlan.objects.filter(
|
||||
startdate__lte = startdate,
|
||||
@@ -575,6 +586,7 @@ def plannedsession_create_view(request,
|
||||
'sessiontemplates':sessiontemplates,
|
||||
'rower':r,
|
||||
'timeperiod':timeperiod,
|
||||
'alltags':alltags,
|
||||
})
|
||||
|
||||
@user_passes_test(can_plan,login_url="/rowers/paidplans/",
|
||||
@@ -784,7 +796,7 @@ def plannedsession_teamcreate_view(request,
|
||||
preferreddate=preferreddate,
|
||||
sessiontype=sessiontype,
|
||||
sessionmode=sessionmode,
|
||||
sessionsport=sessionsport,
|
||||
sessionsport=sessionsport,
|
||||
sessionvalue=sessionvalue,
|
||||
sessionunit=sessionunit,
|
||||
comment=comment,
|
||||
@@ -1687,7 +1699,10 @@ def plannedsession_templateedit_view(request,id=0):
|
||||
elif cd['sessionunit'] in ['km','m']:
|
||||
cd['sessionmode'] = 'distance'
|
||||
|
||||
obj = sessioncreateform.save()
|
||||
|
||||
res, message = update_plannedsession(ps,cd)
|
||||
#sessioncreateform.save_m2m()
|
||||
|
||||
if res:
|
||||
messages.info(request,message)
|
||||
@@ -1913,7 +1928,7 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
|
||||
ps = get_object_or_404(PlannedSession,pk=id)
|
||||
if ps.steps_json is not None:
|
||||
jsons = json.loads(ps.steps_json)
|
||||
jsons = json.loads(ps.steps_json)
|
||||
else:
|
||||
jsons = {}
|
||||
|
||||
@@ -1921,8 +1936,8 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
try:
|
||||
r = VirtualRace.objects.get(id=ps.id)
|
||||
url = reverse('virtualevent_view',
|
||||
kwargs={'id':ps.id}
|
||||
)
|
||||
kwargs={'id':ps.id}
|
||||
)
|
||||
return HttpResponseRedirect(url)
|
||||
except VirtualRace.DoesNotExist:
|
||||
pass
|
||||
@@ -2004,8 +2019,8 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
job = myqueue(queue,handle_check_race_course,
|
||||
w.csvfilename,w.id,ps.course.id,
|
||||
record.id,
|
||||
w.user.user.email,w.user.user.first_name,
|
||||
mode='coursetest')
|
||||
w.user.user.email,w.user.user.first_name,
|
||||
mode='coursetest')
|
||||
|
||||
intsecs = 0
|
||||
microsecs = 0
|
||||
@@ -2030,30 +2045,30 @@ def plannedsession_view(request,id=0,userid=0):
|
||||
userid = record.userid
|
||||
uu = User.objects.get(id=userid)
|
||||
try:
|
||||
w = Workout.objects.get(id=record.workoutid)
|
||||
wdict = {
|
||||
'name': uu.first_name+' '+uu.last_name,
|
||||
'date': w.date,
|
||||
'distance': record.distance,
|
||||
'type': w.workouttype,
|
||||
w = Workout.objects.get(id=record.workoutid)
|
||||
wdict = {
|
||||
'name': uu.first_name+' '+uu.last_name,
|
||||
'date': w.date,
|
||||
'distance': record.distance,
|
||||
'type': w.workouttype,
|
||||
'workoutid':w.id,
|
||||
'coursecompleted':True,
|
||||
'coursecompleted':True,
|
||||
'sessionresult':record.id
|
||||
}
|
||||
}
|
||||
|
||||
coursecompleted = record.coursecompleted
|
||||
t = record.duration
|
||||
wdict['time'] = datetime.timedelta(
|
||||
hours=t.hour,
|
||||
seconds=t.second,
|
||||
minutes=t.minute,
|
||||
microseconds=t.microsecond
|
||||
)
|
||||
coursecompleted = record.coursecompleted
|
||||
t = record.duration
|
||||
wdict['time'] = datetime.timedelta(
|
||||
hours=t.hour,
|
||||
seconds=t.second,
|
||||
minutes=t.minute,
|
||||
microseconds=t.microsecond
|
||||
)
|
||||
|
||||
|
||||
wdict['coursecompleted'] = coursecompleted
|
||||
wdict['coursecompleted'] = coursecompleted
|
||||
|
||||
ranking.append(wdict)
|
||||
ranking.append(wdict)
|
||||
except Workout.DoesNotExist:
|
||||
pass
|
||||
|
||||
@@ -2299,7 +2314,7 @@ def rower_create_trainingplan(request,id=0):
|
||||
manager=themanager,
|
||||
startdate=startdate,
|
||||
enddate=enddate,status=status,
|
||||
notes=notes,
|
||||
notes=notes,
|
||||
)
|
||||
|
||||
p.save()
|
||||
|
||||
Reference in New Issue
Block a user