Skip to content

Commit

Permalink
import CSV fixed
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_ci@10697 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
Aniessh Sethh committed Aug 12, 2011
1 parent 9f61e27 commit 4a37255
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 88 deletions.
2 changes: 1 addition & 1 deletion application/config/autoload.php
Expand Up @@ -52,7 +52,7 @@
| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/

$autoload['libraries'] = array('session');
$autoload['libraries'] = array('database', 'session');


/*
Expand Down
2 changes: 1 addition & 1 deletion application/config/config.php
Expand Up @@ -225,7 +225,7 @@
| MUST set an encryption key. See the user guide for info.
|
*/
$config['encryption_key'] = 'encryption_key';
$config['encryption_key'] = '6990f870a883f574408c9634f3dd1d49';

/*
|--------------------------------------------------------------------------
Expand Down
100 changes: 50 additions & 50 deletions application/config/database.php
@@ -1,52 +1,52 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database type. ie: mysql. Currently supported:
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Active Record class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['autoinit'] Whether or not to automatically initialize the database.
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing
|
| The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the 'default' group).
|
| The $active_record variables lets you determine whether or not to load
| the active record class
*/

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = '';
$db['default']['username'] = '';
| -------------------------------------------------------------------
| DATABASE CONNECTIVITY SETTINGS
| -------------------------------------------------------------------
| This file will contain the settings needed to access your database.
|
| For complete instructions please consult the 'Database Connection'
| page of the User Guide.
|
| -------------------------------------------------------------------
| EXPLANATION OF VARIABLES
| -------------------------------------------------------------------
|
| ['hostname'] The hostname of your database server.
| ['username'] The username used to connect to the database
| ['password'] The password used to connect to the database
| ['database'] The name of the database you want to connect to
| ['dbdriver'] The database type. ie: mysql. Currently supported:
mysql, mysqli, postgre, odbc, mssql, sqlite, oci8
| ['dbprefix'] You can add an optional prefix, which will be added
| to the table name when using the Active Record class
| ['pconnect'] TRUE/FALSE - Whether to use a persistent connection
| ['db_debug'] TRUE/FALSE - Whether database errors should be displayed.
| ['cache_on'] TRUE/FALSE - Enables/disables query caching
| ['cachedir'] The path to the folder where cache files should be stored
| ['char_set'] The character set used in communicating with the database
| ['dbcollat'] The character collation used in communicating with the database
| ['swap_pre'] A default table prefix that should be swapped with the dbprefix
| ['autoinit'] Whether or not to automatically initialize the database.
| ['stricton'] TRUE/FALSE - forces 'Strict Mode' connections
| - good for ensuring strict SQL while developing
|
| The $active_group variable lets you choose which connection group to
| make active. By default there is only one group (the 'default' group).
|
| The $active_record variables lets you determine whether or not to load
| the active record class
*/
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = '';
$db['default']['dbprefix'] = '';
$db['default']['database'] = 'limesurvey_cpdb';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'lime_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
Expand All @@ -58,7 +58,7 @@
$db['default']['stricton'] = FALSE;
$db['default']['port'] = 'default';
$db['default']['databasetabletype'] = 'myISAM';
$config['dbdriver'] = $db['default']['dbdriver'];
$config['dbdriver'] = $db['default']['dbdriver'];

/* End of file database.php */
/* Location: ./application/config/database.php */
/* End of file database.php */
/* Location: ./application/config/database.php */
47 changes: 28 additions & 19 deletions application/controllers/admin/participants.php
Expand Up @@ -841,10 +841,13 @@ function attributeMapCSV()
if (!$this->upload->do_upload())
{
$errorinupload = array('error' => $this->upload->display_errors());
$this->session->unset_userdata('summary');
$data = array( 'errorinupload' => $errorinupload);

$this->session->set_userdata('summary',$data);
self::_getAdminHeader();
$clang = $this->limesurvey_lang;
$data = array('clang'=> $clang,
'errorinupload' => $errorinupload );
$data = array('clang'=> $clang);
$this->load->view('admin/Participants/participantsPanel_view',$data);
$this->load->view('admin/Participants/uploadSummary_view',$data);
self::_getAdminFooter("http://docs.limesurvey.org", $this->limesurvey_lang->gT("LimeSurvey online manual"));
Expand Down Expand Up @@ -984,6 +987,7 @@ function uploadCSV()
}
$invalidemail=false;
$dupfound = false;
$thisduplicate = 0;
$filterduplicatefields=array('firstname','lastname','email');
foreach($writearray as $value)
{
Expand All @@ -997,15 +1001,18 @@ function uploadCSV()
$result=$this->participants_model->checkforDuplicate($data);
if($result == true )
{
$thisduplicate = 1;
$dupcount++;
}

}
if($dupcount > 0)

if($thisduplicate == 1)
{
$dupfound = true;
$duplicatelist[]=$writearray['firstname']." ".$writearray['lastname']." (".$writearray['email'].")";
}

$writearray['email'] = trim($writearray['email']);
if($writearray['email']!='')
{
Expand Down Expand Up @@ -1036,12 +1043,12 @@ function uploadCSV()
}
else
{

foreach($writearray as $key=> $value)
{

if(in_array($key, $allowedfieldnames))
if(!empty($mappedarray))
{
if(in_array($key, $allowedfieldnames))
{
foreach($mappedarray as $attid=>$attname)
{
if($attname == $key)
Expand All @@ -1061,6 +1068,7 @@ function uploadCSV()
}
}

}
}
/* if(is_numeric($key) && in_array($key, $allowedfieldnames))
{
Expand Down Expand Up @@ -1127,6 +1135,7 @@ function uploadCSV()
}
}*/
}

$this->participants_model->insertParticipantCSV($writearray);
$imported++;
}
Expand All @@ -1141,19 +1150,19 @@ function uploadCSV()
self::_getAdminHeader();
$clang = $this->limesurvey_lang;

$data = array('clang'=> $clang,
'duplicatelist' => $duplicatelist,
'recordcount' => $recordcount-1,
'mincriteria' => $mincriteria,
'imported' => $imported,
'dupcount' => count($duplicatelist),
'errorinupload' => $errorinupload,
'invalidemaillist'=> $invalidemaillist,
'mandatory' => $mandatory,
'invalidattribute' => $invalidattribute,
'invalidparticipantid' => $invalidparticipantid
);
redirect('admin/participants/summaryview');
$data = array( 'duplicatelist' => $duplicatelist,
'recordcount' => $recordcount-1,
'mincriteria' => $mincriteria,
'imported' => $imported,
'dupcount' => count($duplicatelist),
'errorinupload' => $errorinupload,
'invalidemaillist'=> $invalidemaillist,
'mandatory' => $mandatory,
'invalidattribute' => $invalidattribute,
'invalidparticipantid' => $invalidparticipantid );
$this->session->unset_userdata('summary');
$this->session->set_userdata('summary',$data);
//redirect('admin/participants/summaryview');
}
function summaryview()
{
Expand Down
4 changes: 2 additions & 2 deletions application/views/admin/Participants/importCSV_view.php
Expand Up @@ -89,9 +89,9 @@
<div class="messagebox ui-corner-all">
<div class="header ui-widget-header"><?php $clang->gT("CSV input format") ?></div>
<p><?php echo $clang->gT("File should be a standard CSV (comma delimited) file with optional double quotes around values (default for OpenOffice and Excel). The first line must contain the field names. The fields can be in any order.");?></p>
<span style="font-weight:bold;">Mandatory fields:</span><?php echo $clang->gT("First Name, Last Name, E-Mail"); ?>
<span style="font-weight:bold;">Mandatory fields:</span><?php echo $clang->gT("firstname, lastname, email"); ?>
<br>
<span style="font-weight:bold;">Optional fields:</span><?php echo $clang->gT("Blacklist,Attributes,Language"); ?>
<span style="font-weight:bold;">Optional fields:</span><?php echo $clang->gT("blacklist,language"); ?>
</div>
</div>
</body>
Expand Down
27 changes: 13 additions & 14 deletions application/views/admin/Participants/uploadSummary_view.php
Expand Up @@ -8,53 +8,52 @@
</head>
<body>
<?php

$uploadSummary = "<div class='header ui-widget-header'>".$clang->gT("CPDB CSV Summary")."</div><div class='messagebox ui-corner-all'>";
if($this->session->flashdata('errorinupload') == "") {
if(empty($this->session->userdata['summary']['errorinupload'])) {
$uploadSummary .= "<div class='successheader'>".$clang->gT('Uploaded CSV file successfully')."</div>";
if($this->session->flashdata('imported') !=0) {
if($this->session->userdata['summary']['imported'] !=0) {
$uploadSummary .= "<div class='successheader'>".$clang->gT('Successfully created token entries')."</div>";
} else {
$uploadSummary .= "<div class='warningheader'>".$clang->gT("Failed to create token entries")."</div>";
}
$uploadSummary .= "<ul><li>".sprintf($clang->gT("%s records in CSV"),$this->session->flashdata('recordcount'))."</li><li>".sprintf($clang->gT("%s records met minumum requirements"),$this->session->flashdata('mincriteria'))."</li><li>".sprintf($clang->gT("%s records have blank madatory fields"),$this->session->flashdata('mandatory'))."</li><li>".sprintf($clang->gT("%s records imported"),$this->session->flashdata('imported'))."</li></ul></ul>";
if ($this->session->flashdata('dupcount')>0 || count($this->session->flashdata('invalidemaillist'))>0 || count($this->session->flashdata('invalidattribute'))>0)
$uploadSummary .= "<ul><li>".sprintf($clang->gT("%s records in CSV"),$this->session->userdata['summary']['recordcount'])."</li><li>".sprintf($clang->gT("%s records met minumum requirements"),$this->session->userdata['summary']['mincriteria'])."</li><li>".sprintf($clang->gT("%s records have blank madatory fields"),$this->session->userdata['summary']['mandatory'])."</li><li>".sprintf($clang->gT("%s records imported"),$this->session->userdata['summary']['imported'])."</li></ul></ul>";
if ($this->session->userdata['summary']['dupcount'] >0 || count($this->session->userdata['summary']['invalidemaillist']) >0 || count($this->session->userdata['summary']['invalidattribute']) >0)
{
$uploadSummary .= "<div class='warningheader'>".$clang->gT('Warnings')."</div><ul><li>";
$uploadSummary .= sprintf($clang->gT("%s duplicate records removed"),$this->session->flashdata('dupcount'));
$uploadSummary .= sprintf($clang->gT("%s duplicate records removed"),$this->session->userdata['summary']['dupcount']);
$uploadSummary .= "<a href='#' onclick='$(\"#duplicateslist\").toggle();'>".$clang->gT('List')."</a>";
$uploadSummary .= "<div class='badtokenlist' id='duplicateslist' style='display: none;'><ul>";
foreach($this->session->flashdata('duplicatelist') as $data)
foreach($this->session->userdata['summary']['duplicatelist'] as $data)
{
$uploadSummary .= "<li>".$data."</li>";
}
}
$uploadSummary .= "</li>";
if (count($this->session->flashdata('invalidmaillist'))>0)
if (count($this->session->userdata['summary']['invalidemaillist']) >0)
{
$uploadSummary .= "<li>".sprintf($clang->gT("%s records with invalid email address removed"),count($this->session->flashdata('invalidemaillist')));
$uploadSummary .= "<li>".sprintf($clang->gT("%s records with invalid email address removed"),count($this->session->userdata['summary']['invalidemaillist']));
$uploadSummary .= "<a href='#' onclick='$(\"#invalidemaillist\").toggle();'>".$clang->gT('List')."</a>";
$uploadSummary .= "<div class='badtokenlist' id='invalidemaillist' style='display: none;'><ul>";
foreach($this->session->flashdata('invalidmaillist') as $data)
foreach($this->session->userdata['summary']['invalidemaillist'] as $data)
{
$uploadSummary.= "<li>".$data."</li>";
}
}
$uploadSummary .= "</ul></div></li>";
if (count($this->session->flashdata('invalidattribute'))>0)
if (count($this->session->userdata['summary']['invalidattribute'])>0)
{
$uploadSummary .="<li>".sprintf($clang->gT("%s records have incomplete or wrong attribute values"),count($this->session->flashdata('invalidattribute')));
$uploadSummary .="<li>".sprintf($clang->gT("%s records have incomplete or wrong attribute values"),count($this->session->userdata['summary']['invalidattribute']));
$uploadSummary .="<a href='' onclick=\'$(\"#invalidattributelist\").toggle();'>'".$clang->gT('List')."</a>";
$uploadSummary .="<div class='badtokenlist' id='invalidattributelist' style='display: none;'><ul>";
foreach($this->session->flashdata('invalidattribute') as $data)
foreach($this->session->userdata['summary']['invalidattribute'] as $data)
{
$uploadSummary.= "<li>".$data."</li>";
} }
$uploadSummary .= "</ul></div></li></ul></div>";
}
else
{
$uploadSummary .= "<div class='warningheader'>".$this->session->flashdata('errorinupload')."</div>";
$uploadSummary .= "<div class='warningheader'>".$this->session->userdata['summary']['errorinupload']['error']."</div>";
}
echo $uploadSummary;

Expand Down
2 changes: 1 addition & 1 deletion scripts/admin/attributeMapCSV.js
Expand Up @@ -85,7 +85,7 @@ $(document).ready(function(){
newarray : newcurrentarray,
mappedarray : mappedarray
}, function(msg){
//$(location).attr('href',redUrl);
$(location).attr('href',redUrl);
});
});

Expand Down

0 comments on commit 4a37255

Please sign in to comment.