team multicreate
This commit is contained in:
@@ -358,6 +358,7 @@ class TeamUploadOptionsForm(forms.Form):
|
||||
class Meta:
|
||||
fields = ['make_plot','plottype']
|
||||
|
||||
|
||||
# This form is used on the Workout Split page
|
||||
class WorkoutSplitForm(forms.Form):
|
||||
splitchoices = (
|
||||
@@ -1201,6 +1202,19 @@ class WorkoutRaceSelectForm(forms.Form):
|
||||
|
||||
# self.fields['evaluate_after'] =
|
||||
|
||||
# Form to select team by rower
|
||||
class RowerTeamForm(forms.Form):
|
||||
team = forms.ModelChoiceField(
|
||||
queryset=Team.objects.all(),
|
||||
required=False,
|
||||
)
|
||||
|
||||
def __init__(self, user, *args, **kwargs):
|
||||
super(RowerTeamForm, self).__init__(*args, **kwargs)
|
||||
|
||||
self.fields['team'].queryset = Team.objects.filter(manager=user)
|
||||
|
||||
|
||||
class PlannedSessionTeamForm(forms.Form):
|
||||
team = forms.ModelMultipleChoiceField(
|
||||
queryset=Team.objects.all(),
|
||||
|
||||
@@ -2982,6 +2982,9 @@ def auto_delete_image_on_delete(sender,instance, **kwargs):
|
||||
print("couldn't find the file "+instance.filename)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Form to update Workout data
|
||||
class WorkoutForm(ModelForm):
|
||||
# duration = forms.TimeInput(format='%H:%M:%S.%f')
|
||||
|
||||
@@ -486,6 +486,10 @@ def remove_rower_session(r,ps):
|
||||
|
||||
return 1
|
||||
|
||||
def get_team(request):
|
||||
teamid = request.GET.get('team')
|
||||
return teamid
|
||||
|
||||
def get_dates_timeperiod(request,startdatestring='',enddatestring='',
|
||||
defaulttimeperiod='thisweek'):
|
||||
# set start end date according timeperiod
|
||||
|
||||
@@ -61,11 +61,6 @@
|
||||
<i class="far fa-calendar-plus fa-fw"></i> Add Session
|
||||
</a>
|
||||
</li>
|
||||
<li id="plan-teamsession">
|
||||
<a href="/rowers/sessions/teamcreate/?when={{ timeperiod }}">
|
||||
<i class="fas fa-whistle fa-fw"></i> Add Group Session
|
||||
</a>
|
||||
</li>
|
||||
<li id="plan-microcycle">
|
||||
<a href="/rowers/sessions/multicreate/?when={{ timeperiod }}">
|
||||
<i class="fas fa-expand fa-fw"></i>Plan Microcycle
|
||||
@@ -78,6 +73,31 @@
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% if request.user|user_teams %}
|
||||
<li class="has-children" id="teamplan">
|
||||
<input type="checkbox" name="group-plan" id="group-teamplan">
|
||||
<label for="group-teamplan">
|
||||
<i class="fas fa-calendar-plus fa-fw"></i> Plan Group Sessions
|
||||
</label>
|
||||
<ul>
|
||||
<li id="plan-teamsession">
|
||||
<a href="/rowers/sessions/teamcreate/?when={{ timeperiod }}">
|
||||
<i class="fas fa-whistle fa-fw"></i> Add Group Session
|
||||
</a>
|
||||
</li>
|
||||
<li id="plan-microcycle">
|
||||
<a href="/rowers/sessions/multicreate/?when={{ timeperiod }}&team={{ request.user|user_team1 }}">
|
||||
<i class="fas fa-expand fa-fw"></i>Plan Group Microcycle
|
||||
</a>
|
||||
</li>
|
||||
<li id="plan-microcycle">
|
||||
<a href="/rowers/sessions/multiclone/user/{{ rower.user.id }}/?when={{ timeperiod }}">
|
||||
<i class="fas fa-layer-plus fa-fw"></i>Clone Multiple Group Sessions
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul><!-- cd-accordion-menu -->
|
||||
|
||||
<p> </p>
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
{% block title %}Plan entire microcycle{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% if team %}
|
||||
<h1>Create Group Sessions for {{ team.name }}</h1>
|
||||
{% else %}
|
||||
<h1>Create Sessions for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
||||
{% endif %}
|
||||
|
||||
<ul class="main-content">
|
||||
<li class="grid_2">
|
||||
@@ -14,6 +18,9 @@
|
||||
<table>
|
||||
{{ dateform.as_table }}
|
||||
</table>
|
||||
<table>
|
||||
{{ teamform.as_table }}
|
||||
</table>
|
||||
<input type="Submit" value="Set Date Range">
|
||||
</form>
|
||||
</p>
|
||||
@@ -66,9 +73,15 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if team %}
|
||||
<a href="/rowers/sessions/multicreate/user/{{ rower.user.id }}/extra/{{ extrasessions }}/?when={{ timeperiod }}&team={{ team.id }}">
|
||||
Add More
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="/rowers/sessions/multicreate/user/{{ rower.user.id }}/extra/{{ extrasessions }}/?when={{ timeperiod }}">
|
||||
Add More
|
||||
</a>
|
||||
{% endif %}
|
||||
or
|
||||
<a href="/rowers/sessions/multiclone/user/{{ rower.user.id }}/?when={{ timeperiod }}">
|
||||
Clone multiple sessions
|
||||
|
||||
@@ -355,6 +355,18 @@ def user_teams(user):
|
||||
|
||||
return teams
|
||||
|
||||
@register.filter
|
||||
def user_team1(user):
|
||||
try:
|
||||
therower = Rower.objects.get(user=user)
|
||||
teams1 = therower.team.all()
|
||||
teams2 = Team.objects.filter(manager=user)
|
||||
teams = list(set(teams1).union(set(teams2)))
|
||||
except TypeError:
|
||||
teams = []
|
||||
|
||||
return teams[0].id
|
||||
|
||||
@register.filter
|
||||
def announcements(request):
|
||||
announcements = SiteAnnouncement.objects.filter(
|
||||
|
||||
@@ -454,6 +454,7 @@ def plannedsession_multicreate_view(request,
|
||||
|
||||
|
||||
startdate,enddate = get_dates_timeperiod(request)
|
||||
teamid = get_team(request)
|
||||
try:
|
||||
trainingplan = TrainingPlan.objects.filter(
|
||||
startdate__lte = startdate,
|
||||
@@ -472,6 +473,16 @@ def plannedsession_multicreate_view(request,
|
||||
).order_by("startdate","preferreddate","enddate").exclude(
|
||||
sessiontype='race')
|
||||
|
||||
if teamid:
|
||||
qset = qset.filter(team__in=[teamid])
|
||||
try:
|
||||
team = Team.objects.get(id=teamid)
|
||||
if team.manager != request.user:
|
||||
team = None
|
||||
except Team.DoesNotExist:
|
||||
team = None
|
||||
else:
|
||||
team = None
|
||||
|
||||
|
||||
initial = {
|
||||
@@ -500,6 +511,8 @@ def plannedsession_multicreate_view(request,
|
||||
for ps in instances:
|
||||
ps.save()
|
||||
add_rower_session(r,ps)
|
||||
if team:
|
||||
add_team_session(team,ps)
|
||||
messages.info(request,"Saved changes for Planned Session "+str(ps))
|
||||
for obj in ps_formset.deleted_objects:
|
||||
messages.info(request,"Deleted Planned Session "+str(obj))
|
||||
@@ -515,6 +528,9 @@ def plannedsession_multicreate_view(request,
|
||||
startdatestring = startdate.strftime('%Y-%m-%d')
|
||||
enddatestring = enddate.strftime('%Y-%m-%d')
|
||||
url += '?when='+startdatestring+'/'+enddatestring
|
||||
|
||||
if team:
|
||||
url += '&team={teamid}'.format(teamid=team.id)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@@ -537,16 +553,25 @@ def plannedsession_multicreate_view(request,
|
||||
'enddate':enddate
|
||||
})
|
||||
|
||||
if len(Team.objects.filter(manager=request.user))>=1:
|
||||
teamform = RowerTeamForm(request.user)
|
||||
if teamid:
|
||||
teamform = RowerTeamForm(request.user,initial={'team':teamid})
|
||||
else:
|
||||
teamform = None
|
||||
|
||||
context = {
|
||||
'ps_formset':ps_formset,
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'rower':r,
|
||||
'active':'nav-plan',
|
||||
'dateform':dateform,
|
||||
'teamform':teamform,
|
||||
'plan':trainingplan,
|
||||
'timeperiod':timeperiod,
|
||||
'teams':get_my_teams(request.user),
|
||||
'extrasessions': extrasessions+1
|
||||
'extrasessions': extrasessions+1,
|
||||
'team':team,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ from rowers.forms import (
|
||||
FusionMetricChoiceForm,BoxPlotChoiceForm,MultiFlexChoiceForm,
|
||||
TrendFlexModalForm,WorkoutSplitForm,WorkoutJoinParamForm,
|
||||
AnalysisOptionsForm, AnalysisChoiceForm,
|
||||
PlannedSessionMultipleCloneForm,SessionDateShiftForm,
|
||||
PlannedSessionMultipleCloneForm,SessionDateShiftForm,RowerTeamForm,
|
||||
)
|
||||
from rowers.models import (
|
||||
Workout, User, Rower, WorkoutForm,FavoriteChart,
|
||||
|
||||
Reference in New Issue
Block a user