X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FTagTypes.py;fp=PLC%2FTagTypes.py;h=78cc56fc05f4d2a9dc202988df245b6bd03bcc2b;hb=d96bd4e652ae4eb35ec7306031b91b41d0fc56d1;hp=9df501ca57144126b8df148cb974c0b068b6113e;hpb=0e514ee3c14478bd852f71bf0211335c5ec848f0;p=plcapi.git diff --git a/PLC/TagTypes.py b/PLC/TagTypes.py index 9df501c..78cc56f 100644 --- a/PLC/TagTypes.py +++ b/PLC/TagTypes.py @@ -18,10 +18,9 @@ class TagType (AlchemyObj): """ tablename = 'tag_types' - primary_key = 'tag_type_id' join_tables = ['tag_type_role', 'node_tag', 'interface_tag', 'slice_tag', 'site_tag', 'person_tag' ] fields = { - 'tag_type_id': Parameter(int, "Node tag type identifier"), + 'tag_type_id': Parameter(int, "Node tag type identifier", primary_key=True), 'tagname': Parameter(str, "Node tag type name", max = 100), 'description': Parameter(str, "Node tag type description", max = 254), 'category' : Parameter (str, "Node tag category", max=64, optional=True), @@ -29,7 +28,7 @@ class TagType (AlchemyObj): 'roles': Parameter([str], "List of roles", joined=True), } - def validate_name(self, name): + def validate_tagname(self, name): if not len(name): raise PLCInvalidArgument, "tag type name must be set" @@ -48,12 +47,13 @@ class TagType (AlchemyObj): AlchemyObj.sync(self, insert, validate) if insert == True or 'tag_type_id' not in self: AlchemyObj.insert(self, dict(self)) + tag_type = AlchemyObj.select(self, filter={'tagname': self['tagname']}) + self['tag_type_id'] = tag_type['tag_type_id'] else: AlchemyObj.update(self, dict(self)) def delete(self, commit=True): - AlchemyObj.delete(self, dict(self)) - + AlchemyObj.delete(self, filter={'tag_type_id': self['tag_type_id']}) class TagTypes(list): """ Representation of row(s) from the tag_types table @@ -78,4 +78,4 @@ class TagTypes(list): raise PLCInvalidArgument, "Wrong tag type filter %r"%tag_type_filter for tag_type in tag_types: - self.append(tag_type) + self.append(TagType(api, object=tag_type, columns=columns))