Changeset 5cbc4a0 in OpenWorkouts-current


Ignore:
Timestamp:
Jan 18, 2019, 5:46:48 PM (5 years ago)
Author:
Segundo Fdez <segun.2@…>
Branches:
current, feature/docs, master
Children:
2d2eb0d
Parents:
55e98e4
Message:

Update dashboard and login with less.

Location:
ow
Files:
11 added
2 edited
11 moved

Legend:

Unmodified
Added
Removed
  • ow/static/css/main.css

    r55e98e4 r5cbc4a0  
    1 /* google fonts */
    2 @import "http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,700,700italic,800";
    3 
    4 /* normalize */
    5 @import "vendors/normalize.css";
    6 
    7 /* Variables */
    8 @import "variables.css";
    9 
    10 /* UI */
    11 @import "ui/form.css";
    12 @import "ui/buttons.css";
    13 
    14 /* Common styles */
    15 @import "common.css";
    16 
    17 /* Modules */
    18 @import "modules/header.css";
    19 
    20 /* Pages */
    21 @import "pages/login.css";
     1@font-face {
     2  font-family: 'Open Sans';
     3  font-style: italic;
     4  font-weight: 300;
     5  src: local('Open Sans Light Italic'), local('OpenSans-LightItalic'), url(http://fonts.gstatic.com/s/opensans/v15/memnYaGs126MiZpBA-UFUKWyV9hrIqY.ttf) format('truetype');
     6}
     7@font-face {
     8  font-family: 'Open Sans';
     9  font-style: italic;
     10  font-weight: 400;
     11  src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://fonts.gstatic.com/s/opensans/v15/mem6YaGs126MiZpBA-UFUK0Zdcg.ttf) format('truetype');
     12}
     13@font-face {
     14  font-family: 'Open Sans';
     15  font-style: italic;
     16  font-weight: 700;
     17  src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://fonts.gstatic.com/s/opensans/v15/memnYaGs126MiZpBA-UFUKWiUNhrIqY.ttf) format('truetype');
     18}
     19@font-face {
     20  font-family: 'Open Sans';
     21  font-style: normal;
     22  font-weight: 300;
     23  src: local('Open Sans Light'), local('OpenSans-Light'), url(http://fonts.gstatic.com/s/opensans/v15/mem5YaGs126MiZpBA-UN_r8OUuhs.ttf) format('truetype');
     24}
     25@font-face {
     26  font-family: 'Open Sans';
     27  font-style: normal;
     28  font-weight: 400;
     29  src: local('Open Sans Regular'), local('OpenSans-Regular'), url(http://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFVZ0e.ttf) format('truetype');
     30}
     31@font-face {
     32  font-family: 'Open Sans';
     33  font-style: normal;
     34  font-weight: 700;
     35  src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://fonts.gstatic.com/s/opensans/v15/mem5YaGs126MiZpBA-UN7rgOUuhs.ttf) format('truetype');
     36}
     37@font-face {
     38  font-family: 'Open Sans';
     39  font-style: normal;
     40  font-weight: 800;
     41  src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'), url(http://fonts.gstatic.com/s/opensans/v15/mem5YaGs126MiZpBA-UN8rsOUuhs.ttf) format('truetype');
     42}
     43/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
     44/* Document
     45   ========================================================================== */
     46/**
     47 * 1. Correct the line height in all browsers.
     48 * 2. Prevent adjustments of font size after orientation changes in iOS.
     49 */
     50html {
     51  line-height: 1.15;
     52  /* 1 */
     53  -webkit-text-size-adjust: 100%;
     54  /* 2 */
     55}
     56/* Sections
     57   ========================================================================== */
     58/**
     59 * Remove the margin in all browsers.
     60 */
     61body {
     62  margin: 0;
     63}
     64/**
     65 * Render the `main` element consistently in IE.
     66 */
     67main {
     68  display: block;
     69}
     70/**
     71 * Correct the font size and margin on `h1` elements within `section` and
     72 * `article` contexts in Chrome, Firefox, and Safari.
     73 */
     74h1 {
     75  font-size: 2em;
     76  margin: 0.67em 0;
     77}
     78/* Grouping content
     79   ========================================================================== */
     80/**
     81 * 1. Add the correct box sizing in Firefox.
     82 * 2. Show the overflow in Edge and IE.
     83 */
     84hr {
     85  box-sizing: content-box;
     86  /* 1 */
     87  height: 0;
     88  /* 1 */
     89  overflow: visible;
     90  /* 2 */
     91}
     92/**
     93 * 1. Correct the inheritance and scaling of font size in all browsers.
     94 * 2. Correct the odd `em` font sizing in all browsers.
     95 */
     96pre {
     97  font-family: monospace, monospace;
     98  /* 1 */
     99  font-size: 1em;
     100  /* 2 */
     101}
     102/* Text-level semantics
     103   ========================================================================== */
     104/**
     105 * Remove the gray background on active links in IE 10.
     106 */
     107a {
     108  background-color: transparent;
     109}
     110/**
     111 * 1. Remove the bottom border in Chrome 57-
     112 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
     113 */
     114abbr[title] {
     115  border-bottom: none;
     116  /* 1 */
     117  text-decoration: underline;
     118  /* 2 */
     119  text-decoration: underline dotted;
     120  /* 2 */
     121}
     122/**
     123 * Add the correct font weight in Chrome, Edge, and Safari.
     124 */
     125b,
     126strong {
     127  font-weight: bolder;
     128}
     129/**
     130 * 1. Correct the inheritance and scaling of font size in all browsers.
     131 * 2. Correct the odd `em` font sizing in all browsers.
     132 */
     133code,
     134kbd,
     135samp {
     136  font-family: monospace, monospace;
     137  /* 1 */
     138  font-size: 1em;
     139  /* 2 */
     140}
     141/**
     142 * Add the correct font size in all browsers.
     143 */
     144small {
     145  font-size: 80%;
     146}
     147/**
     148 * Prevent `sub` and `sup` elements from affecting the line height in
     149 * all browsers.
     150 */
     151sub,
     152sup {
     153  font-size: 75%;
     154  line-height: 0;
     155  position: relative;
     156  vertical-align: baseline;
     157}
     158sub {
     159  bottom: -0.25em;
     160}
     161sup {
     162  top: -0.5em;
     163}
     164/* Embedded content
     165   ========================================================================== */
     166/**
     167 * Remove the border on images inside links in IE 10.
     168 */
     169img {
     170  border-style: none;
     171}
     172/* Forms
     173   ========================================================================== */
     174/**
     175 * 1. Change the font styles in all browsers.
     176 * 2. Remove the margin in Firefox and Safari.
     177 */
     178button,
     179input,
     180optgroup,
     181select,
     182textarea {
     183  font-family: inherit;
     184  /* 1 */
     185  font-size: 100%;
     186  /* 1 */
     187  line-height: 1.15;
     188  /* 1 */
     189  margin: 0;
     190  /* 2 */
     191}
     192/**
     193 * Show the overflow in IE.
     194 * 1. Show the overflow in Edge.
     195 */
     196button,
     197input {
     198  /* 1 */
     199  overflow: visible;
     200}
     201/**
     202 * Remove the inheritance of text transform in Edge, Firefox, and IE.
     203 * 1. Remove the inheritance of text transform in Firefox.
     204 */
     205button,
     206select {
     207  /* 1 */
     208  text-transform: none;
     209}
     210/**
     211 * Correct the inability to style clickable types in iOS and Safari.
     212 */
     213button,
     214[type="button"],
     215[type="reset"],
     216[type="submit"] {
     217  -webkit-appearance: button;
     218}
     219/**
     220 * Remove the inner border and padding in Firefox.
     221 */
     222button::-moz-focus-inner,
     223[type="button"]::-moz-focus-inner,
     224[type="reset"]::-moz-focus-inner,
     225[type="submit"]::-moz-focus-inner {
     226  border-style: none;
     227  padding: 0;
     228}
     229/**
     230 * Restore the focus styles unset by the previous rule.
     231 */
     232button:-moz-focusring,
     233[type="button"]:-moz-focusring,
     234[type="reset"]:-moz-focusring,
     235[type="submit"]:-moz-focusring {
     236  outline: 1px dotted ButtonText;
     237}
     238/**
     239 * Correct the padding in Firefox.
     240 */
     241fieldset {
     242  padding: 0.35em 0.75em 0.625em;
     243}
     244/**
     245 * 1. Correct the text wrapping in Edge and IE.
     246 * 2. Correct the color inheritance from `fieldset` elements in IE.
     247 * 3. Remove the padding so developers are not caught out when they zero out
     248 *    `fieldset` elements in all browsers.
     249 */
     250legend {
     251  box-sizing: border-box;
     252  /* 1 */
     253  color: inherit;
     254  /* 2 */
     255  display: table;
     256  /* 1 */
     257  max-width: 100%;
     258  /* 1 */
     259  padding: 0;
     260  /* 3 */
     261  white-space: normal;
     262  /* 1 */
     263}
     264/**
     265 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
     266 */
     267progress {
     268  vertical-align: baseline;
     269}
     270/**
     271 * Remove the default vertical scrollbar in IE 10+.
     272 */
     273textarea {
     274  overflow: auto;
     275}
     276/**
     277 * 1. Add the correct box sizing in IE 10.
     278 * 2. Remove the padding in IE 10.
     279 */
     280[type="checkbox"],
     281[type="radio"] {
     282  box-sizing: border-box;
     283  /* 1 */
     284  padding: 0;
     285  /* 2 */
     286}
     287/**
     288 * Correct the cursor style of increment and decrement buttons in Chrome.
     289 */
     290[type="number"]::-webkit-inner-spin-button,
     291[type="number"]::-webkit-outer-spin-button {
     292  height: auto;
     293}
     294/**
     295 * 1. Correct the odd appearance in Chrome and Safari.
     296 * 2. Correct the outline style in Safari.
     297 */
     298[type="search"] {
     299  -webkit-appearance: textfield;
     300  /* 1 */
     301  outline-offset: -2px;
     302  /* 2 */
     303}
     304/**
     305 * Remove the inner padding in Chrome and Safari on macOS.
     306 */
     307[type="search"]::-webkit-search-decoration {
     308  -webkit-appearance: none;
     309}
     310/**
     311 * 1. Correct the inability to style clickable types in iOS and Safari.
     312 * 2. Change font properties to `inherit` in Safari.
     313 */
     314::-webkit-file-upload-button {
     315  -webkit-appearance: button;
     316  /* 1 */
     317  font: inherit;
     318  /* 2 */
     319}
     320/* Interactive
     321   ========================================================================== */
     322/*
     323 * Add the correct display in Edge, IE 10+, and Firefox.
     324 */
     325details {
     326  display: block;
     327}
     328/*
     329 * Add the correct display in all browsers.
     330 */
     331summary {
     332  display: list-item;
     333}
     334/* Misc
     335   ========================================================================== */
     336/**
     337 * Add the correct display in IE 10+.
     338 */
     339template {
     340  display: none;
     341}
     342/**
     343 * Add the correct display in IE 10.
     344 */
     345[hidden] {
     346  display: none;
     347}
     348.hidden,
     349.hide {
     350  display: none;
     351}
     352body {
     353  font-family: 'Open Sans', sans-serif;
     354}
     355html {
     356  box-sizing: border-box;
     357}
     358*,
     359*:before,
     360*:after {
     361  box-sizing: inherit;
     362}
     363/* Generic default forms */
     364form {
     365  width: 100%;
     366}
     367legend {
     368  display: none;
     369}
     370fieldset {
     371  border: none;
     372  padding: 0;
     373}
     374fieldset > div {
     375  margin-bottom: 1.5em;
     376}
     377label {
     378  display: block;
     379  font-size: 13px;
     380  margin-bottom: 0.25em;
     381}
     382input {
     383  width: 100%;
     384  padding: 0.5em 0.75em;
     385  border: 1px solid transparent;
     386  border-radius: 2px;
     387}
     388/* Generic button */
     389.button {
     390  box-sizing: border-box;
     391  display: inline-block;
     392  text-align: center;
     393  vertical-align: middle;
     394  cursor: pointer;
     395  border: 1px solid transparent;
     396  text-decoration: none;
     397  font-style: normal;
     398  white-space: nowrap;
     399  text-overflow: ellipsis;
     400  padding: 0.3em 1em;
     401  margin: 0;
     402  position: relative;
     403  overflow: hidden;
     404  background: #e1e1e1;
     405  color: #151515;
     406  font-size: 1em;
     407  line-height: 1.25;
     408  max-width: 100%;
     409}
     410.login-content {
     411  background-image: url("../media/img/back-01.jpg");
     412  background-size: cover;
     413  display: flex;
     414  justify-content: center;
     415  align-items: center;
     416  min-height: calc(100vh - 98px);
     417  padding: 1em 0;
     418}
     419.login-content form {
     420  max-width: 380px;
     421  background-color: rgba(21, 21, 21, 0.6);
     422  border-radius: 6px;
     423  padding: 2em 1.5em;
     424}
     425.login-content form div {
     426  margin-bottom: 1.5em;
     427}
     428.login-content label {
     429  color: #e1e1e1;
     430}
     431.login-content a {
     432  color: #e1e1e1;
     433  font-size: 13px;
     434  text-decoration: none;
     435  margin-right: 0.75em;
     436}
     437.login-content a:hover {
     438  color: white;
     439}
     440.login-content .button {
     441  transition: all 500ms ease-in-out;
     442  background-color: #EE4056;
     443  color: white;
     444  text-transform: uppercase;
     445}
     446.login-content .button:hover {
     447  background-color: #e6152f;
     448}
     449.login-content .message {
     450  padding: 0.5em;
     451  margin: 0;
     452  text-align: center;
     453  font-size: 13px;
     454  font-size: 0.8125rem;
     455}
     456.login-content .message.message-error {
     457  color: white;
     458  background-color: red;
     459}
     460/*
     461.login-remember {
     462    color: @color-main-medium;
     463    .font-size(14);
     464    text-decoration: none;
     465    font-weight: 300;
     466    &:hover{
     467        color: @color-main-light;
     468    }
     469}
     470<a class="login-remember" href="#">Forgot your password?</a>
     471*/
     472.header-content {
     473  padding: 1em 1.5em;
     474}
     475.header-content a {
     476  text-decoration: none;
     477}
     478.header-content .description {
     479  margin: 0;
     480}
     481/* logo ----------------------------------------------------------------------*/
     482.logo {
     483  font-size: 24px;
     484  font-size: 1.5rem;
     485  line-height: 1em;
     486  font-weight: 800;
     487  text-transform: uppercase;
     488  margin: 0;
     489  display: inline-block;
     490}
     491.logo span {
     492  transition: all 250ms ease-in-out;
     493}
     494.logo:hover span {
     495  color: #EE4056;
     496}
     497.logo-open {
     498  display: block;
     499  color: #EE4056;
     500}
     501.logo-work,
     502.logo-outs {
     503  color: #f8b5be;
     504}
     505/* menu navigation -----------------------------------------------------------*/
     506.nav-site {
     507  font-size: 13px;
     508  font-size: 0.8125rem;
     509}
     510.nav-site ul {
     511  list-style-type: none;
     512  padding: 0;
     513  margin: 0;
     514  display: flex;
     515  flex-direction: row;
     516  justify-content: space-between;
     517}
     518.nav-site li {
     519  border-left: 1px solid #e1e1e1;
     520  flex-grow: 1;
     521  text-align: center;
     522}
     523.nav-site a {
     524  color: #959595;
     525  padding: 1.25em;
     526  display: block;
     527}
     528.nav-site a:hover {
     529  color: #151515;
     530}
     531.nav-site .is-active a {
     532  color: #151515;
     533}
     534/* Add workout button with submenu -------------------------------------------*/
     535.add-workout {
     536  position: relative;
     537  /* submenu -------------------------------------------------------------- */
     538}
     539.add-workout > a {
     540  color: #EE4056;
     541}
     542.add-workout > a:before {
     543  content: "+";
     544  font-weight: 800;
     545  font-size: 32px;
     546  font-size: 2rem;
     547  line-height: 0;
     548  position: relative;
     549  top: 8px;
     550}
     551.add-workout > a span {
     552  display: none;
     553}
     554.add-workout > a:hover {
     555  background-color: #EE4056;
     556  color: white;
     557}
     558.add-workout:hover:after {
     559  content: "";
     560  position: absolute;
     561  background-color: white;
     562  bottom: -1px;
     563  width: 100%;
     564  height: 1px;
     565  display: block;
     566  z-index: 20;
     567}
     568.add-workout:hover ul {
     569  display: inline-block;
     570}
     571.add-workout ul {
     572  display: none;
     573  flex-direction: column;
     574  position: absolute;
     575  background-color: rgba(255, 255, 255, 0.95);
     576  right: -1px;
     577  border: 1px solid #e1e1e1;
     578  width: 153px;
     579}
     580.add-workout ul li {
     581  border-left: transparent;
     582  text-align: left;
     583}
     584.add-workout ul a:hover {
     585  background-color: #fbfbfb;
     586}
     587/* description ---------------------------------------------------------------*/
     588.description {
     589  font-size: 14px;
     590  font-size: 0.875rem;
     591  font-weight: 300;
     592  letter-spacing: 0.025em;
     593  color: #959595;
     594}
     595/* ------------------------------ STATES ------------------------------------ */
     596/* when user is login --------------------------------------------------------*/
     597.is-login .header-content {
     598  border-bottom: 1px solid #e1e1e1;
     599  display: flex;
     600  padding: 0em 1.5em;
     601  justify-content: space-between;
     602  align-items: center;
     603}
     604.is-login .description {
     605  display: none;
     606}
     607.is-login .logo-open {
     608  display: inline-block;
     609}
     610.workout-content {
     611  padding: 2em  1em;
     612}
     613@media (min-width: 480px) {
     614  .workout-content {
     615    padding: 2em 6em;
     616  }
     617}
     618@media (min-width: 800px) {
     619  .workout-content {
     620    display: flex;
     621    justify-content: space-between;
     622  }
     623}
     624/* list mode */
     625.workout-list {
     626  margin-right: 2em;
     627  width: 100%;
     628  /* provisional layout, replace this with grid layout system based on final content */
     629}
     630.workout-list > h2 {
     631  font-weight: 300;
     632  margin: 0 0 1.5em;
     633}
     634/* Module resume on dashboard workouts */
     635.workout-resume {
     636  padding: 1.5em 0;
     637  position: relative;
     638  max-width: 700px;
     639}
     640@media (min-width: 800px) {
     641  .workout-resume {
     642    padding-left: 2em;
     643    border-left: 1px solid #e1e1e1;
     644    transition: all 250ms ease-in-out;
     645  }
     646}
     647.workout-resume:hover {
     648  border-color: #151515;
     649}
     650.workout-resume:hover .workout-title:before {
     651  color: #151515;
     652}
     653.workout-resume ul {
     654  padding: 0;
     655  list-style-type: none;
     656  font-size: 13px;
     657  font-size: 0.8125rem;
     658}
     659.workout-resume ul a {
     660  display: block;
     661  text-decoration: none;
     662}
     663.bike:before {
     664  display: block;
     665  content: "";
     666  width: 30px;
     667  height: 30px;
     668  background-image: url('../media/img/bike.svg');
     669  background-size: 100%;
     670}
     671.workout-title {
     672  font-size: 14px;
     673  font-size: 0.875rem;
     674  margin: 0 0 0em 0;
     675  position: relative;
     676}
     677.workout-title:before {
     678  transition: all 250ms ease-in-out;
     679  content: "▶";
     680  position: absolute;
     681  left: -3.25em;
     682  top: 0.35em;
     683  color: #e1e1e1;
     684  font-size: 10px;
     685  font-size: 0.625rem;
     686}
     687.workout-title a {
     688  color: #151515;
     689  text-decoration: none;
     690}
     691.workout-title a:hover {
     692  color: #EE4056;
     693}
     694.workout-info {
     695  display: flex;
     696  align-items: center;
     697  margin: 0.25em 0;
     698}
     699.workout-info li {
     700  color: #959595;
     701}
     702.workout-info li:after {
     703  content: "|";
     704  margin: 0 0.5em;
     705}
     706.workout-info li:last-child:after {
     707  content: "";
     708  margin: 0;
     709}
     710.workout-intro {
     711  font-size: 13px;
     712  font-size: 0.8125rem;
     713  color: #151515;
     714}
     715.workout-options {
     716  display: inline-block;
     717  border: 1px solid #e1e1e1;
     718  margin-bottom: 0;
     719  border-radius: 4px;
     720}
     721.workout-options li {
     722  display: inline-block;
     723  border-right: 1px solid #e1e1e1;
     724}
     725.workout-options li:last-child {
     726  border-right: none;
     727}
     728.workout-options a {
     729  color: #959595;
     730  padding: 0.5em 0.75em;
     731}
     732.workout-options a:hover {
     733  color: #151515;
     734}
     735.owo-del a:hover {
     736  color: red;
     737}
     738.workout-aside {
     739  width: 100%;
     740}
     741@media (min-width: 800px) {
     742  .workout-aside {
     743    max-width: 300px;
     744    padding-left: 1.5em;
     745    border-left: 1px solid #e1e1e1;
     746  }
     747}
     748.aside-profile {
     749  margin-bottom: 2em;
     750}
     751.aside-profile img {
     752  width: 80px;
     753  height: 80px;
     754  object-fit: cover;
     755  border-radius: 50%;
     756}
     757.aside-profile h2 {
     758  font-weight: 400;
     759  font-size: 18px;
     760  font-size: 1.125rem;
     761  margin: 0 0 0.5em 0;
     762}
     763.aside-profile ul {
     764  list-style-type: none;
     765  margin: 0;
     766  padding: 0;
     767  font-size: 13px;
     768  font-size: 0.8125rem;
     769  color: #555555;
     770}
     771.workout-activity-tree {
     772  list-style-type: none;
     773  padding: 0;
     774  margin: 0;
     775  transition: all 250ms ease-in-out;
     776  font-size: 13px;
     777  font-size: 0.8125rem;
     778}
     779.workout-activity-tree > li {
     780  margin-bottom: 0.5em;
     781  padding-bottom: 0.5em;
     782  border-bottom: 1px solid #e1e1e1;
     783}
     784.workout-activity-tree a {
     785  text-decoration: none;
     786  display: block;
     787  color: #EE4056;
     788}
     789.workout-activity-tree a:hover {
     790  color: #151515;
     791}
     792.workout-activity-tree a.viewing-year {
     793  color: #151515;
     794  font-weight: 700;
     795  margin-bottom: 0.5em;
     796}
     797.workout-activity-tree a.viewing-month {
     798  background-color: #e1e1e1;
     799  color: #151515;
     800  font-weight: 700;
     801}
     802.workout-activity-tree-year {
     803  list-style-type: none;
     804  padding: 0;
     805  margin: 0;
     806}
     807.workout-activity-tree-year > li {
     808  display: block;
     809  margin-bottom: 0.5em;
     810}
     811.workout-activity-tree-year a {
     812  display: flex;
     813  justify-content: space-between;
     814  padding: 0.5em;
     815  background-color: #fbfbfb;
     816  color: #555555;
     817}
     818.workout-activity-tree-year a:hover {
     819  background-color: #e1e1e1;
     820}
  • ow/templates/dashboard.pt

    r55e98e4 r5cbc4a0  
    2525      <section class="workout-list">
    2626
    27         <h2 tal:content="context.fullname"></h2>
    28 
    2927        <h3>
    30             (<tal:n tal:content="len(workouts)"></tal:n>/<tal:n tal:content="context.num_workouts"></tal:n>) <tal:t i18n:translate="">workouts</tal:t>
     28           <tal:n tal:content="len(workouts)"></tal:n> <tal:t i18n:translate="">Activities</tal:t>
    3129        </h3>
    3230
     
    103101
    104102      <aside class="workout-aside">
     103      <div class="aside-profile">
     104        <tal:c tal:condition="getattr(context, 'picture', None)">
     105          <img tal:attributes="src request.resource_path(context, 'picture')"
     106               width="450" />
     107        </tal:c>
     108        <h2 tal:content="context.fullname"></h2>
     109        <ul>
     110          <Li>
     111            <tal:n tal:content="context.num_workouts"></tal:n> <tal:t i18n:translate="">workouts</tal:t>
     112          </Li>
     113        </ul>
     114      </div>
    105115          <tal:activity_tree tal:condition="context.num_workouts > 0">
    106116              <ul class="workout-activity-tree" tal:define="tree context.activity_dates_tree">
     
    115125                              <tal:months tal:repeat="month sorted(tree[year].keys())">
    116126                                  <li tal:define="is_viewing_month is_viewing_year and month == viewing_month">
    117                                       <a href="" tal:content="month_name[month]"
     127                                      <a href=""
    118128                                         tal:attributes="href request.resource_url(context, query={'year': year, 'month': month});
    119129                                                         class 'viewing-month' if is_viewing_month else ''">
     130                                           <span tal:content="month_name[month]"></span>
     131                                           <span tal:content="sum([tree[year][month][sport] for sport in tree[year][month]])"></span>
    120132                                      </a>
    121                                       <ul class="workout-activity-tree-month">
    122                                           <tal:sports tal:repeat="sport sorted(tree[year][month].keys())">
    123                                               <li>
    124                                                   <a href="#">
    125                                                       <tal:sport tal:content="sport"></tal:sport> (<tal:workouts tal:content="tree[year][month][sport]"></tal:workouts>)
    126                                                   </a>
    127                                               </li>
    128                                           </tal:sports>
    129                                       </ul>
    130133                                  </li>
    131134                              </tal:months>
Note: See TracChangeset for help on using the changeset viewer.