diff --git a/rowers/models.py b/rowers/models.py index 5db49f02..1659f849 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -520,7 +520,7 @@ class TeamRequest(models.Model): from rowers.utils import ( workflowleftpanel,workflowmiddlepanel, - defaultleft,defaultmiddle,landingpages, + defaultleft,defaultmiddle,landingpages,landingpages2, steps_read_fit, steps_write_fit, ps_dict_order ) @@ -993,6 +993,10 @@ class Rower(models.Model): max_length=200, choices=landingpages, verbose_name="Default Landing Page") + defaultlandingpage2 = models.CharField(default='workout_flexchart_stacked_view', + max_length=200, + choices=landingpages2, + verbose_name="Alternative Landing Page") # Access tokens c2token = models.CharField(default='',max_length=200,blank=True,null=True) @@ -4280,6 +4284,7 @@ class AccountRowerForm(ModelForm): 'fav_analysis', 'usersmooth', 'defaultlandingpage', + 'defaultlandingpage2', 'offercoaching','autojoin','emailalternatives'] widgets = { diff --git a/rowers/templates/list_workouts.html b/rowers/templates/list_workouts.html index bb67af4b..690a7e50 100644 --- a/rowers/templates/list_workouts.html +++ b/rowers/templates/list_workouts.html @@ -35,46 +35,7 @@
    -
  • -

    - Total meters: {{ totalmeters }}. Total time {{ totalhours }}:{{ totalminutes }}h. - Dig deeper. -

    -

    - Activity chart by - TRIMP, - rScore, - Time. -

    - - - - - - {{ interactiveplot |safe }} - - {{ the_div |safe }} -
  • -
  • -

    Filter on date -

    - - {{ dateform.as_table }} -
    - {% csrf_token %} -

    -

    and keyword

    -

    - {{ searchform }} -

    -

    - -

    -

    -

    -

    +

  • {% if workouts.has_previous %} {% if request.GET.q %} @@ -118,7 +79,6 @@ {% endif %} {% endif %} -

  • {% if workouts %} @@ -137,7 +97,7 @@ {% endif %}
    -
    +
    {% with workout.workouttype|icon|safe as templateName %} {% include templateName %} {% endwith %} @@ -154,8 +114,25 @@ {% if workout|may_edit:request %} - + title="{{ rower.defaultlandingpage|verbose }}"> + + {% else %} +   + {% endif %} +
    +
    + {% if workout|may_edit:request %} + {% if rower.defaultlandingpage2 != 'workout_delete' %} + + + {% else %} + + + {% endif %} {% else %}   {% endif %} @@ -168,6 +145,45 @@ {% else %}
  • No workouts found
  • {% endif %} +
  • +

    Filter on date +

    + + {{ dateform.as_table }} +
    + {% csrf_token %} +

    +

    and keyword

    +

    + {{ searchform }} +

    +

    + +

    +

    +
  • +
  • +

    + Total meters: {{ totalmeters }}. Total time {{ totalhours }}:{{ totalminutes }}h. + Dig deeper. +

    +

    + Activity chart by + TRIMP, + rScore, + Time. +

    + + + + + + {{ interactiveplot |safe }} + + {{ the_div |safe }} +
  • {% if announcements %}
  • What's New?

    diff --git a/rowers/templatetags/rowerfilters.py b/rowers/templatetags/rowerfilters.py index 57db8e3b..43173126 100644 --- a/rowers/templatetags/rowerfilters.py +++ b/rowers/templatetags/rowerfilters.py @@ -27,7 +27,7 @@ from rowers.mytypes import ( otwtypes,adaptivetypes,sexcategories,weightcategories,workouttypes, workouttypes_icons, ) -from rowers.utils import NoTokenError, step_to_string +from rowers.utils import NoTokenError, step_to_string, landingpages2 import rowers.payments as payments @@ -72,16 +72,29 @@ 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', +landingpagedict = {} +for key, value in landingpages2: + landingpagedict[key] = value + +landingpageicons = { + 'workout_view':'fas fa-search fa-fw', + 'workout_edit_view':'fas fa-pencil-alt fa-fw', + 'workout_workflow_view':'fas fa-tachometer-alt fa-fw', + 'workout_stats_view':'fal fa-table fa-fw', + 'workout_data_view':'fal fa-table fa-fw', + 'workout_summary_edit_view':'fas fa-pause fa-fw', + 'workout_flexchart_stacked_view':'fas fa-align-justify fa-fw', + 'workout_flexchart3_view':'fas fa-chart-line fa-fw', + 'workout_delete':'fas fa-trash-alt fa-fw' } +@register.filter +def landingicon(landingpage): + try: + return landingpageicons[landingpage] + except KeyError: + return 'fas fa-search fa-fw' + @register.filter def steptostring(steps): res = ps_dict_get_description_html(steps,short=True) @@ -91,16 +104,9 @@ def steptostring(steps): @register.filter def verbose(s): try: - return favanalysisdict[s] + return landingpagedict[s] except KeyError: # pragma: no cover - return '' - -@register.filter -def icon(s): - try: - return favanalysisicons[s] - except KeyError: # pragma: no cover - return 'fa-chart-line' + return 'Details' @register.filter def datarows(data): # pragma: no cover diff --git a/rowers/utils.py b/rowers/utils.py index 596fc4ff..e03d405e 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -46,6 +46,19 @@ landingpages = ( ('workout_flexchart3_view','Workout Flex Chart') ) +landingpages2 = ( + ('workout_view', 'Workout View'), + ('workout_edit_view','Edit View'), + ('workout_workflow_view','Workflow View'), + ('workout_stats_view','Stats View'), + ('workout_data_view','Data Explore View'), + ('workout_summary_edit_view','Intervals Editor'), + ('workout_flexchart_stacked_view','Workout Stacked Chart'), + ('workout_flexchart3_view','Workout Flex Chart'), + ('workout_delete','Remove Workout') +) + + workflowmiddlepanel = ( diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 95a477e9..887ace01 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -1981,7 +1981,7 @@ def workouts_view(request,message='',successmessage='', else: searchform = SearchForm() - paginator = Paginator(workouts,10) # show 25 workouts per page + paginator = Paginator(workouts,12) # show 25 workouts per page page = request.GET.get('page',1) try: diff --git a/static/css/rowsandall2.css b/static/css/rowsandall2.css index 62e92d7d..fa84ba80 100644 --- a/static/css/rowsandall2.css +++ b/static/css/rowsandall2.css @@ -328,20 +328,28 @@ th.rotate > div > span { border-width: 1px 0 0 0; border-color: #333 #333 #333 #333; border-style: solid; - padding: 2px; + padding: 0px; margin: 0px; } .workoutcontainer { display: grid; - grid-template-columns: 50px repeat(auto-fit, minmax(calc((100% - 100px)/4), 1fr)); + grid-template-columns: 50px repeat(auto-fit, minmax(calc((100% - 100px)/5), 1fr)); /* grid-template-columns: 50px repeat(auto-fit, minmax(100px, 1fr)) 50px; ????*/ padding: 5px; + margin: 0px; } .workoutelement { margin-left: auto; margin-right: auto; + padding: 0px; + margin: 0px; +} + +.icondiv { + padding: 0px; + margin: 0px; } .divlines h3 {