1
0
Fork 0

Remove payment field from update form, allow uploads during the review period

This commit is contained in:
Ainsley Ellis 2024-11-22 07:04:40 -05:00
parent cd7a18f5a0
commit 5d47b7814f

View file

@ -32,12 +32,17 @@ if (LOGGED_IN && isset($_GET["game"])) {
]); ]);
$game = $stmt->fetch(PDO::FETCH_OBJ); $game = $stmt->fetch(PDO::FETCH_OBJ);
define("GAME_IS_OPEN", $game->status_id === STATUS_ENROLLING);
$title = "Update: {$game->name}"; $title = "Update: {$game->name}";
$description = "Update your submission for the " . $game->name . " vote."; $description = "Update your submission for the " . $game->name . " vote.";
} }
define(
"CAN_SUBMIT",
$game->status_id === STATUS_ENROLLING ||
($game->status_id === STATUS_REVIEW &&
in_array($submission->status, [0, 2]))
);
if ($_SERVER["REQUEST_METHOD"] === "POST"): if ($_SERVER["REQUEST_METHOD"] === "POST"):
define("NEW_MANUSCRIPT", $_POST["keep-manuscript"] === "0"); define("NEW_MANUSCRIPT", $_POST["keep-manuscript"] === "0");
define("EXISTING_MANUSCRIPT", $_POST["keep-manuscript"] === "1"); define("EXISTING_MANUSCRIPT", $_POST["keep-manuscript"] === "1");
@ -62,16 +67,16 @@ if ($_SERVER["REQUEST_METHOD"] === "POST"):
$errors["game"] = "The chosen game doesn't exist."; $errors["game"] = "The chosen game doesn't exist.";
} }
if (GAME_IS_OPEN && NEW_MANUSCRIPT && !RULES_WERE_FOLLOWED) { if (CAN_SUBMIT && NEW_MANUSCRIPT && !RULES_WERE_FOLLOWED) {
$errors["agreements"] = $errors["agreements"] =
"Please accept the Terms & Conditions and the Submission Guidelines."; "Please accept the Terms & Conditions and the Submission Guidelines.";
} }
if (GAME_IS_OPEN && NEW_MANUSCRIPT && FILE_EMPTY) { if (CAN_SUBMIT && NEW_MANUSCRIPT && FILE_EMPTY) {
$errors["filesize"] = "A file upload is required."; $errors["filesize"] = "A file upload is required.";
} elseif (NEW_MANUSCRIPT && FILE_TOO_BIG) { } elseif (NEW_MANUSCRIPT && FILE_TOO_BIG) {
$errors["filesize"] = "Your document is too large."; $errors["filesize"] = "Your document is too large.";
} elseif (GAME_IS_OPEN && NEW_MANUSCRIPT) { } elseif (CAN_SUBMIT && NEW_MANUSCRIPT) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); $finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $_FILES["manuscript"]["tmp_name"]); $mime_type = finfo_file($finfo, $_FILES["manuscript"]["tmp_name"]);
finfo_close($finfo); finfo_close($finfo);
@ -83,19 +88,15 @@ if ($_SERVER["REQUEST_METHOD"] === "POST"):
$errors["mimetype"] = "Only PDF submissions are allowed."; $errors["mimetype"] = "Only PDF submissions are allowed.";
} }
if (GAME_IS_OPEN && (!isset($_POST["title"]) || !trim($_POST["title"]))) { if (CAN_SUBMIT && (!isset($_POST["title"]) || !trim($_POST["title"]))) {
$errors["title"] = "Please enter a title."; $errors["title"] = "Please enter a title.";
} }
if (GAME_IS_OPEN && !isset($_SESSION["account"])) { if (CAN_SUBMIT && !isset($_SESSION["account"])) {
$errors["account"] = $errors["account"] =
"We can't upload a document without knowing which account it belongs to."; "We can't upload a document without knowing which account it belongs to.";
} }
if (GAME_IS_OPEN && !isset($_POST["tx-id"])) {
$errors["payment"] = "You must submit a payment.";
}
if (count($errors) > 0) { if (count($errors) > 0) {
http_response_code(400); http_response_code(400);
define( define(
@ -115,7 +116,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST"):
"name_is_public" => isset($_POST["public-name"]) ? 1 : 0, "name_is_public" => isset($_POST["public-name"]) ? 1 : 0,
]; ];
if (GAME_IS_OPEN && NEW_MANUSCRIPT) { if (CAN_SUBMIT && NEW_MANUSCRIPT) {
$basename = $basename =
md5(microtime() . $game->id . $_SESSION["account"]->id) . md5(microtime() . $game->id . $_SESSION["account"]->id) .
".pdf"; ".pdf";
@ -175,7 +176,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST"):
} }
} }
if (GAME_IS_OPEN && EXISTING_MANUSCRIPT) { if (CAN_SUBMIT && EXISTING_MANUSCRIPT) {
$stmt = $db["data"] $stmt = $db["data"]
->prepare("UPDATE submissions SET (title, doc_is_public, name_is_public) ->prepare("UPDATE submissions SET (title, doc_is_public, name_is_public)
= (:title, :doc_is_public, :name_is_public) WHERE id = :submission_id"); = (:title, :doc_is_public, :name_is_public) WHERE id = :submission_id");
@ -185,7 +186,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST"):
http_response_code(303); http_response_code(303);
header("Location: /games/" . $_GET["game"]); header("Location: /games/" . $_GET["game"]);
} }
if (!GAME_IS_OPEN) { if ($game->status_id !== STATUS_ENROLLING) {
$stmt = $db["data"] $stmt = $db["data"]
->prepare("UPDATE submissions SET (doc_is_public, name_is_public) ->prepare("UPDATE submissions SET (doc_is_public, name_is_public)
= (:doc_is_public, :name_is_public) WHERE id = :submission_id"); = (:doc_is_public, :name_is_public) WHERE id = :submission_id");
@ -213,7 +214,7 @@ include "partials/head.php";
<?php if (!LOGGED_IN) { <?php if (!LOGGED_IN) {
include "partials/login-form.php"; include "partials/login-form.php";
} else { } else {
if (GAME_IS_OPEN) { ?> if (CAN_SUBMIT) { ?>
<p><b>If you would like to withdraw your submission, please email us at <a href="mailto:sixfold@sixfold.org?subject=Withdraw Submission: <?= $game->name ?>">sixfold@sixfold.org</a>.</b></p> <p><b>If you would like to withdraw your submission, please email us at <a href="mailto:sixfold@sixfold.org?subject=Withdraw Submission: <?= $game->name ?>">sixfold@sixfold.org</a>.</b></p>
<?php } else { ?> <?php } else { ?>
<p><b>This game's submissions are now locked, and you may only edit your work's public visibility.</b></p> <p><b>This game's submissions are now locked, and you may only edit your work's public visibility.</b></p>
@ -264,7 +265,7 @@ include "partials/head.php";
) { ?><p><mark><?= $errors[ ) { ?><p><mark><?= $errors[
"account" "account"
] ?></mark></p><?php } ?> ] ?></mark></p><?php } ?>
<?php if (GAME_IS_OPEN) { ?> <?php if (CAN_SUBMIT) { ?>
<fieldset class="flow"> <fieldset class="flow">
<legend>Manuscript details</legend> <legend>Manuscript details</legend>
<label> <label>
@ -354,14 +355,6 @@ include "partials/head.php";
<span>Display my document in the public results</span> <span>Display my document in the public results</span>
</label> </label>
</fieldset> </fieldset>
<?php if (GAME_IS_OPEN) { ?>
<fieldset>
<legend>Payment</legend>
<div class="flow">
<p><b>You have already paid for this submission.</b> (Transaction ID: <?= $submission->transaction_id ?>)</p>
<input type="hidden" name="tx-id" value="<?= $submission->transaction_id ?>"/>
</fieldset>
<?php } ?>
<button type="submit">Update submission</button> <button type="submit">Update submission</button>
</form> </form>
<?php <?php