Skip to content
Snippets Groups Projects
Commit c5790c5e authored by Peter Rotich's avatar Peter Rotich
Browse files

Merge pull request #1993 from greezybacon/issue/user-import-update


users: Update information on CSV import

Reviewed-By: default avatarPeter Rotich <peter@osticket.com>
parents 14724e89 64fee583
No related branches found
No related tags found
No related merge requests found
......@@ -970,12 +970,20 @@ class DynamicFormEntry extends VerySimpleModel {
}
}
/**
* Save the form entry and all associated answers.
*
* Returns:
* (mixed) FALSE if updated failed, otherwise the number of dirty answers
* which were save is returned (which may be ZERO).
*/
function save($refetch=false) {
if (count($this->dirty))
$this->set('updated', new SqlFunction('NOW'));
if (!parent::save($refetch || count($this->dirty)))
return false;
$dirty = 0;
foreach ($this->getAnswers() as $a) {
$field = $a->getField();
......@@ -998,10 +1006,14 @@ class DynamicFormEntry extends VerySimpleModel {
else
$a->set('value', $val);
// Don't save answers for presentation-only fields
if ($field->hasData() && !$field->isPresentationOnly())
if ($field->hasData() && !$field->isPresentationOnly()) {
if ($a->dirty)
$dirty++;
$a->save();
}
}
$this->_values = null;
return $dirty;
}
function delete() {
......
......@@ -163,7 +163,7 @@ class User extends UserModel {
var $_entries;
var $_forms;
static function fromVars($vars) {
static function fromVars($vars, $update=false) {
// Try and lookup by email address
$user = static::lookupByEmail($vars['email']);
if (!$user) {
......@@ -196,6 +196,10 @@ class User extends UserModel {
return null;
}
}
elseif ($update) {
$errors = array();
$user->updateInfo($vars, $errors, true);
}
return $user;
}
......@@ -472,7 +476,7 @@ class User extends UserModel {
foreach ($users as $u) {
$vars = array_combine($keys, $u);
if (!static::fromVars($vars))
if (!static::fromVars($vars, true))
return sprintf(__('Unable to import user: %s'),
print_r($vars, true));
}
......@@ -526,7 +530,6 @@ class User extends UserModel {
if (($f=$cd->getForm()) && $f->get('type') == 'U') {
if (($name = $f->getField('name'))) {
$this->name = $name->getClean();
$this->save();
}
if (($email = $f->getField('email'))) {
......@@ -534,10 +537,12 @@ class User extends UserModel {
$this->default_email->save();
}
}
$cd->save();
// DynamicFormEntry::save returns the number of answers updated
if ($cd->save()) {
$this->updated = SqlFunction::NOW();
}
}
return true;
return $this->save();
}
function save($refetch=false) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment