X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FAddressTypes.py;h=7156c00b57f901396a7ba58745873e3bcfe7d1ef;hb=c19d3f07adc9959803e56e6f5bc48ab413e13eaa;hp=67de84e8d20f27ab4d968b138b7c4df80209e414;hpb=41e11f871a6e666c5f185e03ed5e1ac4dee9b75a;p=plcapi.git diff --git a/PLC/AddressTypes.py b/PLC/AddressTypes.py index 67de84e..7156c00 100644 --- a/PLC/AddressTypes.py +++ b/PLC/AddressTypes.py @@ -4,7 +4,7 @@ # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # -# $Id: AddressTypes.py,v 1.6 2006/10/25 14:29:13 mlhuang Exp $ +# $Id: AddressTypes.py 5574 2007-10-25 20:33:17Z thierry $ # from types import StringTypes @@ -46,21 +46,21 @@ class AddressTypes(Table): Representation of the address_types table in the database. """ - def __init__(self, api, address_type_filter = None): - Table.__init__(self, api, AddressType) + def __init__(self, api, address_type_filter = None, columns = None): + Table.__init__(self, api, AddressType, columns) sql = "SELECT %s FROM address_types WHERE True" % \ - ", ".join(AddressType.fields) + ", ".join(self.columns) if address_type_filter is not None: - if isinstance(address_type_filter, list): + if isinstance(address_type_filter, (list, tuple, set)): # Separate the list into integers and strings ints = filter(lambda x: isinstance(x, (int, long)), address_type_filter) strs = filter(lambda x: isinstance(x, StringTypes), address_type_filter) address_type_filter = Filter(AddressType.fields, {'address_type_id': ints, 'name': strs}) - sql += " AND (%s)" % address_type_filter.sql(api, "OR") + sql += " AND (%s) %s" % address_type_filter.sql(api, "OR") elif isinstance(address_type_filter, dict): address_type_filter = Filter(AddressType.fields, address_type_filter) - sql += " AND (%s)" % address_type_filter.sql(api, "AND") + sql += " AND (%s) %s" % address_type_filter.sql(api, "AND") self.selectall(sql)