forked from science-ation/science-ation
Add a 'per_fair' option to the awards, so an award can be treated as a
separate award for each feeder fair, allowing the maximum prize assignments from each fair.
This commit is contained in:
parent
7fc721b96f
commit
7d611e531f
@ -209,19 +209,62 @@
|
|||||||
|
|
||||||
case 'feeder_load':
|
case 'feeder_load':
|
||||||
$id = intval($_GET['id']);
|
$id = intval($_GET['id']);
|
||||||
$ret = array('ul'=>array(), 'dl'=>array());
|
|
||||||
/* Prepare two lists of fair IDs, for which fairs can upload and download this award */
|
/* Prepare two lists of fair IDs, for which fairs can upload and download this award */
|
||||||
$q=mysql_query("SELECT * FROM fairs_awards_link WHERE award_awards_id='$id'");
|
$q=mysql_query("SELECT * FROM fairs_awards_link WHERE award_awards_id='$id'");
|
||||||
|
$ul = array();
|
||||||
|
$dl = array();
|
||||||
while($r=mysql_fetch_assoc($q)) {
|
while($r=mysql_fetch_assoc($q)) {
|
||||||
if($r['download_award'] == 'yes') $ret['dl'][] = $r['fairs_id'];
|
if($r['upload_winners'] == 'yes') $ul[$r['fairs_id']] = true;
|
||||||
if($r['upload_winners'] == 'yes') $ret['ul'][] = $r['fairs_id'];
|
if($r['download_award'] == 'yes') $dl[$r['fairs_id']] = true;
|
||||||
}
|
}
|
||||||
$q = mysql_query("SELECT * FROM award_awards WHERE id='$id'");
|
$q = mysql_query("SELECT * FROM award_awards WHERE id='$id'");
|
||||||
$a = mysql_fetch_assoc($q);
|
$a = mysql_fetch_assoc($q);
|
||||||
$ret['identifier'] = $a['external_identifier'];
|
?>
|
||||||
$ret['additional_materials'] = $a['external_additional_materials'];
|
<h4><?=i18n("Feeder Fairs")?></h4>
|
||||||
$ret['register_winners'] = $a['external_register_winners'];
|
<form id="feeder_form">
|
||||||
echo json_encode($ret);
|
<input type="hidden" id="feeder_id" name="award_awards_id" value="<?=$a['id']?>"/>
|
||||||
|
|
||||||
|
<? $ch = $a['per_fair'] == 'yes' ? 'checked="checked"' : ''; ?>
|
||||||
|
<p><input type="checkbox" name="per_fair" value="yes" <?=$ch?> />
|
||||||
|
<?=i18n("Treat this award as a separate award for each feeder fair (instead of as a single award across the whole system). This will allow winners to be assigned to prizes for each feeder fair. If disabled, only a single group if winners will be permitted across all feeder fairs.")?></p>
|
||||||
|
|
||||||
|
<? $ch = (count($ul) || count($dl)) ? 'checked="checked"' : ''; ?>
|
||||||
|
<p><input type="checkbox" id="feeder_enable" name="enable" value="yes" <?=$ch?> />
|
||||||
|
<?=i18n("Allow feeder fairs to download this award.")?></p>
|
||||||
|
<div id="feeder_en">
|
||||||
|
<table class="editor">
|
||||||
|
<tr><td><?=i18n('Unique Name')?>:</td>
|
||||||
|
<td><input type="text" name="identifier" value="<?=$a['external_identifier']?>" size="40" maxlength="128" /></td></tr>
|
||||||
|
<? $ch = $a['external_additional_materials'] ? 'checked="checked"' : ''; ?>
|
||||||
|
<tr><td><input type="checkbox" name="register_winners" value="1" <?=$ch?> /></td>
|
||||||
|
<td><?=i18n("Winners uploaded by a feeder fair should be registered as participants at this fair (both download award and upload winners should be turned on below)")?></td></tr>
|
||||||
|
<? $ch = $a['external_register_winners'] ? 'checked="checked"' : ''; ?>
|
||||||
|
<tr><td><input type="checkbox" name="additional_materials" value="1" <?=$ch?> /></td>
|
||||||
|
<td><?=i18n("There is additional material for this award (e.g. forms, instructions). If a feeder fair assigns a winner to this award, they will be told they need to contact this fair to get the additional material.")?></td></tr>
|
||||||
|
</table>
|
||||||
|
<p><?=i18n("Select which feeder fairs can download this award and upload winners.")?></p>
|
||||||
|
<table class="tableview">
|
||||||
|
<tr><th><?=i18n("Fair")?></th>
|
||||||
|
<th style="width: 5em"><?=i18n("Download Award")?></th>
|
||||||
|
<th style="width: 5em"><?=i18n("Upload Winners")?></th>
|
||||||
|
</tr>
|
||||||
|
<?
|
||||||
|
$q = mysql_query("SELECT * FROM fairs WHERE type='feeder'");
|
||||||
|
while($r = mysql_fetch_assoc($q)) {
|
||||||
|
echo "<tr><td style=\"padding-left:1em;padding-right:1em\">{$r['name']}</td>";
|
||||||
|
$ch = $dl[$r['id']] == true ? 'checked="checked"' : '';
|
||||||
|
echo "<td style=\"text-align:center\"><input type=\"checkbox\" name=\"feeder_dl[]\" value=\"{$r['id']} $ch \"></td>";
|
||||||
|
$ch = $ul[$r['id']] == true ? 'checked="checked"' : '';
|
||||||
|
echo "<td style=\"text-align:center\"><input type=\"checkbox\" name=\"feeder_ul[]\" value=\"{$r['id']} $ch \"></td>";
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<button id="feeder_save"><?=i18n("Save")?></button>
|
||||||
|
</form>
|
||||||
|
<?
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
case 'feeder_save':
|
case 'feeder_save':
|
||||||
@ -247,11 +290,14 @@
|
|||||||
echo mysql_error();
|
echo mysql_error();
|
||||||
}
|
}
|
||||||
$ident=mysql_escape_string(stripslashes($_POST['identifier']));
|
$ident=mysql_escape_string(stripslashes($_POST['identifier']));
|
||||||
|
$per_fair = $_POST['per_fair'] == 'yes' ? 'yes' : 'no';
|
||||||
$mat = intval($_POST['additional_materials']);
|
$mat = intval($_POST['additional_materials']);
|
||||||
$w = intval($_POST['register_winners']);
|
$w = intval($_POST['register_winners']);
|
||||||
mysql_query("UPDATE award_awards SET external_identifier='$ident',
|
mysql_query("UPDATE award_awards SET external_identifier='$ident',
|
||||||
external_additional_materials='$mat',
|
external_additional_materials='$mat',
|
||||||
external_register_winners='$w' WHERE id='$id'");
|
external_register_winners='$w',
|
||||||
|
per_fair='$per_fair'
|
||||||
|
WHERE id='$id'");
|
||||||
|
|
||||||
happy_("Feeder Fair information saved");
|
happy_("Feeder Fair information saved");
|
||||||
exit;
|
exit;
|
||||||
@ -479,19 +525,18 @@ function update_feeder()
|
|||||||
{
|
{
|
||||||
if(award_tab_update['feeder'] == award_id) return;
|
if(award_tab_update['feeder'] == award_id) return;
|
||||||
award_tab_update['feeder'] = award_id;
|
award_tab_update['feeder'] = award_id;
|
||||||
$.getJSON("<?=$_SERVER['PHP_SELF']?>?action=feeder_load&id="+award_id,
|
|
||||||
function(json) {
|
|
||||||
$("#feeder_id").val(award_id);
|
|
||||||
$("#feeder_identifier").val(json.identifier);
|
|
||||||
$("#feeder_additional_materials").val([json.additional_materials]);
|
|
||||||
$("#feeder_register_winners").val([json.register_winners]);
|
|
||||||
$("[name=feeder_dl\\[\\]]").val(json.dl);
|
|
||||||
$("[name=feeder_ul\\[\\]]").val(json.ul);
|
|
||||||
|
|
||||||
if(json.dl.length == 0 && json.ul.length == 0)
|
$("#editor_tab_feeder").load("<?=$_SERVER['PHP_SELF']?>?action=feeder_load&id="+award_id, '',
|
||||||
$('#feeder_enable').val([]);
|
function(responseText, textStatus, XMLHttpRequest) {
|
||||||
else
|
/* Register buttons and handlers */
|
||||||
$('#feeder_enable').val(['yes']);
|
$("#feeder_enable").change(function() {
|
||||||
|
update_feeder_enable();
|
||||||
|
});
|
||||||
|
$("#feeder_save").click(function() {
|
||||||
|
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=feeder_save", $("#feeder_form").serializeArray());
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
update_feeder_enable();
|
update_feeder_enable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -500,20 +545,13 @@ function update_feeder_enable()
|
|||||||
{
|
{
|
||||||
var checked = $('#feeder_enable:checkbox').is(':checked');
|
var checked = $('#feeder_enable:checkbox').is(':checked');
|
||||||
if(checked==true) {
|
if(checked==true) {
|
||||||
$('#feeder_form *').removeAttr('disabled');
|
$('#feeder_en *').removeAttr('disabled');
|
||||||
} else {
|
} else {
|
||||||
$("#feeder_form *").attr('disabled', 'disabled');
|
$("#feeder_en *").attr('disabled', 'disabled');
|
||||||
$('#feeder_enable').removeAttr('disabled');
|
$('#feeder_enable').removeAttr('disabled');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function feeder_save()
|
|
||||||
{
|
|
||||||
$("#debug").load("<?$_SERVER['PHP_SELF']?>?action=feeder_save", $("#feeder_form").serializeArray());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Setup the popup window */
|
/* Setup the popup window */
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#popup_editor").dialog({
|
$("#popup_editor").dialog({
|
||||||
@ -733,41 +771,7 @@ $(document).ready(function() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<? /* Next Tab */ ?>
|
<? /* Next Tab */ ?>
|
||||||
<div id="editor_tab_feeder">
|
<div id="editor_tab_feeder"></div>
|
||||||
<h4><?=i18n("Feeder Fairs")?></h4>
|
|
||||||
<form id="feeder_form">
|
|
||||||
<input type="hidden" id="feeder_id" name="award_awards_id" value=""/>
|
|
||||||
<p><input type="checkbox" id="feeder_enable" name="enable" value="yes" onchange="update_feeder_enable()" />
|
|
||||||
<?=i18n("Allow feeder fairs to download this award.")?></p>
|
|
||||||
<table class="editor">
|
|
||||||
<tr><td><?=i18n('Unique Name')?>:</td>
|
|
||||||
<td><input type="text" id="feeder_identifier" name="identifier" value="" size="40" maxlength="128" /></td></tr>
|
|
||||||
<tr><td><input type="checkbox" id="feeder_register_winners" name="register_winners" value="1" /></td>
|
|
||||||
<td><?=i18n("Winners uploaded by a feeder fair should be registered as participants at this fair (both download award and upload winners should be turned on below)")?></td></tr>
|
|
||||||
<tr><td><input type="checkbox" id="feeder_additional_materials" name="additional_materials" value="1" /></td>
|
|
||||||
<td><?=i18n("There is additional material for this award (e.g. forms, instructions). If a feeder fair assigns a winner to this award, they will be told they need to contact this fair to get the additional material.")?></td></tr>
|
|
||||||
</table>
|
|
||||||
<p><?=i18n("Select which feeder fairs can download this award and upload winners.")?></p>
|
|
||||||
<table class="tableview">
|
|
||||||
<tr><th><?=i18n("Fair")?></th>
|
|
||||||
<th style="width: 5em"><?=i18n("Download Award")?></th>
|
|
||||||
<th style="width: 5em"><?=i18n("Upload Winners")?></th>
|
|
||||||
</tr>
|
|
||||||
<?
|
|
||||||
$q = mysql_query("SELECT * FROM fairs WHERE type='feeder'");
|
|
||||||
while($r = mysql_fetch_assoc($q)) {
|
|
||||||
echo "<tr><td style=\"padding-left:1em;padding-right:1em\">{$r['name']}</td>";
|
|
||||||
echo "<td style=\"text-align:center\"><input type=\"checkbox\" id=\"feeder_dl_{$r['id']}\" name=\"feeder_dl[]\" value=\"{$r['id']}\"></td>";
|
|
||||||
echo "<td style=\"text-align:center\"><input type=\"checkbox\" id=\"feeder_ul_{$r['id']}\" name=\"feeder_ul[]\" value=\"{$r['id']}\"></td>";
|
|
||||||
echo '</tr>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</table>
|
|
||||||
<br />
|
|
||||||
<input type="submit" onClick="feeder_save();return false;" value="<?=i18n("Save")?>" />
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<? /* End tabs, end popup */ ?>
|
<? /* End tabs, end popup */ ?>
|
||||||
</div></div>
|
</div></div>
|
||||||
|
@ -1 +1 @@
|
|||||||
156
|
157
|
||||||
|
3
db/db.update.157.sql
Normal file
3
db/db.update.157.sql
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE `award_awards` ADD `per_fair` ENUM( 'no', 'yes' ) NOT NULL ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user