Test suite runs and passes!
[zzz-floof.git] / floof / controllers / tag.py
index ef3c7ce..1ceaf7c 100644 (file)
@@ -1,16 +1,18 @@
 import logging
+import re
 
-from pylons import request, response, session, tmpl_context as c, h
+from pylons import request, response, session, tmpl_context as c, url
 from pylons.controllers.util import abort, redirect
 
+import elixir
+from floof.model import Art, ArtUser, ArtUserType, Tag, TagText, User
+from floof.lib import helpers as h
 from floof.lib.base import BaseController, render
-from pylons import url
+from floof.lib.tags import add_tags
+from floof.lib.dbhelpers import find_or_create
 
 log = logging.getLogger(__name__)
 
-import elixir
-from floof.model.art import Art, Tag
-
 class TagController(BaseController):
 
     # TODO: login required
@@ -18,12 +20,19 @@ class TagController(BaseController):
         tag = h.get_object_or_404(Tag, id=id)
         elixir.session.delete(tag)
         elixir.session.commit()
-        redirect(url('art', id=art_id))
-        
+        redirect(url('show_art', id=art_id))
+
     # TODO: login required
     def create(self, art_id):
         c.art = h.get_object_or_404(Art, id=art_id)
-        c.art.add_tags(request.params["tags"], c.user)
-        elixir.session.commit()
-        redirect(url('art', id=c.art.id))
 
+        tag_string = request.params.get('tags', '')
+        add_tags(
+            art=c.art,
+            tag_string=tag_string,
+            adding_user=c.user,
+            me=c.user,
+        )
+
+        # Add or remove tags
+        redirect(url('show_art', id=c.art.id))