From b62a0aaa38a63e7ce769fc698da39b5b8c81849c Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 25 Apr 2018 12:44:27 +0200 Subject: Add config-specified classes to leaderboard positions --- jfr_playoff/generator.py | 11 +++++++++++ jfr_playoff/template.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/jfr_playoff/generator.py b/jfr_playoff/generator.py index cc4469d..5ce7d4d 100644 --- a/jfr_playoff/generator.py +++ b/jfr_playoff/generator.py @@ -11,6 +11,9 @@ 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): return p_temp.PAGE % ( @@ -119,6 +122,13 @@ 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_table(self): leaderboard = self.data.fill_leaderboard() if len([t for t in leaderboard if t is not None]) == 0: @@ -127,6 +137,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..6e412b9 100644 --- a/jfr_playoff/template.py +++ b/jfr_playoff/template.py @@ -96,7 +96,7 @@ LEADERBOARD = ''' ''' LEADERBOARD_ROW = ''' - + %d  %s  %s  -- cgit v1.2.3 From 2b00cc4735293a5276d120529a0bcc3b95177219 Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 25 Apr 2018 12:44:58 +0200 Subject: Add explanation of leaderboard classes for these with defined captions --- jfr_playoff/generator.py | 21 ++++++++++++++++----- jfr_playoff/template.py | 17 +++++++++++++++++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/jfr_playoff/generator.py b/jfr_playoff/generator.py index 5ce7d4d..2b5aaf0 100644 --- a/jfr_playoff/generator.py +++ b/jfr_playoff/generator.py @@ -16,6 +16,11 @@ class PlayoffGenerator(object): 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 % ( @@ -24,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')))) @@ -129,6 +132,14 @@ class PlayoffGenerator(object): 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: diff --git a/jfr_playoff/template.py b/jfr_playoff/template.py index 6e412b9..b99c7c7 100644 --- a/jfr_playoff/template.py +++ b/jfr_playoff/template.py @@ -108,6 +108,22 @@ LEADERBOARD_ROW_FLAG = ''' ''' +LEADERBOARD_CAPTION_TABLE = ''' + + + +%s +
 
 LEGENDA 
+''' + +LEADERBOARD_CAPTION_TABLE_ROW = ''' + + + %s  + + +''' + PAGE_HEAD = ''' @@ -134,6 +150,7 @@ PAGE_BODY = '''

%s %s +%s ''' PAGE_BODY_FOOTER = ''' -- cgit v1.2.3 From 1060632734b1f4e1117cbc33163101999ab201f6 Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 25 Apr 2018 13:06:51 +0200 Subject: Documentation for custom leaderboard classes. Fixes #23 --- CONFIG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CONFIG.md b/CONFIG.md index 4595ace..d4fa87f 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -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 `` 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 ------------------- -- cgit v1.2.3