diff options
-rw-r--r-- | Form/ShopDelivery.hs | 17 | ||||
-rw-r--r-- | Handler/ShopShopDelivery.hs | 2 | ||||
-rw-r--r-- | Widget/ShopDelivery.hs | 2 |
3 files changed, 10 insertions, 11 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) diff --git a/Handler/ShopShopDelivery.hs b/Handler/ShopShopDelivery.hs index 7fa855f..d0f1de9 100644 --- a/Handler/ShopShopDelivery.hs +++ b/Handler/ShopShopDelivery.hs @@ -5,7 +5,7 @@ import Form.ShopDelivery (shopDeliveryForm, FormShopDelivery (..)) postShopShopDeliveryR :: ShopId -> Handler Html postShopShopDeliveryR shopid = do - ((res, _), _) <- runFormPost $ shopDeliveryForm (Just shopid) Nothing + ((res, _), _) <- runFormPost $ shopDeliveryForm shopid Nothing case res of FormSuccess (FormShopDelivery shopid' deliveryid) -> do _ <- runDB $ insert $ ShopDelivery shopid' deliveryid diff --git a/Widget/ShopDelivery.hs b/Widget/ShopDelivery.hs index a70a780..1c26345 100644 --- a/Widget/ShopDelivery.hs +++ b/Widget/ShopDelivery.hs @@ -5,5 +5,5 @@ import Form.ShopDelivery (shopDeliveryForm) shopDeliveryAddWidget :: ShopId -> Widget shopDeliveryAddWidget shopid = do - (shopDeliveryWidget, enctype) <- handlerToWidget $ generateFormPost $ shopDeliveryForm (Just shopid) Nothing + (shopDeliveryWidget, enctype) <- handlerToWidget $ generateFormPost $ shopDeliveryForm shopid Nothing $(widgetFile "shopdelivery-add") |