2 # Thierry Parmentelat - INRIA
4 from PLC.Faults import *
5 from PLC.Parameter import Parameter
6 from PLC.Filter import Filter
7 from PLC.Table import Row, Table
8 from PLC.Storage.AlchemyObject import AlchemyObj
9 from PLC.TagTypes import TagType, TagTypes
11 class SiteTag(AlchemyObj):
13 Representation of a row in the site_tag.
14 To use, instantiate with a dict of values.
17 tablename = 'site_tags'
19 'site_tag_id': Parameter(int, "Site setting identifier", primary_key=True),
20 'site_id': Parameter(int, "Site identifier"),
21 'login_base': Parameter(str, "Site login base"),
22 'tag_type_id': Parameter(int, "Tag Type identifier"),
23 'tagname': Parameter(str, "Tag Name"),
24 'description': Parameter(str, "Description"),
25 'category': Parameter(str, "Category"),
26 'value': Parameter(str, "Site setting value"),
31 def sync(self, insert=False, validate=True):
32 AlchemyObj.sync(self, insert, validate)
33 if insert == True or 'site_tag_id' not in self:
34 AlchemyObj.insert(self, dict(self))
36 AlchemyObj.update(self, dict(self))
38 def delete(self, commit=True):
39 AlchemyObj.delete(self, dict(self))
43 Representation of row(s) from the site_tag table in the
47 def __init__(self, api, site_tag_filter = None, columns = None):
48 from PLC.Sites import Site
49 if not site_tag_filter:
50 site_tags = SiteTag().select()
51 if isinstance(site_tag_filter, (list, tuple, set, int, long)):
52 site_tags = SiteTag().select(filter={'site_tag_id': site_tag_filter})
53 elif isinstance(site_tag_filter, dict):
54 site_tags = SiteTag().select(filter=site_tag_filter)
56 raise PLCInvalidArgument, "Wrong site setting filter %r"%site_tag_filter
58 for site_tag in site_tags:
59 site_tag = SiteTag(self.api, object=site_tag)