← Back to team overview

mahara-contributors team mailing list archive

[Bug 1803101] Re: Error importing Leap2A w/ peer assessment

 

Hi Team,

Attached is a patch - but it will need to be checked by the Mahara team
to make sure that using $this->id and $this->get('owner') are valid
options should the block id and user id not be present when creatign the
assessment block.

Issue:
The Table 'artefact_peer_assessment' has Foreign keys for assessment, block, usr, view, that cannot be empty.

artefact/peerassessment/lib.php line 254 creates the data object - but
'block' and 'usr' are null - db insert fails.

Changing this $data object to fill in these fields with its ID and Owner value succeeds:
 $data = (object)array(
            'assessment'    => $this->get('id'),
            'block'         => $this->get('block') ? $this->get('block') : $this->id ,
            'usr'           => $this->get('usr') ? $this->get('usr') : $this->get('owner'),
            'view'          => $this->get('view'),
            'private'       => ($this->get('private') ? 1 : 0),
        );

Issue 2: Affects mysql 8:
Line 1252 in File htdocs/import/leap/lib.php uses the word "row" without backticks. As this is a reserved word - there is a second data point of failure here when doing imports.


** Patch added: "peerassessmentimport.diff"
   https://bugs.launchpad.net/mahara/+bug/1803101/+attachment/5245731/+files/peerassessmentimport.diff

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1803101

Title:
  Error importing Leap2A w/ peer assessment

Status in Mahara:
  Incomplete
Status in Mahara 18.10 series:
  Confirmed
Status in Mahara 19.04 series:
  Incomplete

Bug description:
  I exported a simple portfolio page as Leap2A and got the error
  messages below when importing it via the admin interface. The Leap2A
  file is attached.

  [WAR] 37 (lib/adodb/adodb-exceptions.inc.php:45) Array to string conversion
  Call stack (most recent first):

      log_message("Array to string conversion", 8, true, true, "/home/kristina/code/mahara/htdocs/lib/adodb/adodb-...", 45) at /home/kristina/code/mahara/htdocs/lib/errors.php:520
      error(8, "Array to string conversion", "/home/kristina/code/mahara/htdocs/lib/adodb/adodb-...", 45, array(size 7)) at /home/kristina/code/mahara/htdocs/lib/adodb/adodb-exceptions.inc.php:45
      ADODB_Exception->__construct("postgres8", "adodb_throw", -1, "ERROR: null value in column "block" violates not-...", "INSERT INTO "artefact_peer_assessment" ("assessmen...", array(size 3), object(ADODB_postgres8)) at /home/kristina/code/mahara/htdocs/lib/adodb/adodb-exceptions.inc.php:80
      adodb_throw("postgres8", "adodb_throw", -1, "ERROR: null value in column "block" violates not-...", "INSERT INTO "artefact_peer_assessment" ("assessmen...", array(size 3), object(ADODB_postgres8)) at /home/kristina/code/mahara/htdocs/lib/adodb/adodb.inc.php:313
      ADODB_TransMonitor("postgres8", "adodb_throw", -1, "ERROR: null value in column "block" violates not-...", "INSERT INTO "artefact_peer_assessment" ("assessmen...", array(size 3), object(ADODB_postgres8)) at /home/kristina/code/mahara/htdocs/lib/adodb/adodb.inc.php:1263
      ADOConnection->_Execute("INSERT INTO "artefact_peer_assessment" ("assessmen...", array(size 3)) at /home/kristina/code/mahara/htdocs/lib/adodb/adodb.inc.php:1223
      ADOConnection->Execute("INSERT INTO "artefact_peer_assessment" ("assessmen...", array(size 3)) at /home/kristina/code/mahara/htdocs/lib/dml.php:1102
      insert_record("artefact_peer_assessment", object(stdClass)) at /home/kristina/code/mahara/htdocs/artefact/peerassessment/lib.php:240
      ArtefactTypePeerassessment->commit() at /home/kristina/code/mahara/htdocs/artefact/peerassessment/import/leap/lib.php:180
      LeapImportPeerassessment::import_using_strategy(object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:1813
      call_static_method("LeapImportPeerassessment", "import_using_strategy", object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/import/leap/lib.php:665
      PluginImportLeap->import_from_load_mapping() at /home/kristina/code/mahara/htdocs/import/leap/lib.php:188
      PluginImportLeap->process() at /home/kristina/code/mahara/htdocs/admin/users/add.php:348
      adduser_submit(object(Pieform), array(size 24)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:542
      Pieform->__construct(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:164
      Pieform::process(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:5258
      pieform(array(size 8)) at /home/kristina/code/mahara/htdocs/admin/users/add.php:156

  [WAR] 37 (lib/errors.php:858) Failed to get a recordset: postgres8 error: [-1: ERROR:  null value in column "block" violates not-null constraint
  DETAIL:  Failing row contains (22, null, null, 11, 0).] in adodb_throw(INSERT INTO "artefact_peer_assessment" ("assessment", "view", "private") VALUES (?, ?, ?), Array)Command was: INSERT INTO "artefact_peer_assessment" ("assessment", "view", "private") VALUES (?, ?, ?) and values was (assessment:22,view:11,private:0)
  Call stack (most recent first):

      log_message("Failed to get a recordset: postgres8 error: [-1: E...", 8, true, true) at /home/kristina/code/mahara/htdocs/lib/errors.php:95
      log_warn("Failed to get a recordset: postgres8 error: [-1: E...") at /home/kristina/code/mahara/htdocs/lib/errors.php:858
      SQLException->__construct("Failed to get a recordset: postgres8 error: [-1: E...") at /home/kristina/code/mahara/htdocs/lib/dml.php:1105
      insert_record("artefact_peer_assessment", object(stdClass)) at /home/kristina/code/mahara/htdocs/artefact/peerassessment/lib.php:240
      ArtefactTypePeerassessment->commit() at /home/kristina/code/mahara/htdocs/artefact/peerassessment/import/leap/lib.php:180
      LeapImportPeerassessment::import_using_strategy(object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:1813
      call_static_method("LeapImportPeerassessment", "import_using_strategy", object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/import/leap/lib.php:665
      PluginImportLeap->import_from_load_mapping() at /home/kristina/code/mahara/htdocs/import/leap/lib.php:188
      PluginImportLeap->process() at /home/kristina/code/mahara/htdocs/admin/users/add.php:348
      adduser_submit(object(Pieform), array(size 24)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:542
      Pieform->__construct(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:164
      Pieform::process(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:5258
      pieform(array(size 8)) at /home/kristina/code/mahara/htdocs/admin/users/add.php:156

  [WAR] 37 (lib/dml.php:1105) Failed to get a recordset: postgres8 error: [-1: ERROR:  null value in column "block" violates not-null constraint
  DETAIL:  Failing row contains (22, null, null, 11, 0).] in adodb_throw(INSERT INTO "artefact_peer_assessment" ("assessment", "view", "private") VALUES (?, ?, ?), Array)Command was: INSERT INTO "artefact_peer_assessment" ("assessment", "view", "private") VALUES (?, ?, ?) and values was (assessment:22,view:11,private:0)
  Call stack (most recent first):

      insert_record("artefact_peer_assessment", object(stdClass)) at /home/kristina/code/mahara/htdocs/artefact/peerassessment/lib.php:240
      ArtefactTypePeerassessment->commit() at /home/kristina/code/mahara/htdocs/artefact/peerassessment/import/leap/lib.php:180
      LeapImportPeerassessment::import_using_strategy(object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:1813
      call_static_method("LeapImportPeerassessment", "import_using_strategy", object(SimpleXMLElement), object(PluginImportLeap), 1, array(size 0)) at /home/kristina/code/mahara/htdocs/import/leap/lib.php:665
      PluginImportLeap->import_from_load_mapping() at /home/kristina/code/mahara/htdocs/import/leap/lib.php:188
      PluginImportLeap->process() at /home/kristina/code/mahara/htdocs/admin/users/add.php:348
      adduser_submit(object(Pieform), array(size 24)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:542
      Pieform->__construct(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/pieforms/pieform.php:164
      Pieform::process(array(size 8)) at /home/kristina/code/mahara/htdocs/lib/mahara.php:5258
      pieform(array(size 8)) at /home/kristina/code/mahara/htdocs/admin/users/add.php:156

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1803101/+subscriptions


References