diff --git a/pg-datastore.lisp b/pg-datastore.lisp index 317eca5..39e2646 100644 --- a/pg-datastore.lisp +++ b/pg-datastore.lisp @@ -57,16 +57,19 @@ (defmethod datastore-get-all-stories ((datastore pg-datastore)) (with-connection (connection-spec datastore) - (query (:order-by (:select :* :from 'story) 'priority) :alists))) + (query (:order-by (:select :* (:as (:md5 'assignee) 'md5) + :from 'story) 'priority) :alists))) (defmethod datastore-get-story ((datastore pg-datastore) id) (with-connection (connection-spec datastore) - (append (query (:select :* :from 'story :where (:= 'id id)) :alist) + (append (query (:select :* (:as (:md5 'assignee) 'md5) :from 'story + :where (:= 'id id)) :alist) `((tasks . ,(datastore-get-tasks-for-story datastore id)))))) (defmethod datastore-get-tasks-for-story ((datastore pg-datastore) id) (with-connection (connection-spec datastore) - (query (:order-by (:select :* :from 'task :where (:= 'story-id id)) + (query (:order-by (:select :* (:as (:md5 'assignee) 'md5) :from 'task + :where (:= 'story-id id)) 'priority) :alists))) diff --git a/static/js/main.js b/static/js/main.js index 444f06a..68ea997 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -24,6 +24,25 @@ var StateIcon = React.createClass({ } }); +var AssigneeIcon = React.createClass({ + render: function() { + var icon; + + if (this.props.assignee) + icon = ; + else + icon = ( + + + ); + + return icon; + } +}); + var StoryTaskRow = React.createClass({ changeState: React.autoBind(function(event) { $.post("/tasks/state", {'id': this.props.task.id}) @@ -58,6 +77,10 @@ var StoryTaskRow = React.createClass({ +