import logging

from pylons import request, response, session, tmpl_context as c
from pylons.controllers.util import abort, redirect_to
from sqlalchemy.orm.exc import NoResultFound

from floof.lib.base import BaseController, render
from floof.model.users import User, UserRelationship

log = logging.getLogger(__name__)

class UsersController(BaseController):

    def list(self):
        """List of all users."""

        # TODO paging!
        c.users = User.query.all()

        return render('/users/index.mako')

    def view(self, name):
        """Userpage."""

        try:
            c.this_user = User.get_by(name=name)
        except NoResultFound:
            abort(404)

        if c.user:
            rels = UserRelationship.query.filter_by(
                user_id=c.user.id,
                target_user_id=c.this_user.id,
            ).all()

            c.relationships = [_.type for _ in rels]

        return render('/users/view.mako')
