# HG changeset patch # User Adam Chlipala # Date 1257189272 18000 # Node ID 8b7971e7433573de73aa7f99779be75eaf90a1b4 # Parent be1aec7333a54128d3c0cda795c3fdd38926de31 Preload current assignment status diff -r be1aec7333a5 -r 8b7971e74335 demo/more/bid.ur --- a/demo/more/bid.ur Mon Nov 02 14:11:08 2009 -0500 +++ b/demo/more/bid.ur Mon Nov 02 14:14:32 2009 -0500 @@ -17,20 +17,23 @@ val linksForChair = let fun assignPapers () = - tup <- query (SELECT paper.Id, paper.{{M.paper}}, user.Id, user.Nam, bid.Interest + tup <- query (SELECT paper.Id, paper.{{M.paper}}, user.Id, user.Nam, bid.Interest, assignment.User FROM paper JOIN bid ON bid.Paper = paper.Id JOIN user ON bid.User = user.Id + LEFT JOIN assignment ON assignment.Paper = paper.Id AND assignment.User = user.Id ORDER BY paper.Id, bid.Interest, user.Nam) (fn r (paper, int, acc, ints, papers) => if (case paper of None => False | Some r' => r'.Id = r.Paper.Id) then if int = r.Bid.Interest then - return (paper, int, (r.User.Id, r.User.Nam) :: acc, ints, papers) + return (paper, int, (r.User.Id, r.User.Nam, Option.isSome r.Assignment.User) :: acc, + ints, papers) else - return (paper, r.Bid.Interest, (r.User.Id, r.User.Nam) :: [], + return (paper, r.Bid.Interest, (r.User.Id, r.User.Nam, + Option.isSome r.Assignment.User) :: [], (int, acc) :: ints, papers) else return (Some r.Paper, r.Bid.Interest, - (r.User.Id, r.User.Nam) :: [], [], + (r.User.Id, r.User.Nam, Option.isSome r.Assignment.User) :: [], [], case paper of None => papers | Some r => (r.Id, r -- #Id, (int, acc) :: ints) :: papers)) @@ -44,8 +47,8 @@ ints <- List.mapM (fn (int, users) => cg <- CheckGroup.create (List.mp - (fn (id, nam) => (id, txt nam, - False)) + (fn (id, nam, sel) => + (id, txt nam, sel)) users); ex <- Expandable.create (CheckGroup.render cg);