Test suite runs and passes!
[zzz-floof.git] / floof / controllers / tag.py
index 3b69ed6..1ceaf7c 100644 (file)
@@ -1,20 +1,38 @@
 import logging
+import re
 
-from pylons import request, response, session, tmpl_context as c
-from pylons.controllers.util import abort, redirect_to
+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 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 Tag
-
 class TagController(BaseController):
 
-    def delete(self, id):
-        tag = Tag.get(id)
-        if tag:
-            elixir.session.delete(tag)
-            elixir.session.commit()
-        redirect_to(request.referrer)
\ No newline at end of file
+    # TODO: login required
+    def delete(self, art_id, id):
+        tag = h.get_object_or_404(Tag, id=id)
+        elixir.session.delete(tag)
+        elixir.session.commit()
+        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)
+
+        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))