From 0008d12ce54d232959e7eca2a62b07b760044fd7 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 29 May 2015 15:37:14 +0200 Subject: [PATCH] (configd) add optional sort order to list --- .../service/modules/addons/template_helpers.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/opnsense/service/modules/addons/template_helpers.py b/src/opnsense/service/modules/addons/template_helpers.py index 156086270..55dfb6cee 100644 --- a/src/opnsense/service/modules/addons/template_helpers.py +++ b/src/opnsense/service/modules/addons/template_helpers.py @@ -29,7 +29,7 @@ -------------------------------------------------------------------------------------- package : configd """ - +from operator import itemgetter class Helpers(object): def __init__(self, template_in_data): @@ -66,19 +66,24 @@ class Helpers(object): else: return False - def toList(self,tag): + def toList(self, tag, sortBy=None): """ if an item should be a list of items (repeating tag), use this method to make sure that we always return a list. The configuration doesn't know if a non repeating item is supposed to be a list of items, this makes it explicit. :param tag: tag in dot notation (section.item) + :param sortBy: resort result by specfied key :return: [] """ result = self.getNodeByTag(tag) - if type(result) == list: + if type(result) != list: + # wrap result + result = [result] + + if sortBy is None: return result else: - # wrap result - return [result] + # resort list by tag + return sorted(result,key=itemgetter(sortBy)) def getUUIDtag(self, uuid): """ retrieve tag name of registered uuid, returns __not_found__ if none available