Mercurial > urweb
view demo/more/bid.ur @ 1022:4de35df3d545
Start of bidding implementation compiles
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 31 Oct 2009 15:51:50 -0400 |
parents | |
children | e46227efcbba |
line wrap: on
line source
functor Make(M : Conference.INPUT) = struct open M table bid : {User : userId, Paper : paperId, Interest : char} PRIMARY KEY (User, Paper) table assignment : {User : userId, Paper : paperId} PRIMARY KEY (User, Paper) fun isOnPc id = ro <- oneOrNoRows1 (SELECT user.OnPc FROM user WHERE user.Id = {[id]}); return (case ro of None => False | Some r => r.OnPc) val linksForPc = let fun bid () = me <- getLogin; return <xml>Bidding time!</xml> in <xml> <li> <a link={bid ()}>Bid on papers</a></li> </xml> end con yourPaperTables = [Assignment = _] constraint [Paper] ~ yourPaperTables fun joinYourPaper [tabs] [paper] [[Paper] ~ tabs] [[Paper] ~ _] [tabs ~ yourPaperTables] [[Id] ~ paper] (fi : sql_from_items ([Paper = [Id = paperId] ++ paper] ++ tabs)) = sql_inner_join fi (sql_from_table [#Assignment] assignment) (WHERE Paper.Id = Assignment.Paper) end