- removed_fields = []
-
- Table.__init__(self, api, PCUType, columns)
-
- sql = "SELECT %s FROM view_pcu_types WHERE True" % \
- ", ".join(self.columns)
-
- if pcu_type_filter is not None:
- if isinstance(pcu_type_filter, (list, tuple, set)):
- # Separate the list into integers and strings
- ints = filter(lambda x: isinstance(x, (int, long)), pcu_type_filter)
- strs = filter(lambda x: isinstance(x, StringTypes), pcu_type_filter)
- pcu_type_filter = Filter(PCUType.fields, {'pcu_type_id': ints, 'model': strs})
- sql += " AND (%s) %s" % pcu_type_filter.sql(api, "OR")
- elif isinstance(pcu_type_filter, dict):
- pcu_type_filter = Filter(PCUType.fields, pcu_type_filter)
- sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
- elif isinstance (pcu_type_filter, StringTypes):
- pcu_type_filter = Filter(PCUType.fields, {'model':pcu_type_filter})
- sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
- elif isinstance (pcu_type_filter, int):
- pcu_type_filter = Filter(PCUType.fields, {'pcu_type_id':pcu_type_filter})
- sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
- else:
- raise PLCInvalidArgument, "Wrong pcu_type filter %r"%pcu_type_filter
-
-
- self.selectall(sql)