import logging
import re

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__)

class TagController(BaseController):

    # 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))
