Toggle menu
913
3.8K
30.2K
279.2K
Catglobe Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

QuestionnaireTemplate class: Difference between revisions

From Catglobe Wiki
No edit summary
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{CGscriptClass_Template
{{CGscriptClass_Template
|Name=<nowiki>QuestionnaireTemplate</nowiki>
|Name=<nowiki>QuestionnaireTemplate</nowiki>
|Description=<nowiki>The questionnaire template.</nowiki>
|Description=<nowiki>Template for a questionnaire.</nowiki>
|InheritsFrom=object|Constructors=
|InheritsFrom=object|Constructors=
{{CGscriptConstructors_Template|Parameters=
{{CGscriptConstructors_Template|Parameters=
{{CGscriptParameters_Template|Type=int|Name=<nowiki>id</nowiki>|Description=<nowiki>Id of questionnaire template</nowiki>}}
{{CGscriptParameters_Template|Type=int|Name=<nowiki>id</nowiki>|Description=<nowiki>Id of questionnaire template</nowiki>}}
|Description=<nowiki>Fetch exists questionnaire template</nowiki>}}
|Description=<nowiki>Fetch exists questionnaire template - it is highly recommended to use QuestionnaireTemplate_getCached if just reading</nowiki>}}
{{CGscriptConstructors_Template|Parameters=
{{CGscriptConstructors_Template|Parameters=
{{CGscriptParameters_Template|Type=string|Name=<nowiki>qualifiedName</nowiki>|Description=<nowiki>Qualified name of questionnaire</nowiki>}}
{{CGscriptParameters_Template|Type=string|Name=<nowiki>qualifiedName</nowiki>|Description=<nowiki>Qualified name of questionnaire</nowiki>}}
Line 20: Line 20:
|Description=<nowiki>Return a question by label or empty if not found</nowiki>}}
|Description=<nowiki>Return a question by label or empty if not found</nowiki>}}
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Save</nowiki>|Parameters=
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>Save</nowiki>|Parameters=
{{CGscriptParameters_Template|Type=bool|Name=<nowiki>increaseStructureVersion</nowiki>|Description=<nowiki>Increase structure version will force reset all QAS sequence</nowiki>}}
{{CGscriptParameters_Template|Type=bool|Name=<nowiki>increaseStructureVersion</nowiki>|Description=<nowiki>Increase structure version will force reset all QAS sequence. Be careful when setting this to false.</nowiki>}}
|Description=<nowiki>Save questionnaire template</nowiki>}}
|Description=<nowiki>Save questionnaire template</nowiki>}}
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>SetProperty</nowiki>|Parameters=
{{CGscriptMethods_Template|ReturnType=Empty|Name=<nowiki>SetProperty</nowiki>|Parameters=
Line 29: Line 29:
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>DefaultLanguage</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Gets and sets the default language of this questionnaire. Its value is language iso code</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>DefaultLanguage</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Gets and sets the default language of this questionnaire. Its value is language iso code</nowiki>}}
{{CGscriptProperties_Template|ReturnType=QuestionGroupRoot|Name=<nowiki>Groups</nowiki>|HasGetter=1|Description=<nowiki>Information about question groups in questionnaire</nowiki>}}
{{CGscriptProperties_Template|ReturnType=QuestionGroupRoot|Name=<nowiki>Groups</nowiki>|HasGetter=1|Description=<nowiki>Information about question groups in questionnaire</nowiki>}}
{{CGscriptProperties_Template|ReturnType=bool|Name=<nowiki>HasData</nowiki>|HasGetter=1|Description=<nowiki>check if this questionnaire temaplte contains data or not</nowiki>}}
{{CGscriptProperties_Template|ReturnType=bool|Name=<nowiki>HasData</nowiki>|HasGetter=1|Description=<nowiki>check if this questionnaire template contains data or not</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>Id</nowiki>|HasGetter=1|Description=<nowiki>Reosurce id of questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>Id</nowiki>|HasGetter=1|Description=<nowiki>Resource id of questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Languages</nowiki>|HasGetter=1|Description=<nowiki>Active languages associated with this questionnaire. Its value is language iso code</nowiki>}}
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Languages</nowiki>|HasGetter=1|Description=<nowiki>Active languages associated with this questionnaire. Its value is language iso code</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>Name</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Questionnaire template name</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>Name</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Questionnaire template name</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>ObjectTypeName</nowiki>|HasGetter=1|Description=<nowiki>The name of the type of object.</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>ObjectTypeName</nowiki>|HasGetter=1|Description=<nowiki>The name of the type of object.</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>ParentId</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Parent resource's id</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>ParentId</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Parent resource's id</nowiki>}}
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Properties</nowiki>|HasGetter=1|Description=<nowiki>Get configuration properties of this questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=Array of QuestionnaireProperty|Name=<nowiki>Properties</nowiki>|HasGetter=1|Description=<nowiki>Get configuration properties of this questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>QualifiedName</nowiki>|HasGetter=1|Description=<nowiki>Get qualified name of questionnaire name</nowiki>}}
{{CGscriptProperties_Template|ReturnType=string|Name=<nowiki>QualifiedName</nowiki>|HasGetter=1|Description=<nowiki>Get qualified name of questionnaire name</nowiki>}}
{{CGscriptProperties_Template|ReturnType=array|Name=<nowiki>Questions</nowiki>|HasGetter=1|Description=<nowiki>Get configuration questions of this questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=Array of QuestionTemplate|Name=<nowiki>Questions</nowiki>|HasGetter=1|Description=<nowiki>Get configuration questions of this questionnaire template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>ResourceTemplateId</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Resource tempalte's id of questionnaire template. Set it's 0 to use default resource template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>ResourceTemplateId</nowiki>|HasGetter=1|HasSetter=1|Description=<nowiki>Resource tempalte's id of questionnaire template. Set it's 0 to use default resource template</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>StructureVersion</nowiki>|HasGetter=1|Description=<nowiki>Structure version of the questionnaire template. It is increased when updating</nowiki>}}
{{CGscriptProperties_Template|ReturnType=int|Name=<nowiki>StructureVersion</nowiki>|HasGetter=1|Description=<nowiki>Structure version of the questionnaire template. It is increased when updating</nowiki>}}
Line 45: Line 45:
{{CGscriptMethods_Template|ReturnType=QuestionnaireTemplate|Name=<nowiki>QuestionnaireTemplate_current</nowiki>|Description=<nowiki>Get questionnaire template in current QAS or PQ context</nowiki>}}
{{CGscriptMethods_Template|ReturnType=QuestionnaireTemplate|Name=<nowiki>QuestionnaireTemplate_current</nowiki>|Description=<nowiki>Get questionnaire template in current QAS or PQ context</nowiki>}}
{{CGscriptMethods_Template|ReturnType=Dictionary|Name=<nowiki>QuestionnaireTemplate_getActiveLanguages</nowiki>|Description=<nowiki>Return a Dictionary of all languages supported in system. The dictionary item has key is iso code and value is object {isocode: string, name: string, viewerSupported: bool}</nowiki>}}
{{CGscriptMethods_Template|ReturnType=Dictionary|Name=<nowiki>QuestionnaireTemplate_getActiveLanguages</nowiki>|Description=<nowiki>Return a Dictionary of all languages supported in system. The dictionary item has key is iso code and value is object {isocode: string, name: string, viewerSupported: bool}</nowiki>}}
{{CGscriptMethods_Template|ReturnType=QuestionnaireTemplate|Name=<nowiki>QuestionnaireTemplate_getCached</nowiki>|Parameters=
{{CGscriptParameters_Template|Type=int|Name=<nowiki>id</nowiki>|Description=<nowiki>Id of questionnaire template</nowiki>}}
|Description=<nowiki>Fetch exists questionnaire template using a cached version. Do not use when editing</nowiki>}}
{{CGscriptMethods_Template|ReturnType=QuestionnaireTemplate|Name=<nowiki>QuestionnaireTemplate_getCachedFromQuestionnaireId</nowiki>|Parameters=
{{CGscriptParameters_Template|Type=int|Name=<nowiki>id</nowiki>|Description=<nowiki>Id of questionnaire template</nowiki>}}
|Description=<nowiki>Fetch exists questionnaire template using a cached version using the questionnaire id. Do not use when editing</nowiki>}}
}}
}}
=== <span style="color:#DF8621">'''Examples'''</span> ===
=== <span style="color:#DF8621">'''Examples'''</span> ===
Line 58: Line 64:
</source>
</source>
<source lang="javascript">
<source lang="javascript">
//set qnaire property
//set, get a qnaire property
Questionnaire qnaire = new Questionnaire (17148177);
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
Line 86: Line 92:
else print (p.PropertyTypeAsString +": "+ p.Value);
else print (p.PropertyTypeAsString +": "+ p.Value);
}
}
</source>
<source lang="javascript">
//get an existing question
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
QuestionTemplate q = qt.GetQuestion("Q1");//return QuestionTemplate or empty if not found
</source>
<source lang="javascript">
//get all existing questions
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
print(qt.Questions);//{QuestionTemplate,...}
for(i for 0; qt.Questions.Count){
QuestionTemplate q = qt.Questions[i];
print(q.Label);
}
</source>
<source lang="javascript">
//Delete a question
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
number index;
for(i for 0; qt.Questions.Count){
if(qt.Questions[i].Label == "Q1" && !qt.Questions[i].HasData)
index = i;
}
if(index!=empty)
qt.Questions.Remove(qt.Questions[index]);
qt.Save(true);
</source>
<source lang="javascript">
//get question group
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
qt.Groups;//QuestionGroupRoot
</source>
</source>

Latest revision as of 04:58, 31 March 2026

QuestionnaireTemplate



Template for a questionnaire.

Parent class

Inherits from object

Constructors

  • (int id "Id of questionnaire template") - Fetch exists questionnaire template - it is highly recommended to use QuestionnaireTemplate_getCached if just reading
  • (string qualifiedName "Qualified name of questionnaire") - Fetch exists questionnaire template by name
  • (string name "Questionnaire's name", int parentId "Resource parent's id", int resourceTemplateId "Resource tempalte's id of questionnaire template. Set it's 0 to use default resource template") - Create new questionnaire template

Methods

  • object GetProperty(PropertyType constant type "Use constant Question_Property_xxxx") - Get value of property type, return empty if not found
  • QuestionTemplate GetQuestion(string label "Question label") - Return a question by label or empty if not found
  • Empty Save(bool increaseStructureVersion "Increase structure version will force reset all QAS sequence. Be careful when setting this to false.") - Save questionnaire template
  • Empty SetProperty(PropertyType constant type "Use constant Question_Property_xxxx", object value "String or LocalizedString depend on property type. If value is empty then the property will be removed") - Set value for property type
  • (From object) string ToString() - The string representation of the object.

Properties

  • string DefaultLanguage { get; set; } - Gets and sets the default language of this questionnaire. Its value is language iso code
  • QuestionGroupRoot Groups { get; } - Information about question groups in questionnaire
  • bool HasData { get; } - check if this questionnaire template contains data or not
  • int Id { get; } - Resource id of questionnaire template
  • array Languages { get; } - Active languages associated with this questionnaire. Its value is language iso code
  • string Name { get; set; } - Questionnaire template name
  • string ObjectTypeName { get; } - The name of the type of object.
  • int ParentId { get; set; } - Parent resource's id
  • Array of QuestionnaireProperty Properties { get; } - Get configuration properties of this questionnaire template
  • string QualifiedName { get; } - Get qualified name of questionnaire name
  • Array of QuestionTemplate Questions { get; } - Get configuration questions of this questionnaire template
  • int ResourceTemplateId { get; set; } - Resource tempalte's id of questionnaire template. Set it's 0 to use default resource template
  • int StructureVersion { get; } - Structure version of the questionnaire template. It is increased when updating
  • (From object) TypeInformation TypeInformation { get; } - Get information about this class.
  • int Version { get; } - Version of the questionnaire template. It is increased when updating

Static Methods

  • QuestionnaireTemplate QuestionnaireTemplate_current() - Get questionnaire template in current QAS or PQ context
  • Dictionary QuestionnaireTemplate_getActiveLanguages() - Return a Dictionary of all languages supported in system. The dictionary item has key is iso code and value is object {isocode: string, name: string, viewerSupported: bool}
  • QuestionnaireTemplate QuestionnaireTemplate_getCached(int id "Id of questionnaire template") - Fetch exists questionnaire template using a cached version. Do not use when editing
  • QuestionnaireTemplate QuestionnaireTemplate_getCachedFromQuestionnaireId(int id "Id of questionnaire template") - Fetch exists questionnaire template using a cached version using the questionnaire id. Do not use when editing

Examples

// new QuestionnaireTemplate
string qnaireTemplateName = "test";
number parentId = 17148135;
number resourceTemplateId = 17148218;// 0 to use the default 
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaireTemplateName, parentId, resourceTemplateId);
bool increaseStructureVersion = false;//Increase structure version will force reset all QAS sequence
qt.Save(increaseStructureVersion);
//Catglobe.Json.Encode(qt);
//set, get a qnaire property
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
print(qt.Languages);//{en-GB,da-DK}
LocalizedString a = new LocalizedString ({"": "Completed", "da-DK": "Komplet"}, "en-GB");
qt.SetProperty(Question_Property_QuestionnaireCompletedText, a);
qt.Save(false);
print(qt.GetProperty(Question_Property_QuestionnaireCompletedText).ToDictionary());//{"": Completed, "da-DK": Komplet}
//Remore an existing qnaire property 
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
qt.SetProperty(Question_Property_QuestionnaireCompletedText, empty);
qt.Save(false);
print(qt.GetProperty(Question_Property_QuestionnaireCompletedText));//empty
//get all existing qnaire properties
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
print(qt.Properties);//{QuestionnaireProperty,...}
for(i for 0; qt.Properties.Count){
	QuestionnaireProperty p = qt.Properties[i];
	if(p.IsLocalize)
		print(p.PropertyTypeAsString +": "+ convertToString(p.Value.ToDictionary()));
	else print (p.PropertyTypeAsString +": "+ p.Value);
}
//get an existing question 
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
QuestionTemplate q = qt.GetQuestion("Q1");//return QuestionTemplate or empty if not found
//get all existing questions
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
print(qt.Questions);//{QuestionTemplate,...}
for(i for 0; qt.Questions.Count){
	QuestionTemplate q = qt.Questions[i];
	print(q.Label);
}
//Delete a question
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
number index;
for(i for 0; qt.Questions.Count){
	if(qt.Questions[i].Label == "Q1" && !qt.Questions[i].HasData)
		index = i;	
}
if(index!=empty)
	qt.Questions.Remove(qt.Questions[index]);
qt.Save(true);
//get question group 
Questionnaire qnaire = new Questionnaire (17148177);
QuestionnaireTemplate qt = new QuestionnaireTemplate (qnaire.TemplateId);
qt.Groups;//QuestionGroupRoot