# # Thierry Parmentelat - INRIA # from PLC.Faults import * from PLC.Parameter import Parameter from PLC.Filter import Filter from PLC.Table import Row, Table from PLC.Storage.AlchemyObject import AlchemyObj from PLC.TagTypes import TagType, TagTypes class SiteTag(AlchemyObj): """ Representation of a row in the site_tag. To use, instantiate with a dict of values. """ tablename = 'site_tags' fields = { 'site_tag_id': Parameter(int, "Site setting identifier", primary_key=True), 'site_id': Parameter(int, "Site identifier"), 'login_base': Parameter(str, "Site login base"), 'tag_type_id': Parameter(int, "Tag Type identifier"), 'tagname': Parameter(str, "Tag Name"), 'description': Parameter(str, "Description"), 'category': Parameter(str, "Category"), 'value': Parameter(str, "Site setting value"), ### relations } def sync(self, insert=False, validate=True): AlchemyObj.sync(self, insert, validate) if insert == True or 'site_tag_id' not in self: AlchemyObj.insert(self, dict(self)) else: AlchemyObj.update(self, dict(self)) def delete(self, commit=True): AlchemyObj.delete(self, dict(self)) class SiteTags(list): """ Representation of row(s) from the site_tag table in the database. """ def __init__(self, api, site_tag_filter = None, columns = None): from PLC.Sites import Site if not site_tag_filter: site_tags = SiteTag().select() if isinstance(site_tag_filter, (list, tuple, set, int, long)): site_tags = SiteTag().select(filter={'site_tag_id': site_tag_filter}) elif isinstance(site_tag_filter, dict): site_tags = SiteTag().select(filter=site_tag_filter) else: raise PLCInvalidArgument, "Wrong site setting filter %r"%site_tag_filter for site_tag in site_tags: site_tag = SiteTag(self.api, object=site_tag) self.append(site_tag)