Commit 527fa89f authored by Michal Čihař's avatar Michal Čihař

Define order of widgets to list

So far they were listed random (as dictionary does not have any defined
order), so let's list them in a prefered way.

Fixes #467
Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent 255862a6
...@@ -41,6 +41,13 @@ def widgets_root(request): ...@@ -41,6 +41,13 @@ def widgets_root(request):
) )
def widgets_sorter(widget):
"""
Provides better ordering of widgets.
"""
return WIDGETS[widget].order
def widgets(request, project): def widgets(request, project):
obj = get_project(request, project) obj = get_project(request, project)
...@@ -63,7 +70,7 @@ def widgets(request, project): ...@@ -63,7 +70,7 @@ def widgets(request, project):
reverse('widgets', kwargs={'project': obj.slug}) reverse('widgets', kwargs={'project': obj.slug})
) )
widget_list = [] widget_list = []
for widget_name in WIDGETS: for widget_name in sorted(WIDGETS, key=widgets_sorter):
widget_class = WIDGETS[widget_name] widget_class = WIDGETS[widget_name]
color_list = [] color_list = []
for color in widget_class.colors: for color in widget_class.colors:
......
...@@ -71,6 +71,7 @@ class Widget(object): ...@@ -71,6 +71,7 @@ class Widget(object):
alpha = False alpha = False
extension = 'png' extension = 'png'
content_type = 'image/png' content_type = 'image/png'
order = 100
def __init__(self, obj, color=None, lang=None): def __init__(self, obj, color=None, lang=None):
''' '''
...@@ -252,6 +253,7 @@ class NormalWidget(Widget): ...@@ -252,6 +253,7 @@ class NormalWidget(Widget):
'width': 180, 'width': 180,
'horizontal': True, 'horizontal': True,
} }
order = 110
def render_texts(self): def render_texts(self):
self.render_text( self.render_text(
...@@ -277,6 +279,7 @@ register_widget(NormalWidget) ...@@ -277,6 +279,7 @@ register_widget(NormalWidget)
class SmallWidget(Widget): class SmallWidget(Widget):
name = '88x31' name = '88x31'
order = 120
def render_texts(self): def render_texts(self):
self.render_text( self.render_text(
...@@ -300,6 +303,7 @@ class BadgeWidget(Widget): ...@@ -300,6 +303,7 @@ class BadgeWidget(Widget):
name = 'status' name = 'status'
colors = ('badge', ) colors = ('badge', )
alpha = True alpha = True
order = 90
def get_filename(self): def get_filename(self):
if self.percent > 90: if self.percent > 90:
...@@ -336,6 +340,7 @@ class ShieldsBadgeWidget(Widget): ...@@ -336,6 +340,7 @@ class ShieldsBadgeWidget(Widget):
colors = ('badge', ) colors = ('badge', )
extension = 'svg' extension = 'svg'
content_type = 'image/svg+xml' content_type = 'image/svg+xml'
order = 80
def redirect(self): def redirect(self):
if ENABLE_HTTPS: if ENABLE_HTTPS:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment