- remove "doc_file" field; use short_name.inc

- fix tabl_exists()
- fix bugs when return to answer page
- create bolt_result records correctly

svn path=/trunk/boinc/; revision=15836
This commit is contained in:
David Anderson 2008-08-14 15:46:30 +00:00
parent d1fda159e4
commit c69186ef74
10 changed files with 53 additions and 14 deletions

View File

@ -146,3 +146,22 @@ David June 26 2008
- snapshots (makes it fast)
- filtering and breakdown
Also revisited Maps, and started redoing them along the same lines
David August 14 2008
- remove "doc_file" field; use short_name.inc
- fix tabl_exists()
- fix bugs when return to answer page
- create bolt_result records correctly
db/
bolt_schema.sql
html/
inc/
db_conn.inc
bolt_db.inc
ops/
bolt_map.php
bolt_admin.php
user/
bolt_sched.php
bolt_compare.php

View File

@ -6479,6 +6479,22 @@ David 13 Aug 2008
db_purge.C
server_types.C
David 13 Aug 2008
- client and server: add "len" arg to xml_escape() and xml_unescape()
(prevent buffer overrun).
Also remove 1024 char limit for team description in db_dump.
client/
client_types.C
lib/
app_ipc.C
parse.C,h
proxy_info.C
sched/
db_dump.C
db_purge.C
server_types.C
Rom 13 Aug 2008
- SAMPLES: Add all the samples to the BOINC solution and delete the
old solution.

View File

@ -14,7 +14,6 @@ create table bolt_course (
short_name varchar(255) not null,
name varchar(255) not null,
description text not null,
doc_file varchar(255) not null,
hidden tinyint not null,
bossa_app_id integer not null,
-- on completion, go to this Bossa app

View File

@ -149,6 +149,10 @@ class BoltCourse {
$db = BoltDb::get();
return $db->update($this, 'bolt_course', $clause);
}
function doc_file() {
$sn = $this->short_name;
return "../inc/$sn.inc";
}
}
class BoltEnrollment {

View File

@ -150,10 +150,10 @@ class DbConn {
return mysql_error($this->db_conn);
}
function table_exists($table_name) {
$result = $this->do_query("show tables like '$table_name'");
$t = mysql_fetch_object($result);
$result = $this->do_query("show tables from DBNAME like '$table_name'");
$t = mysql_fetch_array($result);
mysql_free_result($result);
if ($t == "$table_name") return true;
if ($t[0] == "$table_name") return true;
return false;
}
}

View File

@ -72,7 +72,7 @@ function get_logged_in_user($must_be_logged_in=true) {
$x = ereg(
"curl|wget|libww|lwp::simple|lwp-trivial|fetch|rufusbot|java/|microsoft url control|webreaper",
strtolower($_SERVER[HTTP_USER_AGENT])
strtolower($_SERVER["HTTP_USER_AGENT"])
);
if ($x > 0) {
error_page("bad user agent");

View File

@ -23,7 +23,6 @@ function show_course($course) {
$x = "<b>$course->name</b>
<br>Description: $course->description
<br>Created: ".date_str($course->create_time)."
<br>Course document: $course->doc_file
";
$y = "<a href=bolt_map.php?course_id=$course->id>Course map</a>
<br><a href=bolt_compare.php?course_id=$course->id>Lesson compare</a>
@ -58,7 +57,6 @@ function add_course_form() {
row2("Course name<span class=note><br>Visible to users</span>", "<input name=course_name>");
row2("Internal name<span class=note><br>Not visible to users; used as a directory name, so no spaces or special chars</span>", "<input name=short_name>");
row2("Description<span class=note><br>Visible to users</span>", "<textarea name=description cols=60></textarea>");
row2("Course document", "<input name=doc_file>");
row2("", "<input type=submit name=submit value=\"Add course\">");
end_table();
echo "</form>";
@ -127,9 +125,8 @@ case 'add_course':
$short_name = BoltDb::escape_string(get_str('short_name'));
$name = BoltDb::escape_string(get_str('course_name'));
$description = BoltDb::escape_string(get_str('description'));
$doc_file = get_str('doc_file');
$now = time();
BoltCourse::insert("(create_time, short_name, name, description, doc_file) values ($now, '$short_name', '$name', '$description', '$doc_file')");
BoltCourse::insert("(create_time, short_name, name, description) values ($now, '$short_name', '$name', '$description')");
Header('Location: bolt_admin.php');
break;
case 'update_user_form':

View File

@ -189,6 +189,7 @@ function get_views($unit, $mode) {
function get_results($unit) {
global $snap;
print_r($snap->results);
if (array_key_exists($unit->name, $snap->results)) {
return filter_array($snap->results[$unit->name]);
}
@ -389,7 +390,7 @@ function show_map() {
$course_id = get_int('course_id');
$course = BoltCourse::lookup_id($course_id);
if (!$course) error_page("no course");
$top_unit = require_once("../user/$course->doc_file");
$top_unit = require_once($course->doc_file());
$action = get_str('action', true);
switch ($action) {

View File

@ -224,7 +224,7 @@ function show_choice($top_unit) {
$course_id = get_int('course_id');
$course = BoltCourse::lookup_id($course_id);
$top_unit = require_once($course->doc_file);
$top_unit = require_once($course->doc_file());
$action = get_str('action', true);
switch ($action) {

View File

@ -317,7 +317,7 @@ if (!$course) {
}
$view_id = get_int('view_id', true);
$action = get_str('action', true);
$course_doc = require_once($course->doc_file);
$course_doc = require_once($course->doc_file());
switch ($action) {
case 'start':
@ -369,6 +369,8 @@ case 'prev':
if ($mode == BOLT_MODE_ANSWER) {
$v2 = BoltView::lookup_id($view->prev_view_id);
$result = BoltResult::lookup_id($v2->result_id);
srand($v2->id);
$bolt_ex_score = $result->score;
$bolt_ex_query_string = $result->response;
}
$view_id = create_view($iter, $mode, $view->prev_view_id);
@ -448,9 +450,10 @@ case 'answer': // submit answer in exercise
// make a record of the result
$qs = BoltDb::escape_string($_SERVER['QUERY_STRING']);
$now = time();
$result_id = BoltResult::insert(
"(view_id, item_name, score, response)
values ($view->id, '$view->item_name', $bolt_ex_score, '$qs')"
"(create_time, user_id, course_id, view_id, item_name, score, response)
values ($now, $user->id, $course->id, $view->id, '$view->item_name', $bolt_ex_score, '$qs')"
);
$view->update("result_id=$result_id");