app/taggable/taggable.py
changeset 3083 f384c0a42920
parent 3081 14077185c46e
child 3085 ded7a67e7e0a
equal deleted inserted replaced
3082:da8cc38cabe9 3083:f384c0a42920
     1 from google.appengine.ext import db
     1 from google.appengine.ext import db
       
     2 
     2 import string
     3 import string
       
     4 import soc.models.linkable
     3     
     5     
     4 class Tag(db.Model):
     6 class Tag(db.Model):
     5   "Google AppEngine model for store of tags."
     7   "Google AppEngine model for store of tags."
     6 
     8 
     7   tag = db.StringProperty(required=True)
     9   tag = db.StringProperty(required=True)
    16   tagged_count = db.IntegerProperty(default=0)
    18   tagged_count = db.IntegerProperty(default=0)
    17   "The number of entities in tagged."
    19   "The number of entities in tagged."
    18 
    20 
    19   auto_delete = db.BooleanProperty(required=True, default=False)
    21   auto_delete = db.BooleanProperty(required=True, default=False)
    20   "If true, a tag instance should be deleted when tagged_count reaches zero."
    22   "If true, a tag instance should be deleted when tagged_count reaches zero."
       
    23 
       
    24   scope = db.ReferenceProperty(reference_class=soc.models.linkable.Linkable,
       
    25                                required=False,
       
    26                                collection_name='task_type_tags')
       
    27   "Each tag is scoped under some linkable model."
    21 
    28 
    22   @classmethod
    29   @classmethod
    23   def __key_name(cls, tag_name):
    30   def __key_name(cls, tag_name):
    24     return cls.__name__ + '_' + tag_name
    31     return cls.__name__ + '_' + tag_name
    25     
    32