Index: openacs-4/packages/proctoring-support/proctoring-support.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/proctoring-support/proctoring-support.info,v
diff -u -r1.1.2.11 -r1.1.2.12
--- openacs-4/packages/proctoring-support/proctoring-support.info 20 Jan 2021 13:43:22 -0000 1.1.2.11
+++ openacs-4/packages/proctoring-support/proctoring-support.info 20 Jan 2021 15:13:06 -0000 1.1.2.12
@@ -10,7 +10,7 @@
f
proctoring
-
+
Antonio Pisano
Set of tools to implement proctoring of user interaction
Wirtschaftsuniversität Wien
@@ -21,7 +21,7 @@
No real UI is provided by the package itself. Other packages must integrate the provided includes.
0
-
+
Index: openacs-4/packages/proctoring-support/sql/postgresql/proctoring-support-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/proctoring-support/sql/postgresql/proctoring-support-create.sql,v
diff -u -r1.1.2.1 -r1.1.2.2
--- openacs-4/packages/proctoring-support/sql/postgresql/proctoring-support-create.sql 10 Aug 2020 13:23:42 -0000 1.1.2.1
+++ openacs-4/packages/proctoring-support/sql/postgresql/proctoring-support-create.sql 20 Jan 2021 15:13:06 -0000 1.1.2.2
@@ -19,6 +19,8 @@
-- closed for every day where proctoring
-- is enabled (e.g. 20:00)
preview_p boolean not null default false, -- display a preview of recording to proctored user
+ camera_p boolean not null default true, -- do we record the camera?
+ desktop_p boolean not null default true, -- do we record the desktop?
proctoring_p boolean not null default true, -- do the actual proctoring
examination_statement_p boolean not null default true -- display the examination statement
);
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/proctoring-support/sql/postgresql/upgrade-1.2.3-1.3.1.sql'.
Fisheye: No comparison available. Pass `N' to diff?
Index: openacs-4/packages/proctoring-support/tcl/proctoring-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/proctoring-support/tcl/proctoring-procs.tcl,v
diff -u -r1.1.2.4 -r1.1.2.5
--- openacs-4/packages/proctoring-support/tcl/proctoring-procs.tcl 31 Oct 2020 17:07:24 -0000 1.1.2.4
+++ openacs-4/packages/proctoring-support/tcl/proctoring-procs.tcl 20 Jan 2021 15:13:06 -0000 1.1.2.5
@@ -23,6 +23,8 @@
{-enabled_p true}
{-examination_statement_p true}
{-proctoring_p true}
+ {-camera_p true}
+ {-desktop_p true}
{-preview_p false}
{-start_date ""}
{-end_date ""}
@@ -35,6 +37,9 @@
@param proctoring_p Do the actual proctoring. This allows one to have
only the examination statement, without
actually taking and uploading pixctures/sound.
+ @param camera_p Record the camera. Currently, if this is set to
+ false no audio will also be recorded.
+ @param desktop_p Record the desktop
@param examination_statement_p Display the examination statement
@param preview_p if specified, a preview of recorded inputs will
be displayed to users during proctored session
@@ -58,6 +63,8 @@
start_time,
end_time,
preview_p,
+ camera_p,
+ desktop_p,
proctoring_p,
examination_statement_p
) values (
@@ -68,7 +75,9 @@
:start_time,
:end_time,
:preview_p,
- :proctoring_p,
+ :camera_p,
+ :desktop_p,
+ ((:camera_p or :desktop_p) and :proctoring_p),
:examination_statement_p
) on conflict(object_id) do update set
enabled_p = :enabled_p,
@@ -77,7 +86,9 @@
start_time = :start_time,
end_time = :end_time,
preview_p = :preview_p,
- proctoring_p = :proctoring_p,
+ camera_p = :camera_p,
+ desktop_p = :desktop_p,
+ proctoring_p = ((:camera_p or :desktop_p) and :proctoring_p),
examination_statement_p = :examination_statement_p
}
}
@@ -88,23 +99,28 @@
Returns proctoring settings for specified object
@return a dict with fields: enabled_p, start_date, end_date,
- start_time, end_time, preview_p, proctoring_p,
- examination_statement_p
+ start_time, end_time, preview_p, camera_p, desktop_p,
+ proctoring_p, examination_statement_p
} {
set start_date ""
set end_date ""
set start_time ""
set end_time ""
set enabled_p false
set preview_p true
+ set camera_p false
+ set desktop_p false
set proctoring_p false
set examination_statement_p false
+
::xo::dc 0or1row is_proctored {
select to_char(start_date, 'YYYY-MM-DD') as start_date,
to_char(end_date, 'YYYY-MM-DD') as end_date,
to_char(start_time, 'HH24:MI:SS') as start_time,
to_char(end_time, 'HH24:MI:SS') as end_time,
case when preview_p then 'true' else 'false' end as preview_p,
+ case when camera_p then 'true' else 'false' end as camera_p,
+ case when desktop_p then 'true' else 'false' end as desktop_p,
case when proctoring_p then 'true' else 'false' end as proctoring_p,
case when enabled_p then 'true' else 'false' end as enabled_p,
case when examination_statement_p then 'true' else 'false' end as examination_statement_p
@@ -119,6 +135,8 @@
start_time $start_time \
end_time $end_time \
preview_p $preview_p \
+ camera_p $camera_p \
+ desktop_p $desktop_p \
proctoring_p $proctoring_p \
examination_statement_p $examination_statement_p]
}
Index: openacs-4/packages/proctoring-support/tcl/test/proctoring-test-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/proctoring-support/tcl/test/proctoring-test-procs.tcl,v
diff -u -r1.1.2.5 -r1.1.2.6
--- openacs-4/packages/proctoring-support/tcl/test/proctoring-test-procs.tcl 22 Oct 2020 14:17:16 -0000 1.1.2.5
+++ openacs-4/packages/proctoring-support/tcl/test/proctoring-test-procs.tcl 20 Jan 2021 15:13:06 -0000 1.1.2.6
@@ -64,6 +64,8 @@
start_time
end_time
preview_p
+ camera_p
+ desktop_p
proctoring_p
examination_statement_p
} {
@@ -118,6 +120,16 @@
[dict get $conf end_time] eq $next_hour
}
aa_true "Proctoring on $object_id is active" [::proctoring::active_p -object_id $object_id]
+
+ aa_log "Disable camera and desktop"
+ ::proctoring::configure -object_id $object_id -proctoring_p true -camera_p false -desktop_p false
+ set conf [::proctoring::get_configuration -object_id $object_id]
+ aa_false "No camera and no desktop means no proctoring" [dict get $conf proctoring_p]
+
+ aa_log "Enable camera"
+ ::proctoring::configure -object_id $object_id -camera_p true
+ set conf [::proctoring::get_configuration -object_id $object_id]
+ aa_true "Now proctoring appears to be on" [dict get $conf proctoring_p]
}
}