forked from filipg/gonito
Add challenge versions
This commit is contained in:
parent
1b122daad6
commit
d9b92b772a
@ -89,6 +89,18 @@ doCreateChallenge name publicUrl publicBranch publicGitAnnexRemote privateUrl pr
|
|||||||
Nothing -> return ()
|
Nothing -> return ()
|
||||||
Nothing -> return ()
|
Nothing -> return ()
|
||||||
|
|
||||||
|
defaultMajorVersion :: Int
|
||||||
|
defaultMajorVersion = 1
|
||||||
|
|
||||||
|
defaultMinorVersion :: Int
|
||||||
|
defaultMinorVersion = 0
|
||||||
|
|
||||||
|
defaultPatchVersion :: Int
|
||||||
|
defaultPatchVersion = 0
|
||||||
|
|
||||||
|
defaultInitialDescription :: Text
|
||||||
|
defaultInitialDescription = "initial version"
|
||||||
|
|
||||||
addChallenge :: Text -> (Key Repo) -> (Key Repo) -> Channel -> Handler ()
|
addChallenge :: Text -> (Key Repo) -> (Key Repo) -> Channel -> Handler ()
|
||||||
addChallenge name publicRepoId privateRepoId chan = do
|
addChallenge name publicRepoId privateRepoId chan = do
|
||||||
msg chan "adding challenge..."
|
msg chan "adding challenge..."
|
||||||
@ -111,7 +123,19 @@ addChallenge name publicRepoId privateRepoId chan = do
|
|||||||
else do
|
else do
|
||||||
return Nothing
|
return Nothing
|
||||||
|
|
||||||
|
privateRepo <- runDB $ get404 privateRepoId
|
||||||
time <- liftIO getCurrentTime
|
time <- liftIO getCurrentTime
|
||||||
|
|
||||||
|
let commit=repoCurrentCommit $ privateRepo
|
||||||
|
|
||||||
|
_ <- runDB $ insert $ Version {
|
||||||
|
versionCommit=commit,
|
||||||
|
versionMajor=defaultMajorVersion,
|
||||||
|
versionMinor=defaultMinorVersion,
|
||||||
|
versionPatch=defaultPatchVersion,
|
||||||
|
versionDescription=defaultInitialDescription,
|
||||||
|
versionStamp=time}
|
||||||
|
|
||||||
challengeId <- runDB $ insert $ Challenge {
|
challengeId <- runDB $ insert $ Challenge {
|
||||||
challengePublicRepo=publicRepoId,
|
challengePublicRepo=publicRepoId,
|
||||||
challengePrivateRepo=privateRepoId,
|
challengePrivateRepo=privateRepoId,
|
||||||
@ -121,8 +145,11 @@ addChallenge name publicRepoId privateRepoId chan = do
|
|||||||
challengeStamp=time,
|
challengeStamp=time,
|
||||||
challengeImage=mImage,
|
challengeImage=mImage,
|
||||||
challengeStarred=False,
|
challengeStarred=False,
|
||||||
challengeArchived=Just False}
|
challengeArchived=Just False,
|
||||||
|
challengeVersion=Just commit}
|
||||||
|
|
||||||
updateTests challengeId chan
|
updateTests challengeId chan
|
||||||
|
|
||||||
return ()
|
return ()
|
||||||
|
|
||||||
updateTests :: (Key Challenge) -> Channel -> Handler ()
|
updateTests :: (Key Challenge) -> Channel -> Handler ()
|
||||||
|
@ -441,6 +441,7 @@ getScoreForOut mainTestId out = do
|
|||||||
|
|
||||||
getSubmission :: UserId -> Key Repo -> SHA1 -> Key Challenge -> Text -> Channel -> Handler (Key Submission)
|
getSubmission :: UserId -> Key Repo -> SHA1 -> Key Challenge -> Text -> Channel -> Handler (Key Submission)
|
||||||
getSubmission userId repoId commit challengeId description chan = do
|
getSubmission userId repoId commit challengeId description chan = do
|
||||||
|
challenge <- runDB $ get404 challengeId
|
||||||
maybeSubmission <- runDB $ getBy $ UniqueSubmissionRepoCommitChallenge repoId commit challengeId
|
maybeSubmission <- runDB $ getBy $ UniqueSubmissionRepoCommitChallenge repoId commit challengeId
|
||||||
case maybeSubmission of
|
case maybeSubmission of
|
||||||
Just (Entity submissionId _) -> do
|
Just (Entity submissionId _) -> do
|
||||||
@ -457,7 +458,8 @@ getSubmission userId repoId commit challengeId description chan = do
|
|||||||
submissionStamp=time,
|
submissionStamp=time,
|
||||||
submissionSubmitter=userId,
|
submissionSubmitter=userId,
|
||||||
submissionIsPublic=False,
|
submissionIsPublic=False,
|
||||||
submissionIsHidden=False }
|
submissionIsHidden=False,
|
||||||
|
submissionVersion=challengeVersion challenge}
|
||||||
|
|
||||||
getOuts :: Channel -> Key Submission -> M.Map Text Text -> Handler ([Out])
|
getOuts :: Channel -> Key Submission -> M.Map Text Text -> Handler ([Out])
|
||||||
getOuts chan submissionId generalParams = do
|
getOuts chan submissionId generalParams = do
|
||||||
|
6
add-versions.sql
Normal file
6
add-versions.sql
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
/*insert into version("commit", major, minor, patch, description) select R.current_commit, 1, 0, 0, 'taken over' from challenge C, repo R where C.private_repo = R.id ;
|
||||||
|
|
||||||
|
update challenge set version = (select R.current_commit from repo R where private_repo = R.id);*/
|
||||||
|
|
||||||
|
update submission set version = (select R.current_commit from repo R, challenge C where C.private_repo = R.id and challenge = C.id);
|
@ -40,6 +40,16 @@ Challenge
|
|||||||
image ByteString Maybe
|
image ByteString Maybe
|
||||||
starred Bool
|
starred Bool
|
||||||
archived Bool Maybe
|
archived Bool Maybe
|
||||||
|
version SHA1 Maybe
|
||||||
|
-- challenge version
|
||||||
|
Version
|
||||||
|
commit SHA1
|
||||||
|
major Int
|
||||||
|
minor Int
|
||||||
|
patch Int
|
||||||
|
UniqueVersion commit major minor patch
|
||||||
|
description Text
|
||||||
|
stamp UTCTime default=now()
|
||||||
Test
|
Test
|
||||||
challenge ChallengeId
|
challenge ChallengeId
|
||||||
metric EvaluationScheme
|
metric EvaluationScheme
|
||||||
@ -59,6 +69,8 @@ Submission
|
|||||||
submitter UserId
|
submitter UserId
|
||||||
isPublic Bool default=False
|
isPublic Bool default=False
|
||||||
isHidden Bool default=False
|
isHidden Bool default=False
|
||||||
|
-- challenge version present when the submission was done
|
||||||
|
version SHA1 Maybe
|
||||||
UniqueSubmissionRepoCommitChallenge repo commit challenge
|
UniqueSubmissionRepoCommitChallenge repo commit challenge
|
||||||
Variant
|
Variant
|
||||||
submission SubmissionId
|
submission SubmissionId
|
||||||
|
Loading…
Reference in New Issue
Block a user