X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/da9dc9c1a060be8de3c13fa308a047b4b57eaaeb..20379253a8fa1326e175c0f0bb5faee4aeeea158:/floof/model/tags.py diff --git a/floof/model/tags.py b/floof/model/tags.py index 1a41278..b0a7072 100644 --- a/floof/model/tags.py +++ b/floof/model/tags.py @@ -1,7 +1,5 @@ from elixir import * from art import Art -from floof.lib.dbhelpers import find_or_create, update_or_create - class Tag(Entity): # look into how ondelete works. This just sets a database property. @@ -14,33 +12,9 @@ class Tag(Entity): return "(broken)" return unicode(self.tagtext) - class TagText(Entity): text = Field(Unicode(50)) # gotta enforce this somehow tags = OneToMany('Tag') def __unicode__(self): return self.text - - -class TagMixin(object): - def add_tags(self, tags, user): - for text in tags.split(): - if text[0] == '-': - # Nega-tags - tagtext = TagText.get_by(text=text[1:]) - if tagtext: - tag = Tag.get_by(art=self, tagger=user, tagtext=tagtext) - if tag: - elixir.session.delete(tag) - - else: - if len(text) > 50: - raise "Long Tag!" # can we handle this more gracefully? - # sqlite seems happy to store strings much longer than the supplied limit... - - # elixir should really have its own find_or_create. - tagtext = find_or_create(TagText, text=text) - tag = find_or_create(Tag, art=self, tagger=user, tagtext=tagtext) - -Art.__bases__ += (TagMixin, )