Ticket dependencies in DB and per-ticket list of children
This commit is contained in:
parent
11d4a955d8
commit
5557e65f66
6 changed files with 69 additions and 0 deletions
|
@ -132,6 +132,12 @@ Ticket
|
|||
|
||||
UniqueTicket project number
|
||||
|
||||
TicketDependency
|
||||
parent TicketId
|
||||
child TicketId
|
||||
|
||||
UniqueTicketDependency parent child
|
||||
|
||||
TicketClaimRequest
|
||||
person PersonId
|
||||
ticket TicketId
|
||||
|
|
|
@ -108,5 +108,6 @@
|
|||
/s/#ShrIdent/p/#PrjIdent/t/#Int/d/#Int TicketMessageR GET POST
|
||||
/s/#ShrIdent/p/#PrjIdent/t/#Int/d/!reply TicketTopReplyR GET
|
||||
/s/#ShrIdent/p/#PrjIdent/t/#Int/d/#Int/reply TicketReplyR GET
|
||||
/s/#ShrIdent/p/#PrjIdent/t/#Int/deps TicketDepsR GET
|
||||
|
||||
/s/#ShrIdent/p/#PrjIdent/w/+Texts WikiPageR GET
|
||||
|
|
|
@ -475,5 +475,8 @@ instance YesodBreadcrumbs App where
|
|||
, Just $
|
||||
TicketMessageR shar proj num cnum
|
||||
)
|
||||
TicketDepsR shr prj num -> ( "Dependencies"
|
||||
, Just $ TicketR shr prj num
|
||||
)
|
||||
|
||||
WikiPageR shr prj _page -> ("Wiki", Just $ ProjectR shr prj)
|
||||
|
|
|
@ -38,6 +38,7 @@ module Vervis.Handler.Ticket
|
|||
, postTicketMessageR
|
||||
, getTicketTopReplyR
|
||||
, getTicketReplyR
|
||||
, getTicketDepsR
|
||||
)
|
||||
where
|
||||
|
||||
|
@ -497,3 +498,28 @@ getTicketReplyR shar proj tnum cnum =
|
|||
(TicketMessageR shar proj tnum)
|
||||
(selectDiscussionId shar proj tnum)
|
||||
cnum
|
||||
|
||||
getTicketDepsR :: ShrIdent -> PrjIdent -> Int -> Handler Html
|
||||
getTicketDepsR shr prj num = do
|
||||
rows <- runDB $ do
|
||||
Entity sid _ <- getBy404 $ UniqueSharer shr
|
||||
Entity jid _ <- getBy404 $ UniqueProject prj sid
|
||||
Entity tid _ <- getBy404 $ UniqueTicket jid num
|
||||
select $ from $
|
||||
\ ( td `InnerJoin`
|
||||
ticket `InnerJoin`
|
||||
person `InnerJoin`
|
||||
sharer
|
||||
) -> do
|
||||
on $ person ^. PersonIdent E.==. sharer ^. SharerId
|
||||
on $ ticket ^. TicketCreator E.==. person ^. PersonId
|
||||
on $ td ^. TicketDependencyChild E.==. ticket ^. TicketId
|
||||
where_ $ td ^. TicketDependencyParent E.==. val tid
|
||||
orderBy [asc $ ticket ^. TicketNumber]
|
||||
return
|
||||
( ticket ^. TicketNumber
|
||||
, sharer
|
||||
, ticket ^. TicketTitle
|
||||
, ticket ^. TicketDone
|
||||
)
|
||||
defaultLayout $(widgetFile "ticket/dep/list")
|
||||
|
|
30
templates/ticket/dep/list.hamlet
Normal file
30
templates/ticket/dep/list.hamlet
Normal file
|
@ -0,0 +1,30 @@
|
|||
$# This file is part of Vervis.
|
||||
$#
|
||||
$# Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
|
||||
$#
|
||||
$# ♡ Copying is an act of love. Please copy, reuse and share.
|
||||
$#
|
||||
$# The author(s) have dedicated all copyright and related and neighboring
|
||||
$# rights to this software to the public domain worldwide. This software is
|
||||
$# distributed without any warranty.
|
||||
$#
|
||||
$# You should have received a copy of the CC0 Public Domain Dedication along
|
||||
$# with this software. If not, see
|
||||
$# <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Number
|
||||
<th>Author
|
||||
<th>Title
|
||||
<th>Done
|
||||
$forall (Value number, Entity _ author, Value title, Value done) <- rows
|
||||
<tr>
|
||||
<td>
|
||||
<a href=@{TicketR shr prj number}>#{number}
|
||||
<td>
|
||||
^{personLinkW author}
|
||||
<td>
|
||||
<a href=@{TicketR shr prj number}>#{title}
|
||||
<td>
|
||||
#{done}
|
|
@ -50,6 +50,9 @@ $if not $ ticketDone ticket
|
|||
<p>
|
||||
<a href=@{ClaimRequestsTicketR shar proj num}>Claim requests
|
||||
|
||||
<p>
|
||||
<a href=@{TicketDepsR shar proj num}>Dependencies
|
||||
|
||||
<p>
|
||||
Status: #
|
||||
$if ticketDone ticket
|
||||
|
|
Loading…
Reference in a new issue