def listTariffs(self,request): """ return a list of tariff infos in format [{"tariff_name":,"tariff_id":,"comment":}] note that prefixes aren't included """ request.needAuthType(request.ADMIN) request.getAuthNameObj().canDo("SEE VOIP TARIFF") tariffs=map(lambda tariff_name:tariff_main.getLoader().getTariffByName(tariff_name).getInfo(), tariff_main.getLoader().getAllTariffNames()) sorted=SortedList(tariffs) sorted.sortByValueDicKey("tariff_name",False) return sorted.getList()
def __getPrefixesInfo(self, name_regex): """ return a list of prefixes info name_regex(string): regular expression to match with prefix names empty string means return all """ if name_regex: pattern = re.compile(name_regex) prefixes = [] for prefix_obj in self.prefixes_id.itervalues(): if pattern.match(prefix_obj.getPrefixName()): prefixes.append(prefix_obj.getInfo()) else: prefixes = map(lambda prefix: prefix.getInfo(), self.prefixes_id.itervalues()) sorted = SortedList(prefixes) sorted.sortByValueDicKey("prefix_name", False) return sorted.getList()
def _sortOnlines(list, sort_by, desc, valid_sortbys): """ sort "list" by post text of sort_by and desc. sort_by should be in valid_sortbys or default will be chosen """ if sort_by in ("","login_time"): sort_by="login_time_epoch" elif sort_by not in valid_sortbys: toLog("SortOnlines: Invalid sort by %s %s"%(sort_by,valid_sortbys),LOG_DEBUG) sort_by="login_time_epoch" sorted_list=SortedList(list) if sort_by.startswith("attrs_"): sort_by_post_text='["attrs"]["%s"]'%sort_by[6:] sorted_list.sortByPostText(sort_by_post_text,desc) else: sorted_list.sortByValueDicKey(sort_by, desc) return sorted_list.getList()