Dependency Graph

Dependency Graph
related to related to child of child of duplicate of duplicate of

View Issue Details

This bug affects 1 person(s).
 2
IDProjectCategoryView StatusLast Update
17093Bug reportsImport/Exportpublic2021-04-06 14:43
ReporterDenisChenu Assigned ToDenisChenu  
PrioritynoneSeverityminor 
Status closedResolutionfixed 
Product Version3.25.12 
Summary17093: Unable to fix invalid survey after import bad TSV
Description

When import a TSV without all language on SL : unable to fix it.

Steps To Reproduce

Import included survey
Show success
Test both language : seem to work
Try to edit Survey text (welcome title) : nothing shown

Additional Information

See HTML for the issue : en is in additional_language but not in SL.
I think we use fixLanguageConsistency after any import, seems false … this can fix a lot of broken import.

Global checkintegrity fix the issue too : but have a solution to check integrity on a single survey (then for Survey manager, not only for superadmin) can be a great idea : i add it as feature.

TagsNo tags attached.
Attached Files
limesurvey_survey_628678.tsv (15,426 bytes)   
class	type/scale	name	relevance	text	help	language	validation	mandatory	other	default	same_default	allowed_filetypes	alphasort	answer_width	array_filter	array_filter_exclude	array_filter_style	assessment_value	category_separator	choice_title	code_filter	commented_checkbox	commented_checkbox_auto	date_format	date_max	date_min	display_columns	display_rows	dropdown_dates	dropdown_dates_minute_step	dropdown_dates_month_style	dropdown_prefix	dropdown_prepostfix	dropdown_separators	dropdown_size	dualscale_headerA	dualscale_headerB	em_validation_q	em_validation_q_tip	em_validation_sq	em_validation_sq_tip	equals_num_value	exclude_all_others	exclude_all_others_auto	hidden	hide_tip	input_boxes	location_city	location_country	location_defaultcoordinates	location_mapheight	location_mapservice	location_mapwidth	location_mapzoom	location_nodefaultfromip	location_postal	location_state	max_answers	max_filesize	max_num_of_files	max_num_value	max_num_value_n	maximum_chars	min_answers	min_num_of_files	min_num_value	min_num_value_n	multiflexible_checkbox	multiflexible_max	multiflexible_min	multiflexible_step	num_value_int_only	numbers_only	other_comment_mandatory	other_numbers_only	other_replace_text	page_break	parent_order	prefix	printable_help	public_statistics	random_group	random_order	rank_title	repeat_headings	reverse	samechoiceheight	samelistheight	scale_export	show_comment	show_grand_total	show_title	show_totals	showpopups	slider_accuracy	slider_default	slider_layout	slider_max	slider_middlestart	slider_min	slider_rating	slider_reset	slider_separator	slider_showminmax	statistics_graphtype	statistics_showgraph	statistics_showmap	suffix	text_input_width	time_limit	time_limit_action	time_limit_countdown_message	time_limit_disable_next	time_limit_disable_prev	time_limit_message	time_limit_message_delay	time_limit_message_style	time_limit_timer_style	time_limit_warning	time_limit_warning_2	time_limit_warning_2_display_time	time_limit_warning_2_message	time_limit_warning_2_style	time_limit_warning_display_time	time_limit_warning_message	time_limit_warning_style	thousands_separator	use_dropdown
S		sid		628678																																																																																																																												
S		owner_id		1																																																																																																																												
S		admin		Sondages en ligne																																																																																																																												
S		active		N																																																																																																																												
S		adminemail		contact@sondages.pro																																																																																																																												
S		anonymized		N																																																																																																																												
S		format		G																																																																																																																												
S		savetimings		N																																																																																																																												
S		template		skeleton_flatblue																																																																																																																												
S		language		fr																																																																																																																												
S		additional_languages		en																																																																																																																												
S		datestamp		N																																																																																																																												
S		usecookie		N																																																																																																																												
S		allowregister		N																																																																																																																												
S		allowsave		Y																																																																																																																												
S		autonumber_start		0																																																																																																																												
S		autoredirect		N																																																																																																																												
S		allowprev		N																																																																																																																												
S		printanswers		N																																																																																																																												
S		ipaddr		N																																																																																																																												
S		refurl		N																																																																																																																												
S		datecreated		2021-02-15																																																																																																																												
S		publicstatistics		N																																																																																																																												
S		publicgraphs		N																																																																																																																												
S		listpublic		N																																																																																																																												
S		htmlemail		Y																																																																																																																												
S		tokenanswerspersistence		N																																																																																																																												
S		assessments		N																																																																																																																												
S		usecaptcha		N																																																																																																																												
S		usetokens		N																																																																																																																												
S		bounce_email		noreply@sondages.pro																																																																																																																												
S		tokenlength		15																																																																																																																												
S		showxquestions		Y																																																																																																																												
S		showgroupinfo		B																																																																																																																												
S		shownoanswer		Y																																																																																																																												
S		showqnumcode		X																																																																																																																												
S		bounceprocessing		N																																																																																																																												
S		showwelcome		Y																																																																																																																												
S		showprogress		Y																																																																																																																												
S		navigationdelay		0																																																																																																																												
S		nokeyboard		N																																																																																																																												
S		alloweditaftercompletion		N																																																																																																																												
S		sendconfirmation		Y																																																																																																																												
S		questionindex		0																																																																																																																												
SL		surveyls_title		test broken multilingual broken TSV		fr																																																																																																																										
SL		surveyls_email_invite_subj		Invitation à participer à un questionnaire		fr																																																																																																																										
SL		surveyls_email_invite		"Cher(e) {FIRSTNAME},<br /> <br /> Vous avez été invité(e) à participer à un questionnaire.<br /> <br /> Celui-ci est intitulé :<br /> ""{SURVEYNAME}""<br /> <br /> ""{SURVEYDESCRIPTION}""<br /> <br /> Pour participer, veuillez cliquer sur le lien ci-dessous.<br /> <br /> Cordialement,<br /> <br /> {ADMINNAME} ({ADMINEMAIL})<br /> <br /> ----------------------------------------------<br /> Cliquez ici pour remplir ce questionnaire :<br /> {SURVEYURL}<br /> <br /> Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br /> {OPTOUTURL}<br /> <br /> Si vous êtes sur liste noire mais que vous voulez participer à ce questionnaire et recevoir les invitations, merci de cliquer sur le lien suivant :<br /> {OPTINURL}"		fr																																																																																																																										
SL		surveyls_email_remind_subj		Rappel pour participer à un questionnaire		fr																																																																																																																										
SL		surveyls_email_remind		"Cher(e) {FIRSTNAME},<br /> <br /> Vous avez été invité(e) à participer à un questionnaire récemment.<br /> <br /> Nous avons pris en compte que vous n'avez pas encore complété le questionnaire, et nous vous rappelons que celui-ci est toujours disponible si vous souhaitez participer.<br /> <br /> Le questionnaire est intitulé :<br /> ""{SURVEYNAME}""<br /> <br /> ""{SURVEYDESCRIPTION}""<br /> <br /> Pour participer, veuillez cliquer sur le lien ci-dessous.<br /> <br /> Cordialement,<br /> <br /> {ADMINNAME} ({ADMINEMAIL})<br /> <br /> ----------------------------------------------<br /> Cliquez ici pour faire le questionnaire:<br /> {SURVEYURL}<br /> <br /> Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br /> {OPTOUTURL}"		fr																																																																																																																										
SL		surveyls_email_register_subj		Confirmation d'enregistrement au questionnaire		fr																																																																																																																										
SL		surveyls_email_register		Bonjour {FIRSTNAME},<br /> <br /> Vous (ou quelqu’un utilisant votre adresse électronique) vous êtes enregistré pour participer à un questionnaire en ligne intitulé {SURVEYNAME}.<br /> <br /> Pour compléter ce questionnaire, cliquez sur le lien suivant :<br /> {SURVEYURL}<br /> <br /> Si vous avez des questions à propos de ce questionnaire, ou si vous ne vous êtes pas enregistré pour participer à celui-ci et croyez que ce courriel est une erreur, veuillez contacter {ADMINNAME} à l’adresse {ADMINEMAIL}		fr																																																																																																																										
SL		surveyls_email_confirm_subj		Confirmation de votre participation à notre questionnaire		fr																																																																																																																										
SL		surveyls_email_confirm		Bonjour {FIRSTNAME},<br /> <br /> Ce courriel vous confirme que vous avez complété le questionnaire intitulé {SURVEYNAME} et que votre réponse a été enregistrée. Merci pour votre participation.<br /> <br /> Si vous avez des questions à propos de ce courriel, veuillez contacter {ADMINNAME} à l’adresse {ADMINEMAIL}.<br /> <br /> Cordialement,<br /> <br /> {ADMINNAME}		fr																																																																																																																										
SL		surveyls_dateformat		9		fr																																																																																																																										
SL		surveyls_numberformat		0		fr																																																																																																																										
SL		email_admin_notification_subj		Soumission de réponse pour le questionnaire {SURVEYNAME}		fr																																																																																																																										
SL		email_admin_notification		Bonjour,<br /> <br /> Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br /> <br /> Cliquez sur le lien suivant pour recharger votre questionnaire :<br /> {RELOADURL}<br /> <br /> Cliquez sur le lien suivant pour voir la réponse :<br /> {VIEWRESPONSEURL}<br /> <br /> Cliquez sur le lien suivant pour éditer la réponse :<br /> {EDITRESPONSEURL}<br /> <br /> Visualisez les statistiques en cliquant ici :<br /> {STATISTICSURL}<br /> <br /> les réponses suivantes ont été données par le participant :<br /> {ANSWERTABLE}		fr																																																																																																																										
SL		email_admin_responses_subj		Soumission de réponse pour le questionnaire {SURVEYNAME} avec résultats		fr																																																																																																																										
SL		email_admin_responses		Bonjour,<br /> <br /> Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br /> <br /> Cliquez sur le lien suivant pour recharger votre questionnaire :<br /> {RELOADURL}<br /> <br /> Cliquez sur le lien suivant pour voir la réponse :<br /> {VIEWRESPONSEURL}<br /> <br /> Cliquez sur le lien suivant pour éditer la réponse individuelle :<br /> {EDITRESPONSEURL}<br /> <br /> Visualisez les statistiques en cliquant ici :<br /> {STATISTICSURL}<br /> <br /> <br /> les réponses suivantes ont été données par le participant :<br /> {ANSWERTABLE}		fr																																																																																																																										
G	G0	Group	1			fr																																																																																																																										
Q	T	Q01	1	A questioin		fr			N		1																																																																																															1					1																	
G	G0	Group	1			en																																																																																																																										
Q	T	Q01	1	A questioin		en			N		1																																																																																															1					1																	
limesurvey_survey_628678.tsv (15,426 bytes)   
500 Internal Server Error-NODEBUG.html (15,524 bytes)   
<!DOCTYPE html>
<html lang="en" dir="ltr" class="en dir-ltr  no-js " >
                <head>    






    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="LimeSurvey http://www.limesurvey.org" />
        
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/40056400/jquery-ui.structure.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/6f19d8dc/css/font-awesome.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/3014e374/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/3014e374/yiistrap.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/49e481b3/css/bootstrap-switch.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/186e8492/css/select2.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/186e8492/css/select2-bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/7f883c62/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/549cc557/roboto.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/549cc557/icomoon.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/77ad0d72/build/lstutorial.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/4008374c/build/adminbasics.min.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/dd547963/build.min/css/adminsidepanel.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/daa21e56/css/lime-admin-colors.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/daa21e56/css/statistics.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/daa21e56/css/own-fix.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/3b05e9d6/sendMailAjax.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/6de89e9d/survey.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/d05163/css/custom.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/166f130a/css/minimal.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/166f130a/css/skelvanilla.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/166f130a/css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/3LTS/tmp/assets/166f130a/css/theme.css" />
<script type='text/javascript'>window.debugState = {frontend : (0 === 1), backend : (0 === 1)};</script><script type="text/javascript" src="/3LTS/tmp/assets/1ae41d45/jquery-3.5.1.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/1ae41d45/jquery-migrate-3.3.0.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/40056400/jquery-ui.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/4008374c/build/adminbasics.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/dd547963/build.min/js/adminsidepanel.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/a3bd546f/js.cookie.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/3014e374/bootstrap.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/3014e374/plugins/bootstrapconfirm/bootstrapconfirm.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/4b2ea31b/moment-with-locales.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/186e8492/js/select2.full.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/d0178430/build/lslog.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/66935094/min/pjax.combined.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/6e2d185e/ckeditor.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/6e2d185e/config.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/206c4c6e/ckeditoradditions.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/daa21e56/scripts/adapt.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/3b05e9d6/sendMailAjax.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/6de89e9d/survey.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/8660ce9d/template-core.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/66935094/pjax.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/d05163/scripts/custom.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/166f130a/scripts/aria-live.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/166f130a/scripts/theme-vanilla.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/166f130a/scripts/skelvanilla.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/166f130a/scripts/theme.js" class="headScriptTag"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/6f6782f/em_javascript.js" class="headScriptTag"></script>
<script type="text/javascript">
/*<![CDATA[*/

           LS.globalUserId = "1";
LSvar= LSvar || {};
LSvar.bFixNumAuto = 0;
LSvar.bNumRealValue = 1;
/*]]>*/
</script>
<title>
                500: Internal Server Error
    </title>
    <script type="text/javascript">
        if(window.basicThemeScripts === undefined){ 
            window.basicThemeScripts = new ThemeScripts(); 
        } 
    </script>
        
            
        
        <link rel="icon" type="image/png" sizes="32x32" href="/3LTS/tmp/assets/d9ca5eb7/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/3LTS/tmp/assets/d9ca5eb7/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/3LTS/tmp/assets/d9ca5eb7/favicon-16x16.png">

    
</head>

    
                            <body class="body-loading skelvanilla vanilla minimal bootstrap lang-en   table-fixed-header " ><script type="text/javascript" src="/3LTS/tmp/assets/49e481b3/js/bootstrap-switch.min.js"></script>
<script type="text/javascript" src="/3LTS/tmp/assets/7f883c62/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/

    CKEDITOR.on('dialogDefinition', function (ev) {
        var dialogName = ev.data.name;
        var dialogDefinition = ev.data.definition;

        // Remove upload tab from Link and Image dialog as it interferes with
        // CSRF protection and upload can be reached using the browse server tab
        if ( dialogName == 'link')
        {
           // remove Upload tab
           dialogDefinition.removeContents( 'upload' );
        }
        if ( dialogName == 'image')
        {
           // remove Upload tab
           dialogDefinition.removeContents( 'Upload' );
        }
    });
    CKEDITOR.on('instanceReady', function(event) {
        event.editor.dataProcessor.writer.setRules( 'br', { breakAfterOpen: 0 } );
    });    

    var sReplacementFieldTitle = 'Champs texte réservés';
    var sReplacementFieldButton = 'Insérez/modifiez un mot clé';
    var editorwindowsHash = new Object();

    function find_popup_editor(fieldname)
    {
        var window = null;
        for (var key in editorwindowsHash)
        {
            if (key==fieldname && !editorwindowsHash[key].closed)
            {
                window = editorwindowsHash[key];
                return window;
            }
        }
        return null;
    }

    function start_popup_editor(fieldname, fieldtext, sid, gid, qid, fieldtype, action)
    {
        controlidena = fieldname + '_popupctrlena';
        controliddis = fieldname + '_popupctrldis';
        numwindows = editorwindowsHash.length;
        activepopup = find_popup_editor(fieldname);

        if (activepopup == null)
        {
            document.getElementsByName(fieldname)[0].readOnly=true;
            document.getElementById(controlidena).style.display='none';
            document.getElementById(controliddis).style.display='';
            popup = window.open('/3LTS/index.php?r=admin/htmleditor_pop/sa/index/name/'+fieldname+'/text/'+fieldtext+'/type/'+fieldtype+'/action/'+action+'/sid/'+sid+'/gid/'+gid+'/qid/'+qid+'/lang/fr','', 'location=no, status=yes, scrollbars=auto, menubar=no, resizable=yes, width=690, height=500');

            editorwindowsHash[fieldname] = popup;
        }
        else
        {
            activepopup.focus();
        }
    }

    function updateCKeditor(fieldname,value)
    {
        var mypopup= editorwindowsHash[fieldname];
        if (mypopup)
        {
            var oMyEditor = mypopup.CKEDITOR.instances['MyTextarea'];
            if (oMyEditor) {oMyEditor.setData(value);}
            mypopup.focus();
        }
        else
        {
            var oMyEditor = CKEDITOR.instances[fieldname];
            oMyEditor.setData(value);
        }
    }



    var jsonUrl = '';
    var sAction = '';
    var sParameter = '';
    var sTargetQuestion = '';
    var sNoParametersDefined = '';
    var sAdminEmailAddressNeeded = 'Si vous utilisez des codes d’invitation ou si vous souhaitez envoyer des courriels de notifications, vous devez renseigner le courriel de l’administrateur.'
    var sURLParameters = '';
    var sAddParam = '';


var LEMmode='survey';
var LEMgseq='';
ExprMgr_process_relevance_and_tailoring = function(evt_type,sgqa,type){
if (typeof LEM_initialized == 'undefined') {
LEM_initialized=true;
LEMsetTabIndexes();
}
if (evt_type == 'onchange' && (typeof last_sgqa !== 'undefined' && sgqa==last_sgqa) && (typeof last_evt_type !== 'undefined' && last_evt_type == 'TAB' && type != 'checkbox')) {
  last_evt_type='onchange';
  last_sgqa=sgqa;
  return;
}
last_evt_type = evt_type;
last_sgqa=sgqa;
  relChange4307=false;
  relChangeG0=false;

}

/*]]>*/
</script>

        <div id="dynamicReloadContainer">
                                                                    
    <!-- Bootstrap Navigation Bar -->
        <header class=" navbar navbar-default navbar-static-top hidden-print" role="banner" >
        <div class="container-fluid" role="navigation">
                        <div class=" navbar-header "  >
                
                                    <button type="button" class=" navbar-toggle collapsed "  data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"   >
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                                                    <h1 class=" navbar-brand  "    >
                                                                            500: Internal Server Error
                                            </h1>
                            </div>
                            <div id="navbar" class=" collapse navbar-collapse "  >
                    <ul class=" nav navbar-nav  navbar-action-link  navbar-right" >
                                                    

                                                                            
                                                                            


                                                                            




                                                                                            </ul>
                </div>
                    </div>
    </header>

                                                    
                                <!-- Outer Frame Container -->
                <main class=" outerframe   container  " id="outerframeContainer"  >
    <div class="well">
                    <h1 class="text-danger">500: Internal Server Error</h1>
                <div class="h2" class="text-danger">Call to a member function getAttributes() on null</h2>
        <div>
            An internal error occurred while the Web server was processing your request.
        </div>
        
        <p class="small text-right">
                            Please contact Sondages Pro to report this problem.
                    </p>
    </div>
</main>
                                                



<!-- Bootstrap Modal Alert -->
<div id="bootstrap-alert-box-modal" class=" modal fade " >
    <div class=" modal-dialog " >
        <div class=" modal-content "  >
            <div class=" modal-header "  style="min-height:40px;"  >
                <button   type="button" data-dismiss="modal" aria-hidden="true"  aria-label="Close" class=" close "  ><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <div class=" modal-title h4 " >&nbsp;</div>
            </div>
            <div class=" modal-body " >
            </div>
            <div class=" modal-footer " >
                <a  href="#" data-dismiss="modal"   class=" btn btn-default ">Close</a>
            </div>
        </div>
    </div>
</div>

                            
                            <!-- <footer class="navbar-default"></footer> -->

                    </div>
                <div id="ajax-loading" aria-hidden="true"><i class="loader fa fa-circle-o-notch fa-spin fa-3x fa-fw text-muted"></i></div>
<script>
if (!window.jQuery) {
    window.onload = function() {
        body = document.getElementsByTagName('body')[0];
        body.className = body.className.replace(/\body-loading\b/,'body-loaded');
    };
}
</script>

                                            <script>
                if(window.basicThemeScripts === undefined){ 
                    window.basicThemeScripts = new ThemeScripts(); 
                } 
                basicThemeScripts.initGlobal(); 
                window.basicThemeScripts.init();
                window.TemplateAccessible.init({"dynamicValidity":false});
                window.skelVanilla.init({"bodyLoaded":true,"removeBack":false});
            </script>
            <script type="text/javascript" src="/3LTS/tmp/assets/77ad0d72/build/lstutorial.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery('body').popover({'selector':'a\x5Brel\x3Dpopover\x5D'});
jQuery('body').tooltip({'selector':'a\x5Brel\x3Dtooltip\x5D'});

            try{ 
                triggerEmClassChange(); 
            } catch(e) {
                console.ls.warn('triggerEmClassChange could not be run. Is survey.js correctly loaded?');
            }

triggerEmRelevance();
jQuery(document).off('pjax:scriptcomplete.mainBottom').on('ready pjax:scriptcomplete.mainBottom', function() {
activateActionLink();
activateConfirmButton();
basicThemeScripts.initTopMenuLanguageChanger('.ls-language-link ', 'form#limesurvey'); 
updateMandatoryErrorClass();
});
/*]]>*/
</script>
</body>
</html>
Error--DEBUG.html (19,785 bytes)   
<!DOCTYPE html PUBLIC
	"-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Error</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>Error</h1>

	<p class="message">
		Call to a member function getAttributes() on null	</p>

	<div class="source">
		<p class="file">/mnt/data/shnoulle/nginx/www/3LTS/application/controllers/admin/surveyadmin.php(1734)</p>
		<div class="code"><pre><span class="ln">1722</span>         Yii::app()-&gt;loadHelper(&quot;admin/htmleditor&quot;);
<span class="ln">1723</span>         $aData = $aTabTitles = $aTabContents = array();
<span class="ln">1724</span> 
<span class="ln">1725</span>         $aData[&#039;scripts&#039;] = PrepareEditorScript(false, $this-&gt;getController());
<span class="ln">1726</span>         $aLanguageData = [];
<span class="ln">1727</span>         if ($survey-&gt;sid) {
<span class="ln">1728</span>             foreach ($survey-&gt;allLanguages as $i =&gt; $sLang) {
<span class="ln">1729</span>                 $aLanguageData = $this-&gt;_getGeneralTemplateData($survey-&gt;sid);
<span class="ln">1730</span>                 // this one is created to get the right default texts fo each language
<span class="ln">1731</span>                 Yii::app()-&gt;loadHelper(&#039;database&#039;);
<span class="ln">1732</span>                 Yii::app()-&gt;loadHelper(&#039;surveytranslator&#039;);
<span class="ln">1733</span> 
<span class="error"><span class="ln error-ln">1734</span>                 $aSurveyLanguageSettings = SurveyLanguageSetting::model()-&gt;findByPk(array(&#039;surveyls_survey_id&#039; =&gt; $survey-&gt;sid, &#039;surveyls_language&#039; =&gt; $sLang))-&gt;getAttributes();
</span><span class="ln">1735</span> 
<span class="ln">1736</span>                 $aTabTitles[$sLang] = getLanguageNameFromCode($aSurveyLanguageSettings[&#039;surveyls_language&#039;], false);
<span class="ln">1737</span> 
<span class="ln">1738</span>                 if ($aSurveyLanguageSettings[&#039;surveyls_language&#039;] == $survey-&gt;language) {
<span class="ln">1739</span>                     $aTabTitles[$sLang] .= &#039; (&#039;.gT(&quot;Base language&quot;).&#039;)&#039;;
<span class="ln">1740</span>                 }
<span class="ln">1741</span> 
<span class="ln">1742</span>                 $aLanguageData[&#039;aSurveyLanguageSettings&#039;] = $aSurveyLanguageSettings;
<span class="ln">1743</span>                 $aLanguageData[&#039;action&#039;] = &quot;surveygeneralsettings&quot;;
<span class="ln">1744</span>                 $aLanguageData[&#039;i&#039;] = $i;
<span class="ln">1745</span>                 $aLanguageData[&#039;dateformatdetails&#039;] = getDateFormatData(Yii::app()-&gt;session[&#039;dateformat&#039;]);
<span class="ln">1746</span>                 $aLanguageData[&#039;oSurvey&#039;] = $survey;
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/application/controllers/admin/surveyadmin.php(1049): <strong>SurveyAdmin</strong>-><strong>_getTextEditData</strong>(Survey)				</div>

				<div class="code"><pre><span class="ln">1044</span>         }
<span class="ln">1045</span> 
<span class="ln">1046</span>         $templateData = is_array($menuEntry-&gt;data) ? $menuEntry-&gt;data : [];
<span class="ln">1047</span> 
<span class="ln">1048</span>         if (!empty($menuEntry-&gt;getdatamethod)) {
<span class="error"><span class="ln error-ln">1049</span>             $templateData = array_merge($templateData, call_user_func_array(array($this, $menuEntry-&gt;getdatamethod), array(&#039;survey&#039;=&gt;$survey)));
</span><span class="ln">1050</span>         }
<span class="ln">1051</span> 
<span class="ln">1052</span>         $templateData = array_merge($this-&gt;_getGeneralTemplateData($iSurveyID), $templateData);
<span class="ln">1053</span>         $this-&gt;_registerScriptFiles();
<span class="ln">1054</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>SurveyAdmin</strong>-><strong>rendersidemenulink</strong>(777682, &quot;surveytexts&quot;)				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(SurveyAdmin, array(&quot;777682&quot;, &quot;surveytexts&quot;))				</div>

				<div class="code"><pre><span class="ln">104</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">105</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">106</span>             else
<span class="ln">107</span>                 return false;
<span class="ln">108</span>         }
<span class="error"><span class="ln error-ln">109</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">110</span>         return true;
<span class="ln">111</span>     }
<span class="ln">112</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/application/core/Survey_Common_Action.php(83): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(SurveyAdmin, ReflectionMethod, array(&quot;r&quot; =&gt; &quot;admin/survey/sa/rendersidemenulink&quot;, &quot;subaction&quot; =&gt; &quot;surveytexts&quot;, &quot;surveyid&quot; =&gt; &quot;777682&quot;, 1613377160221 =&gt; &quot;&quot;, ...))				</div>

				<div class="code"><pre><span class="ln">78</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">79</span>         }
<span class="ln">80</span> 
<span class="ln">81</span>         // We&#039;re all good to go, let&#039;s execute it
<span class="ln">82</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
<span class="error"><span class="ln error-ln">83</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">84</span>     }
<span class="ln">85</span> 
<span class="ln">86</span>     /**
<span class="ln">87</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">88</span>      * usual parameters we&#039;re getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array(&quot;r&quot; =&gt; &quot;admin/survey/sa/rendersidemenulink&quot;, &quot;subaction&quot; =&gt; &quot;surveytexts&quot;, &quot;surveyid&quot; =&gt; &quot;777682&quot;, 1613377160221 =&gt; &quot;&quot;, ...))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(SurveyAdmin)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(SurveyAdmin, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/application/controllers/AdminController.php(165): <strong>CController</strong>-><strong>run</strong>(&quot;survey&quot;)				</div>

				<div class="code"><pre><span class="ln">160</span>                     $this-&gt;redirect(array(&#039;/admin/authentication/sa/login&#039;));
<span class="ln">161</span>                 }
<span class="ln">162</span>             }
<span class="ln">163</span>         }
<span class="ln">164</span> 
<span class="error"><span class="ln error-ln">165</span>         return parent::run($action);
</span><span class="ln">166</span>     }
<span class="ln">167</span> 
<span class="ln">168</span>     /**
<span class="ln">169</span>      * Routes all the actions to their respective places
<span class="ln">170</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>(&quot;survey&quot;)				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
<span class="ln">287</span>                 array(&#039;{route}&#039;=&gt;$route===&#039;&#039;?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;admin/survey/sa/rendersidemenulink&quot;)				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-><strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler(&#039;onBeginRequest&#039;))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,&#039;end&#039;),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler(&#039;onEndRequest&#039;))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/3LTS/index.php(194): <strong>CApplication</strong>-><strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">189</span> require_once APPPATH . &#039;core/LSYii_Application&#039; . EXT;
<span class="ln">190</span> 
<span class="ln">191</span> $config = require_once(APPPATH . &#039;config/internal&#039; . EXT);
<span class="ln">192</span> 
<span class="ln">193</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">194</span> Yii::createApplication(&#039;LSYii_Application&#039;, $config)-&gt;run();
</span><span class="ln">195</span> 
<span class="ln">196</span> /* End of file index.php */
<span class="ln">197</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</table>
	</div>

	<div class="version">
		2021-02-15 08:30:53 nginx/1.18.0 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.22-dev	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>

</body>
</html>
Error--DEBUG.html (19,785 bytes)   
Bug heat2
Complete LimeSurvey version number (& build)3.25.12 git
I will donate to the project if issue is resolvedNo
Browsernot relevant ?
Database type & versionnot relevant (broke with mariadb and mssql)
Server OS (if known)not relevant
Webserver software & version (if known)not relevant
PHP Versionnot relevant

Relationships

related to 17094 new Feature requests checkintegrity (and fix) by survey 
related to 17139 closedc_schmitz Bug reports Invalid url in Check integrity 
related to 16908 in code reviewgabrieljenik Bug reports Importing Question with multiple languages can left grabage on the DB 

Activities

DenisChenu

DenisChenu

2021-02-15 10:48

developer   ~62237

https://github.com/LimeSurvey/LimeSurvey/pull/1765

DenisChenu

DenisChenu

2021-02-27 11:38

developer   ~62554

Another survey broken after import,

Seems to work but LimeSurvey found issue about order of subquestions : maybe add it in Survey fixer ?

DenisChenu

DenisChenu

2021-02-27 11:38

developer   ~62555

DenisChenu

DenisChenu

2021-03-04 16:53

developer   ~62720

https://github.com/LimeSurvey/LimeSurvey/pull/1774

DenisChenu

DenisChenu

2021-04-06 14:43

developer   ~63822

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=31488

Related Changesets

LimeSurvey: master 687a20de

2021-03-11 18:00:04

DenisChenu


Committer: GitHub Details Diff
Fixed issue 17093: Unable to fix invalid survey after import bad TSV (#1774)

* Fixed issue 17093: Unable to fix invalid survey after import bad TSV
Dev: Start a Survey::model()->fixSurveyConsistency()
Dev: can be improved

* Dev: move to Services

* Dev: phpdoc oups
Affected Issues
17093
mod - application/helpers/admin/import_helper.php Diff File
mod - application/models/Survey.php Diff File
add - application/models/services/SurveyIntegrity.php Diff File

Issue History

Date Modified Username Field Change
2021-02-15 09:47 DenisChenu New Issue
2021-02-15 09:47 DenisChenu File Added: limesurvey_survey_628678.tsv
2021-02-15 09:47 DenisChenu File Added: 500 Internal Server Error-NODEBUG.html
2021-02-15 09:47 DenisChenu File Added: Error--DEBUG.html
2021-02-15 10:43 DenisChenu Relationship added related to 17094
2021-02-15 10:48 DenisChenu Note Added: 62237
2021-02-27 11:36 DenisChenu Relationship added related to 17139
2021-02-27 11:38 DenisChenu Note Added: 62554
2021-02-27 11:38 DenisChenu Note Added: 62555
2021-02-27 11:38 DenisChenu File Added: limesurvey_survey_187194.lss
2021-03-04 16:53 DenisChenu Status new => ready for testing
2021-03-04 16:53 DenisChenu Note Added: 62720
2021-03-11 08:51 DenisChenu Relationship added related to 16908
2021-03-11 18:00 ollehar Assigned To => ollehar
2021-03-11 18:00 ollehar Status ready for testing => resolved
2021-03-11 18:00 ollehar Resolution open => fixed
2021-03-22 16:09 c_schmitz Status resolved => closed
2021-04-06 14:43 DenisChenu Changeset attached => LimeSurvey master 687a20de
2021-04-06 14:43 DenisChenu Note Added: 63822
2021-04-06 14:43 DenisChenu Assigned To ollehar => DenisChenu