diff --git a/src/main/resources/update/1_0.sql b/src/main/resources/update/1_0.sql index b326491..65c4700 100644 --- a/src/main/resources/update/1_0.sql +++ b/src/main/resources/update/1_0.sql @@ -79,7 +79,7 @@ TITLE VARCHAR(100) NOT NULL, DESCRIPTION TEXT, DUE_DATE TIMESTAMP, - CLOSED BOOLEAN NOT NULL + CLOSED_DATE TIMESTAMP ); ALTER TABLE ACCOUNT ADD CONSTRAINT IDX_ACCOUNT_PK PRIMARY KEY (USER_NAME); diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala index ce09869..d068298 100644 --- a/src/main/scala/app/IssuesController.scala +++ b/src/main/scala/app/IssuesController.scala @@ -4,6 +4,7 @@ import service._ import util.{WritableRepositoryAuthenticator, ReadableRepositoryAuthenticator, UsersOnlyAuthenticator} +import java.sql.Timestamp class IssuesController extends IssuesControllerBase with IssuesService with RepositoryService with AccountService @@ -126,7 +127,8 @@ getMilestone(owner, repository, milestoneId) match { case None => NotFound() case Some(m) => { - updateMilestone(m.copy(closed = true)) + val currentDate = new Timestamp(System.currentTimeMillis) // TODO move to trait? + updateMilestone(m.copy(closedDate = Some(currentDate))) redirect("/%s/%s/issues/milestones".format(owner, repository)) } } @@ -140,7 +142,7 @@ getMilestone(owner, repository, milestoneId) match { case None => NotFound() case Some(m) => { - updateMilestone(m.copy(closed = false)) + updateMilestone(m.copy(closedDate = None)) redirect("/%s/%s/issues/milestones".format(owner, repository)) } } diff --git a/src/main/scala/model/Milestone.scala b/src/main/scala/model/Milestone.scala index e317412..683cdf9 100644 --- a/src/main/scala/model/Milestone.scala +++ b/src/main/scala/model/Milestone.scala @@ -9,10 +9,10 @@ def title = column[String]("TITLE") def description = column[String]("DESCRIPTION") def dueDate = column[java.sql.Date]("DUE_DATE") // TODO convert java.util.Date later - def closed = column[Boolean]("CLOSED") + def closedDate = column[java.sql.Timestamp]("CLOSED_DATE") - def ins = userName ~ repositoryName ~ title ~ description.? ~ dueDate.? ~ closed - def * = userName ~ repositoryName ~ milestoneId ~ title ~ description.? ~ dueDate.? ~ closed <> (Milestone, Milestone.unapply _) + def ins = userName ~ repositoryName ~ title ~ description.? ~ dueDate.? ~ closedDate.? + def * = userName ~ repositoryName ~ milestoneId ~ title ~ description.? ~ dueDate.? ~ closedDate.? <> (Milestone, Milestone.unapply _) } case class Milestone( @@ -22,4 +22,4 @@ title: String, description: Option[String], dueDate: Option[java.sql.Date], - closed: Boolean) + closedDate: Option[java.sql.Timestamp]) diff --git a/src/main/scala/service/IssuesService.scala b/src/main/scala/service/IssuesService.scala index 3e06cd9..7514819 100644 --- a/src/main/scala/service/IssuesService.scala +++ b/src/main/scala/service/IssuesService.scala @@ -52,18 +52,18 @@ def createMilestone(owner: String, repository: String, title: String, description: Option[String], dueDate: Option[java.sql.Date]): Unit = { - Milestones.ins insert (owner, repository, title, description, dueDate, false) + Milestones.ins insert (owner, repository, title, description, dueDate, None) } def updateMilestone(milestone: Milestone): Unit = Query(Milestones) .filter { m => (m.userName is milestone.userName.bind) && (m.repositoryName is milestone.repositoryName.bind) && (m.milestoneId is milestone.milestoneId.bind)} - .map { m => m.title ~ m.description.? ~ m.dueDate.? ~ m.closed } + .map { m => m.title ~ m.description.? ~ m.dueDate.? ~ m.closedDate.? } .update ( milestone.title, milestone.description, milestone.dueDate, - milestone.closed) + milestone.closedDate) def getMilestone(owner: String, repository: String, milestoneId: Int): Option[Milestone] = Query(Milestones) diff --git a/src/main/twirl/issues/milestoneedit.scala.html b/src/main/twirl/issues/milestoneedit.scala.html index 19f86b7..de3442b 100644 --- a/src/main/twirl/issues/milestoneedit.scala.html +++ b/src/main/twirl/issues/milestoneedit.scala.html @@ -28,7 +28,7 @@ @if(milestone.isEmpty){ } else { - @if(milestone.get.closed){ + @if(milestone.get.closedDate.isDefined){ } else { diff --git a/src/main/twirl/issues/milestones.scala.html b/src/main/twirl/issues/milestones.scala.html index 581258f..f6996f4 100644 --- a/src/main/twirl/issues/milestones.scala.html +++ b/src/main/twirl/issues/milestones.scala.html @@ -9,13 +9,13 @@