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
def delete(self, art_id, id):
- tag = Tag.get(id)
- if tag:
- elixir.session.delete(tag)
- elixir.session.commit()
- redirect(url('art', id=art_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)
- 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(c.art, tag_string, c.user)
+
+ # Add or remove tags
+ redirect(url('show_art', id=c.art.id))