• last updated 12 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
perform cleanup of WorkflowContainer after 10 minutes

  1. … 3 more files in changeset.
Fix typo in message key

  1. … 1 more file in changeset.
Added points in addition to minutes to test items and inclass-exam workflows

  1. … 6 more files in changeset.
use package based instantiate_forms method

  1. … 1 more file in changeset.
- integration of inclass-exam with personal notifications

- new (comnposite) includelet "exam-top-includelet"

- new www-calls for workflows:

* inclass-exam.wf:

. send-participant-message

* inclass-exam-answer.wf:

. message-poll

. message-dismiss

- bumped version number to 5.10.0d23

  1. … 4 more files in changeset.
use "ad_file" as a means to avoid unexpected tilde substitution in file names

  1. … 8 more files in changeset.
added support for inclass-exam for scheduled opening and closing of exams

  1. … 6 more files in changeset.
improve SQL quoting

  1. … 4 more files in changeset.
Added grading info to exam protocol, when autograding is active.

Added information about resonable settings for shuffling in an exam

Added information for teacher whether student exam review is possible

Added correct solution hints for SC and MC (to be displayed in exam protocol)

  1. … 4 more files in changeset.
added support for position dependent randomization

  1. … 1 more file in changeset.
Improve display of print-answers:

- provide API functions "get_duration" and "get_IPs" for ans

- added info box "runtime-data" in inclass-exam.wf about changed submissions

(number of revisions, duration, all IP addresses of the submission)

- added message keys for "nr_changes" and "duration"

- updated CSS to handle "runtime-data"

- bump version number to 5.10.0d16

  1. … 5 more files in changeset.
- test-items: added ordering item type (short_text_interaction)

- simplified code by using ':get_named_sub_component_value -from_repeat ...'

- refetch site-wide pages, when the source code of the site-wide pages changes.

- bumped version number to 5.10.0d16

  1. … 13 more files in changeset.
- new assessment workflow for in-class exam

lib/inclass-exam-answer.wf

lib/inclass-exam.wf

- Defined common superclass for Assessments (AssessmentInterface) to

provide common infrastucture (assertion methods), and define other

interface classes as subclasses (Renaming_form_loader,

Answer_manager, Question_manager).

- extended message keys

- new prototype pages:

www/prototypes/TestItemMC.form.page

www/prototypes/TestItemSC.form.page

www/prototypes/TestItemShortText.form.page

www/prototypes/TestItemText.form.page

www/prototypes/TestItemUpload.form.page

www/prototypes/assessment-index.page

www/prototypes/inclass-exam.wf.page

www/prototypes/inclass-quiz.wf.page

www/prototypes/online-exam.wf.page

www/prototypes/quiz-select_question.form.page

www/prototypes/select_question.form.page

- Defined to following pages as site-wide:

Package site_wide_pages {

Workflow.form

TestItemText.form

TestItemShortText.form

TestItemMC.form

TestItemSC.form

TestItemUpload.form

online-exam.wf

inclass-quiz.wf

inclass-exam.wf

quiz-select_question.form

select_question.form

}

- Ensure availability of site-wide pages at startup

of server.

- bumped version number to 5.10.0d15

  1. … 23 more files in changeset.
Crosscutting reform to ease configurability of xo* applications

acs-admin

- Provide support for site-wide packages

Site-wide packages can be used to provide a common

place for site-wide admins to configure application packages

and for testing purposes. These packages are mounted

on a special subsite (named "site-die") under acs-admin/

to avoid confusions for end-users of the site.

The site-wide subsite can be used as well for creating testing

instances or for other testing purposes.

- bump version number to 5.10.0d9

xotcl-core

- Added support for site-wide packages.

Packages can define, how site-wide packages

should be configured

- Changed Package-level procs into instprocs

of the meta-class. This way, generic code can be

provided for common handling across packages.

This effects:

- configure_fresh_instance

- get_site_wide_page

- import_prototype_page

- lookup_side_wide_page

- require_site_wide_info

- require_site_wide_pages

- bump version number to 5.10.0d24

xowiki

- provide configurable configuration info for new packages

(including site-wide packages)

- search for prototype pages along inheritance path

- moved Parameter.page prototype here

- added "table-of-contents" prototype page

- perform refactoring due to moving methods to the

meta-class

- reduce usage of anonymous arrays

- bump version number to 5.10.0d49

xowf

- simplify apm callback and use new infrastructure

- provide configurable configuration info for new packages

(including site-wide packages)

- bump version number to 5.10.0d14

  1. … 14 more files in changeset.
bump version number to 5.10.0d13 and update dependencies

add item shuffling for test item procs and do some minor refactoring

  1. … 7 more files in changeset.
verworked test-item procs:

- new teacher-paced inclass quiz

- support for different shuffling options (never, always, per-user)

- support for subsections (single and multiple choice, short text questsion)

- support for answer hints for short text questions (single word, multiple words, ...)

- new API for question and answers for student-paced and

teacher-paced scenarios using on the following objects

* renaming_form_loader

- answer_attributes

- answer_for_form

- answers_for_form

- form_name_based_attribute_stem

- get_form_object

- rename_attributes

* question_manager

- goto_page

- more_ahead

- current_question_form

- current_question_obj

- current_question_name

- current_question_title

- nth_question_obj

- nth_question_form

- combined_question_form

- question_objs

- question_names

- question_property

* answer_manager

- create_workflow

- delete_all_answer_data

- get_answer_wf

- get_wf_instances

- get_answers

- marked_results

- answers_panel

- special policies for workflows, defined as per-workflow policies.

- improved i18n

- improved styling

  1. … 9 more files in changeset.
- form-generator.css: based on former myform.css, substantially revamped

(to be used together with form field classes in test-item-procs)

- test-item classes:

* feedback_level extended to "full", "single", or "none"

middle is new for a single feedback per item

* shuffling support with 3 modes ("none", "peruser", "always").

can be used for shuffling MC questions and text_entry questions (short-text),

and in future for all "enumeration" based question types.

* new question type "mc2", shuffling multiple choice question,

fully stylable via CSS (old question type "mc" can still be used for the

time being)

* ease styling for all test-item types by added explicit wrappers

* factor out "renaming_form_loader" from online-exam*.wf (including

support methods)

- online-exam*.wf:

* fix broken behavior with shared workflow definitions when closing/opening

exams and student tried interactions. Previous code did dynamic changes in

the shared definition (probably more to come).

* used factored out renaming_form_loader

* cleanup of old code

- removed low-level rewriting of <textarea>, <input> fields, etc.

- removed dead code

- removed hard-coded stylings

- bumb version number to 5.10.0d10

  1. … 6 more files in changeset.
- add invalidation for shared workflow containers (when

sharedWorkflowDefinition is activated)

- use the mew form-field method "set_feedback" defined in xowiki

  1. … 1 more file in changeset.
use new form-field type "correct_when"

  1. … 1 more file in changeset.
extend message catalog

  1. … 2 more files in changeset.
improve query parameter validation

  1. … 1 more file in changeset.
Allow Workflow Conditions to be evaluated in form fields via evaluate_form_field_condition

  1. … 1 more file in changeset.
Close tag properly (fixes files__check_info_files)

use aa_section features of automated testing

  1. … 1 more file in changeset.
move newly defined testing API (in OpenACS 5.10) to namespace acs::test

  1. … 9 more files in changeset.
add test cases for adding forms and workflows

  1. … 1 more file in changeset.
base test cases on xowiki form page testing infrastructure for web tests

  1. … 1 more file in changeset.
Shared Workflow Definitions (Part 2)

When shared workflow definition are used, a different management of

object specific code is necessary, since one definition seves for many

objects, and it is not freshly created per object. Therefore, a new

concept is introduced for workflow definitions, named "object-specifc"

Instead of writing in a workflow definition

Action save

state initial -actions {save}

[my object] proc foo {} { ns_log notice "===foo==="}

one has to write now:

Action save

state initial -actions {save}

:object-specific {

:proc foo {} { ns_log notice "===foo==="}

}

where the object-specific is evaluated once per request for every

involved workflow instance in the context of the object (a [self]

in this block refers to the object).

In case a [my object] is encountered and sharedWorkflowDefinition is

activated, a warning is produced and the code falls back to old-style

shared workflow definitions.

  1. … 3 more files in changeset.
Add Feature: Shared Workflow Definitions

Background: so far, xowf stored workflow definitions in the workflow

context, which is generated for every instantiated workflow instance

due to the needs of the State Pattern. While the old approach works

perfectly fine, when pre request only one or a few workflow instances

are created, but is inefficient, when e.g. 100 or more instances of

the workflow definition are created.

Now, the instances can share the definition, which is shared based on

the revision_id of the workflow FormPage.

OLD: obj <-> obj::wf_ctx

NEW: obj <-> obj::wf_ctx <(n)----> wf_definition

OLD scenario:

- the wf_definition was part of the context (no distinction)

- navigation from wf_ctx (and wf_definition) to object was possible

via "info parent"

NEW scenario:

- the wf_definition is separate

- one wf_definition can be used for multiple wf_ctx

- new methods are required instead of "info parent"

to navigate between these cooperating objects

* xowf::WorkflowPage.wf_context

* xowf::WorkflowConstruct.wf_context

* xowf::Context.wf_container

The navigation from a WorkflowConstruct (e.g. State) to the wf_ctx

is slow and fragile if not following usual programming conventions

and should e avoided (the methods of these constructs have the obj

passed in, so this path should not be necessary in most situations)

- as long the contents of the wf_container is constant, it can be

shared in the per-thread cache.

For now, the new feature is turned off by default via variable

::xowf::sharedWorkflowDefinition, but this will change in the future.

  1. … 3 more files in changeset.