Esempio n. 1
0
        $grpSelect = '';
    } else {
        $grpSelect = "and grp_num='{$judge_grp_num}' ";
    }
    $sql = "select afko,pt.grp_num,coalesce('g'||pt.grp_num,pt.grp_name) as grp_name,\n" . "pg.snummer as mail,rtrim(role) as role, pg.snummer,\n" . "achternaam||coalesce(', '||voorvoegsel,'') as achternaam,roepnaam,\n" . "trim(sclass) as sclass, tutor, 'role'||sr.rolenum as checkclass, 0 as lo\n" . "from\n" . "student join prj_grp pg using(snummer)\n" . "join student_class using (class_id)\n" . " join prj_tutor pt on(pg.prjtg_id=pt.prjtg_id)\n" . " join tutor t on(userid=tutor_id)\n" . " join prj_milestone pm on(pt.prjm_id=pm.prjm_id)\n" . " join project p on(p.prj_id=pm.prj_id) \n" . " left join student_role sr on(pt.prjm_id=sr.prjm_id and sr.snummer=pg.snummer)\n" . " left join project_roles pr on (pm.prj_id=pr.prj_id and pr.rolenum=sr.rolenum)\n" . " left join grp_alias ga on(pg.prjtg_id=ga.prjtg_id)\n" . " where pt.prjm_id={$prjm_id} {$grpSelect} and pm.prj_id>1";
    $sql2 = "\n union\n" . "select apt.afko,grp_num,'tutor' as grp_name,\n" . "apt.tutor_id as mail, 'TUTOR' as role, apt.tutor_id as snummer,ts.achternaam||coalesce(', '||ts.voorvoegsel,'') as achternaam,ts.roepnaam,\n" . "'TUTOR' as sclass, tutor, 'role'||'999' as checkclass,1 as lo \n" . "from all_prj_tutor apt join student  ts on(apt.tutor_id=ts.snummer) left join grp_alias gat using(prjtg_id) \n" . "where apt.prjm_id ={$prjm_id} {$grpSelect} and apt.prj_id>1\n";
    $sql .= $sql2 . " order by grp_num,lo,achternaam,roepnaam";
    //    echo $sql;
    $resultSet = $dbConn->Execute($sql);
    $rb = new RainBow();
    $bg = $rb->getCurrent();
    $og = $resultSet->fields['grp_num'];
    while (!$resultSet->EOF) {
        extract($resultSet->fields);
        if ($og != $grp_num) {
            $bg = $rb->getNext();
            $og = $grp_num;
        }
        $checked = in_array($snummer, $mailto) ? 'checked' : '';
        $result .= "\n                <tr style='background:{$bg}'><td align='right'>{$counter}</td>\n                    <td align='center'><input type='checkbox' name='mailto[]' value='{$snummer}' class='{$checkclass} {$sclass}' {$checked}/></td>\n                    <td>{$role}</td>\n                    <td>{$snummer}</td><td>{$achternaam}</td><td>{$roepnaam}</td><td>{$sclass}</td>\n                    <td class='num'>{$grp_num}</td><td>{$grp_name}</td><td>{$tutor}</td>\n                </tr>  ";
        $resultSet->moveNext();
        $counter++;
    }
    return $result . "</table>";
}
$pp['eTable'] = emailTable($dbConn, $prjm_id, $isTutor, $mailto);
$pp['rTable'] = roleTable($dbConn, $prjm_id);
$pp['classTable'] = classTable($dbConn, $prjm_id);
$pp['selWidget'] = $prjSel->getWidget();
$page->addHtmlFragment('templates/groupemail.php', $pp);
$page->show();
Esempio n. 2
0
    $submit_button = '';
}
$resultSet = $dbConn->execute("select count(*) as participants from prj_grp join prj_tutor using(prjtg_id) where prjm_id={$prjm_id}");
extract($resultSet->fields);
// generating output
$page = new PageContainer();
$page->setTitle('Select participating student_class');
$page_opening = "Select the student_class of the participating students";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$page->addBodyComponent($nav);
$resultSet = $dbConn->Execute("select afko,description from project where prj_id={$prj_id}");
extract($resultSet->fields);
$form1Form = new HtmlContainer("<div id='projectsel'>");
$prjSel->setJoin(" (select distinct prjm_id from prj_milestone natural join project  where owner_id={$peer_id}) p_mil using (prjm_id)");
//$dbConn->log($prjSel->getQuery());
$form1Form->addText($prjSel->getWidget());
$form2Form = new HtmlContainer("<form method='post' name='group_def' action='{$PHP_SELF}'>");
//$form2Table = new HtmlContainer( "<table border='3' style='border-collapse:3d; padding:2pt;'" .
//                " align='left'  rules='groups' frame='box'" .
//                "summary='class selection' id='form2table'>" );
$form2Table = new HtmlContainer("<div id='tabs'>");
//$form2Form->addText( "Legend:class name [class size]<br/>\n" );
$sql = "select distinct rtrim(student_class.sclass) as sclass,class_id,sort1,sort2,sort_order,\n" . "rtrim(faculty.faculty_short) as opl_afko, student_count,rtrim(faculty.faculty_short) as faculty_short,\n" . "trim(cluster_name) as cluster_name,class_cluster \n" . "from student_class\n" . " join faculty using(faculty_id)\n" . "join class_cluster using(class_cluster)\n" . "join current_student_class using (class_id) join class_size using(class_id)\n " . "where sort2 < 9 and sclass not like 'UIT%' \n" . "order by sort_order,faculty_short desc,cluster_name,sort1,sort2,sclass asc";
$resultSet = $dbConn->Execute($sql);
if ($resultSet === false) {
    die("<br>Cannot get groups with \"" . $sql . '", cause ' . $dbConn->ErrorMsg() . "<br>");
}
//ob_start();
$opl_afko = '';
$colcount = 0;
$curriculum = '';
Esempio n. 3
0
    $dbConn->log($sql);
    formMailer($dbConn, $sql, $formsubject, $mailbody, $sender, $sender_name);
}
$page_opening = "These students are overdue with filling in their peer assessment forms.";
$nav = new Navigation(array(), basename($PHP_SELF), $page_opening);
$page = new PageContainer();
$page->addBodyComponent($nav);
ob_end_clean();
if (hasCap(CAP_SYSTEM)) {
    $tutor_select = "";
} else {
    $tutor_select = " and (tutor='{$tutor}' or tutor_owner='{$tutor}') ";
}
ob_start();
$prjSel->setWhere("assessment_due <now() and pm.prj_milestone_open=true");
$prj_id_selector = $prjSel->getWidget();
$sqlhead = "select  afko as code,pm.milestone as milstn,pt.grp_num,\n" . "s.snummer as snmailto,s.snummer,\n" . "achternaam||coalesce(', '||voorvoegsel,'') as achternaam\n" . ",roepnaam, s.snummer,pm.assessment_due as due,tutor\n";
$sqllate = "( select distinct snummer from prj_grp \n" . "natural join prj_tutor pt \n" . "join tutor t on(userid=tutor_id)\n" . "natural join prj_milestone \n" . "where written =false \n" . "and prj_milestone_open=true \n" . "and prj_grp_open=true \n" . "and assessment_due < now()::date \n" . "and prjm_id={$prjm_id})";
$sqltail = " \n" . " join milestone_open_past_due mopd on(jnr.prjtg_id=mopd.prjtg_id)" . " join prj_grp_open pgo on(pgo.prjtg_id=jnr.prjtg_id)\n" . " join student s on (jnr.snummer=s.snummer) \n" . " join prj_tutor pt on(jnr.prjtg_id=pt.prjtg_id)\n" . " join tutor t on(userid=tutor_id)\n" . " join prj_milestone pm on(pt.prjm_id=pm.prjm_id)\n" . " join project p on(p.prj_id=pm.prj_id)\n" . " where pm.prjm_id={$prjm_id}\n";
//$dbConn->log($sql);
$latecountsql = "select count(*) as latecount from {$sqllate} foo";
$resultSet = $dbConn->Execute($latecountsql);
if ($resultSet === false) {
    echo "<br>Cannot get latecount  with <pre>{$latecountsql}</pre>, cause" . $dbConn->ErrorMsg() . "<br>";
    stacktrace(1);
    die;
}
$latecount = $resultSet->fields['latecount'];
$mailbutton = $latecount > 0 ? "<input type='submit' name='domail' value='Send Mail'/>" : "&nbsp;";
$sql = $sqlhead . " from  \n" . "prj_grp pg \n" . "join prj_tutor pt using(prjtg_id)\n" . "join tutor t on (userid=tutor_id)\n" . "join prj_milestone pm using(prjm_id)\n" . "join project p using(prj_id)\n" . "join student s using(snummer)\n" . "where prjm_id={$prjm_id}" . " and snummer in" . $sqllate . "\n" . " order by afko,grp_num,achternaam,roepnaam";
echo "<div>\n";
Esempio n. 4
0
    $resultSet = $dbConn->Execute($sql);
    if ($resultSet === 0) {
        $dbConn->log($dbConn->ErrorMsg());
        $dbConn->Execute("abort");
    }
}
if (($isTutorOwner || $isGroupTutor) && isset($_REQUEST['bdelete']) && $newsnummer != 0) {
    // try to insert this snummer into max prj_grp
    $sql = "delete from prj_grp pg where snummer={$newsnummer} \n" . "and prjtg_id in (select prjtg_id from prj_tutor where prjm_id={$prjm_id})";
    $dbConn->Execute($sql);
    //    $dbConn->log($dbConn->ErrorMsg());
}
$studentPicker->setPresentQuery("select snummer from prj_grp join prj_tutor using(prjtg_id) where prjm_id={$prjm_id}");
$sql = "select distinct snummer,achternaam,roepnaam,voorvoegsel,pt.grp_num, alias as group,sclass \n" . " from prj_grp pg join prj_tutor pt using(prjtg_id) join student using(snummer) \n" . "join student_class using(class_id)\n" . " left join grp_alias using(prjtg_id)" . " where pt.prjm_id={$prjm_id} \n" . "  order by grp_num desc,achternaam,roepnaam";
$rainbow = new RainBow();
$memberTable = getQueryToTableChecked($dbConn, $sql, true, 4, $rainbow, -1, '', '');
pagehead('Add individual student.');
$page_opening = "Add individual student to a project. <span style='font-size:6pt;'>prj_id {$prj_id} milestone {$milestone} </span>";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$nav->show();
$prjSelectWidget = $prjSel->getWidget();
include_once 'templates/addindividual.html';
?>
<!-- db_name=<?php 
echo $db_name;
?>
 -->
<!-- $Id: addindividual.php 1725 2014-01-16 08:39:59Z hom $ -->
</body>
</html>
Esempio n. 5
0
    //    $dbConn->log($dbConn->ErrorMsg());
}
//
pagehead('Add project auditor.');
$page_opening = "Add project auditor to a project. prj_id {$prj_id} milestone {$milestone} prjm_id {$prjm_id}";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
echo $nav->show();
?>
<div id='navmain' style='padding:1em;'>
<p>Add a project auditor to a project /group.</p>
<p>Project auditors have the privilege to access the groups resources such as svn and trac. Use case: extra 
    readers of project artifacts without having to add (empty) project groups with these readers as tutor.
</p>
  <?php 
echo $prjSel->getWidget();
$studentPicker->setPresentQuery("select snummer from project_auditor where prjm_id={$prjm_id}");
$studentPicker->show();
$sql = "select snummer,achternaam,roepnaam,voorvoegsel from student where snummer={$newauditor}";
$resultSet = $dbConn->Execute($sql);
extract($resultSet->fields, EXTR_PREFIX_ALL, 'auditor');
if ($newauditor != 0) {
    ?>
<fieldset><legend>Select groups to audit.</legend>
<form name='set auditgroups' method='post' action='<?php 
    echo $PHP_SELF;
    ?>
'>
<p>Choose groups in project <b><?php 
    echo $afko;
    ?>
Esempio n. 6
0
        $prjtg_id = getOrNull($_POST, $g, 'prjtg_id');
        $youtube_link = getOrNull($_POST, $g, 'youtube_link');
        $youtube_icon_url = getOrNull($_POST, $g, 'youtube_icon_url');
        if ($prjtg_id != 'null') {
            $sql .= "insert into grp_alias (prjtg_id,alias,long_name,website,productname,youtube_link,youtube_icon_url)\n" . "\nvalues ({$prjtg_id},{$alias},{$long_name},{$website},{$productname},{$youtube_link},{$youtube_icon_url});\n";
        }
    }
    $sql .= "commit;\n";
    //    "<pre>$sql</pre>";
    $resultSet = $dbConn->Execute($sql);
    if ($resultSet === false) {
        die("<br>Cannot set grop details with <pre>" . $sql . "</pre> reason " . $dbConn->ErrorMsg() . "<br>");
    }
}
$prjSel = new PrjMilestoneSelector2($dbConn, $peer_id, $prjm_id);
$pSel = $prjSel->getWidget();
extract($prjSel->getSelectedData());
$_SESSION['prj_id'] = $prj_id;
$_SESSION['prjm_id'] = $prjm_id;
$_SESSION['milestone'] = $milestone;
$doctype_set = array();
$sql = "select pt.grp_num,ga.* from prj_tutor pt left join grp_alias ga using(prjtg_id) where prjm_id={$prjm_id} order by grp_num";
$inputColumns = array('1' => array('type' => 'T', 'size' => '40'), '2' => array('type' => 'T', 'size' => '15'), '3' => array('type' => 'T', 'size' => '64'), '4' => array('type' => 'N', 'size' => '64'), '5' => array('type' => 'H', 'size' => '0'), '6' => array('type' => 'T', 'size' => '64'), '7' => array('type' => 'T', 'size' => '64'));
$table = getQueryToTableChecked2($dbConn, $sql, false, -1, new RainBow(0x46b4b4, 64, 32, 0), 'document[]', $doctype_set, $inputColumns);
//$table = simpleTableString($dbConn, $sql, "<table id='myTable' class='tablesorter' summary='your requested data'"
//        . " style='empty-cells:show;border-collapse:collapse' border='1'>");
$scripts = '<script type="text/javascript" src="js/jquery.js"></script>
    <script src="js/jquery.tablesorter.js"></script>
    <script type="text/javascript">                                         
      $(document).ready(function() {
           $("#myTable").tablesorter({widgets: [\'zebra\']}); 
Esempio n. 7
0
        $groups[$grp_name][] = $snummer;
        $resultSet->moveNext();
    }
}
$pp['grpLists'] = '';
$all = array();
foreach ($groups as $grp => $list) {
    //echo implode(' ',$list);
    if (isset($list) && is_array($list)) {
        $grpStr = join(',', $list);
        $all[] = join(',', $list);
    } else {
        $grpStr = '';
    }
    $pp['grpLists'] .= "<span>{$grp}={$grpStr}</span><br/>\n";
}
$allMembers = join(',', $all);
$pp['grpLists'] .= "<span>all={$allMembers}</span><br/>\n";
$pp['afko_lc'] = strtolower($afko);
$prjSel->setSubmitOnChange(true);
$pp['prj_id_selector'] = $prjSel->getWidget();
$page_opening = "Subversion repositories for project {$afko}: {$description} (prj_id: {$prj_id}, milestone:{$milestone})";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$page->addBodyComponent($nav);
$page->addHtmlFragment('templates/subversionrepostop.html', $pp);
if (isset($pp['fileeditor'])) {
    $pp['fileeditor']->getWidgetForPage($page, $pp);
}
$page->addHtmlFragment('templates/subversionreposbottom.html', $pp);
$page->show();
Esempio n. 8
0
      });

    </script>
    <link rel=\'stylesheet\' type=\'text/css\' href=\'' . SITEROOT . '/style/tablesorterstyle.css\'/>
';
pagehead2('groupresult', $scripts);
$prj_id_selector = $prjSel->getSelector();
$prj_data = $prjSel->getSelectionDetails();
extract($prjSel->getSelectedData());
$grpList = '<select name="prjtg_id" onchange="submit()">' . "\n";
$grpList .= getOptionList($dbConn, "select distinct grp_num||' ('||tutor||')'||coalesce(': '||alias ,'')" . "||' (#'||prjtg_id||')' as name,\n" . " prjtg_id as value,case when prj_tutor_open=true then 'background:#fee' else 'font-weight:bold;background:#efe' end as style,grp_num\n" . " from all_prj_tutor \n" . " where prjm_id={$prjm_id} order by grp_num ", $prjtg_id);
$grpList .= "\n</select>\n";
$page_opening = "Group results for {$afko} \"{$description}\" {$year} prj_id {$prj_id} mil {$milestone} ({$prjm_id})";
$nav = new Navigation($tutor_navtable, basename($PHP_SELF), $page_opening);
$nav->setInterestMap($tabInterestCount);
$prj_widget = $prjSel->getWidget();
$spreadSheetWidget = $spreadSheetWriter->getWidget();
$remarkList = remarkList($dbConn, $prjtg_id);
echo $nav->show();
?>
<div id='navmain' style='padding:1em;'>
    <?php 
echo $prj_widget;
?>
    <?php 
if ($isTutorOwner) {
    ?>
    <fieldset class='noprint'><legend>Completeness and open setting of student groups</legend>
        <?php 
    echo groupOpenerBarChart2($dbConn, $prjm_id, $isTutorOwner);
    ?>