diff options
author | Félix Sipma <felix.sipma@no-log.org> | 2015-01-30 17:11:52 +0100 |
---|---|---|
committer | Félix Sipma <felix.sipma@no-log.org> | 2015-01-30 17:13:45 +0100 |
commit | cb00cf6493dd57a0f1ee40ae5823718c087dc529 (patch) | |
tree | 6d4f74c99ace3048ddc3bc4cc394cd1c65241612 /Form | |
parent | 13a5e243f1ed6ee5985ff6fa139bed06881e4430 (diff) |
Form.ShopDelivery: do not show deliveries which are already associated to a given shop
Diffstat (limited to 'Form')
-rw-r--r-- | Form/ShopDelivery.hs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Form/ShopDelivery.hs b/Form/ShopDelivery.hs index 505b9f5..bd82dea 100644 --- a/Form/ShopDelivery.hs +++ b/Form/ShopDelivery.hs @@ -9,18 +9,12 @@ data FormShopDelivery = FormShopDelivery , fpDelivery :: DeliveryId } -shopDeliveryForm :: Maybe ShopId -> Maybe DeliveryId -> Html -> MForm Handler (FormResult FormShopDelivery, Widget) -shopDeliveryForm mshopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDelivery - <$> maybe shopField pure mshopid +shopDeliveryForm :: ShopId -> Maybe DeliveryId -> Html -> MForm Handler (FormResult FormShopDelivery, Widget) +shopDeliveryForm shopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDelivery + <$> pure shopid <*> maybe deliveryField pure mdeliveryid where - shopField = areq (selectField shops) (bfs MsgShop) Nothing deliveryField = areq (selectField deliveries) (bfs MsgDelivery) Nothing - shops = do - entities <- runDB $ selectList [ ] [ Asc ShopIdent ] - optionsPairs $ map (\shop -> ( shopIdent $ entityVal shop - , entityKey shop)) - entities deliveries = do now <- lift getCurrentTime options <- runDB $ @@ -28,6 +22,11 @@ shopDeliveryForm mshopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDel E.from $ \(p, d) -> do E.where_ ( d E.^. DeliveryPlace E.==. p E.^. PlaceId E.&&. d E.^. DeliveryFrom E.>. E.val now + E.&&. (E.notExists $ E.from $ \sd -> + E.where_ ( sd E.^. ShopDeliveryDelivery E.==. d E.^. DeliveryId + E.&&. sd E.^. ShopDeliveryShop E.==. E.val shopid + ) + ) ) E.orderBy [ E.asc (p E.^. PlaceIdent) , E.asc (d E.^. DeliveryFrom) |