diff options
author | Michał Zimniewicz <michzimny@users.noreply.github.com> | 2018-04-25 23:00:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-25 23:00:17 +0200 |
commit | acebd78fc701d250069334d607fb918f6b666ba6 (patch) | |
tree | e15fce45511d2e0257bf4290baf4675d53745288 | |
parent | 753085c46b30828092e66870f15763fee02b32f7 (diff) | |
parent | 1060632734b1f4e1117cbc33163101999ab201f6 (diff) |
Merge pull request #24 from emkael/position-styles
Wyróżnienie wierszy tabeli klasyfikacji końcowej
-rw-r--r-- | CONFIG.md | 11 | ||||
-rw-r--r-- | jfr_playoff/generator.py | 32 | ||||
-rw-r--r-- | jfr_playoff/template.py | 19 |
3 files changed, 56 insertions, 6 deletions
@@ -72,6 +72,17 @@ Miejsca w tabeli końcowej dla drużyn zdefiniowanych jako kończące rozgrywki Program nie potrafi ich rozstrzygać samodzielnie remisów podczas pobierania wyników z bazy danych. Dla listy teamów pobranej ze strony wyników, zachowana jest kolejność na stronie (więc remisy rozstrzygnięte przez Teamy przed wygenerowaniem wyników). +Ustawienia stylów klasyfikacji końcowej +--------------------------------------- + +Sekcja `"position_styles"` pozwala wyróżnić określone pozycje tabeli klasyfikacji końcowej, nadając im dowolnie zdefiniowaną klasę CSS. + +Jest to tablica obiektów o następujących składowych: + - `"class"` - nazwa klasy CSS ustawianej na odpowiednich elementach `<tr>` tabeli klasyfikacji + - `"positions"` - tablica liczb naturalnych określających pozycje tabeli, do których klasa CSS jest dodawana + - `"caption"` - opcjonalny opis wyświetlany w legendzie pod klasyfikacją końcową + + Ustawienia drabinki ------------------- diff --git a/jfr_playoff/generator.py b/jfr_playoff/generator.py index cc4469d..2b5aaf0 100644 --- a/jfr_playoff/generator.py +++ b/jfr_playoff/generator.py @@ -11,8 +11,16 @@ class PlayoffGenerator(object): self.canvas = {} if settings.has_section('canvas'): self.canvas = settings.get('canvas') + self.leaderboard_classes = {} + if settings.has_section('position_styles'): + self.leaderboard_classes = settings.get('position_styles') def generate_content(self): + match_grid = self.get_match_grid( + self.data.get_dimensions(), + self.data.generate_phases(), + self.data.fill_match_info()) + leaderboard_table = self.get_leaderboard_table() return p_temp.PAGE % ( p_temp.PAGE_HEAD % ( p_temp.PAGE_HEAD_REFRESH % ( @@ -21,12 +29,10 @@ class PlayoffGenerator(object): self.page['title']), p_temp.PAGE_BODY % ( self.page['logoh'], - self.get_match_grid( - self.data.get_dimensions(), - self.data.generate_phases(), - self.data.fill_match_info()), + match_grid, self.get_swiss_links(), - self.get_leaderboard_table(), + leaderboard_table, + self.get_leaderboard_caption_table() if leaderboard_table else '', p_temp.PAGE_BODY_FOOTER.decode('utf8') % ( datetime.now().strftime('%Y-%m-%d o %H:%M:%S')))) @@ -119,6 +125,21 @@ class PlayoffGenerator(object): grid_boxes ) + def get_leaderboard_row_class(self, position): + classes = [] + for style in self.leaderboard_classes: + if position in style['positions']: + classes.append(style['class']) + return ' '.join(classes) + + def get_leaderboard_caption_table(self): + rows = '' + for style in self.leaderboard_classes: + if 'caption' in style: + rows += p_temp.LEADERBOARD_CAPTION_TABLE_ROW % ( + style['class'], style['caption']) + return p_temp.LEADERBOARD_CAPTION_TABLE % (rows) if rows else '' + def get_leaderboard_table(self): leaderboard = self.data.fill_leaderboard() if len([t for t in leaderboard if t is not None]) == 0: @@ -127,6 +148,7 @@ class PlayoffGenerator(object): rows = '' for team in leaderboard: rows += p_temp.LEADERBOARD_ROW % ( + self.get_leaderboard_row_class(position), position, self.get_flag(team), team or '') position += 1 html = p_temp.LEADERBOARD.decode('utf8') % (rows) diff --git a/jfr_playoff/template.py b/jfr_playoff/template.py index e9ba977..b99c7c7 100644 --- a/jfr_playoff/template.py +++ b/jfr_playoff/template.py @@ -96,7 +96,7 @@ LEADERBOARD = ''' ''' LEADERBOARD_ROW = ''' -<tr> +<tr class="%s"> <td class="bdc1">%d</td> <td class="bd"> %s %s @@ -108,6 +108,22 @@ LEADERBOARD_ROW_FLAG = ''' <img class="fl" src="images/%s" /> ''' +LEADERBOARD_CAPTION_TABLE = ''' +<table class="caption_table" border="0" cellspacing="0"> +<tr><td class="e"> </td></tr> +<tr><td class="bdnl12" align="center"><b> LEGENDA </b></td></tr> +%s +</table> +''' + +LEADERBOARD_CAPTION_TABLE_ROW = ''' +<tr class="%s"> +<td class="bd1"> + %s +</td> +</tr> +''' + PAGE_HEAD = ''' <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-Control" content="no-cache" /> @@ -134,6 +150,7 @@ PAGE_BODY = ''' </p> %s %s +%s ''' PAGE_BODY_FOOTER = ''' |